Observer
offline
Опыт:
737Активность: |
Операция function
У меня возникла проблема:
при наборе Function Udar2_spom takes unit Wrag1, effect Top1 return nothing
call DestroyEffectBJ( Top1 ) call SetUnitMoveSpeed( GetEnumUnit(), GetUnitDefaultMoveSpeed(GetEnumUnit()) ) endfunction У меня выскочила ошибка:
function Udar2_spom must not take any arguments when used as code И не как победить не могу, Что мне делать |
03.03.2008, 10:44 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
exploder
iOS zealot
offline
Опыт:
19,394Активность: |
Observer, ты используешь эту функцию для передачи как фактический параметр в другую функцию (параметр типа code), например, в ForGroup, а такая функция не может содержать формальных параметров в обьявлении (т.е. takes unit Wrag1, effect Top1 быть не должно, а должно быть takes nothing).
Передавай нужные тебе данные в эту функцию через глобальные переменные... Отредактировано exploder, 03.03.2008 в 11:15. |
03.03.2008, 11:02 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Observer
offline
Опыт:
737Активность: |
exploderДело в том что это заклинание
А при глоб. переменных его смогут качественно использовать только один юнит А я хоче сделать чтобы спелл могли использоватьнесколько юнитов одновременно - для этого хочу все сделать локалками |
03.03.2008, 11:23 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FellGuard
Losyash
offline
Опыт:
39,547Активность: |
Observer, используй кэш
www.xgm.guru/articles.php?section=wc3& |
03.03.2008, 11:25 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Observer
offline
Опыт:
737Активность: |
FellGuard Точно, как я сам не догадался!!!
Спасибо. Если есть еще варианты то пишите я всегда в внимании |
03.03.2008, 11:39 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
FellGuard, ты мну последнее время пугаешь... спел идет одним потоком...
Observer, если спелл не имеет отсроченных действий глобалки ну не как не влияют на алгоритм |
03.03.2008, 11:56 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Toadcop
offline
Опыт:
54,313Активность: |
Цитата:
|
|
03.03.2008, 14:43 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hexus
Looking for a victim
offline
Опыт:
19,166Активность: |
Массивы юзай |
03.03.2008, 15:03 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
df Hunter
Нападатель
offline
Опыт:
5,749Активность: |
лол обьясняю, ты юзаешь функцию Udar2_spom в случае, что она должна быть без параметров, соответственно она должна выглядеть вот так: function Udar2_spom takes nothing returns nothing ... endfunction |
03.03.2008, 16:49 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
Observer еще ты function написал с большой буквы, я незнаю может это ты здесь опечатся или как, но имей ввиду что регистр учитывается...
|
03.03.2008, 17:13 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Observer
offline
Опыт:
737Активность: |
Jon Это я здесь ошибся
df Hunter Может локальную переменые при помощи кеша переместить? |
03.03.2008, 17:24 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
Observer нет, глобалки сдесь подходят очень хорошо, просто создай пару глобалок, и пользуйся ими.
Также как сказал уже адольф - если у тебя во время перебрасывания данных не идет никакого ожидания, то все должно работать хорошо для всех героев. Также потом этиже глобалки можно будет использовать для этой же задачи во всех других спелах, потому их будет не так много... |
03.03.2008, 17:28 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Observer
offline
Опыт:
737Активность: |
JonВот блин а у меня есть ожидания(
Observer добавил: Jon Ладно спасибо за помощь Придется что-нибудь самому придумать |
03.03.2008, 17:39 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
ты ForGroup используеш? в ней никак не зделать ожидания... тебе если не сложно скинь код, я посмотрю... |
03.03.2008, 17:39 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Observer
offline
Опыт:
737Активность: |
unction Trig_Udar_2_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A00E' ) ) then return false endif return true endfunction function Trig_Udar_2_uslov takes nothing returns boolean
if ( not ( IsUnitEnemy(GetEnumUnit(), GetOwningPlayer(udg_Un)) == true ) ) then return false endif return true endfunction function Trig_Udar_2_dop takes nothing returns unit effect
local unit Wrag1 local unit Un local effect Top1 set Un = GetSpellAbilityUnit() set Wrag1 = GetEnumUnit() if ( Trig_Udar_2_uslov() ) then call UnitDamageTargetBJ( GetSpellAbilityUnit(), GetEnumUnit(), 340.00, ATTACK_TYPE_MELEE, DAMAGE_TYPE_NORMAL ) call AddSpecialEffectTargetUnitBJ( "overhead", GetEnumUnit(), "Abilities\\Spells\\Orc\\StasisTrap\\StasisTotemTarget.mdl" ) set Top1 = GetLastCreatedEffectBJ() call SetUnitMoveSpeed( GetEnumUnit(), 0.00 ) else endif return GetEnumUnit() return GetLastCreatedEffectBJ() endfunction function Trig_Udar_2_Actions takes unit Wrag1, effect Top1 returns nothing
local unit Un local effect Top set Un = GetSpellAbilityUnit() call TriggerSleepAction( 0.10 ) call TerrainDeformationCraterBJ( 1.00, false, GetUnitLoc(Un), 300.00, 80.00 ) call AddSpecialEffectLocBJ( GetUnitLoc(Un), "Abilities\\Spells\\Orc\\WarStomp\\WarStompCaster.mdl" ) set Top = GetLastCreatedEffectBJ() call CameraSetEQNoiseForPlayer( GetOwningPlayer(Un), 6.00 ) call TriggerSleepAction( 0.01 ) call TerrainDeformationRippleBJ( 3.00, false, GetUnitLoc(Un), 300.00, 300.00, 20.00, 0.25, 512 ) call DestroyEffectBJ( Top ) call AddSpecialEffectLocBJ( GetUnitLoc(Un), "Abilities\\Spells\\Orc\\WarStomp\\WarStompCaster.mdl" ) set Top = GetLastCreatedEffectBJ() call TriggerSleepAction( 0.01 ) call ForGroupBJ( GetUnitsInRangeOfLocAll(350.00, GetUnitLoc(Un)), function Trig_Udar_2_dop ) call TriggerSleepAction( 1.20 ) call CameraClearNoiseForPlayer( GetOwningPlayer(Un) ) call TriggerSleepAction( 5.00 ) call DestroyEffectBJ( Top1 ) call SetUnitMoveSpeed( Wrag1, GetUnitDefaultMoveSpeed(Wrag1) ) endfunction =========================================================================== function InitTrig_Udar_2_____________________u takes nothing returns nothing set gg_trg_Udar_2_____________________u = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_Udar_2_____________________u, EVENT_PLAYER_UNIT_SPELL_CAST ) call TriggerAddCondition( gg_trg_Udar_2_____________________u, Condition( function Trig_Udar_2_Conditions ) ) call TriggerAddAction( gg_trg_Udar_2_____________________u, function Trig_Udar_2_Actions ) endfunction |
03.03.2008, 18:14 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
во первых загони код под тег [ code]
во вторых обращение с фор груп у тебя опсалютно не правельное, точнее неправельное орудование локалками. Еще она у тебя зачемто возвращает 2 значения Oo, хотя должно возвращать ничего... в третих банальные утечки... ну, слип сдесь можно простить (надеюсь никто не будет опять начинать спор?) в четвертых в подобных ситуациях можно юзать Луп по группе выглядит он примерно так: Код:
Jon добавил: хотя можно и через фор груп, ща сделаю набросок, уже спать хочу такчто хорошо врятли получицо |
03.03.2008, 18:43 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Observer
offline
Опыт:
737Активность: |
JonСпасибо, я тебя не забуду
|
03.03.2008, 18:44 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
Чет я фигню какуюто написал... ну попробуй так:
eсли повезет то еще и работать будет ^^ ps не используй тригеры с рускими названиями, бесят... Код:
Jon добавил: я не проврял код на отсутствие ошибок, потому все может быть... Jon добавил: чуть подправил код... |
03.03.2008, 18:56 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Observer
offline
Опыт:
737Активность: |
Jon Ладно попытаюсь вставить, если выйдет - с меня пузырь))))
|
03.03.2008, 19:08 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FellGuard
Losyash
offline
Опыт:
39,547Активность: |
Цитата:
|
|
03.03.2008, 20:22 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|