HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Damage +/- Based On Terrain Height

04-13-2007, 10:50 PM#1
PsycoMarauder
Hi, thanks for looking at the thread. I was wondering how I could go about adding/subtracting damage done based on terrain height. Is this possible? Or am I going to have to do it by "If units are in x range of y" or even worse, by regions?
Thanks in advance for you help, Psycomarauder
04-13-2007, 10:54 PM#2
Earth-Fury
Collapse JASS:
native GetLocationZ             takes location whichLocation returns real

Use a periodic event that adjusts damage based on height.
04-14-2007, 01:43 AM#3
1337D00D
You might wanna be careful with that, because it can cause desyncs when used on spell-caused terrain deformations, like War Stomp.
04-14-2007, 04:28 AM#4
PsycoMarauder
and I was wondering if by desync you meant it would cause errors in abilities. I doubt that I will be making many abilities for the map, except maybe a few trigger based ones and Heal. Do you think the desync problem will happen alot, or is it still worth it to put the trigger in?
04-14-2007, 06:15 AM#5
Ammorth
Just avoid an ability based off thunderclap and (I think) shockwave and you should be fine.
04-14-2007, 06:23 AM#6
eclips)e
Just curious...

Does GetLocationZ not take terrain deformations into account and returns the original terrain height before the deformation was created?

and...

What would happen if it did desync?
04-14-2007, 06:33 AM#7
PsycoMarauder
Umm...guys can you help me a bit with the jass..I dont know jass...:(
Can you please explain just how I could use the jass to do the kind of terrain height triggers im trying to do?
04-14-2007, 06:42 AM#8
Pyrogasm
Do something like this:
Trigger:
Collapse Events
---- Your events ----
Collapse Conditions
---- Your conditions ----
Collapse Actions
Custom script: local real udg_LocationZ <THIS MUST BE FIRST>
Set TempPoint = (Some point somewhere)
Custom script: Set udg_LocationZ = GetLocationZ(udg_TempPoint)
---- Refer to "LocationZ" from now on in this trigger as the Z height of the point ----
In the first and third lines, just change "udg_LocationZ" to "udg_" + Your variable's name.

In the third line, change "udg_TempPoint" to "udg_" + the name of the variable used in line two.

"udg_" is just a prefix that goes in front of variables declared in the variable editor.
04-14-2007, 10:06 AM#9
Captain Griffen
- JASS for this is highly recommended.
- Don't create a new location each time - move an existing one. MUCH faster.
- If you want to do it properly, you'll need dynamic triggers to catch the damage done, and some method of sorting ability damage out from normal damage.
04-15-2007, 05:41 AM#10
PsycoMarauder
Thanks you guys. Most of it what you said means nothing to me, as of yet.. But I plan on decoding each piece of your help into stupid stuff I can understand, and maybe in like a month or so I'll know how to do it :)