Complicated spell - need help!

BoterhaM

New Member
Reaction score
2
hi guys, im trying to create a spell similiar to storm bolt.

it deals damage equal to casting hero's strength but it can also miss, depending on targetunit's agility and casting hero's agility.

Example:

Targetunit's agility: 30, casting hero's agi: 20, gives a 10% chance to miss.
So basically its targetunits's agi - casting hero's agi as a percentage.

BUT!!!!!!!!

If casting hero's agility is MORE than targetunit's, it has a chance to deal critical damage!
So if casting hero's agility: 30 and targetunit's agility: 20, it has a 10% chance to deal critical damage (like twice the original damage).

is this possible, and if so, is it possible with triggers? Id appreciate some help XD
 

Expelliarmus

Where to change the sig?
Reaction score
48
Code:
Storm Bolt
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Storm Bolt
    Actions
        -------- Variables --------
        Set TriggerUnit = (Triggering unit)
        Set TriggerUnit = (Target unit of ability being cast)
        Set TrigStr = (Strength of TriggerUnit (Include bonuses))
        Set TargStr = (Strength of TargetUnit (Include bonuses))
        -------- End Variables --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                TargStr Greater than TrigStr
            Then - Actions
                -------- Chance on Miss; When TrigStr is higher than TargStr, it is 100% anyways --------
                Set Chance = (TargStr - TrigStr)
                Set Random = (Random integer number between 1 and 100)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        Random Greater than Chance
                    Then - Actions
                        -------- Chance based on 100; the higher TargStr is, the more chance to miss --------
                        Unit - Cause (Triggering unit) to damage TargetUnit, dealing (Real(TrigStr)) damage of attack type Spells and damage type Normal
                        -------- Normal Damage, based on Str of TriggerUnit --------
                    Else - Actions
                        -------- Do nothing; MISS! --------
                        Floating Text - Create floating text that reads Miss above TargetUnit with Z offset 0.00, using font size 8.00, color (100.00%, 0.00%, 15.00%), and 0.00% transparency
                        Floating Text - Change the lifespan of (Last created floating text) to 1.00 seconds
                        Floating Text - Change the fading age of (Last created floating text) to 0.01 seconds
            Else - Actions
                Set Chance = (TrigStr - TargStr)
                Set Random = (Random integer number between 1 and 100)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        Random Less than Chance
                    Then - Actions
                        -------- Chance based on 100; the higher TargStr is, the more chance to critical --------
                        Unit - Cause (Triggering unit) to damage TargetUnit, dealing ((Real(TrigStr)) x 2.00) damage of attack type Spells and damage type Normal
                        -------- Critcal Damage Multiplier x 2, based on Str of TriggerUnit --------
                    Else - Actions
                        Unit - Cause (Triggering unit) to damage TargetUnit, dealing (Real(TrigStr)) damage of attack type Spells and damage type Normal
                        -------- Normal Damage, based on Str of TriggerUnit --------
Variables;
- TargetUnit - Unit
- TriggerUnit - Unit
- Chance - Integer
- Random - Integer
- TargStr - Integer
- TrigStr - Integer

Explanations are in comments
^_^
 

Drunken_God

Hopes to get back into Mapmaking with SC2 :)
Reaction score
106
Code:
Storm Bolt
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Storm Bolt
    Actions
        -------- Variables --------
        Set TriggerUnit = (Triggering unit)
        Set TriggerUnit = (Target unit of ability being cast)
        Set TrigStr = (Strength of TriggerUnit (Include bonuses))
        Set TargStr = (Strength of TargetUnit (Include bonuses))
        -------- End Variables --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                TargStr Greater than TrigStr
            Then - Actions
                -------- Chance on Miss; When TrigStr is higher than TargStr, it is 100% anyways --------
                Set Chance = (TargStr - TrigStr)
                Set Random = (Random integer number between 1 and 100)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        Random Greater than Chance
                    Then - Actions
                        -------- Chance based on 100; the higher TargStr is, the more chance to miss --------
                        Unit - Cause (Triggering unit) to damage TargetUnit, dealing (Real(TrigStr)) damage of attack type Spells and damage type Normal
                        -------- Normal Damage, based on Str of TriggerUnit --------
                    Else - Actions
                        -------- Do nothing; MISS! --------
                        Floating Text - Create floating text that reads Miss above TargetUnit with Z offset 0.00, using font size 8.00, color (100.00%, 0.00%, 15.00%), and 0.00% transparency
                        Floating Text - Change the lifespan of (Last created floating text) to 1.00 seconds
                        Floating Text - Change the fading age of (Last created floating text) to 0.01 seconds
            Else - Actions
                Set Chance = (TrigStr - TargStr)
                Set Random = (Random integer number between 1 and 100)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        Random Less than Chance
                    Then - Actions
                        -------- Chance based on 100; the higher TargStr is, the more chance to critical --------
                        Unit - Cause (Triggering unit) to damage TargetUnit, dealing ((Real(TrigStr)) x 2.00) damage of attack type Spells and damage type Normal
                        -------- Critcal Damage Multiplier x 2, based on Str of TriggerUnit --------
                    Else - Actions
                        Unit - Cause (Triggering unit) to damage TargetUnit, dealing (Real(TrigStr)) damage of attack type Spells and damage type Normal
                        -------- Normal Damage, based on Str of TriggerUnit --------
Variables;
- TargetUnit - Unit
- TriggerUnit - Unit
- Chance - Integer
- Random - Integer
- TargStr - Integer
- TrigStr - Integer

Explanations are in comments
^_^

i think he wants the miss % based on the agility
 

BoterhaM

New Member
Reaction score
2
Code:
Untitled Trigger 007
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Storm Boltt
    Actions
        Set TriggerUnit = (Triggering unit)
        Set TargetUnit = (Target unit of ability being cast)
        Set TrigStr = (Strength of TriggerUnit (Include bonuses))
        Set TrigAgi = (Agility of TriggerUnit (Include bonuses))
        Set TargAgi = (Agility of TargetUnit (Include bonuses))
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                TargAgi Greater than TrigAgi
            Then - Actions
                Set Chance = (TargAgi - TrigAgi)
                Set Random = (Random integer number between 1 and 100)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        Random Greater than Chance
                    Then - Actions
                        Unit - Cause (Triggering unit) to damage TargetUnit, dealing (Real(TrigStr)) damage of attack type Spells and damage type Normal
                    Else - Actions
                        Floating Text - Create floating text that reads Dodged! above TargetUnit with Z offset 0.00, using font size 8.00, color (100.00%, 0.00%, 15.00%), and 0.00% transparency
                        Floating Text - Change the lifespan of (Last created floating text) to 1.00 seconds
                        Floating Text - Change the age of (Last created floating text) to 0.50 seconds
                        Floating Text - Destroy (Last created floating text)
            Else - Actions
                Set Chance = (TargAgi - TrigAgi)
                Set Random = (Random integer number between 1 and 100)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        Random Less than Chance
                    Then - Actions
                        Unit - Cause (Triggering unit) to damage TargetUnit, dealing ((Real(TrigStr)) x 2.00) damage of attack type Spells and damage type Normal
                    Else - Actions
                        Unit - Cause (Triggering unit) to damage TargetUnit, dealing (Real(TrigStr)) damage of attack type Spells and damage type Normal
 

vypur85

Hibernate
Reaction score
803
Code:
Untitled Trigger 007
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Storm Boltt
    Actions
        Set TriggerUnit = (Triggering unit)
        Set TargetUnit = (Target unit of ability being cast)
        Set TrigStr = (Strength of TriggerUnit (Include bonuses))
        Set TrigAgi = (Agility of TriggerUnit (Include bonuses))
        Set TargAgi = (Agility of TargetUnit (Include bonuses))
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                TargAgi Greater than TrigAgi
            Then - Actions
                Set Chance = (TargAgi - TrigAgi)
                Set Random = (Random integer number between 1 and 100)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        Random Greater than Chance
                    Then - Actions
                        Unit - Cause (Triggering unit) to damage TargetUnit, dealing (Real(TrigStr)) damage of attack type Spells and damage type Normal
                    Else - Actions
                        Floating Text - Create floating text that reads Dodged! above TargetUnit with Z offset 0.00, using font size 8.00, color (100.00%, 0.00%, 15.00%), and 0.00% transparency
                        Floating Text - Change the lifespan of (Last created floating text) to 1.00 seconds
                        Floating Text - Change the age of (Last created floating text) to 0.50 seconds
                        Floating Text - Destroy (Last created floating text)
            Else - Actions
                [B]Set Chance = (TargAgi - TrigAgi)[/B]
                Set Random = (Random integer number between 1 and 100)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        Random Less than Chance
                    Then - Actions
                        Unit - Cause (Triggering unit) to damage TargetUnit, dealing ((Real(TrigStr)) x 2.00) damage of attack type Spells and damage type Normal
                    Else - Actions
                        Unit - Cause (Triggering unit) to damage TargetUnit, dealing (Real(TrigStr)) damage of attack type Spells and damage type Normal

Define 'doesn't work'?

Anyway, I believe the bolded line is wrong. Should be the opposite.

Set Chance = (TrigAgi - TargAgi)
 

BoterhaM

New Member
Reaction score
2
well i changed it and still doesnt work..

it doesnt deal double damage if you have more agility, even when i have 200 agility, and other hero has 100.. (chance should be 100% then).

it doesnt deal damage equal to hero strength.. ive checked damage table and set Spell to 100% damage to all armor types. my hero has 300 str and deals like 255 damage to a hero with 100 str and 100 agi.. so wtf

can somebody help me and see whats wrong with the triggers? :)
 

vypur85

Hibernate
Reaction score
803
There doesn't seem to be anything wrong with the trigger.


Code:
Unit - Cause (Triggering unit) to damage TargetUnit, dealing (Real(TrigStr)) damage of attack type Spells and damage type [B]Normal[/B]

Try changing 'Normal' to 'Magic'. (I don't really have much experience in Armor reduction stuff).
 

BoterhaM

New Member
Reaction score
2
NOTE!:::::

i know its lame but once i casted the ability, it will already deal damage before the projecticle hits the target, should i add a Wait command to the triggers? or add a clever Waitcondition (that i cant think of btw!)
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top