Snippet Set Damage

Discussion in 'Graveyard' started by vypur85, May 19, 2009.

  1. vypur85

    vypur85 Hibernate

    Ratings:
    +797 / 0 / -0
    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.
     

    Attached Files:

    • Like Like x 2
  2. Tyrande_ma3x

    Tyrande_ma3x .

    Ratings:
    +91 / 0 / -0
    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:
     
  3. Igor_Z

    Igor_Z You can change this now in User CP.

    Ratings:
    +60 / 0 / -0
    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
     
  4. simonake

    simonake New Member

    Ratings:
    +72 / 0 / -0
    I think it would be easier to read whit GUi tags.
     
  5. vypur85

    vypur85 Hibernate

    Ratings:
    +797 / 0 / -0
    > 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 :).
     
  6. WolfieeifloW

    WolfieeifloW WEHZ Helper

    Ratings:
    +372 / 0 / -0
    QFT.
    Like Tyrande_ma3x said;
    A nice feature for people who don't use JASS.
     
  7. polo2005

    polo2005 Wana start playing LoL? http://tinyurl.com/369as27

    Ratings:
    +97 / 0 / -0
    Would this work with any item ability that isn't levelable?
     
  8. vypur85

    vypur85 Hibernate

    Ratings:
    +797 / 0 / -0
    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. :)
     
  9. KaerfNomekop

    KaerfNomekop Swim, fishies. Swim through the veil of steel.

    Ratings:
    +609 / 0 / -0
    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.
     

Share This Page