Simple yet complicated revive trigger

xAnaMorphine

Active Member
Reaction score
43
Hi, folks!

Code:
Create Grave
    Events
        Unit - A unit Dies
    Conditions
        ((Dying unit) is A Hero) Equal to True
    Actions
        Set TEMP_Point = (Position of (Dying unit))
        Set UnitPosition[(Player number of (Owner of (Triggering unit)))] = TEMP_Point
        Set GraveLocation[(Player number of (Owner of (Triggering unit)))] = UnitPosition[(Player number of (Owner of (Triggering unit)))]
        Set Revive[(Player number of (Owner of (Triggering unit)))] = (Dying unit)
        Set ReviveLocation[(Player number of (Owner of (Triggering unit)))] = GraveLocation[(Player number of (Owner of (Triggering unit)))]
        Unit - Create 1 Grave for (Owner of (Triggering unit)) at ReviveLocation[(Player number of (Owner of (Triggering unit)))] facing Default building facing degrees
        Custom script:   call RemoveLocation(udg_TEMP_Point)
Code:
Revive Unit
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Revive 
    Actions
        Hero - Instantly revive Revive[(Player number of (Owner of (Target unit of ability being cast)))] at GraveLocation[(Player number of (Owner of (Triggering unit)))], Hide revival graphics
        Set ReviveGrave = (Units owned by (Owner of (Target unit of ability being cast)) of type Grave)
        Set ReviveUnitGroup[(Player number of (Owner of (Target unit of ability being cast)))] = ReviveGrave
        Unit Group - Pick every unit in ReviveUnitGroup[(Player number of (Owner of (Target unit of ability being cast)))] and do (Actions)
            Loop - Actions
                Unit - Remove (Picked unit) from the game
        Custom script:   call RemoveLocation(udg_ReviveLocation[GetConvertedPlayerId(GetTriggerPlayer())])
        Custom script:   call DestroyGroup(udg_ReviveUnitGroup[GetConvertedPlayerId(GetOwningPlayer(GetSpellTargetUnit()))])
        Custom script:   call DestroyGroup(udg_ReviveGrave)
        Custom script:   call RemoveLocation(udg_GraveLocation[GetConvertedPlayerId(GetOwningPlayer(GetDyingUnit()))])
        Custom script:   call RemoveLocation(udg_UnitPosition[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))])

The unit does not get revived at the grave location and does the code look somehow ok?
 

Dirac

22710180
Reaction score
147
happens in GUI triggering that when you
set PointA = PointB
it bugs the hell up, and PointA is set to null, in order to fix this do this
set PointA = PointB offset by 0 towards 0 degrees.

Also (Target Unit of Ability Being Cast) is an unit? isnt your spell AoE, if not, how do you target a corpse?

And you create many unnecessary variables such as ReviveGrave, UnitPosition[array] and GraveLocation[array]
 

xAnaMorphine

Active Member
Reaction score
43
My Spell is based of channel, which I changed to a point-target spell and the grave is a unit, indeed.
I create many unnecessary variables because I thought they were needed to make the trigger MUI.
 

Dirac

22710180
Reaction score
147
this trigger is not MUI, it's MPI though (which means that works fine for each player)
Ok now i see, the second ability targets the grave and revives the hero right there, making every variable useless but the one that sets the Hero unit... i'll just rewrite your trigger roughly here.

Trigger:
  • Create Grave
    • Events
      • Unit - A unit Dies
    • Conditions
      • ((Dying unit) is A Hero) Equal to True
    • Actions
      • Set TEMP_Point = (Position of (Dying unit))
      • Unit - Create 1 Grave for (Owner of (Triggering unit)) at ReviveLocation[(Player number of (Owner of (Triggering unit)))] facing Default building facing degrees
      • Set Revive = (Dying unit)
      • Custom script: call RemoveLocation(udg_TEMP_Point)


Trigger:
  • Revive Unit
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Revive
    • Actions
      • Set TEMP_Point = (Position of (Target unit of ability being cast))
      • Hero - Instantly revive Revive[(Player number of (Owner of (Target unit of ability being cast)))] at TEMP_Point, Hide revival graphics
      • Remove (Target unit of ability being cast) from the game
      • Custom script: call RemoveLocation(udg_TEMP_Point)
 

xAnaMorphine

Active Member
Reaction score
43
Tweaked the code, works how intended.
If anyone is intrested:

Erstelle Grabstein
Events
Unit - A unit Dies
Conditions
((Dying unit) is A Hero) Equal to True
Actions
Set TEMP_Point = (Position of (Dying unit))
Set Revive[(Player number of (Owner of (Triggering unit)))] = (Dying unit)
Set ReviveLocation[(Player number of (Owner of (Triggering unit)))] = TEMP_Point
Unit - Create 1 Grave for (Owner of (Triggering unit)) at ReviveLocation[(Player number of (Owner of (Triggering unit)))] facing Default building facing degrees
Custom script: call RemoveLocation(udg_TEMP_Point)

Wiederbeleben
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Revive
Actions
Set TEMP_Point = (Position of (Target unit of ability being cast))
Hero - Instantly revive Revive[(Player number of (Owner of (Target unit of ability being cast)))] at TEMP_Point, Hide revival graphics
Set ReviveGrave = (Units owned by (Owner of (Target unit of ability being cast)) of type Grave)
Set ReviveUnitGroup[(Player number of (Owner of (Target unit of ability being cast)))] = ReviveGrave
Unit Group - Pick every unit in ReviveUnitGroup[(Player number of (Owner of (Target unit of ability being cast)))] and do (Actions)
Loop - Actions
Unit - Remove (Picked unit) from the game
Custom script: call RemoveLocation(udg_ReviveLocation[GetConvertedPlayerId(GetTriggerPlayer())])
Custom script: call DestroyGroup(udg_ReviveGrave)
Custom script: call DestroyGroup(udg_ReviveUnitGroup[GetConvertedPlayerId(GetOwningPlayer(GetSpellTargetUnit()))])
Custom script: call RemoveLocation(udg_TEMP_Point)
 

Dirac

22710180
Reaction score
147
My trigger does the exact thing as yours without the 7 location variables, it should works just fine
 
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