XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Mental

offline
Опыт: 1,472
Активность:
Прошу помоч исправить фатал от тригера
» собственно код, выполняется очень часто
function InitTrig_exp_and_bounty_13 takes nothing returns nothing
set gg_trg_exp_and_bounty_13 = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_exp_and_bounty_13, EVENT_PLAYER_UNIT_DEATH )
call TriggerAddCondition( gg_trg_exp_and_bounty_13, Condition( function Trig_exp_and_bounty_13_Conditions ) )
call TriggerAddAction( gg_trg_exp_and_bounty_13, function Trig_exp_and_bounty_13_Actions )
endfunction
function Trig_exp_and_bounty_13_Conditions takes nothing returns boolean
if ( not ( IsUnitType(GetKillingUnit(), UNIT_TYPE_STRUCTURE) == false ) ) then
return false
endif
return true
endfunction
function Trig_exp_and_bounty_13_Actions takes nothing returns nothing
local integer i = 1
local integer p
local unit d = GetDyingUnit()
local unit k = GetKillingUnit()
loop
exitwhen i > 10
if IsUnitInGroup(d, udg_UG[i]) == true then
call GroupRemoveUnit(udg_UG[i],d)
else
endif
if IsUnitInGroup(k, udg_UG[i]) == true then
set p = i
else
endif
set i = i + 1
endloop

if d8() then
call AdjustPlayerStateBJ( 122, ConvertedPlayer(p), PLAYER_STATE_RESOURCE_GOLD )
call AddHeroXP( udg_InitHero[p], 122 , true )
set udg_Dohod[p] = udg_Dohod[p] + 122
call MultiboardSetItemValueBJ( GetLastCreatedMultiboard(), 5, ( p + 1 ), I2S(udg_Dohod[p]) )
endif

set d = null
set k = null
endfunction
function d8 takes nothing returns boolean
local unit d = GetDyingUnit()

if GetUnitTypeId(d) == 'h024' then
return true
endif
if GetUnitTypeId(d) == 'h01H' then
return true
endif
if GetUnitTypeId(d) == 'h01J' then
return true
endif
if GetUnitTypeId(d) == 'h023' then
return true
endif
return false
endfunction
p.s. почему кат не работает?

Отредактировано Mental, 04.10.2010 в 18:28.
Старый 04.10.2010, 17:57
Clamp
Lost in space
offline
Опыт: 71,158
Активность:
Mental:
p.s. почему кат не работает?
Mental:
>>собс
пробел между стрелками и текстом надо
и зачем конверт гуи сюда класть?
Старый 04.10.2010, 18:08
Mental

offline
Опыт: 1,472
Активность:
Хм, видимо значит разделом ошибся, спасибо. В академии задавал вопрос, отправили сюда..
Насчет конверт гуи.. конвертировалось лишь событие и условие, все действия написаны вручную.. где гуишные скрипты?
Даже если разделом ошибся, уже не знаю куда писать, где могут помоч найти причину фатала в тригере..

Отредактировано Mental, 04.10.2010 в 18:48.
Старый 04.10.2010, 18:10
_Red

offline
Опыт: 4,095
Активность:
» Попробуй так, и не забывай делать в белый фон, читается лучше

function Trig_exp_and_bounty_13_Conditions takes nothing returns boolean
if ( not ( IsUnitType(GetKillingUnit(), UNIT_TYPE_STRUCTURE) == false ) ) then
return false
endif
return true
endfunction
function d8 takes nothing returns boolean
local unit d = GetDyingUnit()

if GetUnitTypeId(d) == 'h024' then 
return true 
endif
if GetUnitTypeId(d) == 'h01H' then 
return true 
endif
if GetUnitTypeId(d) == 'h01J' then 
return true 
endif
if GetUnitTypeId(d) == 'h023' then 
return true 
endif 
return false
endfunction
function Trig_exp_and_bounty_13_Actions takes nothing returns nothing
local integer i = 1
local integer p
local unit d = GetDyingUnit()
local unit k = GetKillingUnit()
loop
exitwhen i > 10
if IsUnitInGroup(d, udg_UG[i]) == true then
call GroupRemoveUnit(udg_UG[i],d)
else
endif
if IsUnitInGroup(k, udg_UG[i]) == true then
set p = i
else
endif
set i = i + 1
endloop

if d8() then
call AdjustPlayerStateBJ( 122, ConvertedPlayer(p), PLAYER_STATE_RESOURCE_GOLD )
call AddHeroXP( udg_InitHero[p], 122 , true )
set udg_Dohod[p] = udg_Dohod[p] + 122 
call MultiboardSetItemValueBJ( GetLastCreatedMultiboard(), 5, ( p + 1 ), I2S(udg_Dohod[p]) ) 
endif

set d = null
set k = null
endfunction
function InitTrig_exp_and_bounty_13 takes nothing returns nothing
set gg_trg_exp_and_bounty_13 = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_exp_and_bounty_13, EVENT_PLAYER_UNIT_DEATH )
call TriggerAddCondition( gg_trg_exp_and_bounty_13, Condition( function Trig_exp_and_bounty_13_Conditions ) )
call TriggerAddAction( gg_trg_exp_and_bounty_13, function Trig_exp_and_bounty_13_Actions )
endfunction

Отредактировано _Red, 04.10.2010 в 20:46.
Старый 04.10.2010, 19:57
Mental

offline
Опыт: 1,472
Активность:
Прочитал на несколько раз, но изменений не заметил.., подскажи, что изменил.
Старый 04.10.2010, 20:33
_Red

offline
Опыт: 4,095
Активность:
Mental, функция d8 находится над функцией Trig_exp_and_bounty_13_Actions
потому что в функции Trig_exp_and_bounty_13_Actions вызывается функция d8, в для вызова функции она должна быть выше по коду
(блин запутанно както получилось)
_Red добавил:
еще кое что изменил, не заметил в первый раз
InitTrig_exp_and_bounty_13 перенес в самый конец
_Red добавил:
короче, если ты например вызываешь в функции А функцию Б, то функция Б должна быть выше функции А
» вот так
function B takes nothing returns nothing
call A() // <<<<===== НИЗЯЯ!!!!
endfunction

function A takes nothing returns nothing
call B()
endfunction
Старый 04.10.2010, 20:49
Mental

offline
Опыт: 1,472
Активность:
Дада, это уже было исправлено, крит все равно прослуживается, видимо придется выложить всю карту и предложить вознаграждение нашедшему причину. Потому что уже не знаю что еще может вызывать фатал..
Старый 04.10.2010, 20:55
_Red

offline
Опыт: 4,095
Активность:
Mental, код точно как здесь? (xgm.ru/forum/showpost.php?p=913103&postcount=4)
фатал вызывает точно этот триггер?
Старый 04.10.2010, 21:08
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 10:10.