- Joined
- Nov 18, 2013
- Messages
- 21
can someone please explain me why isn't this spell working...
custom text functions (yes, I already created the Hashtable on the variable editor)
JASS:
function Turmoil_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A003'
endfunction
function Group takes nothing returns boolean
return IsUnitAlive(GetFilterUnit())
endfunction
function Timer takes nothing returns nothing
local timer t = GetExpiredTimer()
local unit caster = GetHandleUnit(t, "caster")
local real x = GetHandleReal(t, "x")
local real y = GetHandleReal(t, "y")
local group target = CreateGroup()
local unit temp
local real dmg = 55
call GroupEnumUnitsInRange(target, x, y, 500., Condition(function Group))
set temp = GroupPickRandomUnit(target)
if (IsUnitEnemy(temp, GetOwningPlayer(caster))) and (not IsUnitType(temp, UNIT_TYPE_STRUCTURE)) then
call UnitDamageTarget(caster, temp, dmg, true, false, ATTACK_TYPE_CHAOS, DAMAGE_TYPE_NORMAL, null)
call DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Orc\\Devour\\DevourEffectArt.mdl", temp, "chest"))
endif
loop
set temp = FirstOfGroup(target)
call GroupRemoveUnit(target, temp)
exitwhen temp == null
endloop
call DestroyGroup(target)
set temp = null
set target = null
endfunction
function Turmoil_Actions takes nothing returns nothing
local timer t = CreateTimer()
local unit caster = GetTriggerUnit()
local real x = GetSpellTargetX()
local real y = GetSpellTargetY()
call SetHandleHandle(t, "caster", caster)
call SetHandleReal(t, "x", x)
call SetHandleReal(t, "y", y)
call ShowUnit(caster, false)
call TimerStart(t, 0.2, true, function Timer)
call TriggerSleepAction(2.)
call FlushHandleLocals(t)
call DestroyTimer(t)
call ShowUnit(caster, true)
call SetUnitPosition(caster, x, y)
set t = null
set caster = null
endfunction
function InitTrig_Turmoil takes nothing returns nothing
set gg_trg_Turmoil = CreateTrigger()
call TriggerAddCondition( gg_trg_Turmoil, Condition(function Turmoil_Conditions))
call TriggerAddAction(gg_trg_Turmoil, function Turmoil_Actions)
endfunction
custom text functions (yes, I already created the Hashtable on the variable editor)
JASS:
function LocalVars takes nothing returns hashtable
return udg_Hashtable
endfunction
function XGWait takes real time returns nothing
local timer t=CreateTimer()
call TimerStart(t,time,false,null)
loop
if TimerGetRemaining(t)==0.0 then
call DestroyTimer(t)
set t=null
return
else
call TriggerSleepAction(TimerGetRemaining(t)/2.)
endif
endloop
endfunction
function SetHandleHandle takes handle subject,string name,agent value returns nothing
call SaveAgentHandle(LocalVars(),GetHandleIdBJ(subject),StringHashBJ(name),value)
endfunction
function SetHandleInt takes handle subject,string name,integer value returns nothing
call SaveInteger(LocalVars(),GetHandleIdBJ(subject),StringHashBJ(name),value)
endfunction
function SetHandleBoolean takes handle subject,string name,boolean value returns nothing
call SaveBoolean(LocalVars(),GetHandleIdBJ(subject),StringHashBJ(name),value)
endfunction
function SetHandleReal takes handle subject,string name,real value returns nothing
call SaveReal(LocalVars(),GetHandleIdBJ(subject),StringHashBJ(name),value)
endfunction
function SetHandleString takes handle subject,string name,string value returns nothing
call SaveStr(LocalVars(),GetHandleIdBJ(subject),StringHashBJ(name),value)
endfunction
function FlushHandleLocals takes handle subject returns nothing
call FlushChildHashtable(LocalVars(),GetHandleIdBJ(subject))
endfunction
function GetHandleBoolean takes handle subject,string name returns boolean
return LoadBoolean(LocalVars(),GetHandleIdBJ(subject),StringHashBJ(name))
endfunction
function GetHandleInt takes handle subject,string name returns integer
return LoadInteger(LocalVars(),GetHandleIdBJ(subject),StringHashBJ(name))
endfunction
function GetHandleReal takes handle subject,string name returns real
return LoadReal(LocalVars(),GetHandleIdBJ(subject),StringHashBJ(name))
endfunction
function GetHandleString takes handle subject,string name returns string
return LoadStringBJ(StringHashBJ(name),GetHandleIdBJ(subject),LocalVars())
endfunction
function GetHandleUnit takes handle subject,string name returns unit
return LoadUnitHandle(LocalVars(),GetHandleIdBJ(subject),StringHashBJ(name))
endfunction
function GetHandleEffect takes handle subject,string name returns effect
return LoadEffectHandle(LocalVars(),GetHandleIdBJ(subject),StringHashBJ(name))
endfunction
function GetHandleTimer takes handle subject,string name returns timer
return LoadTimerHandle(LocalVars(),GetHandleIdBJ(subject),StringHashBJ(name))
endfunction
function GetHandleTrigger takes handle subject,string name returns trigger
return LoadTriggerHandle(LocalVars(),GetHandleIdBJ(subject),StringHashBJ(name))
endfunction
function GetHandleGroup takes handle subject,string name returns group
return LoadGroupHandle(LocalVars(),GetHandleIdBJ(subject),StringHashBJ(name))
endfunction
function GetHandleItem takes handle subject,string name returns item
return LoadItemHandle(LocalVars(),GetHandleIdBJ(subject),StringHashBJ(name))
endfunction
function GetHandlePlayer takes handle subject,string name returns player
return LoadPlayerHandle(LocalVars(),GetHandleIdBJ(subject),StringHashBJ(name))
endfunction
function GetHandleLocation takes handle subject,string name returns location
return LoadLocationHandle(LocalVars(),GetHandleIdBJ(subject),StringHashBJ(name))
endfunction
function GetHandleLightning takes handle subject,string name returns lightning
return LoadLightningHandle(LocalVars(),GetHandleIdBJ(subject),StringHashBJ(name))
endfunction
function GetHandleTextTag takes handle subject,string name returns texttag
return LoadTextTagHandle(LocalVars(),GetHandleIdBJ(subject),StringHashBJ(name))
endfunction
function IsUnitDead takes unit u returns boolean
return IsUnitType(u,UNIT_TYPE_DEAD)or GetUnitTypeId(u)==0
endfunction
function IsUnitAlive takes unit u returns boolean
return not IsUnitDead(u)
endfunction[/jas]
Last edited by a moderator: