and_y87
Тру Кодер
offline
Опыт:
21,030Активность: |
Ругаются... а почему непойму помогите плиз =)
Ругаются... а почему непойму помогите плиз =)
» Тут код Код:
|
11.06.2008, 15:12 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
dk
offline
Опыт:
60,293Активность: |
Цитата:
Сначала объяви локальную переменную, потом все остальные действия... Цитата:
Переменная i не объявлена... |
||
11.06.2008, 15:23 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
and_y87
Тру Кодер
offline
Опыт:
21,030Активность: |
Такс.. с первым я разобрался...
вот со вторым ненаю что делать » сам код ********************************************** //* //* Global Variables //* //*************************************************************************** globals // Generated trigger gg_trg_Cast_spell = null endglobals function InitGlobals takes nothing returns nothing endfunction //=========================================================================== function InitTrig_Cast_spell takes nothing returns nothing local integer i = 0 set gg_trg_Cast_spell = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_Cast_spell, EVENT_PLAYER_UNIT_SPELL_CAST ) call TriggerAddCondition( gg_trg_Cast_spell, Condition( function Trig_Cast_spell_Conditions ) ) call TriggerAddAction( gg_trg_Cast_spell, function Trig_Cast_spell_Actions ) endfunction //=========================================================================== function Trig_Cast_spell_Conditions takes nothing returns boolean if ( not ( GetSpellAbilityId() == 'AHtc' ) ) then return false endif return true endfunction function Trig_Cast_spell_Func002Func001C takes nothing returns boolean if ( not ( UnitItemInSlotBJ(GetSpellAbilityUnit(), GetForLoopIndexA()) != null ) ) then return false endif if ( not ( GetItemLevel(UnitItemInSlotBJ(GetSpellAbilityUnit(), GetForLoopIndexA())) == 5 ) ) then return false endif return true endfunction function Trig_Cast_spell_Func003C takes nothing returns boolean local integer i if ( not ( 'i' >= 1 ) ) then return false endif return true endfunction function Trig_Cast_spell_Actions takes nothing returns nothing local integer i set i = 0 set bj_forLoopAIndex = 1 set bj_forLoopAIndexEnd = 6 loop exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd if ( Trig_Cast_spell_Func002Func001C() ) then set i = ( i + 1 ) else call DoNothing( ) endif set bj_forLoopAIndex = bj_forLoopAIndex + 1 endloop if ( Trig_Cast_spell_Func003C() ) then call DoNothing( ) else call IssueImmediateOrderBJ( GetSpellAbilityUnit(), "stop" ) endif endfunction » тут 2 ошибки call TriggerAddCondition( gg_trg_Cast_spell, Condition( function Trig_Cast_spell_Conditions ) ) call TriggerAddAction( gg_trg_Cast_spell, function Trig_Cast_spell_Actions ) Ошибка: Отсутствует название ункции |
11.06.2008, 15:59 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
S
offline
Опыт:
43,833Активность: |
Цитата:
1) возможно, отсутствие функций Trig_Cast_spell_Conditions; Trig_Cast_spell_Actions 2) сначала должны идти условия, потом действия, потом события - вызвать функцию, которая стоит ниже функции из которой идет вызов функции невозможно. Отредактировано Sasha, 11.06.2008 в 16:25. |
|
11.06.2008, 16:09 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
dk
offline
Опыт:
60,293Активность: |
Потому что сначала надо зарегистрировать функцию, а потом уже добавлять ее как условие или действие триггера...
Цитата:
В самый низ это опусти... |
|
11.06.2008, 16:10 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
and_y87
Тру Кодер
offline
Опыт:
21,030Активность: |
Dead_knight,Sasha, thx
MEXAHuK добавил: Сделал, но почемуто не пашет так как нада... хотя ошипки не выводит...=((( MEXAHuK добавил: » KOD function Trig_Cast_spell_Conditions takes nothing returns boolean if ( not ( GetSpellAbilityId() == 'AHtc' ) ) then return false endif return true endfunction function Trig_Cast_spell_Func002Func001C takes nothing returns boolean if ( not ( UnitItemInSlotBJ(GetSpellAbilityUnit(), GetForLoopIndexA()) != null ) ) then return false endif if ( not ( GetItemLevel(UnitItemInSlotBJ(GetSpellAbilityUnit(), GetForLoopIndexA())) == 5 ) ) then return false endif return true endfunction function Trig_Cast_spell_Func003C takes nothing returns boolean local integer i if ( not ( 'i' >= 1 ) ) then return false endif return true endfunction function Trig_Cast_spell_Actions takes nothing returns nothing local integer i set i = 0 set bj_forLoopAIndex = 1 set bj_forLoopAIndexEnd = 6 loop exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd if ( Trig_Cast_spell_Func002Func001C() ) then set i = ( i + 1 ) else call DoNothing( ) endif set bj_forLoopAIndex = bj_forLoopAIndex + 1 endloop if ( Trig_Cast_spell_Func003C() ) then call DoNothing( ) else call IssueImmediateOrderBJ( GetSpellAbilityUnit(), "stop" ) endif endfunction //=========================================================================== function InitTrig_Cast_spell takes nothing returns nothing local integer i = 0 set gg_trg_Cast_spell = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_Cast_spell, EVENT_PLAYER_UNIT_SPELL_CAST ) call TriggerAddCondition( gg_trg_Cast_spell, Condition( function Trig_Cast_spell_Conditions ) ) call TriggerAddAction( gg_trg_Cast_spell, function Trig_Cast_spell_Actions ) endfunction //=========================================================================== |
11.06.2008, 17:00 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ShadoW DaemoN
offline
Опыт:
37,078Активность: |
MEXAHuK, имхо, лучше бы было поместить сюда gui вариант, чем показывать gui2jass код, или хотя бы объяснить, что должен делать спелл.
Я так понимаю, что спелл должен работать только в том случае, если у кастера есть хотя бы один предмет 5 уровня. Вот примерный код: » Cast spell Код:
Отредактировано ShadoW DaemoN, 12.06.2008 в 09:34. |
11.06.2008, 18:26 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
and_y87
Тру Кодер
offline
Опыт:
21,030Активность: |
ShadoW DaemoN, я подумал, что jass'еры увидят суть сразу...
ты правильно понял... MEXAHuK добавил: Вот что значит оптимизация =) |
11.06.2008, 19:45 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Чебурашка
offline
Опыт:
5,460Активность: |
Жесть, на сколько жасс код лучше читается чем гуи2жасс |
11.06.2008, 19:47 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
and_y87
Тру Кодер
offline
Опыт:
21,030Активность: |
ShadoW DaemoN, только что-то не пашет тоже =\
и кучу ошипок выдаёт |
11.06.2008, 20:21 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Radiant
Silence
offline
Опыт:
4,907Активность: |
MEXAHuK - ищи строчку if GetItemLevel(m) == 5) и убери скобочку в конце... а триггер должен называться Cast spell...
|
11.06.2008, 21:55 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
and_y87
Тру Кодер
offline
Опыт:
21,030Активность: |
Во! запахал!!!
Radiant, спс... ЗЫ: как ты jass выучил... направь мну на путь истинный =) |
11.06.2008, 23:29 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DFlyer
<3 MJ
offline
Опыт:
42,879Активность: |
MEXAHuK
http://xgm.guru/articles.php?section=wc3&name=jass_introduction DFlyer добавил: как я понимаю, топик клоз?! |
12.06.2008, 10:08 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|