Event: Any unit dies
Condition: triggering player owns 0 units
Action: Spawn Player(Triggering Player)
The action Spawn Player(locallVariable) has
Variable - Set Spawn Mode[localVariable] = true
Spawn Mode is a boolean Array of size 1 (for each player)
When I test the map like this, I get an underflow error. After some research I'm guessing it comes from the Triggering Player function returning a -1, which the array doesn't like.
However, if I make a local variable in the respawn trigger = (Triggering Player), and set the action to Spawn Player(local variable) instead of Spawn Player (Triggering Player), it works fine! Very confused. Shouldn't the integer output be the same either way if I pass the Triggering Player value directly to the action as a parameter, or if I put the Triggering Player value into a variable, and then pass the variable to the action as a parameter?
I'd appreciate it if someone could explain this, as it seems like a hack I don't understand, and I'm very afraid of using hacks I don't understand in case everything breaks later. Or if I SHOULD be putting the value in a local variable first for future triggers. Thanks!
I had a General - Wait for (Last started timer) to have 0.0 seconds Remaining in that trigger too. If the trigger gets paused and then unpaused, the Triggering Player function will no longer be able to return the actual triggering player, and will return -1 instead. By creating a local variable, I locked that value in there right at the beginning.
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
I have the following Respawn Trigger:
Event: Any unit dies Condition: triggering player owns 0 units Action: Spawn Player(Triggering Player)
The action Spawn Player(locallVariable) has Variable - Set Spawn Mode[localVariable] = true
Spawn Mode is a boolean Array of size 1 (for each player)
When I test the map like this, I get an underflow error. After some research I'm guessing it comes from the Triggering Player function returning a -1, which the array doesn't like.
However, if I make a local variable in the respawn trigger = (Triggering Player), and set the action to Spawn Player(local variable) instead of Spawn Player (Triggering Player), it works fine! Very confused. Shouldn't the integer output be the same either way if I pass the Triggering Player value directly to the action as a parameter, or if I put the Triggering Player value into a variable, and then pass the variable to the action as a parameter?
I'd appreciate it if someone could explain this, as it seems like a hack I don't understand, and I'm very afraid of using hacks I don't understand in case everything breaks later. Or if I SHOULD be putting the value in a local variable first for future triggers. Thanks!
Figured it out..
I had a General - Wait for (Last started timer) to have 0.0 seconds Remaining in that trigger too. If the trigger gets paused and then unpaused, the Triggering Player function will no longer be able to return the actual triggering player, and will return -1 instead. By creating a local variable, I locked that value in there right at the beginning.