LostCoast
offline
Опыт:
2,633Активность: |
Enein, если честно не люблю работать с группами. Покажи свой пример
|
30.01.2010, 01:06 | #21
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Enein
Silenced by ZlaYa1000
offline
Опыт:
43,453Активность: |
выполнять ВСЕ нужные действия в фильтре, т.е:
где-нить на старте задаем "set bx = Condition(function Callback)"
Enein добавил:
искать ничего не нужно, все до вас уже давно найдено |
30.01.2010, 01:14 | #22
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
LostCoast
offline
Опыт:
2,633Активность: |
Цитата:
после этого также через цикл? |
|
30.01.2010, 01:15 | #23
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Enein
Silenced by ZlaYa1000
offline
Опыт:
43,453Активность: |
нубы такие нубы... в "основной" функции больше ничего, кроме сохранения нужных переменных, ненадо делать, все выполняется в Callback'е |
30.01.2010, 01:18 | #24
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
LostCoast
offline
Опыт:
2,633Активность: |
Цитата:
ну что поделать, учить никогда не поздно)) |
|
30.01.2010, 01:20 | #25
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
AlexKARASb
Learning cpp
offline
Опыт:
22,103Активность: |
Enein, друг ты не удивляйся что я нуб создавал бы я тему если был бы умнее?, в теме надпись обучение думал все обьяснила
boolexpr bx - что это за глобальная, обьясните пожалуйста function Callback функция фильтр, мне надо поставить условие или здесь нанесение урона тоже будет? Честно можеш пожалуйста поподробнее написать\описать если не тяжело :D |
30.01.2010, 10:17 | #26
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
можно каждый раз звать кондиши - они не создают утечек и всегда вернут один и тот же указатель а вот группу создать при инициализации и каждый раз просто использовать ее
cJass лямбды тут рулят, например
Отредактировано ADOLF, 30.01.2010 в 14:06. |
30.01.2010, 13:19 | #27
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
AlexKARASb
Learning cpp
offline
Опыт:
22,103Активность: |
Обьсните пожалуйста
*boolexpr что за переменная *Callback функция: назначение *Почему циклом ~LostCoast, не стоит делать? *Каким действием тогда стоит делать? |
30.01.2010, 14:03 | #28
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
спец указатель на функцию, которая возращает буль быть вызванной движком? перебор обычным циклом? неудобно и нерационально
|
30.01.2010, 14:06 | #29
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hellfim
Новичок
offline
Опыт:
79,707Активность: |
AlexKARASb, если немного непонятно, то: вместо "//..." Твои действия. В данном случае юнитом в группе будет GetFilterUnit(). |
30.01.2010, 14:13 | #30
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
LostCoast
offline
Опыт:
2,633Активность: |
тоесть:
Код:
|
30.01.2010, 14:28 | #31
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
AlexKARASb
Learning cpp
offline
Опыт:
22,103Активность: |
хм уверен на 99% что я написал бред да? просто вместо цикла не пойму какие действия делать я понял что энейн написал нужное просто понять эт не могу =\ Отредактировано ShadoW DaemoN, 30.01.2010 в 18:57. |
30.01.2010, 14:29 | #32
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
AlexKARASb
Learning cpp
offline
Опыт:
22,103Активность: |
никто немощному не поможет\обьяснит? =\
|
30.01.2010, 18:51 | #33
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Nekit1234007
offline
Опыт:
11,916Активность: |
Код:
|
30.01.2010, 19:04 | #34
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
AlexKARASb
Learning cpp
offline
Опыт:
22,103Активность: |
эта функция будет переодической?не удивляйтесь вопросу эт же аля Я
|
30.01.2010, 19:14 | #35
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Nekit1234007
offline
Опыт:
11,916Активность: |
Эта фунцкия пройдётся по всем юнитам группы.
|
30.01.2010, 19:15 | #36
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
AlexKARASb
Learning cpp
offline
Опыт:
22,103Активность: |
пытался, пытался, пытался и ничего толкового не вышло
1вопрос: вот создал я функцию эту кол бек, почем вы посоветовали в нанесении урона писать что дамми наносит урон хотя лок. дамми в функции нет » code globals boolexpr bx endglobals function CallBack takes nothing returns boolean local unit u=GetFilterUnit() local unit C=GetTriggerUnit() if IsUnitEnemy(u,GetTriggerPlayer()) then call UnitDamageTarget(C,u,10,true,false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_MAGIC, null) endif return false endfunction function Trig_JTKaton_Conditions takes nothing returns boolean return GetSpellAbilityId() == 'A001' endfunction function JTKTimerMove takes nothing returns nothing local timer t=GetExpiredTimer() local integer i = GetHandleId(t) local unit Dummy = LoadUnitHandle(udg_Hash,i,2) local group gr = CreateGroup() local real XC = LoadReal(udg_Hash,i,0) local real YC = LoadReal(udg_Hash,i,1) local real Angle = LoadReal(udg_Hash,i,3) local real XN = GetUnitX(Dummy) local real YN = GetUnitY(Dummy) local unit tr call SetUnitX(Dummy, XN+20*Cos(Angle)) call SetUnitY(Dummy,YN+20*Sin(Angle)) call SaveReal(udg_Hash,i,4,XN) call SaveReal(udg_Hash,i,5,YN) call GroupEnumUnitsInRange(gr,XN,YN,300,bx) if SquareRoot((XN-XC)*(XN-XC)+(YN-YC)*(YN-YC))>3000 then call KillUnit(Dummy) call DestroyGroup(gr) set gr = null call FlushChildHashtable(udg_Hash, i) call PauseTimer(t) call DestroyTimer(t) set t = null endif endfunction function Trig_JTKaton_Actions takes nothing returns nothing local timer t=CreateTimer() local unit Caster=GetTriggerUnit() local real XC=GetUnitX(Caster) local real YC=GetUnitY(Caster) local location CastLoc=GetSpellTargetLoc() local real XL=GetLocationX(CastLoc) local real YL=GetLocationY(CastLoc) local real Angle = Atan2(YL-YC,XL-XC) local integer i = GetHandleId(t) local unit Dummy=CreateUnit(GetOwningPlayer(Caster),'h001',XC,YC,Angle*bj_RADTODEG) set bx = Condition(function CallBack) call RemoveLocation(CastLoc) call SetUnitFacing(Dummy,Angle*bj_RADTODEG) call SetUnitPathing(Dummy,false) call SaveReal(udg_Hash,i,0,XC) call SaveReal(udg_Hash,i,1,YC) call SaveUnitHandle(udg_Hash,i,2,Dummy) call SaveReal(udg_Hash,i,3,Angle) call TimerStart(t,.03,true,function JTKTimerMove) endfunction //=========================================================================== function InitTrig_JTKaton takes nothing returns nothing set gg_trg_JTKaton = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_JTKaton, EVENT_PLAYER_UNIT_SPELL_EFFECT ) call TriggerAddCondition( gg_trg_JTKaton, Condition( function Trig_JTKaton_Conditions ) ) call TriggerAddAction( gg_trg_JTKaton, function Trig_JTKaton_Actions ) endfunction что неправильного на этот раз? |
30.01.2010, 22:20 | #37
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
Триггер плеера, юнита и прочее из дейсвия тригера переноси через глобалки (что бы обращатсья к ним в каллбеке) |
30.01.2010, 22:30 | #38
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
LostCoast
offline
Опыт:
2,633Активность: |
AlexKARASb, ты этот код с помощью JNGP писал?
|
31.01.2010, 00:21 | #39
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Enein
Silenced by ZlaYa1000
offline
Опыт:
43,453Активность: |
судя по блоку с глобалками в начале - да чисто для удобства... но в некоторых случаях, когда пик выполняется очень часто, все-таки лучше обращение к переменной - быстрее же) |
31.01.2010, 00:31 | #40
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|