Instant Facing/System Improvements

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?
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  = 'hpea'      //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>
 

Azlier

Old World Ghost
Reaction score
461
You need to modify the model itself, something involving modifying a bone or something and then using the [lJASS]SetUnitLookAt[/lJASS] thing. There's a tutorial or resource for it on WC3C.

And remove that [lJASS]TriggerSleepAction[/lJASS]. Pointless.

And always readd Locust after unhiding units. If you don't, they lose the Locust and are selectable.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top