Snippet Set Damage

vypur85

Hibernate
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

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:
 

Igor_Z

You can change this now in User CP.
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
 

polo2005

Wana start playing LoL? http://tinyurl.com/369as27
Would this work with any item ability that isn't levelable?
 

KaerfNomekop

Swim, fishies. Swim through the veil of steel.
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:
    Eh, whatever. Thanks for listening guys
  • jonas jonas:
    Sure :) Let us know how it ends
  • Varine Varine:
    All of these things will end happily, they're just stressful. And I still lack many good friends that I can go to, and the ones I can are preoccupied with similar things. Thus general chit chat, cuz for some reason TH and Ghan and Tom all actively keep it up.
  • Varine Varine:
    Just gotta keep Miss Mazie up through the week until her shock wears off and she realizes that she still has family all around her, and bossman will do whatever he's going to do and I'll respond appropriately when it happens. Thank you all for the support, I do very much appreciate everyone being here for me through the years
    +3
  • vypur85 vypur85:
    Best of luck Varine!
  • vypur85 vypur85:
    I just gotten myself an offer to work in China. The pay quadruples my current one. Damn.... Not really ready to start a new life there in China.
  • The Helper The Helper:
    I have heard that they pay pretty good to English teachers in China - you would be an expat
  • jonas jonas:
    Cool, what kind of job?
  • Accname Accname:
    I would be careful with jobs in China. They can be hit and miss depending on where in China you go. Places like hong kong / Shengzen / Beijing can be neat. Other places not so much.
  • Accname Accname:
    I would recommend searching for some first person experiences for the city you got the offer in. Especially now when the political situation in China is deteriorating.
  • jonas jonas:
    Accname, long time no see
  • jonas jonas:
    What have you been up to
  • tom_mai78101 tom_mai78101:
    Hey Accname, welcome back.
  • Accname Accname:
    Not much. Working in the Renewable Energy Sector as an IT Consultant. Its okay, but I think I preferred working at the university. It was more relaxed and you met all kinds of crazy people there.
  • vypur85 vypur85:
    I gotten a teaching position for Biology in a college in Wuhan (yes, there)... I suppose it should be fine there (I hope). Many of my ex colleagues are teaching in China as well currently (none in Wuhan though)
  • vypur85 vypur85:
    And I signed the contract already. I guess there's no turning back....
  • jonas jonas:
    @Accname how many hours do you work? I heard in some sectors IT consultants rack up insane hours
  • jonas jonas:
    @vypur85 sounds nice, have fun : )
  • Accname Accname:
    I am supposed to work 40 hrs a week, but I can work more if I like and I will be paid for those hours (as long as I don't go too far, there are laws and company policies, etc)
  • Accname Accname:
    In practice its basically work as much as you like, as long as the job gets done in time.
  • jonas jonas:
    Haha, my job is like that as well... that usually means I have a few 70-80 hours weeks a year, and lots of 20 hours weeks...
  • jonas jonas:
    a few weeks ago, one of my friends basically said "jonas, I received an invitation to submit something to conference X but I'm too lazy to do it and also the conference isn't advanced enough for my high level of research*, why don't you write something? Oh by the way, the deadline is in two weeks. Enjoy!" so I got two 80 hour weeks out of that kind offer. (*of course he didn't say those parts, but it's a better story this way)
  • jonas jonas:
    now I'll have next week off to make up for overtime :p and I'll play some good old gothic 2
  • The Helper The Helper:
    Hope you are enjoying that gothic 2~
  • jonas jonas:
    Heck yeah :cool: It's unfortunate that the game series wasn't generally well received outside of Europe, but it seems they want to remake Gothic 1 now. I'm very excited but also very scared at the same time. I hope they won't pull a reforged

    Staff online

    Members online

    Affiliates

    Hive Workshop NUON Dome
    Top