black.sheep
Active Member
- Reaction score
- 24
For my map I have decided to make a system that would create dummy missles for me to reduce memory usage. My system works great, except for two problems.
1. Missles dont face the needed angle instantly, making them look a little weird when casted.
2. When I destroy effects and hide the dummy unit, the destroyed effect doesnt appear, making it look a little weird. Is it possible to delay hiding or something?
Heres the code for the system. Any improvements I could make?
1. Missles dont face the needed angle instantly, making them look a little weird when casted.
2. When I destroy effects and hide the dummy unit, the destroyed effect doesnt appear, making it look a little weird. Is it possible to delay hiding or something?
Heres the code for the system. Any improvements I could make?
JASS:
library CreateDummy initializer int
globals
private unit array DUMMY
private integer count = 0
//Config
private constant integer DUMMYMAX = 100 //Max ammount of dummy units
private constant integer DUMMYID = 039;hpea039; //Unit ID of the dummy units
private constant player OWNER = Player(15) //Owner of dummy units when not in use
private constant real WAIT = 2 //Wait after map int before dummy units are created
endglobals
function CreateDummy takes player id, real x, real y, real face returns unit
set count = count + 1
if count == DUMMYMAX then
set count = 0
endif
call ShowUnit(DUMMY[count],true)
call SetUnitOwner(DUMMY[count],id,true)
call SetUnitX(DUMMY[count],x)
call SetUnitY(DUMMY[count],y)
call SetUnitFacingTimed(DUMMY[count],face,0)
return DUMMY[count]
endfunction
function KillDummy takes unit dummy returns boolean
if GetUnitTypeId(dummy) == DUMMYID then
call ShowUnit(dummy,false)
call SetUnitFlyHeight(dummy,0,0)
call SetUnitOwner(dummy,OWNER,true)
endif
return false
endfunction
private function int takes nothing returns nothing
local integer i = 0
call TriggerSleepAction(WAIT)
loop
exitwhen i == DUMMYMAX
set i = i + 1
set DUMMY<i> = CreateUnit(OWNER,DUMMYID,0,0,0)
call SetUnitUserData(DUMMY<i>,i)
endloop
endfunction
endlibrary</i></i>