Creep Revival

icond3maker

New Member
Reaction score
6
Hello , I got this trigger reviving the dying creatures... :
Trigger:
  • Creep Reviving
    • Events
      • Unit - A unit Dies
    • Conditions
      • ((Owner of (Triggering unit)) Equal to Neutral Hostile) and (((Triggering unit) is Summoned) Not equal to True)
    • Actions
      • EGUI Effect - Create an effect at ((Center of (Entire map)) offset by (CREEPX[(Custom value of (Triggering unit))], CREEPY[(Custom value of (Triggering unit))])) using the model Abilities\Spells\NightElf\TrueshotAura\TrueshotAura.mdl that lasts for ((Real((Level of (Triggering unit)))) x 10.00) seconds
      • Wait ((Real((Level of (Triggering unit)))) x 10.00) seconds
      • Unit - Create 1 (Unit-type of (Triggering unit)) for Neutral Hostile at ((Center of (Entire map)) offset by (CREEPX[(Custom value of (Triggering unit))], CREEPY[(Custom value of (Triggering unit))])) facing Default building facing degrees
      • Unit - Set the custom value of (Last created unit) to (Custom value of (Triggering unit))


Once the creature die, when it's level is above 10 , they will not be revived... I don't know why??!! :confused:
Please help me!!
 

Guest3z

New Member
Reaction score
22
The units level 10 and up probably decay in that time. Make sure the creep decay time is BIGGER than the trigger's respawn time
 

Bogrim

y hello thar
Reaction score
154
The unit doesn't revive because once the corpse has decayed the unit disappears from the game, including any data that's used by your trigger such as the custom value and unit-type. This happens for higher level creep only because the increased wait period exceeds the decay period.

Just save these values as local variables and the trigger will work just fine regardless of what happens to the unit during the wait period:
Trigger:
  • Fixed Creep Reviving
    • Events
      • Unit - A unit Dies
    • Conditions
      • ((Owner of (Triggering unit)) Equal to Neutral Hostile) and (((Triggering unit) is Summoned) Not equal to True)
    • Actions
      • Custom script: local integer id = GetUnitTypeId(GetTriggerUnit())
      • Custom script: local integer data = GetUnitUserData(GetTriggerUnit())
      • Wait ((Real((Level of (Triggering unit)))) x 10.00) seconds
      • Custom script: set udg_Temp_Type = id
      • Custom script: set udg_Temp_Integer = data
      • Unit - Create 1 Temp_Type for Neutral Hostile at ((Center of (Entire map)) offset by (CREEPX[Temp_Integer], CREEPY[Temp_Integer])) facing Default building facing degrees
      • Unit - Set the custom value of (Last created unit) to Temp_Integer

Create a unit-type variable "Temp_Type" and integer variable "Temp_Integer" for this trigger to work.
 

icond3maker

New Member
Reaction score
6
The unit doesn't revive because once the corpse has decayed the unit disappears from the game, including any data that's used by your trigger such as the custom value and unit-type. This happens for higher level creep only because the increased wait period exceeds the decay period.

Just save these values as local variables and the trigger will work just fine regardless of what happens to the unit during the wait period:
Trigger:
  • Fixed Creep Reviving
    • Events
      • Unit - A unit Dies
    • Conditions
      • ((Owner of (Triggering unit)) Equal to Neutral Hostile) and (((Triggering unit) is Summoned) Not equal to True)
    • Actions
      • Custom script: local integer type = GetUnitTypeId(GetTriggerUnit())
      • Custom script: local integer data = GetUnitUserData(GetTriggerUnit())
      • Wait ((Real((Level of (Triggering unit)))) x 10.00) seconds
      • Custom script: set udg_Temp_Type = type
      • Custom script: set udg_Temp_Integer = data
      • Unit - Create 1 Temp_Type for Neutral Hostile at ((Center of (Entire map)) offset by (CREEPX[Temp_Integer], CREEPY[Temp_Integer])) facing Default building facing degrees
      • Unit - Set the custom value of (Last created unit) to Temp_Integer

Create a unit-type variable "Temp_Type" and integer variable "Temp_Integer" for this trigger to work.

I am having some problem with your code... I got this errors :
1. Missing linebreak before type declaration (local integer type = GetUnitTypeId(GetTriggerUnit()))
2. Invalid variable name "type" (local integer type = GetUnitTypeId(GetTriggerUnit()))
3. Missing linebreak before type declaration ( set udg_Temp_Type = type )
4. syntax error ( set udg_Temp_Type = type )

The error is the first sentence, the line is the one inside the ()...
 

Jedi

New Member
Reaction score
63
Better solutions are decrease your wait(Isn't it long??) or Increase decay time from gameplay constants.
 

icond3maker

New Member
Reaction score
6
Better solutions are decrease your wait(Isn't it long??) or Increase decay time from gameplay constants.

I got it , replace the local integer "type" to local integer utype
and the set udg_Temp_Type = type to set udg_Temp_Type = utype...
 

Bogrim

y hello thar
Reaction score
154
Yes, apparently naming the variable "type" causes an error. Just renaming the variable does the trick. I apologize for not testing the trigger before posting it.
 

acwel

New Member
Reaction score
0
ummmm if this is still open might i suggest using this? revival.JPG if its not what your trying for just tell me
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top