Hi,
I am trying to modify defskull's Simple Rank System v1.2.
Basically what I want is a system that allows individual units to rank up to a new unit type after a certain number of kills. For instance, after an archer kills 10 units she is now a ranger (new unit type). However, I was want the trigger to be dependent on an upgrade, so that if you don't have it the unit can't level up. What I have so far levels up the unit but ignores my tech condition. Any thoughts on how to make this trigger work the way I described? The trigger needs to be MUI and any player with the unit+upgrade should be able to use it.
Thanks
Below is an example of defskull's Simple Rank System v1.2, where a footman can rank to a knight after 5 kills, but he needs iron forged swords lvl 3. However, as it is now he ranks without the upgrade.
I am trying to modify defskull's Simple Rank System v1.2.
Basically what I want is a system that allows individual units to rank up to a new unit type after a certain number of kills. For instance, after an archer kills 10 units she is now a ranger (new unit type). However, I was want the trigger to be dependent on an upgrade, so that if you don't have it the unit can't level up. What I have so far levels up the unit but ignores my tech condition. Any thoughts on how to make this trigger work the way I described? The trigger needs to be MUI and any player with the unit+upgrade should be able to use it.
Thanks
Below is an example of defskull's Simple Rank System v1.2, where a footman can rank to a knight after 5 kills, but he needs iron forged swords lvl 3. However, as it is now he ranks without the upgrade.
-
RS Register New Unit
-
Events
-
Unit - A unit enters (Playable map area)
-
-
Conditions
-
(Unit-type of (Triggering unit)) Equal to Footman
-
-
Actions
-
Set RankUnit = (Triggering unit)
-
Custom script: set udg_RankKey = GetHandleId(udg_RankUnit)
-
Set RankUnitKill = 0
-
Hashtable - Save RankUnitKill as (Key UnitKill) of RankKey in RankHashtable
-
-
-
RS Setup Copy
-
Events
-
Map initialization
-
-
Conditions
-
Actions
-
-------- CONFIGURABLES --------
-
-------- LISTS OF RANKS --------
-
Set Rank[1] = Elite Warrior
-
-------- KILL REQUIRED PER RANK --------
-
Set RankKillRequired[1] = 5
-
-------- END OF CONFIGURABLES --------
-
Hashtable - Create a hashtable
-
Set RankHashtable = (Last created hashtable)
-
Custom script: set bj_wantDestroyGroup = true
-
Unit Group - Pick every unit in (Units in (Playable map area) matching ((Unit-type of (Matching unit)) Equal to Footman)) and do (Actions)
-
Loop - Actions
-
Set RankUnit = (Picked unit)
-
Custom script: set udg_RankKey = GetHandleId(udg_RankUnit)
-
Set RankUnitKill = 0
-
Hashtable - Save RankUnitKill as (Key UnitKill) of RankKey in RankHashtable
-
-
-
-
-
RS Event Copy
-
Events
-
Unit - A unit Dies
-
-
Conditions
-
And - All (Conditions) are true
-
Conditions
-
(Unit-type of (Killing unit)) Equal to Footman
-
(Current research level of Iron Forged Swords for (Owner of (Killing unit))) Equal to 3
-
-
-
-
Actions
-
Set RankUnit = (Killing unit)
-
Custom script: set udg_RankKey = GetHandleId(udg_RankUnit)
-
Set RankUnitKill = (Load (Key UnitKill) of RankKey from RankHashtable)
-
Hashtable - Save (RankUnitKill + 1) as (Key UnitKill) of RankKey in RankHashtable
-
Set RankUnitKill = (RankUnitKill + 1)
-
For each (Integer LoopingInteger) from 1 to MaxRank, do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
RankUnitKill Equal to RankKillRequired[LoopingInteger]
-
-
Then - Actions
-
Unit Group - Add RankUnit to RankGroup
-
Set TempLoc = (Position of RankUnit)
-
Custom script: if GetLocalPlayer() == GetOwningPlayer(udg_RankUnit) then
-
Custom script: endif
-
Unit - Replace (Killing unit) with a Knight using The old unit's relative life and mana
-
Special Effect - Create a special effect at TempLoc using Abilities\Spells\Human\MarkOfChaos\MarkOfChaosTarget.mdl
-
Custom script: call RemoveLocation(udg_TempLoc)
-
-
Else - Actions
-
-
-
-
-