Я вроде правильно сделал
Создает юнит скрытый для всех игроков, потом сравниваем игрока локальный и показываем юнит, но десихронит
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
0
32
7 лет назад
0
Viktor19, Нееет, нильзя локально менять глобальные параметры, только тексты, цвета и прозрачность, никакой контроль, ты ваще думаешь?
У тебя ты контролишь юнитом, в второго игрока нейтрал? Десинх мгновенно!
Хочешь чтобы юнитов ни видели другие, юзай морф пауков - закопатся, они не видны союзникам.
0
23
7 лет назад
0
quq_CCCP, ну приложи пример кода который можно в 1 точку юнит свои каждый игрока и выбирать героя...
quq_CCCP, а то алтарь в 1 точку каждый игрок и там имеест создать героя, а если умер то свой ресает. И чтоб не было 12 домиков а 1 домик и каждая своя =)
0
32
7 лет назад
0
Нечего не пойму, что тебе надо? Создать по юниту для игрока? Ну и создавай по 1 юниту для каждого игрока + вручай им инвиз мины, таким образом игроки друг друга не увидят, что еще нужно?
Зачем алтарь для каждого игрока? Че за глупости, поставить магазин за нейтралов который продает крипов не судьба? Крип с иконкой твоего героя и описанием - "Воскресить моего героя", и ставиш лимит найма 0 когда герой жив, и 1 когда мертрв! При покупке крипа мгновенно его удаляешь и воскрешаешь героя.
Сам алтарь сделай из лагеря наёмных нейтралов.
0
23
7 лет назад
0
quq_CCCP, но они же союзники видит инвизы же=)
0
32
7 лет назад
0
Viktor19, мемхак в руки и флаг критера, тогда они будут как нейтралы...
0
23
7 лет назад
0
quq_CCCP, ну меня интересовал если создать 1 нетрал который производит герой но почему то когда герой выбран или реснут то и другие можно хотя требование ставил везде. А так нетрал покупка десвительно забыл такой делать =)
0
32
7 лет назад
0
Надо будет описать, то мы с Личем раскалупали одну абилку:
'Amec' mechanical critter - создает крипа нейтрала, под вашим контролем, вам он кажется своим юнитом но врагам кажется нейтралом, по критеру отключена авто атака, а так же вы можите применять вредные способности в вашего критера, при этом неважно что эти способности недопустимо применять в союзников (хз зачем это сделали).
Можно сделать любого юнита криттером - call WriteMemory( ConvertHandle( unit ) + 0x60 )
0
16
7 лет назад
0
ты написал ерунду, а не рабочий код, еще и опасный -_-
0
28
7 лет назад
0
DracoL1ch, quq_CCCP, нафига спорите с ним
есть же статья
0
13
7 лет назад
0
А можно узнать что опасного в коде, кроме не правильного использования ГЛП?
0
16
7 лет назад
0
так так, я писал CCCP, а не по топику
гайд по локальному игроку вон, уже nvcpadme скинул
0
28
7 лет назад
0
NekoriDes, в варике куча багов так что считай что опасно всё
0
21
7 лет назад
0
можно локально скрывать юнита другим способом, ну, если на нём есть Aloc, то делаешь прозрачным юнита через SetUnitVertexColor и усё. Если там партиклы будут видны, можно увеличивать юнит сайз до 99999.
Этот комментарий удален
Чтобы оставить комментарий, пожалуйста, войдите на сайт.