Simple yet complicated revive trigger

xAnaMorphine

Active Member
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
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
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
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
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
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.
  • tom_mai78101 tom_mai78101:
    Thanks for the context.
    +1
  • The Helper The Helper:
    Happy Hump Day!!!
  • Blackveiled Blackveiled:
    TH old fart gotta have a beer with me one of these days
  • The Helper The Helper:
    I am down anytime Blackveiled
  • Blackveiled Blackveiled:
    count on it then cause you don't live that far from me hah
  • The Helper The Helper:
    really that is cool!
  • The Helper The Helper:
    Hey Tom I added a new Weird tag to the News Prefixes
  • The Helper The Helper:
    What is up Blackveiled?
  • Blackveiled Blackveiled:
    Chillin', lurkin'. :D
  • The Helper The Helper:
    I am working on a bunch of site projects right now doing a bunch of behind the scenes stuff and trying to clean up some stuff that I let slide when I got lazy with the site for a few years...
  • The Helper The Helper:
    Are you in Houston Blackveiled or just in Texas?
  • Blackveiled Blackveiled:
    Houston
  • Blackveiled Blackveiled:
    I've been living here since 2014.
  • The Helper The Helper:
    OK banlord we need to get together soon! The only other member of the site I know in Houston is XXX Conan
  • The Helper The Helper:
    and he does not want none lol
  • The Helper The Helper:
    he put up a picture of his mom one time and she was HOT!
  • The Helper The Helper:
    I wish we still had that
  • Blackveiled Blackveiled:
    Lmao you scared him off I see.
  • The Helper The Helper:
    he will be back
  • The Helper The Helper:
    Conan was like 12 when he started here
  • The Helper The Helper:
    I literally think I was his male role model
  • Blackveiled Blackveiled:
    Yeah I was 12 when I started here as well.
  • The Helper The Helper:
    you guys were just kids
  • The Helper The Helper:
    I was in my 30s when i got the Blizzard MVP
  • The Helper The Helper:
    I am 53

    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