Подскажите что я делаю не так, у меня была фунция -death которая убивала героя через 20 секунд и отнимала - 300 голда. Я решил исправить на 10 секунд и - 150 Подскажите что не так. Вот сама функция. После исправления вар слетает, скрин добавил xgm.guru/files/100/196584/Bezymyannyy.png
function Trig_death2_Func002C takes nothing returns boolean
if(not(GetPlayerState(GetTriggerPlayer(),PLAYER_STATE_RESOURCE_GOLD)>=150))then
return false
endif
return true
endfunction
function Trig_death2_Actions takes nothing returns nothing
call DisableTrigger(GetTriggeringTrigger())
if(Trig_death2_Func002C())then
call AdjustPlayerStateBJ(-150,GetTriggerPlayer(),PLAYER_STATE_RESOURCE_GOLD)
set udg_Group[188]=GetUnitsOfPlayerMatching(GetTriggerPlayer(),Condition(function Trig_death2_Func002Func003002002))
call ForGroupBJ(udg_Group[188],function Trig_death2_Func002Func004A)
call TriggerSleepAction(10.00)
call ForGroupBJ(udg_Group[188],function Trig_death2_Func002Func006A)
call DestroyGroup(udg_Group[188])
if(Trig_death2_Func002Func008C())then
call KillUnit(udg_UNIT[32])
else
endif
else
endif
call EnableTrigger(GetTriggeringTrigger())
endfunction
0
32
7 лет назад
0
Прямого криминала не вижу, но я бы написал не так.
function Trig_Death_Conditions takes nothing returns boolean
    return TimerGetRemaining(udg_DeathTimers[GetPlayerId(GetPlayerId(GetTriggerPlayer()))]) > 0.1
endfunction

function Boolexp_Only_Player_Hero_Conditions takes nothing returns boolean
    return IsUnitType( GetFilterUnit(), UNIT_TYPE_HERO ) and not IsUnitType( GetFilterUnit(), UNIT_TYPE_DEAD) or IsUnitIllusion( GetFilterUnit())
endfunction

function Group_Kill_unit_Actions takes nothing returns nothing
    call KillUnit( GetEnumUnit())
endfunction 

function Trig_Death_Actions takes nothing returns nothing
    local player pl = GetTriggerPlayer()
    local group grp = CreateGroup()
    
    call SetPlayerState( pl, PLAYER_STATE_RESOURCE_GOLD, RMaxBJ(0, GetPlayerState(pl,PLAYER_STATE_RESOURCE_GOLD) - 300 ) )
    call GroupEnumUnitsOfPlayer( grp, pl, Condition( function Boolexp_Only_Player_Hero_Conditions ))
    call ForGroup(grp, function Group_Kill_unit_Actions)
    call GroupClear(grp)
    call DestroyGroup(grp)
    call TimerStart( udg_DeathTimers[GetPlayerId(GetPlayerId(pl)]), 10.00, false, null ) // задержка
    
    set grp = null
endfunction

//===========================================================================
function InitTrig_Death takes nothing returns nothing
    set gg_trg_Death = CreateTrigger(  )
    
    call TriggerRegisterPlayerChatEvent( gg_trg_Death, Player(1), "-death", true )
    call TriggerRegisterPlayerChatEvent( gg_trg_Death, Player(2), "-death", true )
    call TriggerRegisterPlayerChatEvent( gg_trg_Death, Player(3), "-death", true )
    call TriggerRegisterPlayerChatEvent( gg_trg_Death, Player(4), "-death", true )
    call TriggerRegisterPlayerChatEvent( gg_trg_Death, Player(5), "-death", true )
    call TriggerRegisterPlayerChatEvent( gg_trg_Death, Player(7), "-death", true )
    call TriggerRegisterPlayerChatEvent( gg_trg_Death, Player(8), "-death", true )
    call TriggerRegisterPlayerChatEvent( gg_trg_Death, Player(9), "-death", true )
    call TriggerRegisterPlayerChatEvent( gg_trg_Death, Player(10), "-death", true )
     call TriggerRegisterPlayerChatEvent( gg_trg_Death, Player(11), "-death", true )
     
    call TriggerAddCondition( gg_trg_Death, Condition( function Trig_Death_Conditions ) )
    call TriggerAddAction( gg_trg_Death, function Trig_Death_Actions )
endfunction
Сделал бы как то так.
0
9
7 лет назад
0
quq_CCCP:
Прямого криминала не вижу, но я бы написал не так.
Это только открывок, вообще она станит и оставляет 1 хп, а через 20 сек убивает.. Были значения
call TriggerSleepAction(20.00) тут поставил 10
И тут стало call AdjustPlayerStateBJ(-150,GetTriggerPlayer(),PLAYER_STATE_RESOURCE_GOLD было 300, ну и везде где было по 150 и 300 я сменил.В итоге фатал
0
32
7 лет назад
0
А точно, минус убери перед 150.
0
9
7 лет назад
0
quq_CCCP:
А точно, минус убери перед 150.
А, почему до этого стоял и работало?
Trickster:
quq_CCCP:
А точно, минус убери перед 150.
А, почему до этого стоял и работало?
Так теперь ему добавляет 150 голды, и он дохнет лол
0
32
7 лет назад
0
Trickster, что нужно, чтобы он сдох сразу или через 20 сек?
Опиши, я тебе триггер кину.
0
9
7 лет назад
0
quq_CCCP:
Trickster, что нужно, чтобы он сдох сразу или через 20 сек?
Опиши, я тебе триггер кину.
Через 10 секунд и отняло у него 150 голда
0
32
7 лет назад
Отредактирован quq_CCCP
0
Trickster, после -death он может бегать или нет?
0
9
7 лет назад
0
Пусть бегает, только с 1 хп,я до 5 сек уберу
1
32
7 лет назад
1
Вот, вроде работает...
ссылка
Чтобы оставить комментарий, пожалуйста, войдите на сайт.