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

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

Закрытая тема
 
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
Нерабочий код
Отучаюсь от BJ и решил обновить свои спеллы заново без BJ. вот для теста создал триггер (для тех кому не монятно должен убивать тот кто применяет способность и убивать того на кого применили способность) хз но не чего не происходит



Код:
function Test_Conditions takes nothing returns boolean
 return GetSpellAbilityId() == 'A000'
endfunction

function Test_Actions takes nothing returns nothing
 call KillUnit(GetTriggerUnit())
 call KillUnit(GetSpellTargetUnit())
endfunction

function InitTrig_Test takes nothing returns nothing
 local trigger Test = CreateTrigger()
 local integer Index = 0

 loop
 exitwhen Index == 11
 call TriggerRegisterPlayerUnitEvent(Test, Player(Index), EVENT_PLAYER_UNIT_SPELL_EFFECT, Condition(function Test_Conditions))
 set Index = Index + 1
 endloop

 call TriggerAddAction(Test, function Test_Actions)

 set Test = null
 set Index = 0
endfunction
Старый 05.05.2009, 23:01
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
А так?
» code

Код:
function Test_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == 'A000'
endfunction

function Test_Actions takes nothing returns nothing
    call KillUnit(GetTriggerUnit())
    call KillUnit(GetSpellTargetUnit())
endfunction

function InitTrig_Test takes nothing returns nothing
    local trigger Test = CreateTrigger()
    call TriggerRegisterPlayerUnitEvent(Test,Player(0),EVENT_PLAYER_UNIT_SPELL_EFFECT,Con  dition(function Test_Conditions))
    call TriggerRegisterPlayerUnitEvent(Test,Player(1),EVENT_PLAYER_UNIT_SPELL_EFFECT,Con  dition(function Test_Conditions))
    call TriggerRegisterPlayerUnitEvent(Test,Player(2),EVENT_PLAYER_UNIT_SPELL_EFFECT,Con  dition(function Test_Conditions))
    call TriggerRegisterPlayerUnitEvent(Test,Player(3),EVENT_PLAYER_UNIT_SPELL_EFFECT,Con  dition(function Test_Conditions))
    call TriggerRegisterPlayerUnitEvent(Test,Player(4),EVENT_PLAYER_UNIT_SPELL_EFFECT,Con  dition(function Test_Conditions))
    call TriggerRegisterPlayerUnitEvent(Test,Player(5),EVENT_PLAYER_UNIT_SPELL_EFFECT,Con  dition(function Test_Conditions))
    call TriggerRegisterPlayerUnitEvent(Test,Player(6),EVENT_PLAYER_UNIT_SPELL_EFFECT,Con  dition(function Test_Conditions))
    call TriggerRegisterPlayerUnitEvent(Test,Player(7),EVENT_PLAYER_UNIT_SPELL_EFFECT,Con  dition(function Test_Conditions))
    call TriggerRegisterPlayerUnitEvent(Test,Player(8),EVENT_PLAYER_UNIT_SPELL_EFFECT,Con  dition(function Test_Conditions))
    call TriggerRegisterPlayerUnitEvent(Test,Player(9),EVENT_PLAYER_UNIT_SPELL_EFFECT,Con  dition(function Test_Conditions))
    call TriggerAddAction(Test, function Test_Actions)
endfunction

Старый 05.05.2009, 23:41
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
Hellfim, нет.

я пооправил твой код там где ты много копируешь "Con dition"
Старый 05.05.2009, 23:46
Ninbous
Jass progress >>>>>35/100
offline
Опыт: 5,674
Активность:
Bee Может дело не в коде, а в том что ты сразу же убиваеш кастера и ссылки в GetTriggerUnit и GetSpellTargetUnit стираются, мб через локалки попробовать?
Старый 05.05.2009, 23:50
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
Ninbous, я только что посмотрел в другой карте. и там тоже самое, но функция фильтра не в самом триггере а в другой библиотеке. а в JNGP я не шарю. а потом идет ище и родная строчка "call TriggerAddCondition(...)" наверное надо поставить фильтр =null и дописать строку с условием. ладно я завтра попробую а сейчас иду смотреть "убойной ночи" ^^
Старый 05.05.2009, 23:55
J
expert
offline
Опыт: 48,447
Активность:
естествено не будет работать
GetSpellAbilityId() эта функция неработает из фильтра, а работает толкьо из нормального кондишена к триггеру,
Старый 06.05.2009, 00:54
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
J, т.е. надо фильтр поставить "null" и поставить нормальное условие?
Старый 06.05.2009, 13:37
J
expert
offline
Опыт: 48,447
Активность:
это как минимум
Старый 06.05.2009, 13:37
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
спасибо заработало =)
Код:
function Kill_CheckAbilityId takes nothing returns boolean
 return GetSpellAbilityId() == 'A000'
endfunction

function Kill_Actions takes nothing returns nothing
 call KillUnit(GetSpellTargetUnit())
endfunction

function InitTrig_Kill takes nothing returns nothing
 local trigger t=CreateTrigger()
 local boolexpr b=Condition(function Kill_CheckAbilityId)
 local integer i=-1

 loop
 set i=i+1
 exitwhen i>=bj_MAX_PLAYER_SLOTS
 call TriggerRegisterPlayerUnitEvent(t,Player(i),EVENT_PLAYER_UNIT_SPELL_EFFECT,null)
 endloop

 call TriggerAddCondition(t,b)
 call TriggerAddAction(t,function Kill_Actions)

 set t=null
 set i=0
 call DestroyBoolExpr(b)
 set b=null
endfunction


Bee добавил:
правильно J? я сомневаюсь насчет loop'a.
Старый 06.05.2009, 13:47
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
Bee, пиши как тебе удобнее, мне удобнее всех выписывать, тебе может циклом.
Старый 06.05.2009, 13:51
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
Да мне так удобнее, но я правильно поставил в loop'e кол-во игроков? там в одной карет увидил "bj_bj_MAX_PLAYER_SLOTS" и решил юзнуть. я еще написал "local integer i = -1" так можно?
Старый 06.05.2009, 13:54
J
expert
offline
Опыт: 48,447
Активность:
Цитата:
я еще написал "local integer i = -1" так можно?
можно но некрасиво, я бы советовал так не делать
Код:
local integer i = 0
loop
    call TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null)
    set i = i + 1
    exitwhen i >= bj_MAX_PLAYER_SLOTS
endloop
Старый 06.05.2009, 13:55
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
J, все спасибо! Закрывайте тему. BJ - зло!!!
Старый 06.05.2009, 14:01
Закрытая тема

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

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

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

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



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