Replace unit after 5 kills...

Mr.Tutorial

Hard in the Paint.
Reaction score
42
So pretend a footman get's 5 kills. Then I want that footman to get replaced by a stronger unit but only if he has gotten 5 kills.
 

hopy

Active Member
Reaction score
64
Trigger:
  • Replace Footman
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Unit-type of (Killing unit)) Equal to Footman
    • Actions
      • Set Interger = (Interger + 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Interger Equal to 5
        • Then - Actions
          • Unit - Replace (Killing unit) with a Knight using The old unit's relative life and mana
        • Else - Actions

That should work. Keep in mind that if there are multiple Footman you'll need to make Intreger an array for every Footman.
 

Mr.Tutorial

Hard in the Paint.
Reaction score
42
Couldn't I just move the condition down to the If/then/else condition and use an "And Multiple Conditions" and put both those under it for footman only.

Like this


Trigger:
  • Upgrade Surf to Swordsmen
    • Events
      • Unit - A unit Dies
    • Conditions
    • Actions
      • Set Integer = (Integer + 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • And - All (Conditions) are true
            • Conditions
              • Integer Equal to 5
              • ((Dying unit) belongs to an enemy of (Owner of (Killing unit))) Equal to True
              • (Unit-type of (Killing unit)) Equal to |c0000ccffSurf
        • Then - Actions
          • Unit - Replace (Killing unit) with a |c0000ccffSwordsman|r using The new unit's default life and mana
        • Else - Actions
 

hopy

Active Member
Reaction score
64
Couldn't I just move the condition down to the If/then/else condition and use an "And Multiple Conditions" and put both those under it for footman only.

Like this


Trigger:
  • Upgrade Surf to Swordsmen
    • Events
      • Unit - A unit Dies
    • Conditions
    • Actions
      • Set Integer = (Integer + 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • And - All (Conditions) are true
            • Conditions
              • Integer Equal to 5
              • ((Dying unit) belongs to an enemy of (Owner of (Killing unit))) Equal to True
              • (Unit-type of (Killing unit)) Equal to |c0000ccffSurf
        • Then - Actions
          • Unit - Replace (Killing unit) with a |c0000ccffSwordsman|r using The new unit's default life and mana
        • Else - Actions

Well... no. If you use that trigger the "Set Integer = (Integer + 1)" would play even if a Peasant would kill a unit.
You have to:
- Check if the Killing unit is a |c0000ccffSurf.
- Set Intreger +1
- If Intreger = 5
- Replace unit.
 

Sirroelivan

Gunnerkrigg Court
Reaction score
95
What you just do is use the unit's custom value for tracking the number of kills. (That is, if you're not using custom value for something else yet.)
 

Accname

2D-Graphics enthusiast
Reaction score
1,462
what hopy wrote is not MUI, if you do not want this trigger to work for more units than a single footman in your map it wont work this way.

the best way would be to use a hashtable. also okay but not as good as the hashtable would be to use the custom value.
 

Mr.Tutorial

Hard in the Paint.
Reaction score
42
What you just do is use the unit's custom value for tracking the number of kills. (That is, if you're not using custom value for something else yet.)

No I haven't, and I also do not know how to use unit's custom values.

what hopy wrote is not MUI, if you do not want this trigger to work for more units than a single footman in your map it wont work this way.

the best way would be to use a hashtable. also okay but not as good as the hashtable would be to use the custom value.

I want it to work with all the units of type "Surf" or in other words "Peasant"

- Check if the Killing unit is a |c0000ccffSurf.
- Set Intreger +1
- If Intreger = 5
- Replace unit.

@ hopy... I dont know wat your gettin' at with that, perhaps a rebuilt trigger, because I'm stumped and I've tried a few different things...
 

Ashlebede

New Member
Reaction score
43
Custom value or hashtables it is. That would allow you to store an integer for a single unit. You can retrieve it later. By default, a unit's custom value is 0 ; at 5th kill, the custom value is 4.

Trigger:
  • Upgrade Surf to Swordsmen
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Unit-type of (Killing unit)) Equal to Surf
      • ((Dying unit) belongs to an enemy of (Owner of (Killing unit))) Equal to True
    • Actions
      • Unit - Set the custom value of (Killing unit) to ((Custom value of (Killing unit)) + 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Custom value of (Killing unit)) Equal to 4
        • Then - Actions
          • Unit - Replace (Killing unit) with a Swordsman using The new unit's default life and mana
        • Else - Actions
 

Accname

2D-Graphics enthusiast
Reaction score
1,462
no it would be 5.

first kill, value set to 0 + 1 = 1
second kill, value set to 1 + 1 = 2
third kill, value set to 2 + 1 = 3
fourth kill, value set to 3 + 1 = 4
fifth kill, value set to 4 + 1 = 5
 
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