• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Footman Skills v1.13

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
I have made a simple spellpack for a captain. I think it can also be used for a footman (not all spells :)).

1. Spell - Drink Water
The captain plays a animation and heals himself (takes some time), while drinking the captain get more damage from everything. for this spell i have used the berserk ability of a troll berserker.

2. Spell - Play Death
The captain starts to act as he were dead.
When you select the captain he stands up and is ready for your next tasks. :)

3. Spell - Proselytize
The captain trys to proselytize his target. This takes some time and should have only a captain.

Give me credits when you use my spells

[trigger=Initalization]
Events
Map initialization
Conditions
Actions
-------- add Hero bonus skill point so you can use all :) --------
Hero - Modify unspent skill points of Captain 0000 <gen>: Add 1 points
-------- Drink Water, heal --------
Set DrinkWaterLevel[1] = 75.00
Set DrinkWaterLevel[2] = 125.00
Set DrinkWaterLevel[3] = 175.00
-------- Play Death, how long wait? --------
Set PlayDeathLevel[1] = 2.00
Set PlayDeathLevel[2] = 1.00
Set PlayDeathLevel[3] = 0.00
-------- Proselytize, how long wait? --------
Set ProselytizeLevel[1] = 5.00
-------- Hashtables --------
Hashtable - Create a hashtable
Set ht_Hashtable = (Last created hashtable)
-------- Cells 0 - 2 (3 Cells) are for the 1. Spell (Drink Water) --------
-------- Cells 3 - 4 (2 Cells) are for the 2. Spell (Play Death) --------
-------- Cells 5 - 6 (2 Cells) are for the 3. Spell (Proselytize) -------- [/trigger]

[trigger=Main TriggerTimer]
Events
Time - Every 0.03 seconds of game time
Conditions
Actions
-------- ------------------- --------
-------- Drink Water --------
-------- ------------------- --------
Unit Group - Pick every unit in ug_DrinkWater and do (Actions)
Loop - Actions
Set tempInt = (Key (Picked unit))
Set tempReal = (Load 1 of tempInt from ht_Hashtable)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
tempReal Less than or equal to 0.00
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Load 0 of tempInt from ht_Hashtable) Equal to 0
Then - Actions
Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Items\AIhe\AIheTarget.mdl
Hashtable - Save Handle Of(Last created special effect) as 2 of tempInt in ht_Hashtable
Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + DrinkWaterLevel[(Level of Drink Water for (Picked unit))])
Hashtable - Save 1 as 0 of (Key (Picked unit)) in ht_Hashtable
Hashtable - Save 1.20 as 1 of (Key (Picked unit)) in ht_Hashtable
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Load 0 of tempInt from ht_Hashtable) Equal to 1
Then - Actions
Special Effect - Destroy (Load 2 of tempInt in ht_Hashtable)
Hashtable - Save 2 as 0 of (Key (Picked unit)) in ht_Hashtable
Hashtable - Save 1.35 as 1 of (Key (Picked unit)) in ht_Hashtable
Else - Actions
Animation - Reset (Picked unit)'s animation
Unit - Unpause (Picked unit)
Unit Group - Remove (Picked unit) from ug_DrinkWater
Else - Actions
Hashtable - Save (tempReal - 0.03) as 1 of tempInt in ht_Hashtable
-------- ----------------- --------
-------- Play Death --------
-------- ----------------- --------
Unit Group - Pick every unit in ug_PlayDeath and do (Actions)
Loop - Actions
Set tempInt = (Key (Picked unit))
Set tempReal = (Load 3 of tempInt from ht_Hashtable)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Load 4 of (Key (Picked unit)) from ht_Hashtable) Equal to False
tempReal Less than or equal to 0.00
Then - Actions
Hashtable - Save True as 4 of tempInt in ht_Hashtable
Unit - Make (Picked unit) Invulnerable
Animation - Play (Picked unit)'s death animation
Selection - Remove (Picked unit) from selection for Player 1 (Red)
Else - Actions
Hashtable - Save (tempReal - 0.03) as 3 of tempInt in ht_Hashtable
-------- ----------------- --------
-------- Proselytize --------
-------- ----------------- --------
Unit Group - Pick every unit in ug_Proselytize and do (Actions)
Loop - Actions
Set tempInt = (Key (Picked unit))
Set tempReal = (Load 5 of tempInt from ht_Hashtable)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
tempReal Less than or equal to 0.00
Then - Actions
Unit - Change ownership of (Load 6 of tempInt in ht_Hashtable) to (Owner of (Picked unit)) and Change color
Unit - Make (Load 6 of tempInt in ht_Hashtable) Vulnerable
Animation - Reset (Picked unit)'s animation
Animation - Reset (Load 6 of tempInt in ht_Hashtable)'s animation
Unit - Unpause (Picked unit)
Unit - Unpause (Load 6 of tempInt in ht_Hashtable)
Unit Group - Remove (Picked unit) from ug_Proselytize
Else - Actions
Hashtable - Save (tempReal - 0.03) as 5 of tempInt in ht_Hashtable
[/trigger]

[trigger=Abilities being casted]
Events
Unit - A unit Starts the effect of an ability
Conditions
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Ability being cast) Equal to Proselytize
Then - Actions
Hashtable - Save Handle Of(Target unit of ability being cast) as 6 of (Key (Triggering unit)) in (Last created hashtable)
Unit - Pause (Triggering unit)
Unit - Pause (Load 6 of (Key (Triggering unit)) in (Last created hashtable))
Unit - Make (Triggering unit) face (Load 6 of (Key (Triggering unit)) in (Last created hashtable)) over 1.00 seconds
Unit - Make (Load 6 of (Key (Triggering unit)) in (Last created hashtable)) face (Triggering unit) over 1.00 seconds
Animation - Play (Triggering unit)'s victory animation
Animation - Play (Load 6 of (Key (Triggering unit)) in (Last created hashtable))'s stand animation, using only Common animations
Unit - Make (Load 6 of (Key (Triggering unit)) in (Last created hashtable)) Invulnerable
Hashtable - Save ProselytizeLevel[(Level of Proselytize for (Triggering unit))] as 5 of (Key (Triggering unit)) in ht_Hashtable
Unit Group - Add (Triggering unit) to ug_Proselytize
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Ability being cast) Equal to Drink Water
Then - Actions
Unit - Pause (Triggering unit)
Animation - Play (Triggering unit)'s stand animation, using only Rare animations
Unit Group - Add (Triggering unit) to ug_DrinkWater
Hashtable - Save 0 as 0 of (Key (Triggering unit)) in ht_Hashtable
Hashtable - Save 2.50 as 1 of (Key (Triggering unit)) in ht_Hashtable
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Ability being cast) Equal to Play Death
Then - Actions
Unit - Pause (Triggering unit)
Hashtable - Save PlayDeathLevel[(Level of Play Death for (Triggering unit))] as 3 of (Key (Triggering unit)) in ht_Hashtable
Hashtable - Save False as 4 of (Key (Triggering unit)) in ht_Hashtable
Unit Group - Add (Triggering unit) to ug_PlayDeath
Else - Actions
[/trigger]

in my case would "Player - Player 1 (Red) Selects a unit" be enough
[trigger=Remove Play Death]
Events
Player - Player 1 (Red) Selects a unit
Player - Player 2 (Blue) Selects a unit
Player - Player 3 (Teal) Selects a unit
Player - Player 4 (Purple) Selects a unit
Conditions
Actions
Unit Group - Pick every unit in ug_PlayDeath and do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Load 4 of (Key (Picked unit)) from ht_Hashtable) Equal to True
(Triggering unit) Equal to (Picked unit)
(Owner of (Picked unit)) Equal to (Owner of (Triggering unit))
Then - Actions
Animation - Reset (Picked unit)'s animation
Unit - Make (Picked unit) Vulnerable
Unit - Unpause (Picked unit)
Unit Group - Remove (Picked unit) from ug_PlayDeath
Else - Actions
[/trigger]

[trigger=Proselytizer is attacked]
Events
Unit - A unit Is attacked
Conditions
Actions
Unit Group - Pick every unit in ug_Proselytize and do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Attacked unit) Equal to (Picked unit)
Then - Actions
Unit - Make (Load 6 of (Key (Picked unit)) in ht_Hashtable) Vulnerable
Animation - Reset (Picked unit)'s animation
Animation - Reset (Load 6 of (Key (Picked unit)) in ht_Hashtable)'s animation
Unit - Unpause (Picked unit)
Unit - Unpause (Load 6 of (Key (Picked unit)) in ht_Hashtable)
Unit Group - Remove (Picked unit) from ug_Proselytize
Else - Actions[/trigger]


v1.0 Release
v1.1 Spells are now MUI
v1.13 Timer checks now every 0.03 second (tip of Adiktuz)


i hope you can understand it, my grammar is very bad as you see :)

Keywords:
Footman, Survival
Contents

Footman Skills v1.1 (Map)

Reviews
12th Dec 2015 IcemanBo: Too long as NeedsFix. Rejected. Remove Play Death should not loop through a unit group. It also lack events for the rest players. Same thing for Proselytizer is attacked. You're referring to last created hashtable in...

Moderator

M

Moderator

12th Dec 2015
IcemanBo: Too long as NeedsFix. Rejected.

Maker, 23rd Sep 2011, Footman Skills v1.13

Remove Play Death should not loop through a unit group. It also lack events for the rest players.
Same thing for Proselytizer is attacked.
You're referring to last created hashtable in Abilities Being Casted.
Additionally, that trigger checks all the abilities in every case. I the ability is Proselytize, it still checks for the other abilities.
Main trigger should be turned off hen the groups are empty.

Needs fix.
 
Top