Raptor2108
offline
Опыт:
195Активность: |
Морозный шар Спелл на jass
Пишу свой первый спел на джасе но что то запутался выдает несколько ошибок не могу понять где же именно помогите пожалуйста доделать.
вот код:
((код jass
function Trig_spell_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A004' endfunction function timerg takes nothing returns nothing
local timer t = GetExpiredTimer() local integer ID = GetHandleId(t) local group g = LoadGroupHandle(udg_Hash, ID, 1) local unit dummy = LoadUnitHandle(udg_Hash, ID,0) local integer level = LoadInteger(udg_Hash, ID, 2) local unit f = null local integer i = LoadInteger(udg_Hash, ID, 3) local unit caster = LoadUnitHandle(udg_Hash, ID, 4) loop
set f = FirstOfGroup(g) exitwhen f == null if i < 10 then if DistanceBetweenPoints(GetUnitLoc(dummy), GetUnitLoc(f)) <= 1000 then call DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Undead\\FrostNova\\FrostNovaTarget.mdl", f, "origin") call UnitDamageTarget(caster, f, 40 * level, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_MAGIC, null) endif call SaveInteger(udg_Hash, ID, 3, i + 1) else call DestroyTimer(t) call GroupRemoveUnit(g, f) call FlushChildHashtable(udg_Hash, ID) set t = null set g= null set dummy = null set f = null set caster = null endif endloop endfunction function Shout_banshee_Dmg_Filter1 takes nothing returns boolean
local unit f=GetFilterUnit() if IsPlayerEnemy(GetOwningPlayer(GetTriggerUnit()),GetOwningPlayer(f)) and GetWidgetLife(f)>=0.405 and IsUnitType(f,UNIT_TYPE_STRUCTURE)==false then set f=null return true else set f=null return false endif endfunction function Trig_spell_Actions takes nothing returns nothing
local timer t = CreateTimer() local unit dummy local integer ID = GetHandleId(t) local group g = CreateGroup() local boolexpr a=Condition(function Shout_banshee_Dmg_Filter1) local integer i = 1 local unit caster = GetSpellAbilityUnit() local integer level = GetUnitAbilityLevel(GetSpellAbilityUnit(),'A004') call CreateUnit(GetOwningPlayer(GetSpellAbilityUnit), 'hfoo', GetUnitX(GetSpellTargetLoc()), GetUnitY(GetSpellTargetLoc()), 0 ) call GroupEnumUnitsInRange(g, GetUnitX(GetSpellTargetLoc()), GetUnitY(GetSpellTargetLoc()), 1000, a) call SaveUnitHandle(udg_Hash, ID, 0, dummy) call SaveGroupHandle(udg_Hash, ID, 1, g) call SaveInteger(udg_Hash, ID,2 ,level) call DestroyEffect(AddSpecialEffectLoc ("Abilities\\Spells\\Undead\\FrostNova\\FrostNovaTarget.mdl", GetUnitLoc(dummy))) call TimerStart(t, 1, true, function timerg) call SaveInteger(udg_Hash, ID, 3, i) call SaveUnitHandle(udg_Hash, ID, 4, caster) set t = null set dummy = null set g = null set a = null set caster = null endfunction ===========================================================================
function InitTrig_spell takes nothing returns nothing set gg_trg_spell = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_spell, EVENT_PLAYER_UNIT_SPELL_CHANNEL ) call TriggerAddCondition( gg_trg_spell, Condition( function Trig_spell_Conditions ) ) call TriggerAddAction( gg_trg_spell, function Trig_spell_Actions ) endfunction )) Raptor2108 добавил: ах да Спел создает в точке дамми юнита ввиде морозного шара который в радиусе 1000 от себя морозит всех и наносит урон. Отредактировано ShadoW DaemoN, 06.05.2011 в 11:22. |
06.05.2011, 10:22 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
|
06.05.2011, 11:08 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Raptor2108
offline
Опыт:
195Активность: |
caster поправил, а утечки от була яж обнулил его? Ругает на функцию ЮнитДамаж |
06.05.2011, 11:55 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Raptor2108
offline
Опыт:
195Активность: |
Всеранво ругается на дамаж и еще на эту строчку
local integer i = LoadInteger(udg_Hash, ID, 4) |
06.05.2011, 12:30 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
ARHUI, не неси чуш.
» Фасткод
|
06.05.2011, 20:22 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|