• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

What is the correct script for destroying these points?

Status
Not open for further replies.
Level 7
Joined
Aug 5, 2010
Messages
144
What is the correct script for destroying these points?

  • Set OrbSword_Points[(Player number of (Owner of DamageEventSource))] = (Position of DamageEventSource)
  • Set OrbFire_Point[(Player number of (Owner of DamageEventSource))] = (Position of DamageEventTarget)
 
Level 19
Joined
Oct 7, 2014
Messages
2,209
The locations will leak so this should be followed by this:

  • Custom script: call RemoveLocation(udg_OrbSword_Points[(Player number of (Owner of DamageEventSource))])
  • Custom script: call RemoveLocation(udg_OrbFire_Point[(Player number of (Owner of DamageEventSource))])
 
Level 13
Joined
Mar 29, 2012
Messages
530
Store player number to a variable

  • Set PlayerID = Player number of (Owner of DamageEventSource)
  • Custom script: call RemoveLocation(udg_OrbSword_Points[udg_Player_ID])
  • Custom script: call RemoveLocation(udg_OrbFire_Points[udg_Player_ID])
 
Level 19
Joined
Oct 7, 2014
Messages
2,209
Store player number to a variable

  • Set PlayerID = Player number of (Owner of DamageEventSource)
  • Custom script: call RemoveLocation(udg_OrbSword_Points[udg_Player_ID])
  • Custom script: call RemoveLocation(udg_OrbFire_Points[udg_Player_ID])

Storing the player number would be more efficient and save some time.
 
Level 37
Joined
Jul 22, 2015
Messages
3,485
The locations will leak so this should be followed by this:

  • Custom script: call RemoveLocation(udg_OrbSword_Points[(Player number of (Owner of DamageEventSource))])
  • Custom script: call RemoveLocation(udg_OrbFire_Point[(Player number of (Owner of DamageEventSource))])

That wouldn't compile. You need to replace the index with the proper JASS natives GetPlayerId() and GetOwningPlayer():


JASS:
call RemoveLocation(udg_OrbSword_Points[GetPlayerId(GetOwningPlayer(udg_DamageEventSource))])
call RemoveLocation(udg_OrbFire_Point[GetPlayerId(GetOwningPlayer(udg_DamageEventSource))])

Since JASS player indexes start at 0 (where as GUI starts at 1), he might have to increment the returned integer by 1 if he stored some important values specific to a player.
 
Status
Not open for further replies.
Top