Всем привет. Я хочу сделать локальный эффект сетки строительства для каждого игрока, чтобы кто ввел команду -grid, только для него и отображалась сетка. Суть в том что мой код работает в сингл плеере, но вызывает дисинх в мультиплеере. Я относительно новичок в jass и возможно где-то неправильно понял статью…
Вопрос
11 92
26
niteko, пустую строку тоже нельзя оставлять, нужно явно указывать ".mdx"
16
а почему мой ответ выделен принятым? твоё конечное решение на основе ответа от OVOgenez, его принятым и делай
1
OVOgenez, host_pi, Hate
Спасибо огромное за ответы. Перечитал статью GetLocalPlayer() несколько раз и до меня наконец дошло хоть какое-то понимание. Ниже отправлю какой код у меня получился в итоге. Решил все же использовать эффекты, через юнитов думаю реализовать подсказки для строительства(места где лучше строить). Насчет CinematicFilterGenericBJ я с ним не сталкивался и вообще не нашел примера как это выглядит, это прям отображение просто на экран?
globals
    effect array gridFx
    boolean array gridOn
endglobals

function Grid_Create takes player p returns nothing
    local integer id = GetPlayerId(p)
    local integer i
    local integer j
    local integer startindex
    local integer index
    local integer step
    local integer side
    local real startX1 = -5888
    local real startY1 = 704
    local real startX2 = -3328
    local real startY2 = 768
    local string e = ""

    if id <= 3 then
        set side = 1
    else
        set side = -1
    endif
    
	if (GetLocalPlayer() == p) then
		set e = "Grid(NoYellow).mdx"
	endif


    set i = 0
    set j = 0
    set step = 15
    set startindex = 0
    loop
        exitwhen i > 2
        // i = Y ; j = X
        set j = 0
        loop
            exitwhen j > 4
                set index = startindex + j + i * 5 + id * 48
                set gridFx[index] = AddSpecialEffect(e, side * startX1 + 512 * j * side, startY1 + 512 * i)
                set gridFx[index + step] = AddSpecialEffect(e, side * startX1 + 512 * j * side, (-1) * startY1 - 512 * i)
                set j = j + 1
        endloop
        set i = i + 1
    endloop

    set i = 0
    set j = 0
    set step = 9
    set startindex = 30
    loop
        exitwhen i > 2
        // i = Y ; j = X
        set j = 0
        loop
            exitwhen j > 2
                set index = startindex + j + i * 3 + id * 48
                set gridFx[index] = AddSpecialEffect(e, side * startX2 + 512 * j * side, startY2 + 512 * i)
                set gridFx[index + step] = AddSpecialEffect(e, side * startX2 + 512 * j * side, (-1) * startY2 - 512 * i)
                set j = j + 1
        endloop
        set i = i + 1
    endloop

    set gridOn[id] = true
    
endfunction


function Grid_Destroy takes player p returns nothing
    local integer id = GetPlayerId(p)
    local integer i = 0

    loop
        exitwhen i >= 48
        if gridFx[i + id * 48] != null then
            call DestroyEffect(gridFx[i + id * 48])
            set gridFx[i + id * 48] = null
        endif
        set i = i + 1
    endloop

    set gridOn[id] = false
endfunction


function Grid_Toggle takes player p returns nothing
    local integer id = GetPlayerId(p)

    if gridOn[id] then
        call DisplayTextToForce( bj_FORCE_PLAYER[id], "Grid disable" )
        call Grid_Destroy(p)
    else
        call DisplayTextToForce( bj_FORCE_PLAYER[id], "Grid enable" )
        call Grid_Create(p)
    endif
endfunction

function Grid_Chat takes nothing returns nothing
    if SubString(GetEventPlayerChatString(), 0, 5) == "-grid" then
        call Grid_Toggle(GetTriggerPlayer())
    endif
endfunction

function InitTrig_grid takes nothing returns nothing
    local trigger t = CreateTrigger(  )
    local integer i = 0

    loop
        exitwhen i > 2
        call TriggerRegisterPlayerChatEvent(t, Player(i), "", false)
        call TriggerRegisterPlayerChatEvent(t, Player(i+6), "", false)
        set i = i + 1
    endloop
    
    call TriggerAddAction(t, function Grid_Chat)
endfunction
В данной теме вы можете сделать заказы на модели, и по возможности кто-нить сможет вам помочь в реализации данной модели.
8099 938.5K
Карта о том как Повелитель Склепа Арк-Нито и Гриб-адмирал Крутов спасали празднование Нового года.
Карта
3 1.4K
38
Я бы сделал настоящий новогодный пивной квест xgm, но никто не приедет)
15
FREYFREY, да. У меня работает. Ну в редакторе и кампании не все открываются. Для запуске в игре скорее всего надо файл dll заменить. И настройки на максимум поставить.
некоторые картоделы настолько убивают свои карты (судорожно боясь, что их поделие кто-то сворует и заработает миллиарды прибыли), что эти самые карты не заливаются на эпиквар (выдавая разные ошибки)
из-за чего это происходит?
  • картоделы бездумно юзают тонну ломающего…
Вопрос
5 95
Ретекстуры в осенний биом, для ашенваля, фелвуда и затонувшего города.
2D Арт
6 1.8K