Moderator
M
Moderator
12th Dec 2015
IcemanBo: Too long time as NeedsFix. Rejected.
14:06, 28th Sep 2009
PurplePoot:
IcemanBo: Too long time as NeedsFix. Rejected.
14:06, 28th Sep 2009
PurplePoot:
Q&A
Q:Is it M...
A:Yes it is MUI i told you already
Q:Were can it..
A:It can be usefull on RPG maps mostly. Think were it could suit best for you
Q:How to imp...
A:Just copy the whole folder into your map
Q:Shall i...
A:Of course! Every feedback is welcome
Q:No i mean...
A:Give me credit if you use it? Well of course
Q:If i find...
A:Contact me at my email or pm me
Q:How can you...
A:I know what im about to ask myself, thats why i answer mine question faster that i can write them.
Known bugsThe only one i can imagine, are several problems with the blinking breath bar. But it depends mostly on your computer
Drowninit

Events


Map initialization

Conditions

Actions


Game - Display to (All players) for 900.00 seconds the text: |CFFFF9835For anyth...


Hashtable - Create a hashtable


Set HASH_Drowning = (Last created hashtable)


Trigger - Run DrownputinhashInit <gen> (ignoring conditions)
Drownputinhash

Events


Unit - A unit enters (Playable map area)

Conditions


((Unit-type of (Entering unit)) is A flying unit) Equal to (==) False

Actions


Hashtable - Save Handle Of(Entering unit) as Drown_int of 1 in HASH_Drowning


Hashtable - Save 100.00 as Drown_int of 2 in HASH_Drowning


Set Drown_int = (Drown_int + 1)
Drownputinhash

Events


Unit - A unit enters (Playable map area)

Conditions


((Unit-type of (Entering unit)) is A flying unit) Equal to (==) False

Actions


Hashtable - Save Handle Of(Entering unit) as Drown_int of 1 in HASH_Drowning


Hashtable - Save 100.00 as Drown_int of 2 in HASH_Drowning


Set Drown_int = (Drown_int + 1)
Drowndecvalue

Events


Time - Every 0.10 seconds of game time

Conditions

Actions


Do Multiple ActionsFor each (Integer Drown_temp) from 1 to Drown_int, do (Actions)



Loop - Actions




Set Drown_temp_point_A = (Position of (Load Drown_temp of 1 in HASH_Drowning))





Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)






If - Conditions







((Load Drown_temp of 1 in HASH_Drowning) is alive) Equal to (==) True







(Terrain pathing at Drown_temp_point_A of type Peon Harvest Pathing is off) Equal to (==) True






Then - Actions







Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)








If - Conditions









(Load Drown_temp of 2 from HASH_Drowning) Greater than or equal to (>=) 1.00








Then - Actions









-------- Change the conditions above in which the unit will lose its custom value. The best, would be to add a special terrain in the sea and set the conditions so that it will lose breath in the selected tile --------









Set Drown_leak_dest_bool = True









-------- Add in the if/then/else statement bellow some exceptions if you wan't using if/then/else so that the breathe is longer shorter for every unit. E.g. if the unit is naga, breathe might decrease in a smaller rate than a human, or night elf etc. --------










Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)











If - Conditions












(Unit-type of (Load Drown_int of 1 in HASH_Drowning)) Equal to (==) Naga Myrmidon











Then - Actions












Set Drown_rate = 0.20











Else - Actions












Set Drown_rate = 0.50









Hashtable - Save ((Load Drown_temp of 2 from HASH_Drowning) - Drown_rate) as Drown_temp of 2 in HASH_Drowning









Set Drown_tempstring = |C004444AA









-------- Feel free to change the color that indicates the how much breath the unit has (also can change size etc. By default i set it to light blue for remaining breath and white for the used breath --------










Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)











If - Conditions












(Load Drown_temp of 2 from HASH_Drowning) Greater than (>) 1.00











Then - Actions












Do Multiple ActionsFor each (Integer Not_integer_A) from 1 to (Integer((Load Drown_temp of 2 from HASH_Drowning))), do (Actions)













Loop - Actions














Set Drown_tempstring = (Drown_tempstring + l)












Set Drown_tempstring = (Drown_tempstring + |C00888888)













Do Multiple ActionsFor each (Integer Not_integer_A) from (Integer((Load Drown_temp of 2 from HASH_Drowning))) to 100, do (Actions)














Loop - Actions















Set Drown_tempstring = (Drown_tempstring + l)












Floating Text - Create floating text that reads Drown_tempstring at Drown_temp_point_A with Z offset 200.00, using font size 3.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency












Floating Text - Change (Last created floating text): Disable permanence












Floating Text - Change the lifespan of (Last created floating text) to 0.12 seconds












Set Drown_tempstring = <Empty String>











Else - Actions








Else - Actions









-------- You might wanna change this cause they die too damn fast (in 2.5 seconds actually) --------









Unit - Cause (Load Drown_temp of 1 in HASH_Drowning) to damage (Load Drown_temp of 1 in HASH_Drowning), dealing ((Max life of (Load Drown_temp of 1 in HASH_Drowning)) / 25.00) damage of attack type Chaos and damage type Slow Poison







Custom script: call RemoveLocation(udg_Drown_temp_point_A)






Else - Actions







Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)








If - Conditions









(Load Drown_temp of 2 from HASH_Drowning) Less than (<) 100.00








Then - Actions









Set Drown_leak_dest_bool = True









-------- This will increase the units breath in time --------









Hashtable - Save ((Load Drown_temp of 2 from HASH_Drowning) + 2.00) as Drown_temp of 2 in HASH_Drowning










Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)











If - Conditions












((Load Drown_temp of 1 in HASH_Drowning) is alive) Equal to (==) True











Then - Actions












Do Multiple ActionsFor each (Integer Not_integer_A) from 1 to (Integer((Load Drown_temp of 2 from HASH_Drowning))), do (Actions)













Loop - Actions














Set Drown_tempstring = (Drown_tempstring + l)












Set Drown_tempstring = (Drown_tempstring + |C00888888)













Do Multiple ActionsFor each (Integer Not_integer_A) from (Integer((Load Drown_temp of 2 from HASH_Drowning))) to 100, do (Actions)














Loop - Actions















Set Drown_tempstring = (Drown_tempstring + l)












Floating Text - Create floating text that reads Drown_tempstring at Drown_temp_point_A with Z offset 200.00, using font size 3.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency












Floating Text - Change (Last created floating text): Disable permanence












Floating Text - Change the lifespan of (Last created floating text) to 0.12 seconds












Set Drown_tempstring = <Empty String>











Else - Actions








Else - Actions







Custom script: call RemoveLocation(udg_Drown_temp_point_A)


Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)



If - Conditions




Drown_leak_dest_bool Equal to (==) False



Then - Actions




-------- This is the leak destroyer. Basically, once there are no more units that lose breath, it recreates the hashtable --------




Set Drown_int = (Drown_int + 1)




Trigger - Run DrownputinhashInit <gen> (ignoring conditions)



Else - Actions


Set Drown_leak_dest_bool = False