saylar_06
offline
Опыт:
729Активность: |
1 функция на n-триггеров
В общем есть у меня 1 функция которая повторяется в 10 триггерах(и даже не одна)
Можно ли сделать так создать триггер к примеру(Core) поместить в него функию Name
А затем уже использовать эту функцию в других триггерах? P.S Попытался сделать так как описано выше, но выходит ошибка(при компиляции) Undeclared function Name
PP.S Изучая Триггеры(Jass) в доте заметил что там они используют такой же метод, как сделать так же? Извиняюсь если этот вопрос глупый или уже обсуждался, просто я только делаю первые шаги...
Спасибо за понимание! |
29.05.2010, 13:57 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Clamp
Lost in space
offline
Опыт:
71,258Активность: |
Цитата:
помещай в нестандартный код. Clamp добавил: и там уже пиши call name() |
|
29.05.2010, 13:59 | #2
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
saylar_06
offline
Опыт:
729Активность: |
Clamp:
Чтот не пойму :(
Создал я Триг Core поместил в него функцию H2Tx
Создал я Триг Kraken и в нём имеется функция (одна из немногих)
function Kraken_Timer takes nothing returns nothing
call UnitRemoveBuffsBJ(1,GetUnit(H2Tx(GetExpiredTimer()),"UnitVar")) endfunction При компиляции выходит ошибка Undeclared function H2Tx
p.S Может я чего то не понял :( |
29.05.2010, 14:18 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,534Активность: |
значит функция ниже вызова |
29.05.2010, 14:28 | #4
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Clamp
Lost in space
offline
Опыт:
71,258Активность: |
saylar_06:
Не надо никаких тригов, помещай функцию в "нестандартный код карты" |
29.05.2010, 14:35 | #5
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
saylar_06
offline
Опыт:
729Активность: |
|
29.05.2010, 15:30 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
AlexKARASb
Learning cpp
offline
Опыт:
22,103Активность: |
надо потрудится ткнуть в самый левый верхнй кусок редактора триггеров, там надпись с названием твой карты |
29.05.2010, 15:36 | #7
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
StoneHeartis
Kicked by ScorpioT1002
offline
Опыт:
1,009Активность: |
Return Bug detected. Если вы создаете карту на 1.24+, то можете смело выкинуть эту идею. |
29.05.2010, 17:19 | #8
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Clamp
Lost in space
offline
Опыт:
71,258Активность: |
StoneHeartis, по идее то должно норм компилить, без онибок. Просто не запускалось бы |
29.05.2010, 17:23 | #9
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
StoneHeartis
Kicked by ScorpioT1002
offline
Опыт:
1,009Активность: |
Clamp, ну да. давайте ему подсунем
У него не компилилио потому, что он не туда совал кастом код. Хм. Вру. Значит с кодом что-то не так.
Код в студию. |
29.05.2010, 17:35 | #10
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
|
29.05.2010, 18:17 | #11
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
saylar_06
offline
Опыт:
729Активность: |
StoneHeartis:
а каким надо? (если можно ссылку)
StoneHeartis:
Триггер Core
» текст
function H2Ix takes handle pTarg returns integer
return pTarg return 0 endfunction function H2Tx takes handle pTarg returns string
return I2S(H2Ix(pTarg)) endfunction function FastFlush takes string pTable returns nothing
call FlushStoredMission(udg_gc_DTAX_Core,pTable) endfunction function SetHandle takes string pTable,string pKey,handle pData returns nothing
call StoreInteger(udg_gc_DTAX_Core,pTable,pKey,H2Ix(pData)) endfunction function SetInteger takes string pTable,string pKey,integer pData returns nothing
call StoreInteger(udg_gc_DTAX_Core,pTable,pKey,pData) endfunction function SetReal takes string pTable,string pKey,real pData returns nothing
call StoreReal(udg_gc_DTAX_Core,pTable,pKey,pData) endfunction function SetBoolean takes string pTable,string pKey,boolean pData returns nothing
call StoreBoolean(udg_gc_DTAX_Core,pTable,pKey,pData) endfunction function GetUnit takes string pTable,string pKey returns unit
return GetStoredInteger(udg_gc_DTAX_Core,pTable,pKey) return null endfunction function GetPlayer takes string pTable,string pKey returns player
return GetStoredInteger(udg_gc_DTAX_Core,pTable,pKey) return null endfunction function GetTimer takes string pTable,string pKey returns timer
return GetStoredInteger(udg_gc_DTAX_Core,pTable,pKey) return null endfunction function GetTrigger takes string pTable,string pKey returns trigger
return GetStoredInteger(udg_gc_DTAX_Core,pTable,pKey) return null endfunction function GetGroup takes string pTable,string pKey returns group
return GetStoredInteger(udg_gc_DTAX_Core,pTable,pKey) return null endfunction function GetFX takes string pTable,string pKey returns effect
return GetStoredInteger(udg_gc_DTAX_Core,pTable,pKey) return null endfunction function GetLocation takes string pTable,string pKey returns location
return GetStoredInteger(udg_gc_DTAX_Core,pTable,pKey) return null endfunction function GetInteger takes string pTable,string pKey returns integer
return GetStoredInteger(udg_gc_DTAX_Core,pTable,pKey) endfunction function GetReal takes string pTable,string pKey returns real
return GetStoredReal(udg_gc_DTAX_Core,pTable,pKey) endfunction function GetBoolean takes string pTable,string pKey returns boolean return GetStoredBoolean(udg_gc_DTAX_Core,pTable,pKey) endfunction Триггер Kraken_Shell
» текст
Objects used:
'A04E' = Kraken Shell (Tidehunter : Leviathan) function Trig_Kraken_Shell_Conditions takes nothing returns boolean
return GetLearnedSkill()=='A04E' and IsUnitIllusion(GetTriggerUnit())==false endfunction function Kraken_Timer takes nothing returns nothing
call UnitRemoveBuffsBJ(1,GetUnit(H2Tx(GetExpiredTimer()),"UnitVar")) endfunction function Trig_Kraken_Shell_Actions takes nothing returns nothing
local unit lfo=GetTriggerUnit() local integer lmZ=GetUnitAbilityLevel(lfo,'A04E') local timer ltt if lmZ==1 then set ltt=CreateTimer() call TimerStart(ltt,11,true,function Kraken_Timer) call SetHandle(H2Tx(ltt),"UnitVar",lfo) call SetHandle(H2Tx(lfo),"KrakenTimer",ltt) else set ltt=GetTimer(H2Tx(lfo),"KrakenTimer") call TimerStart(ltt,12-lmZ,true,function Kraken_Timer) endif endfunction function InitTrig_Kraken_Shell takes nothing returns nothing set gg_trg_Kraken_Shell=CreateTrigger() call TriggerRegisterAnyUnitEventBJ(gg_trg_Kraken_Shell,EVENT_PLAYER_HERO_SKILL) call TriggerAddCondition(gg_trg_Kraken_Shell,Condition(function Trig_Kraken_Shell_Conditions)) call TriggerAddAction(gg_trg_Kraken_Shell,function Trig_Kraken_Shell_Actions) endfunction Ошибки : Undeclared function H2Tx Undeclared function GetUnit Undeclared function SetHandle Undeclared function GetTimer |
29.05.2010, 19:04 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
bee
vjass.optimizer
offline
Опыт:
16,615Активность: |
если не используется JNGP, то вы не можете вызывать функции из других триггеров. например у вас есть два триггера A и B. вы суете функцию lol в триггер A и вызываете ее из триггера B. это не правильно и будет ошибка компиляции. курите мануал Jass'a от Сергея. решение: помещать функцию lol в Custom Script карты (находится выше всех остальных триггеров, с названием вашей карты). |
29.05.2010, 20:02 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
bobok1
offline
Опыт:
1,213Активность: |
РБ не работает, начиная от версии 1.24 - вот вся соль.
РБ заменили на хеш-таблицы. bobok1 добавил:
pTable,pKey, H2IX(pData) - это что? О_О P.S. Не учил SCV |
31.05.2010, 03:11 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Anufis
offline
Опыт:
6,290Активность: |
Цитата:
pTable,pKey - это строки, по которым идет запись в кеш, а H2IX(pData) - конверт хэндла в инт |
|
02.06.2010, 22:43 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
bee, ложь всего лишь функция должна быть выше тригер соответственно тоже. Но он должен быть ранее выше скомпилирован а не просто перемещен. |
02.06.2010, 23:12 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|