Basically I have a spell which is creating a dummy caster that's supposed to cast Blizzard (The default one from Archmage that is untouched). To debug the spell, I've went as far as creating a periodic timer to continuously cast the spell along with printing out a debug message of the casted location:
scope Blizzard initializer init
globals
private constant integer ABILITY_ID = 'A000'
private constant integer DUMMY_ABILITY_ID = 'AHbz'
private constant integer DUMMY_UNIT_ID = 'h000'
endglobals
struct blizzard
unit caster
unit temp
real x
real y
private static method periodic takes nothing returns nothing
local timer t = GetExpiredTimer()
local thistype tt = GetTimerData(t)
call IssuePointOrder(tt.temp,"blizzard",tt.x,tt.y)
call BJDebugMsg(R2S(tt.x) + " : " + R2S(tt.y))
endmethod
public static method create takes unit caster, real x, real y returns thistype
local thistype tt = thistype.allocate()
local timer t = NewTimer()
set tt.caster = caster
set tt.x = x
set tt.y = y
set tt.temp = CreateUnit(GetOwningPlayer(caster),DUMMY_UNIT_ID,x,y,0.0)
call UnitAddAbility(tt.temp,DUMMY_ABILITY_ID)
call SetUnitAbilityLevel(tt.temp, DUMMY_ABILITY_ID, GetUnitAbilityLevel(caster,ABILITY_ID))
call SetTimerData(t,tt)
call TimerStart(t,0.5,true,function thistype.periodic)
return tt
endmethod
endstruct
private function spell_effect_response takes nothing returns nothing
call blizzard.create(GetSpellAbilityUnit(), GetSpellTargetX(), GetSpellTargetY())
endfunction
//===========================================================================
private function init takes nothing returns nothing
call RegisterSpellEffectResponse(ABILITY_ID, spell_effect_response)
endfunction
endscope
Still doesn't work. I've went as far as copying the exact same dummy unit and spell on a new map. Funny thing is, in this case it works.
http://www.mediafire.com/?wsghfc1zrvb301f
I've touched literally nothing regarding the unit/spell in the process of porting.
What are some possibilities that could be preventing the dummy caster to cast Blizzard at the desired location?
scope Blizzard initializer init
globals
private constant integer ABILITY_ID = 'A000'
private constant integer DUMMY_ABILITY_ID = 'AHbz'
private constant integer DUMMY_UNIT_ID = 'h000'
endglobals
struct blizzard
unit caster
unit temp
real x
real y
private static method periodic takes nothing returns nothing
local timer t = GetExpiredTimer()
local thistype tt = GetTimerData(t)
call IssuePointOrder(tt.temp,"blizzard",tt.x,tt.y)
call BJDebugMsg(R2S(tt.x) + " : " + R2S(tt.y))
endmethod
public static method create takes unit caster, real x, real y returns thistype
local thistype tt = thistype.allocate()
local timer t = NewTimer()
set tt.caster = caster
set tt.x = x
set tt.y = y
set tt.temp = CreateUnit(GetOwningPlayer(caster),DUMMY_UNIT_ID,x,y,0.0)
call UnitAddAbility(tt.temp,DUMMY_ABILITY_ID)
call SetUnitAbilityLevel(tt.temp, DUMMY_ABILITY_ID, GetUnitAbilityLevel(caster,ABILITY_ID))
call SetTimerData(t,tt)
call TimerStart(t,0.5,true,function thistype.periodic)
return tt
endmethod
endstruct
private function spell_effect_response takes nothing returns nothing
call blizzard.create(GetSpellAbilityUnit(), GetSpellTargetX(), GetSpellTargetY())
endfunction
//===========================================================================
private function init takes nothing returns nothing
call RegisterSpellEffectResponse(ABILITY_ID, spell_effect_response)
endfunction
endscope
Still doesn't work. I've went as far as copying the exact same dummy unit and spell on a new map. Funny thing is, in this case it works.
http://www.mediafire.com/?wsghfc1zrvb301f
I've touched literally nothing regarding the unit/spell in the process of porting.
What are some possibilities that could be preventing the dummy caster to cast Blizzard at the desired location?