Вообщем начну как всегда из далека, кто считает что эта инфа не нужна, сразу читайте следующий абзац.
Итак попросил одного грамотного человека в Jass, помочь с кодом и написать возрождение курьера с сохранением всех шмоток в нем, писалось на 1.31 и переносилось на 1.26 и короче по итогу, работает все но самого курьера не создает.
Итак попросил одного грамотного человека в Jass, помочь с кодом и написать возрождение курьера с сохранением всех шмоток в нем, писалось на 1.31 и переносилось на 1.26 и короче по итогу, работает все но самого курьера не создает.
Я короче не могу найти проблему, пишу тоже самое на ГУЕ и все работает и создается, вообщем проблем нет. А на джасе не создается.
Вообщем скидываю код, надеюсь тут есть JassБоги, которые одним взглядом найдут ошибку.
Вообщем скидываю код, надеюсь тут есть JassБоги, которые одним взглядом найдут ошибку.
function Trig_CourierRespawn_Func022C takes nothing returns boolean
if ( ( GetUnitTypeId(GetDyingUnit()) == udg_GAME_COURIER_TYPE[1] ) ) then
return true
endif
if ( ( GetUnitTypeId(GetDyingUnit()) == udg_GAME_COURIER_TYPE[2] ) ) then
return true
endif
if ( ( GetUnitTypeId(GetDyingUnit()) == udg_GAME_COURIER_TYPE[3] ) ) then
return true
endif
return false
endfunction
function Trig_CourierRespawn_Conditions takes nothing returns boolean
if ( not Trig_CourierRespawn_Func022C() ) then
return false
endif
return true
endfunction
function Trig_CourierRespawn_Actions takes nothing returns nothing
local unit d = GetDyingUnit()
local player p = GetOwningPlayer(d)
local integer i
local item array ITEM
local timer t = CreateTimer()
local timerdialog td = CreateTimerDialog(t)
local integer HNDL = GetHandleId(t)
set i = 0
loop
exitwhen i > 5
set ITEM[i] = UnitItemInSlot(d, i)
set i = i + 1
endloop
call TimerStart(t, 30.00, false, null)
call TimerDialogSetTitle(td, "Курьер: ")
if (GetLocalPlayer() == p) then
call TimerDialogDisplay(td, true)
endif
call TriggerSleepAction( 30.00 )
set bj_lastCreatedUnit = CreateUnit(p, GetUnitTypeId(d), GetRectCenterX(udg_GAME_RECT_BACKCOUR), GetRectCenterY(udg_GAME_RECT_BACKCOUR), 270.00)
call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Human\\ReviveHuman\\ReviveHuman.mdl", GetRectCenterX(udg_GAME_RECT_BACKCOUR), GetRectCenterY(udg_GAME_RECT_BACKCOUR)))
set i = 0
loop
exitwhen i > 5
call UnitAddItemByIdSwapped( GetItemTypeId(ITEM[i]), GetLastCreatedUnit() )
set i = i + 1
endloop
call DestroyTimer(t)
call DestroyTimerDialog(td)
endfunction
//===========================================================================
function InitTrig_CourierRespawn takes nothing returns nothing
set gg_trg_CourierRespawn = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_CourierRespawn, EVENT_PLAYER_UNIT_DEATH )
call TriggerAddCondition( gg_trg_CourierRespawn, Condition( function Trig_CourierRespawn_Conditions ) )
call TriggerAddAction( gg_trg_CourierRespawn, function Trig_CourierRespawn_Actions )
endfunction
function Trig_InitCourier_Actions takes nothing returns nothing
set udg_GAME_BASE_RECT = gg_rct_Baza
set udg_GAME_RECT_BACKCOUR = gg_rct_KURA
set udg_GAME_COURIER_UP_COST[1] = 100
set udg_GAME_COURIER_UP_COST[2] = 500
set udg_GAME_BUYER_TYPE = 'H017'
// --------------------------------------------------
set udg_GAME_COURIER_TYPE[1] = 'u000'
set udg_GAME_COURIER_TYPE[2] = 'u00J'
set udg_GAME_COURIER_TYPE[3] = 'u00A'
// --------------------------------------------------
set udg_GAME_COURIER_SPELLS[1] = 'A0EA'
set udg_GAME_COURIER_SPELLS[2] = 'A0E9'
set udg_GAME_COURIER_SPELLS[3] = 'S001'
set udg_GAME_COURIER_SPELLS[4] = 'S002'
endfunction
//===========================================================================
function InitTrig_InitCourier takes nothing returns nothing
set gg_trg_InitCourier = CreateTrigger( )
call TriggerAddAction( gg_trg_InitCourier, function Trig_InitCourier_Actions )
endfunction
Спасибо всем, кто уделит время моему вопросу.
Принятый ответ
David David, Кондишены у тебя это гуи конверт, у меня тоже кровь чутка пошла
Вот ознакомься, где вкратце то надо узнать мб условие какое-то не работает
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован PROSHELDOTU
Сейчас создал на 1.26 карту новую, пихнул туда это
Подставил в значение область и юнитов
И всё чётка
вар 1.31, на 1.26 идти тестить мне уже не кайф
Всё равно он решил, что сам разберётся
Код там правильный, как то не странно, даже не смотря на такой вид и слип, проблема в том что курьер разлагается и больше GetUnitTypeId(d) уже не передаётся, проблема с передачей id уже решилась, а вот с тоже самое с предметами, они удаляются при разложении летуна, поэтому нужно передать также ID предметов, а не сами предметы
Отредактирован Берги
В РО я чёт не помню такого параметра как "разложение юнита"