Permanent Inmolation with bounty (GUI made)

elpini0

New Member
Reaction score
1
ho ho ho ho!!! :D

I DID IT!! :cool: I CREATED A DAMAGE AURA THAT GIVES BOUNTY!! Whatsmore, I added a TIMED LIGHTNING EFFECT using ONLY GUI!!:D look:

IF YOU DON'T CARE ABOUT MY OWN SUFFERING, JUMP TO THE BOTTOM OF THE POST

Spell created: Pain Aura
Objective: Create a permanent inmolation that in stead of making X damage every 1 second, makes 1 damage every (1/X) seconds.
Based on: Unholy Aura (at first i used negative life regen, but then i realized about the bounty issue)
Spell set-up:
-Set the increase of Life Regen and movement speed of the spell to zero.
-Set the affected units to YOURSELF

Now, you might be wondering why do i do this. The answer:

-At first I tried (after several failed attempts of modifying auras, triggers and buffs) applying the aura only to enemies. This way I could make a periodic event every (1/X) seconds that picks up every unit with the buff Pain Aura and deal 1 damage (trigger example)

Trigger:
  • PainAura
    • Events
      • Time - Every 0.06 seconds of game time
    • Conditions
    • Actions
      • Unit group - Pick every unit in (Units in (Playable map area)) and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • If ((Picked unit) has buff Pain Aura ) Equal to True
            • Then - Actions
              • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) - 1.00)
            • Else - Actions


Then I realized that GUI triggers didn't offer me the possibility of identifying who the owner of the aura is. :banghead: So after testing different combinations of triggers and breaking my ass out thinking of alternatives, I thought of simply not getting bounty. :nuts:

Then, another idea cam to my mind: :D Creating a dummy that exploded using the gobling ability. But ERROR: :banghead: I came up with the same problem... There is no condition "((Adquired ability) is Pain Aura) Equal to True" or anything like that. :(

Finally, in my way through the huge corridors of GUI menus, bars and options, i came up with this::thup:

Trigger:
  • Unit group - Pick every unit in (Units within 512.00 of (Position of PainAuraCaster)) and do (Actions)


HAHA BINGO!!:cool: But how can we know who the caster of an aura that only affects to enemies is??:confused: Answer: we can't.:thdown:

:eek:IDEA!!:eek: Why not making my own heroe as target of the aura, then picking all units in map with the aura and making an effect??

The result: My trigger :D

Trigger:
  • Pain Aura
    • Events
      • Time - Every 0.06 seconds of game time
    • Conditions
    • Actions
      • -------- First, check which units in map have the aura --------
      • Unit group - Pick every unit in (Units in (Playable map area)) and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Condiciones
              • If ) ((Picked unit) has buff Pain Aura ) Igual a True
            • Then - Actions
              • -------- Then, for each caster we set him as a variable --------
              • Set PainAuraCaster = (Picked unit)
              • -------- Aftwerwards, we pick all units within desired Aura range --------
              • Unit Group - Pick every unit in (Units within 900.00 of (Position of PainAuraCaster)) and do (Actions)
                • Loop - Actions
                  • -------- And now, our Aura effect, only affecting enemies --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Condiciones
                      • If ) ((Picked unit) is alive) Igual a True
                      • If ) ((Picked unit) belongs to an enemy of (Owner of PainAuraCaster)) Igual a True
                    • Then - Acciones
                      • -------- Using this great unit action, we grant that our hero gets his bounty --------
                      • Unit - Cause PainAuraCaster to damage (Picked unit), dealing (1.00 x (Real((Level of Pain Aura for PainAuraCaster)))) damage of attack type Spells and damage type <desired type>
                    • Else - Actions
            • Else - Actions


Whatsmore, once i managed to get my spell I decided to create a coooool effect, and i thought of lightning. But wow... :banghead: Problems everywhere...

First I tried with this:

Trigger:
  • Pain Aura
    • Events
      • Time - Every 0.06 seconds of game time
    • Conditions
    • Actions
      • -------- First, check which units in map have the aura --------
      • Unit group - Pick every unit in (Units in (Playable map area)) and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Condiciones
              • If ) ((Picked unit) has buff Pain Aura ) Igual a True
            • Then - Actions
              • -------- Then, for each caster we set him as a variable --------
              • Set PainAuraCaster = (Picked unit)
              • -------- Aftwerwards, we pick all units within desired Aura range --------
              • Unit Group - Pick every unit in (Units within 900.00 of (Position of PainAuraCaster)) and do (Actions)
                • Loop - Actions
                  • -------- And now, our Aura effect, only affecting enemies --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Condiciones
                      • If ) ((Picked unit) is alive) Igual a True
                      • If ) ((Picked unit) belongs to an enemy of (Owner of PainAuraCaster)) Igual a True
                    • Then - Acciones
                      • -------- Using this great unit action, we grant that our hero gets his bounty --------
                      • Unit - Cause PainAuraCaster to damage (Picked unit), dealing (1.00 x (Real((Level of Pain Aura for PainAuraCaster)))) damage of attack type Spells and damage type <desired type>
                      • Lightning - Create a Lightning Chain - Main lightning effect from source (Position of PainAuraCaster) to target (Position of (Picked unit))
                      • Wait 0.06 seconds
                      • Lightning - Destroy (Last created lightning effect)
                    • Else - Actions
            • Else - Actions


When I tested this, guess what happened:

Lightnings didn't get removed. This is because while waiting 0.06 seconds, Last created lightning changes for more that 1 target.

Final trigger:

IF YOU DON'T CARE ABOUT MY OWN SUFFERING, START READING HERE

(At the Initialization trigger, do (Create Hashtable) -> (Set hastTable= (Last created Hashtable))
(Starting value of LightningNumber = 0)

Trigger:
  • Pain Aura
    • Events
      • Time - Every 0.06 seconds of game time
    • Conditions
    • Actions
      • -------- First, check which units in map have the aura --------
      • Unit group - Pick every unit in (Units in (Playable map area)) and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Condiciones
              • If ) ((Picked unit) has buff Pain Aura ) Igual a True
            • Then - Actions
              • -------- Then, for each caster we set him as a variable --------
              • Set PainAuraCaster = (Picked unit)
              • -------- Aftwerwards, we pick all units within desired Aura range --------
              • Unit Group - Pick every unit in (Units within 900.00 of (Position of PainAuraCaster)) and do (Actions)
                • Loop - Actions
                  • -------- And now, our Aura effect, only affecting enemies --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Condiciones
                      • If ) ((Picked unit) is alive) Igual a True
                      • If ) ((Picked unit) belongs to an enemy of (Owner of PainAuraCaster)) Igual a True
                    • Then - Acciones
                      • -------- Using this great unit action, we grant that our hero gets his bounty --------
                      • Unit - Cause PainAuraCaster to damage (Picked unit), dealing (1.00 x (Real((Level of Pain Aura for PainAuraCaster)))) damage of attack type Spells and damage type <desired type>
                      • Lightning - Create a Lightning Chain - Main lightning effect from source (Position of PainAuraCaster) to target (Position of (Picked unit))
                      • Hashtable - Save Handle Of(Last created lightning effect) as 0 of LightningNumber in hashTable
                      • Set LightningNumber = (LightningNumber + 1)
                    • Else - Actions
            • Else - Actions



Trigger:
  • LightningLoop
    • Events
      • Time - Every 0.06 seconds of game time
    • Conditions
      • LightningNumber Greater than 0 //As it is a periodic event, starting with a substraction, it is needed to set this condition
    • Actions
      • Set LightningNumber = (LightningNumber - 1)
      • Lightning - Destroy (Load 0 of LightningNumber in hashTable)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • LightningNumber Greater than 0
        • Then - Actions
          • Trigger - Run (This trigger) (checking conditions)
        • Else - Actions


How does this trigger work? Its quite simple:

Every 0.06 seconds happens this:
-1) For X units within range, you create X lightnings
-2) In order, you set a space in the hashTable containing each lightning ID

EXAMPLE OF HASHTABLE

..............................|...First lightning......|. Second lightning ..| ... | N lightning
AS(down) \\ OF(right) |..... created .........|...... created .........| ... | created
...............0..............| LightningNumber=0| LightningNumber=1 | ... | LightningNumber=N-1

This way, we now have N values in the positions 0 to N-1 of our hashTable.
-3) Our final result of LightningNumber was N, and we want to destroy the last lightning which has index N-1 in our hashTable. Thats why we make the inverse operation
-4) We loop the trigger to run N times, and finally set LightningNumber = 0.

DONE!! The result is very nice, and it doesn't require any JASS knowledge: only TIME and EFFORT.

I hope this information was interesting and useful for some people :cool:
 

Tru_Power22

You can change this now in User CP.
Reaction score
144
Cool story bro.

Why not post it in the tutorials and resources as a spell. It would be more useful to some people.
 

elpini0

New Member
Reaction score
1
Actually, I'm working on this spell. This morning I added to the spell the followign effect:

-1) Deal x damage to every nearby enemy.
-2) Sum up all the damage done
-3) pick up all nearby allies (excluding casting hero)
-4) divide all the damage done by the number of nearby allies (excluding casting hero)
-5) heal every nearby ally by (10%xLevel of Pain Aura)

For this I did the same operation as in the first post, but i changed some variables =D

If anyone is interested in this spell, I'll make a detailed tutorial when I definitely develop the spell.
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • Monovertex Monovertex:
    How are you all? :D
    +1
  • Ghan Ghan:
    Howdy
  • Ghan Ghan:
    Still lurking
    +3
  • The Helper The Helper:
    I am great and it is fantastic to see you my friend!
    +1
  • The Helper The Helper:
    If you are new to the site please check out the Recipe and Food Forum https://www.thehelper.net/forums/recipes-and-food.220/
  • Monovertex Monovertex:
    How come you're so into recipes lately? Never saw this much interest in this topic in the old days of TH.net
  • Monovertex Monovertex:
    Hmm, how do I change my signature?
  • tom_mai78101 tom_mai78101:
    Signatures can be edit in your account profile. As for the old stuffs, I'm thinking it's because Blizzard is now under Microsoft, and because of Microsoft Xbox going the way it is, it's dreadful.
  • The Helper The Helper:
    I am not big on the recipes I am just promoting them - I use the site as a practice place promoting stuff
    +2
  • Monovertex Monovertex:
    @tom_mai78101 I must be blind. If I go on my profile I don't see any area to edit the signature; If I go to account details (settings) I don't see any signature area either.
  • The Helper The Helper:
    You can get there if you click the bell icon (alerts) and choose preferences from the bottom, signature will be in the menu on the left there https://www.thehelper.net/account/preferences
  • The Helper The Helper:
    I think I need to split the Sci/Tech news forum into 2 one for Science and one for Tech but I am hating all the moving of posts I would have to do
  • The Helper The Helper:
    What is up Old Mountain Shadow?
  • The Helper The Helper:
    Happy Thursday!
    +1
  • Varine Varine:
    Crazy how much 3d printing has come in the last few years. Sad that it's not as easily modifiable though
  • Varine Varine:
    I bought an Ender 3 during the pandemic and tinkered with it all the time. Just bought a Sovol, not as easy. I'm trying to make it use a different nozzle because I have a fuck ton of Volcanos, and they use what is basically a modified volcano that is just a smidge longer, and almost every part on this thing needs to be redone to make it work
  • Varine Varine:
    Luckily I have a 3d printer for that, I guess. But it's ridiculous. The regular volcanos are 21mm, these Sovol versions are about 23.5mm
  • Varine Varine:
    So, 2.5mm longer. But the thing that measures the bed is about 1.5mm above the nozzle, so if I swap it with a volcano then I'm 1mm behind it. So cool, new bracket to swap that, but THEN the fan shroud to direct air at the part is ALSO going to be .5mm to low, and so I need to redo that, but by doing that it is a little bit off where it should be blowing and it's throwing it at the heating block instead of the part, and fuck man
  • Varine Varine:
    I didn't realize they designed this entire thing to NOT be modded. I would have just got a fucking Bambu if I knew that, the whole point was I could fuck with this. And no one else makes shit for Sovol so I have to go through them, and they have... interesting pricing models. So I have a new extruder altogether that I'm taking apart and going to just design a whole new one to use my nozzles. Dumb design.
  • Varine Varine:
    Can't just buy a new heatblock, you need to get a whole hotend - so block, heater cartridge, thermistor, heatbreak, and nozzle. And they put this fucking paste in there so I can't take the thermistor or cartridge out with any ease, that's 30 dollars. Or you can get the whole extrudor with the direct driver AND that heatblock for like 50, but you still can't get any of it to come apart
  • Varine Varine:
    Partsbuilt has individual parts I found but they're expensive. I think I can get bits swapped around and make this work with generic shit though
  • Ghan Ghan:
    Heard Houston got hit pretty bad by storms last night. Hope all is well with TH.
  • The Helper The Helper:
    Power back on finally - all is good here no damage

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top