R_A_N_D_O_M
offline
Опыт:
5,372Активность: |
Локальные Переменные в Условиях
Вот не могу понять в чём тут дело ставлю в условие заменяю обычную переменную на локальную переменную и Editor вылетает при сохранении , именно вылетает а не выдаёт ошибку.
» Вот Кто нибудь хелп. function Trig_A2_Conditions takes nothing returns boolean if ( not ( R2I(GetUnitStateSwap(UNIT_STATE_LIFE, udg_Unit на a)) == R2I(GetUnitStateSwap(UNIT_STATE_MAX_LIFE, udg_Unit на a)) ) ) then return false endif return true endfunction function Trig_A2_Actions takes nothing returns nothing local unit a call DisableTrigger( GetTriggeringTrigger() ) set a = udg_Unit set udg_Unit = null call UnitRemoveBuffBJ( 'B000', a ) set a = null endfunction //=========================================================================== function InitTrig_A2 takes nothing returns nothing set gg_trg_A2 = CreateTrigger( ) call TriggerRegisterTimerEventPeriodic( gg_trg_A2, 1.00 ) call TriggerAddCondition( gg_trg_A2, Condition( function Trig_A2_Conditions ) ) call TriggerAddAction( gg_trg_A2, function Trig_A2_Actions ) endfunction |
28.12.2007, 22:09 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ZLOBICH
Kicked by XimikS
offline
Опыт:
4,727Активность: |
так в Condition'е нету local unit a.. |
28.12.2007, 22:13 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
R_A_N_D_O_M
offline
Опыт:
5,372Активность: |
ZLOBICH ???
|
28.12.2007, 22:20 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DFlyer
<3 MJ
offline
Опыт:
44,079Активность: |
Локалка действует только в одной функции. Condition - функция, в ней не объявлена переменная a.
Кстати, у тебя слишком много чего лишнего в коде. |
28.12.2007, 22:21 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
R_A_N_D_O_M
offline
Опыт:
5,372Активность: |
Поправь пожалуйста. Может ты и не заметил но это простое конвентирование текста я жасс только изучаю (я не волшебник , я только учусь. :D: ) и вот чтобы использовать триггер сколько угодно раз (так называемо) мне нужно туда засунуть локалку. |
28.12.2007, 22:24 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Harakternyk
offline
Опыт:
2,703Активность: |
R_A_N_D_O_M, вот исправленный вариант. Если ты баф удаляешь, когда здоровье юнита полностью восстанавливается, то это то, что тебе нужно
» Код: function Trig_A2_Actions takes nothing returns nothing local unit a local boolean Bln call DisableTrigger( GetTriggeringTrigger() ) set a = udg_Unit set Bln = R2I(GetUnitStateSwap(UNIT_STATE_LIFE, a)) == R2I(GetUnitStateSwap(UNIT_STATE_MAX_LIFE, a)) if Bln then set udg_Unit = null call UnitRemoveBuffBJ( 'B000', a ) endif set a = null set Bln = 0 == 0 endfunction //=========================================================================== function InitTrig_A2 takes nothing returns nothing set gg_trg_A2 = CreateTrigger( ) call TriggerRegisterTimerEventPeriodic( gg_trg_A2, 1.00 ) call TriggerAddAction( gg_trg_A2, function Trig_A2_Actions ) endfunction Код исправлен и ошибок больше не имеет =) Отредактировано Harakternyk, 28.12.2007 в 22:46. |
28.12.2007, 22:38 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
R_A_N_D_O_M
offline
Опыт:
5,372Активность: |
Harakternyk вышло три ошибки.
____________________________________________ Осталась одна я заменил bln на Bln. ____________________________________________ Harakternyk и все три ошибки оказались изза того что ты не поставил большую букву , всё исправил всё норм щас пойду тестить. ____________________________________________ Чё у меня за фигня почему не работает. Вот смотрите. |
28.12.2007, 22:50 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DFlyer
<3 MJ
offline
Опыт:
44,079Активность: |
R_A_N_D_O_M
Карту не смотрел, вломъ качать и открывать Ве. Имхо, ошибка с глобалкой. Откуда берётся её значение? |
28.12.2007, 22:53 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
R_A_N_D_O_M
offline
Опыт:
5,372Активность: |
Что с этим что без этого не работает
Цитата:
R_A_N_D_O_M добавил: DFlyer Значение в триггере под названием A1 а это следующий A2 , суть в том что когда на воина кидают способность он записывается в глобалку , ему даётся способность реген и включается вот этот триг (A2) |
|
28.12.2007, 22:57 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Harakternyk
offline
Опыт:
2,703Активность: |
R_A_N_D_O_M, ты хочешь, чтоб баф убрался после полного восстановления здоровья?
|
28.12.2007, 23:01 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
R_A_N_D_O_M
offline
Опыт:
5,372Активность: |
Harakternyk да.
R_A_N_D_O_M добавил: И способность тоже. |
28.12.2007, 23:02 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Harakternyk
offline
Опыт:
2,703Активность: |
R_A_N_D_O_M, держи - всё работает. Если хочешь, чтобы было на джассе, то могу перевести корректно
____________ Вложение в следующем посте... Отредактировано Harakternyk, 28.12.2007 в 23:31. |
28.12.2007, 23:08 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
R_A_N_D_O_M
offline
Опыт:
5,372Активность: |
Harakternyk мляя... , ты думаешь я совсем тупой я точно также сделал но потом подумал и ты тоже подумай , представь себе сражаются 4 воина и у всех есть способность у всех мало жизней и они её врубают практически одновременно , в результате у одного исчезает баф и реген , а у остальных он остаётся пожизненно. Я пробовал по разному также как ты только чтобы проверка была каждую секунду. Я решил дайка переведу её на джасс ведь через CS нельзя и заменю глобалки на локалки , и Editor выдаёт ошибку.
_________________________________________ *R_A_N_D_O_M вздыхая* Эх блин так не кто не поможет. _________________________________________ Ладно я пошёл грызть гранит науки (джасса). |
28.12.2007, 23:24 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Harakternyk
offline
Опыт:
2,703Активность: |
R_A_N_D_O_M, не нервничай Не подумал я сразу как-то... Вот исправленный вариант - приравниваем глобалку к локалке, а потом убераем когда нужно способность и баф, после чего, переводим значение локалки в значение глобалки обратно - то, что ты сам пытался сделать, насколько я понял из первичного кода.
Отредактировано Harakternyk, 28.12.2007 в 23:36. |
28.12.2007, 23:31 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
R_A_N_D_O_M
offline
Опыт:
5,372Активность: |
Harakternyk Спасибо то что мне надо. Просто я не мог разобраться с условием чтобы узнать полные жизни у юнита или нет.
Цитата:
Я в полном спокойствие *R_A_N_D_O_M уснул* |
|
28.12.2007, 23:38 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
S
offline
Опыт:
43,833Активность: |
На заметку - функции
call DisableTrigger(***) и call EnableTrigger(***) работают с с переменными типа trigger , а не с названием функции... |
29.12.2007, 11:06 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
107,539Активность: |
учитесь кодить правильно, не делая кучу ненужный операций...
Код:
|
29.12.2007, 11:06 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|