HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Retribution Aura

07-22-2006, 05:20 PM#1
Daelin
I haven't posted any new spells lately, because I've worked intensely on RotHE material. But since I started making spells for RotHE, I thought to make another special public spell as well. Here it is!

Retribution Aura: If an unit under the aura is directly stroke by an enemy spell, then all units under the aura lose 5% of their mana points. Part of the resulting mana causes either damage, mana loss, or a chance to silence the enemy unit for a short duration.

Note: If unit is under the effect of multiple auras, then the aura with the most mana is chosen.

Enjoy and place your comments! The model of the aura has been posted at the gallery, but is included into the map as well... I hope nobody minds, it's very small.

~Daelin
Attached Images
File type: jpgRetribution.jpg (155.1 KB)
Attached Files
File type: w3xRetribution Aura.w3x (80.3 KB)
07-22-2006, 07:36 PM#2
Archian
Useful in some maps, well done.
However, you shouldn't have made all those Banshees, they're immune to spells
07-22-2006, 08:40 PM#3
Vexorian
The spell and code themselves are good.

only issues:
- The banshees made it hard for me to test it, for one second I thought it wasn't working, had to find the enemy sorcs and saw the real effect of the aura. Maybe replace the banshees with those creeps that love to cast spells on units?
- The model seemed too shiny for an aura model, not a big deal but that's too flashy in my opinion.

Anyways approving
07-22-2006, 08:43 PM#4
PipeDream
This lags something awful, and not just on first cast.
"stroke" -> "struck"
traditional tag text for mana burn is a blue
TriggerSleepAction is only remotely useful as "TriggerSleepAction(0.)" and it shows
your probabilities are not probabilities. "GetRandomInt(0,100)<= Retribution_RootPercentage()*damage" Huh? Well at least explain how it works at the declaration of Retribution_RootPercentage. also change GetRandomInt to GetRandomReal
I don't think I saw silence fire once, are you sure it works?
"call GroupEnumUnitsInRange(g, GetUnitX(aux), GetUnitY(aux), area, Condition(function Retribution_IsCaster))" leaks a boolexpr. there are a couple instances of this.
"if AuxX*AuxX-AuxY*AuxY <= area*area then" -> "if AuxX*AuxX+AuxY*AuxY <= area*area then"
BTW, set p = null is unnecessary, as one does not create or destroy players.
07-22-2006, 08:46 PM#5
Daelin
Quote:
Originally Posted by Vexorian
Maybe replace the banshees with those creeps that love to cast spells on units?

Sure... I'll do that in the morning.

Quote:
Originally Posted by Vexorian
The model seemed too shiny for an aura model, not a big deal but that's too flashy in my opinion.

Actually, that can be replaced. :)
07-22-2006, 08:55 PM#6
Vexorian
ouch fix the leaks. I did not experience lag, pipedream although my uber comp is probably to blame for that ...
07-23-2006, 07:46 AM#7
Daelin
Quote:
Originally Posted by PipeDream

"call GroupEnumUnitsInRange(g, GetUnitX(aux), GetUnitY(aux), area, Condition(function Retribution_IsCaster))" leaks a boolexpr. there are a couple instances of this.
"if AuxX*AuxX-AuxY*AuxY <= area*area then" -> "if AuxX*AuxX+AuxY*AuxY <= area*area then"
BTW, set p = null is unnecessary, as one does not create or destroy players.

Hmm... I did not experience lag either. Oh well, I'll try to see what I can do about it.

Quote:
Originally Posted by PipeDream
traditional tag text for mana burn is a blue
Yes, but this is not mana burn. The damage taken and mana loss are independent. It can hit units which cast abilities that require no mana, and they have practically no mana. It will deal only damage, and do a possible silence. This is practically my tag, not using or simulating Mana Burn tag.

[quote=PipeDream]TriggerSleepAction is only remotely useful as "TriggerSleepAction(0.)" and it shows your probabilities are not probabilities.[/QUOTE
I don't get what you mean by "my probabilities are not probabilities".

Quote:
Originally Posted by PipeDream
"GetRandomInt(0,100)<= Retribution_RootPercentage()*damage" Huh?
damage variable stores the percentage of mana used in the effect of the spell. For example, for the first level, percentage is 15%. That means that 15% of the mana gathered is dealt in damage, 15% represents the mana loss, and the rest 15% of the mana amount multiplied with Retribution_RootPercentage() is the chance of success... Pretty simple.

Quote:
Originally Posted by PipeDream
also change GetRandomInt to GetRandomReal
Oops, forgot to do that. Thanks!

Quote:
Originally Posted by PipeDream
I don't think I saw silence fire once, are you sure it works?
I'm certain about this. I tested the spell A LOT!

Quote:
Originally Posted by PipeDream
"call GroupEnumUnitsInRange(g, GetUnitX(aux), GetUnitY(aux), area, Condition(function Retribution_IsCaster))" leaks a boolexpr.
Do boolexpr leak? Hmm... Is that because of the Condition() function which returns a boolexpr? If so, then yes, I understand and I will change this nevertheless. Thanks for pointing it out! This may be the cause of the lag?!

Done with the rest of the stuff as well! And it's strange that the spell lags. I tried to avoid using any kind of missiles (replaced missiles with Shadow Strike and lightnings wih Chain Lightning) because I know that usually Blizzard stuff are faster. Hmm... This never happened to me before, to experince lag at such a spell. Tell me if it is better now.

~Daelin
07-23-2006, 12:03 PM#8
Vexorian
Yes boolexprs leak . It should be the cause of the lag. But well sometimes lag is caused by the eye candy and the slowness of JASS
07-23-2006, 04:30 PM#9
emjlr3
i experienced no lag at all, nice spell btw and neat aura model
07-23-2006, 07:38 PM#10
PipeDream
I spike whenever I rush a group of enemy sorcs with all 11 friendly sorcs and Jaina. It's repeatable.
Quote:
I don't get what you mean by "my probabilities are not probabilities".
That's two separate quotes. TriggerSleepAction means timing is inconsistent and will work differently on bnet than your singleplayer testing. Timers are needed for reliability for such short delays. Maybe whatever is triggersleepactioned doesn't need precision, but I suspect that is not the case due to the comments.
By percentage I mean you're doing something probabilistic (GetRandomReal(0,100)) but on the right you've got something that is dependent on configuration stuff and can exceed 100. Probability is dimensionless, so your dimensioned configuration will change it in non obvious ways (don't have spell open atm).
Quote:
This may be the cause of the lag?!
No, it's not something that builds up, it's computational spike-probably eye candy as vex suggests. Cleaning the leak can only make it worse in the short term.