Я вроде правильно сделал
Создает юнит скрытый для всех игроков, потом сравниваем игрока локальный и показываем юнит, но десихронит
function Trig_Start_Func001A takes nothing returns nothing
    local player p = GetEnumPlayer()
    local unit u
    
    if  ( GetPlayerSlotState(p) == PLAYER_SLOT_STATE_PLAYING ) then
        call SetPlayerAllianceStateBJ( Player(PLAYER_NEUTRAL_PASSIVE), p, bj_ALLIANCE_ALLIED )
        call CreateFogModifierRectBJ( true, p, FOG_OF_WAR_VISIBLE, gg_rct_City )
            
        call CreateNUnitsAtLoc(1, 'hhou', p, GetPlayerStartLocationLoc(p), bj_UNIT_FACING)
        set u = GetLastCreatedUnit()
        call ShowUnit(u, false)
        
        if ( p == GetLocalPlayer() ) then
            call ShowUnit(u, true)
            call SelectUnit(u, true)
        endif

    endif
endfunction

function Trig_Start_Actions takes nothing returns nothing
    call ForForce( GetPlayersByMapControl(MAP_CONTROL_USER), function Trig_Start_Func001A )
endfunction

Принятый ответ

Блин нельзя скрывать \ показывать локально, десинх 100%.

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
26
7 лет назад
0
выбирать юнита который скрыт это конечно мощно
0
23
7 лет назад
0
Hate, о чем ты каждый локал открывает и выбирает юнит вот и десихронит тупо!
0
21
7 лет назад
0
if ( p == GetLocalPlayer() ) then
call ShowUnit(u, true)
call SelectUnit(u, true)
endif
Раньше строчки с ShowUnit не было.
Была только с SelectUnit.
В коде ошибка была только здесь или и там тоже?
0
23
7 лет назад
0
ClotPh, выложил исправленый но десихронит все равно хз вроде скрыть всех но показать для локальный своих юнитов страно что не пашет
ClotPh, даже так
local integer i = 0
    local player p
    local unit u
    
    loop
        exitwhen i >= bj_MAX_PLAYERS
        set p = Player(i)
        if  ( GetPlayerSlotState(p) == PLAYER_SLOT_STATE_PLAYING ) then
            call SetPlayerAllianceStateBJ( Player(PLAYER_NEUTRAL_PASSIVE), p, bj_ALLIANCE_ALLIED )
            call CreateFogModifierRectBJ( true, p, FOG_OF_WAR_VISIBLE, gg_rct_City )
                
            call CreateNUnitsAtLoc(1, 'hhou', p, GetPlayerStartLocationLoc(p), bj_UNIT_FACING)
            set u = GetLastCreatedUnit()
            call ShowUnit(u, false)
            
            if ( p == GetLocalPlayer() ) then
                call ShowUnit(u, true)
                call SelectUnit(u, true)
            endif
        endif
        set i = i + 1
    endloop
0
32
7 лет назад
0
Блин нельзя скрывать \ показывать локально, десинх 100%.
Принятый ответ
0
23
7 лет назад
0
quq_CCCP, да ну как тогда сделать? а можно ли менять контроль если он создан нетрал 1 юнит а контрит через локал?
quq_CCCP, А если делать так
local trigger s = CreateTrigger(  )
    local integer i = 0
    local player p
    
    call CreateNUnitsAtLoc(1, 'hhou', p, GetPlayerStartLocationLoc(p), bj_UNIT_FACING)
    
    loop
        exitwhen i >= bj_MAX_PLAYERS
        set p = Player(i)
        if  ( GetPlayerSlotState(p) == PLAYER_SLOT_STATE_PLAYING ) then
            call SetPlayerAllianceStateBJ( Player(PLAYER_NEUTRAL_PASSIVE), p, bj_ALLIANCE_ALLIED )
            call CreateFogModifierRectBJ( true, p, FOG_OF_WAR_VISIBLE, gg_rct_City )
            if ( p == GetLocalPlayer() ) then
                call SetUnitOwner( GetLastCreatedUnit(), p, true )
            endif
        endif
        set i = i + 1
    endloop
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.