• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

[JASS] XECOLLIDER how to make it stop on debris?

Status
Not open for further replies.
Level 12
Joined
Aug 7, 2004
Messages
875
Hi

Since I don't have a wc3campaigns account, and making one is very hectic, I'll just ask here...

So I'm wondering how to make a onDebrisHit for the xecollider missile in xe system. I mean to be honest, I'm making an arrow spell that shoots at an angle, having it passes through cliffs and woods is unrealistic. I want it to terminate on impact over debris.

How to make this?
 
Level 22
Joined
Dec 31, 2006
Messages
2,216
I think Vexorian made a function called "IsPointPathable" or something. You can use that to check if the arrow is over unpathable terrain and then destroy it if it is. I don't know if you can find it here, but I'm pretty sure you can find it here: Wc3 Jass
 
Level 12
Joined
Aug 7, 2004
Messages
875
I think Vexorian made a function called "IsPointPathable" or something. You can use that to check if the arrow is over unpathable terrain and then destroy it if it is. I don't know if you can find it here, but I'm pretty sure you can find it here: Wc3 Jass

Lol wow! no offense but I think everyone knows where and what IsPointPathable is... And if so you know that, you still have to figure out how to get the dummy unit in the xecollider instance! This is what I'm asking...

I figured out already how to do it.

xecollider delegates xefx, so it inherits the methods in xefx. Just extend the loopControl function in your missile struct, and have implement the operator x/y method in xefx to figure out the dummy's position.

JASS:
method loopControl takes nothing returns nothing
        
            if (CheckPathability(this.x,this.y) == false) then
                call this.terminate()
            endif
        endmethod
 
Status
Not open for further replies.
Top