Snippet Set Damage

vypur85

Hibernate
Reaction score
806
This is a simple system which allows you to set/add a unit's damage to a certain value, determined by you. At the moment, the system only allows you to set/add up to 99999 damage at max. Not sure if this has been submitted before though.

How to implement:
  1. Copy Damage System Init and Damage System triggers to your map.
  2. You need to have 5 Item Damage Bonus abilities, 10 levels each. The damage amount is adjusted accordingly for each ability (check out the map).
  3. And you're done.
  4. To SET the damage to a unit, set Int_DamageSys_SETdamage to your desired value and Unit_DamageSys_Unit to your desired unit, and then RUN the Damage System trigger.
  5. To ADD the damage to a unit, set Int_DamageSys_ADDdamage to your desired value and Unit_DamageSys_Unit to your desired unit, and then RUN the Damage System trigger.

Example of usage:
Code:
Some trigger
    Events
    Conditions
    Actions
        Set Int_DamageSys_SETdamage = 12
        Set Unit_DamageSys_Unit = (Triggering unit)
        Trigger - Run Damage System <gen> (checking conditions)
This will set the Triggering unit's damage to 12.

Triggers:
Code:
Damage System Init
    Events
        Map initialization
    Conditions
    Actions
        Set Int_DamageSys_DigitCount = 5
        Set Abi_DamageSys_Damage[1] = Damage (1x) 
        Set Abi_DamageSys_Damage[2] = Damage (10x) 
        Set Abi_DamageSys_Damage[3] = Damage (100x) 
        Set Abi_DamageSys_Damage[4] = Damage (1000x) 
        Set Abi_DamageSys_Damage[5] = Damage (10000x)

Code:
Damage System
    Events
    Conditions
    Actions
        -------- Required if unit does not have the dummy ability to begin with --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Level of Abi_DamageSys_Damage[1] for Unit_DamageSys_Unit) Equal to 0
            Then - Actions
                For each (Integer A) from 1 to Int_DamageSys_DigitCount, do (Actions)
                    Loop - Actions
                        Unit - Add Abi_DamageSys_Damage[(Integer A)] to Unit_DamageSys_Unit
            Else - Actions
        -------- Determine Current Damage --------
        Set Int_DamageSys_CurrentDmg = 0
        For each (Integer A) from 1 to Int_DamageSys_DigitCount, do (Actions)
            Loop - Actions
                Set Int_DamageSys_CurrentDmg = (Int_DamageSys_CurrentDmg + (((Level of Abi_DamageSys_Damage[(Integer A)] for Unit_DamageSys_Unit) - 1) x (Integer((Power(10.00, ((Real((Integer A))) - 1.00)))))))
        -------- Add Damage --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                Int_DamageSys_ADDdamage Greater than 0
            Then - Actions
                Set Int_DamageSys_ADDdamage = (Int_DamageSys_ADDdamage + Int_DamageSys_CurrentDmg)
                For each (Integer A) from 1 to Int_DamageSys_DigitCount, do (Actions)
                    Loop - Actions
                        Set Int_General = ((Int_DamageSys_ADDdamage mod (Integer((Power(10.00, (Real((Integer A)))))))) / (Integer((Power(10.00, ((Real((Integer A))) - 1.00))))))
                        Unit - Set level of Abi_DamageSys_Damage[(Integer A)] for Unit_DamageSys_Unit to (Int_General + 1)
            Else - Actions
                For each (Integer A) from 1 to Int_DamageSys_DigitCount, do (Actions)
                    Loop - Actions
                        Unit - Set level of Abi_DamageSys_Damage[(Integer A)] for Unit_DamageSys_Unit to 1
                        Set Int_General = ((Int_DamageSys_SETdamage mod (Integer((Power(10.00, (Real((Integer A)))))))) / (Integer((Power(10.00, ((Real((Integer A))) - 1.00))))))
                        Unit - Set level of Abi_DamageSys_Damage[(Integer A)] for Unit_DamageSys_Unit to (Int_General + 1)
        Set Int_DamageSys_ADDdamage = 0
        Set Int_DamageSys_SETdamage = 0


It's just something simple inspired by Tom Jones set max HP.

Additional note:
The system above is also usable for setting Armor. All you need to do is to replace Item Damage Bonus to Item Armor Bonus.

Hope you like it.
 

Attachments

  • Damage System.w3x
    19.6 KB · Views: 807
It could be useful if it was Jass and UnitProperties/Bonus didn't exist. Still, it's a good feature for the GUI users. :thup:
 
Very good job. Originnaly requested by me. Vypur85 - Very nice idea. I couldn't thought of that for a milion years :), joking... Gonna return the favour in anyway as possible ;). Take care
 
> easier to read whit GUi tags

I despise WC3 tags :p. I hate it when it wraps the texts, which makes them harder and confusing to read. Code tags are better :).
 
Would this work with any item ability that isn't levelable?
 
Don't get you. What do you mean item ability that isn't levelable?

It works as it should - by setting damage values of certain unit of your liking. :)
 
It only works for units, if that's what you mean. You can't set the damage of items, but you can detect the item and set damage that way.
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • Varine Varine:
    A probate is usually done with a will, yes? If so I am sorry for your loss
    +1
  • The Helper The Helper:
    Yeah Tom, me too sorry for your loss buddy my mom told me she finds out her olds friend died from Google searching them. She had not talked to one of her old friends in a year and found out she died from Google. Also another one in the same session. RIP all of them my sincere condolences Tom
    +1
  • Varine Varine:
    We have some elderly guests that regularly come hang out at the bar at the end of the night, and every once in a while we don't see someone for a few weeks and then someone shows up with their obituary.
  • Varine Varine:
    We usually let them do their memorials there in the morning if they want to and I'll make them some snacks and drinks. There was one guy named Tom that came in like every night and would sit by himself and get a bunch of soup and a glass of wine. idk why but he LOVED our fucking soup, like he would order a fucking quart of it at a time and would always get so sad when we stop doing it for the summer.
    +1
  • Varine Varine:
    But he also loved our calamari, which is another thing I hate but it sells super well so I can't change it. There was one day he came in and was asking me how to make it, because he tried to at home once in the off season when we stop running it and he really wanted it lol
  • Varine Varine:
    I think he's one of the only people I've made recipes for for free because he really wanted a broccoli cheddar, and it was like dude I don't have a recipe, it's just whatever I have, but here, this is how you do it
  • Varine Varine:
    I don't think he ever figured out how to do the calamari in a pan though, like idk how to do that either. He was afraid of the at home deep fryers though and it's like yeah, that's fair, I am too
  • Varine Varine:
    He was just such a sweet old man, we had two servers pregnant and they held a baby shower together, he was soooooo fucking excited to get to see a baby. Unfortunately he died a month or so before they were born
  • The Helper The Helper:
    So I decided to Google some people that I had not seen or heard from in a while and sure enough one of my old best friends, we had a falling out years ago but whatever, find out he died of Pancreatic Cancer in January. I have also lost a few of my closer acquaintances from growing up the last year. Getting old - people die - I kinda thought it was going to be this way a few years ago....
    +2
  • The Helper The Helper:
    Forum running super slow again
  • Ghan Ghan:
    Not really clear from the stats as to what is causing the slowness.
  • Ghan Ghan:
    We get a lot of guest traffic so it may just be the load is getting too high and not from any particular source.
  • Ghan Ghan:
    Looks like the server is maxed out on CPU.
  • Ghan Ghan:
    Oh it looks like a lot of the traffic is Silkroad Forums. That domain isn't protected by Cloudflare.
  • Ghan Ghan:
    But the old Silkroad site is still on its own server. I just had a test site set up on this server for it.
  • Ghan Ghan:
    I just disabled that test site. Let's see if that helps the load.
  • Ghan Ghan:
    Looks much better already.
  • The Helper The Helper:
    I had actually forgot about the Silkroad site. I had asked
  • The Helper The Helper:
    SD Ryoko about it and he said the couple of people left on there really like it, that was a few years ago, maybe I should check back
  • jonas jonas:
    I guess when you're getting old, and the last day of soup season draws near, you start wondering
  • jonas jonas:
    will I make it to the start of the next season? or was this the last time I'll ever have my favorite dish?
  • The Helper The Helper:
    I am doing my first Vibe Coding project. In installed the environment and tools according to instructions but it is all chat doing this for me at my direction. It is fun really and holy shit I might finish in 2 hours what it would have taken a day to in my Access and this would be an electron app complete new
  • Ghan Ghan:
    Good stuff.
  • Ghan Ghan:
    Just make sure it is secure. :)
  • The Helper The Helper:
    It will only be on internal network

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials
      Top