• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Question about few skill

Status
Not open for further replies.
Level 17
Joined
Nov 13, 2006
Messages
1,814
1. defend can reflect back the magic dmg? if no then what ability could do that and passive skill or aura?
i find something what reflect back every/most kinda of dmg?
2.bash item ability:
chance for miss, its applied to normal attack or to skill effect (stun) what got 15% chance?
damage multiplier work like critical strike?
3. bash/lightning orb with that 15% chance for do something buff work with self heal also?
 
Level 31
Joined
Jun 27, 2008
Messages
2,557
1. I think Defend may only deflect a part of magic, also it has to be set that way through Gameplay Constants in order to enable Defend deflection. Not sure about what could reflect the magic.
2. Bash applied to normal unit's attacks, which has 15% chance of stunning target.
Critical strike is multiplied damage several times, like two times normal damage done or three times normal damage done at chance of percentage value.
3. I didn't get your point.
 
Level 17
Joined
Nov 13, 2006
Messages
1,814
1. I think Defend may only deflect a part of magic, also it has to be set that way through Gameplay Constants in order to enable Defend deflection. Not sure about what could reflect the magic.
2. Bash applied to normal unit's attacks, which has 15% chance of stunning target.
Critical strike is multiplied damage several times, like two times normal damage done or three times normal damage done at chance of percentage value.
3. I didn't get your point.

1. there have deflect spell or siomething like that in object editor
2. i talk about damage multiplier at bash ability in object editor, not about what is the critical strike :p
3. also object editor bash got stun buff:p
 
Level 31
Joined
Jun 27, 2008
Messages
2,557
1. If you would open Defend through Object Editor you would see some options of Deflection. In Gameplay Constants there is option set: Gameplay - Defend Can Deflect False. Set it to True and it may deflect I think. In Editor toolbar press Advanced and then Gameplay Constants to open it.
2. If it says Damage Multiplier it means it works the same way as Critical Strike, why don't you just test it out.
3. Bash do have stun buff, it is the visual form of bash effect. Still not sure what's your question about it.
 
for bash, (I think Crit strike has all of these too)

Bonus damage - bonus damage when bash hits
Damage multiplier - your damage is multiplied by this when bash hits
chance to miss - works like the evasion spell

There is also a field where you set if the unit can miss or not... if set to cannot miss, all your attacks will hit the enemy even if it has 100% evasion...

@shadowvzs - if you look at orb of lightning, you'll see that it's orb ability actually calls the purge ability when activated...
 
Level 17
Joined
Nov 13, 2006
Messages
1,814
another question how can interrupt channeling ?
(i mean easiest way coz i dont want create a dummy and attack the unit if posible)

here the trigger, after cinematic sometimes the trigger unit channeling, sometimes work well and controlable

Hades ability is channeling ability, unit target.
  • Summon Hades
    • Events
      • Unit - A unit Begins channeling an ability
    • Conditions
      • (Ability being cast) Equal to Hades
      • ((Owner of (Target unit of ability being cast)) controller) Not equal to User
    • Actions
      • Set Summoned_Target = (Target unit of ability being cast)
      • Unit - Pause Summoned_Target
      • Cinematic - Turn cinematic mode On for (All players)
      • Unit - Add Invulnerable (Neutral) to (Triggering unit)
      • Set TempPoint = (Position of (Triggering unit))
      • Set Summoning = True
      • For each (Integer A) from 1 to 10, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Player((Integer A))) controller) Equal to User
            • Then - Actions
              • Camera - Pan camera for (Player((Integer A))) to TempPoint over 2.00 seconds
              • Camera - Set (Player((Integer A)))'s camera Distance to target to 1000.00 over 2.00 seconds
              • Camera - Set (Player((Integer A)))'s camera Angle of attack to 340.00 over 2.00 seconds
              • Camera - Set (Player((Integer A)))'s camera Height Offset to (Current flying height of (Triggering unit)) over 2.00 seconds
              • Camera - Set (Player((Integer A)))'s camera Rotation to (180.00 + (Facing of (Triggering unit))) over 2.00 seconds
            • Else - Actions
      • Wait 2.00 seconds
      • For each (Integer A) from 1 to 10, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Player((Integer A))) controller) Equal to User
            • Then - Actions
              • Camera - Set (Player((Integer A)))'s camera Rotation to (0.00 + (Facing of (Triggering unit))) over 2.00 seconds
            • Else - Actions
      • For each (Integer A) from 1 to 10, do (Actions)
        • Loop - Actions
          • Wait 0.25 game-time seconds
          • Animation - Change (Triggering unit)'s vertex coloring to (100.00%, 100.00%, 100.00%) with ((Real((Integer A))) x 10.00)% transparency
      • Unit - Hide (Triggering unit)
      • Wait 0.50 seconds
      • Set TempPoint = (Position of (Triggering unit))
      • Set TempPoint2 = (Position of Summoned_Target)
      • Set SummonRegion = (Region(TempPoint, TempPoint2))
      • Custom script: call RemoveLocation(udg_TempPoint)
      • Custom script: call RemoveLocation(udg_TempPoint2)
      • Environment - Create at SummonRegion the weather effect Dungeon White Fog (Heavy)
      • Environment - Turn (Last created weather effect) On
      • Set TempPoint = (Position of (Triggering unit))
      • Set TempPoint2 = (Position of Summoned_Target)
      • Unit - Create 1 Hades for (Owner of (Triggering unit)) at TempPoint facing Default building facing degrees
      • Set Summoned = (Last created unit)
      • Unit - Set (Last created unit) movement speed to 0.00
      • Unit - Pause (Last created unit)
      • Unit - Add Invulnerable (Neutral) to (Last created unit)
      • Special Effect - Create a special effect at (TempPoint offset by 150.00 towards (Angle from TempPoint to TempPoint2) degrees) using Doodads\LordaeronSummer\Props\CauldronWithHeads\CauldronWithHeads.mdl
      • Custom script: call RemoveLocation(udg_TempPoint)
      • Custom script: call RemoveLocation(udg_TempPoint2)
      • For each (Integer A) from 1 to 10, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Player((Integer A))) controller) Equal to User
            • Then - Actions
              • Camera - Set (Player((Integer A)))'s camera Rotation to (180.00 + (Facing of Summoned_Target)) over 0.00 seconds
            • Else - Actions
      • Wait 1.00 seconds
      • Unit - Unpause Summoned
      • Animation - Play Summoned's spell animation
      • Unit - Add Purge (Neutral Hostile) to Summoned
      • Unit - Order Summoned to Orc Shaman - Purge Summoned_Target
      • Wait 1.00 seconds
      • Unit - Remove Purge (Neutral Hostile) from Summoned
      • Unit - Add Curse (Neutral Hostile) to Summoned
      • Unit - Order Summoned to Undead Banshee - Curse Summoned_Target
      • Wait 1.00 seconds
      • Unit - Remove Curse (Neutral Hostile) from Summoned
      • Unit - Add Sleep (Neutral Hostile) to Summoned
      • Unit - Order Summoned to Undead Dreadlord - Sleep Summoned_Target
      • Wait 1.00 seconds
      • Unit - Remove Sleep (Neutral Hostile) from Summoned
      • Unit - Add Slow (Neutral Hostile) to Summoned
      • Unit - Order Summoned to Human Sorceress - Slow Summoned_Target
      • Wait 1.00 seconds
      • Unit - Remove Slow (Neutral Hostile) from Summoned
      • For each (Integer A) from 1 to 10, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Player((Integer A))) controller) Equal to User
            • Then - Actions
              • Camera - Set (Player((Integer A)))'s camera Rotation to (0.00 + (Facing of (Triggering unit))) over 2.00 seconds
            • Else - Actions
      • Wait 1.30 seconds
      • Unit - Explode Summoned
      • Special Effect - Destroy (Last created special effect)
      • Environment - Remove (Last created weather effect)
      • Unit - Unhide (Triggering unit)
      • For each (Integer A) from 1 to 10, do (Actions)
        • Loop - Actions
          • Wait 0.25 game-time seconds
          • Animation - Change (Triggering unit)'s vertex coloring to (100.00%, 100.00%, 100.00%) with (((Real((Integer A))) x -10.00) + 100.00)% transparency
      • For each (Integer A) from 1 to 10, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Player((Integer A))) controller) Equal to User
            • Then - Actions
              • Camera - Reset camera for (Player((Integer A))) to standard game-view over 3.00 seconds
            • Else - Actions
      • Cinematic - Turn cinematic mode Off for (All players)
      • Selection - Select (Triggering unit) for (Owner of (Triggering unit))
      • Set Summoning = False
      • Unit - Remove Invulnerable (Neutral) from (Triggering unit)
      • Unit - Unpause Summoned_Target
      • Set Summoned = No unit
      • Set SummonRegion = No region
      • Set Summoned_Target = No unit
 
Level 13
Joined
Jun 1, 2008
Messages
360
another question how can interrupt channeling ?
Order unit to stop?

If you want to know how to interrupt the trigger:
If (current order of (yourunit) not equal to 'ChannelingSpell') then skip remaining actions.

Another thing about the trigger: You are using global variables only. Those may be overwritten by another instance of the trigger.
For the spell's target you should use local variables:
At the beginning of the trigger:
Custom script: local unit spelltarget
Set Summoned_Target = (Target unit of ability being cast)
Custom script: set spelltarget = udg_Summoned_Target

and then after every wait:
Custom script: set udg_Summoned_Target = spelltarget
 
Level 17
Joined
Nov 13, 2006
Messages
1,814
dont work :/

still trigger unit channeling after whole trigger and uninteruptable also unit group work well and write out all unit with trigger but stun only 1 target and ignore all other target...

i really out from ideeas why work like this coz cooldown setted to 0 sec, range is ok too also i dont got why unit channeling after all :/

  • Summon Hades Copy
    • Events
      • Unit - A unit Begins channeling an ability
    • Conditions
      • (Ability being cast) Equal to Hades
      • ((Owner of (Target unit of ability being cast)) controller) Not equal to User
      • Summoning[(Player number of (Owner of (Triggering unit)))] Equal to False
    • Actions
      • Set plNR = (Player number of (Owner of (Triggering unit)))
      • Set Summoned_Target[plNR] = (Target unit of ability being cast)
      • Unit - Pause Summoned_Target[plNR]
      • Set PlayerGroup = (Player group((Player(plNR))))
      • Cinematic - Turn cinematic mode On for PlayerGroup
      • Custom script: call DestroyForce(udg_PlayerGroup)
      • Unit - Add Invulnerable (Neutral) to (Triggering unit)
      • Set TempPoint = (Position of (Triggering unit))
      • Set Summoning[plNR] = True
      • Camera - Pan camera for (Player(plNR)) to TempPoint over 2.00 seconds
      • Camera - Set (Player(plNR))'s camera Distance to target to 1000.00 over 2.00 seconds
      • Camera - Set (Player(plNR))'s camera Angle of attack to 340.00 over 2.00 seconds
      • Camera - Set (Player(plNR))'s camera Height Offset to (Current flying height of (Triggering unit)) over 2.00 seconds
      • Camera - Set (Player(plNR))'s camera Rotation to (180.00 + (Facing of (Triggering unit))) over 2.00 seconds
      • Wait 2.00 seconds
      • Set plNR = (Player number of (Owner of (Triggering unit)))
      • Camera - Set (Player(plNR))'s camera Rotation to (0.00 + (Facing of (Triggering unit))) over 2.00 seconds
      • For each (Integer A) from 1 to 10, do (Actions)
        • Loop - Actions
          • Wait 0.25 game-time seconds
          • Animation - Change (Triggering unit)'s vertex coloring to (100.00%, 100.00%, 100.00%) with ((Real((Integer A))) x 10.00)% transparency
      • Unit - Hide (Triggering unit)
      • Unit - Pause (Triggering unit)
      • Wait 0.50 seconds
      • Set plNR = (Player number of (Owner of (Triggering unit)))
      • Set TempPoint = (Position of (Triggering unit))
      • Set TempPoint2 = (Position of Summoned_Target[plNR])
      • Set SummonRegion[plNR] = (Region(TempPoint, TempPoint2))
      • Custom script: call RemoveLocation(udg_TempPoint)
      • Custom script: call RemoveLocation(udg_TempPoint2)
      • Environment - Create at SummonRegion[plNR] the weather effect Dungeon White Fog (Heavy)
      • Environment - Turn (Last created weather effect) On
      • Set SummonWeather[plNR] = (Last created weather effect)
      • Set TempPoint = (Position of (Triggering unit))
      • Set TempPoint2 = (Position of Summoned_Target[plNR])
      • Unit - Create 1 Hades for (Owner of (Triggering unit)) at TempPoint facing (Angle from TempPoint to TempPoint2) degrees
      • Custom script: call UnitRemoveAbility(GetLastCreatedUnit(), 'Aatk')
      • Set Summoned[plNR] = (Last created unit)
      • Unit - Set (Last created unit) movement speed to 0.00
      • Unit - Pause (Last created unit)
      • Unit - Add Invulnerable (Neutral) to (Last created unit)
      • Special Effect - Create a special effect at (TempPoint offset by 150.00 towards (Angle from TempPoint to TempPoint2) degrees) using Doodads\LordaeronSummer\Props\CauldronWithHeads\CauldronWithHeads.mdl
      • Set SummonDummyAnimation[plNR] = (Last created special effect)
      • Custom script: call RemoveLocation(udg_TempPoint)
      • Custom script: call RemoveLocation(udg_TempPoint2)
      • Camera - Set (Player((Integer A)))'s camera Rotation to (180.00 + (Facing of Summoned_Target[plNR])) over 3.00 seconds
      • Wait 1.00 seconds
      • Set plNR = (Player number of (Owner of (Triggering unit)))
      • Unit - Unpause Summoned[plNR]
      • Animation - Play Summoned[plNR]'s spell animation
      • Set TempUnitGroup = (Units within 1000.00 of (Position of (Triggering unit)) matching (((Owner of (Matching unit)) controller) Not equal to User))
      • Unit Group - Pick every unit in TempUnitGroup and do (Actions)
        • Loop - Actions
          • Game - Display to (All players) the text: (Name of (Picked unit))
          • Unit - Order Summoned[(Player number of (Owner of (Triggering unit)))] to Neutral - Firebolt (Picked unit)
          • Wait 1.00 seconds
      • Custom script: call DestroyGroup(udg_TempUnitGroup)
      • Set plNR = (Player number of (Owner of (Triggering unit)))
      • Camera - Set (Player(plNR))'s camera Rotation to (0.00 + (Facing of (Triggering unit))) over 2.00 seconds
      • Wait 1.30 seconds
      • Set plNR = (Player number of (Owner of (Triggering unit)))
      • Unit - Explode Summoned[plNR]
      • Special Effect - Destroy SummonDummyAnimation[plNR]
      • Environment - Remove SummonWeather[plNR]
      • Unit - Unhide (Triggering unit)
      • Unit - Unpause (Triggering unit)
      • For each (Integer A) from 1 to 10, do (Actions)
        • Loop - Actions
          • Wait 0.25 game-time seconds
          • Animation - Change (Triggering unit)'s vertex coloring to (100.00%, 100.00%, 100.00%) with (((Real((Integer A))) x -10.00) + 100.00)% transparency
      • Unit - Unpause (Triggering unit)
      • Set plNR = (Player number of (Owner of (Triggering unit)))
      • Camera - Reset camera for (Player(plNR)) to standard game-view over 3.00 seconds
      • Set PlayerGroup = (Player group((Player(plNR))))
      • Cinematic - Turn cinematic mode Off for PlayerGroup
      • Custom script: call DestroyForce(udg_PlayerGroup)
      • Selection - Select (Triggering unit) for (Owner of (Triggering unit))
      • Set Summoning[plNR] = False
      • Unit - Remove Invulnerable (Neutral) from (Triggering unit)
      • Unit - Unpause Summoned_Target[plNR]
      • Set Summoned_Target[plNR] = No unit
      • Set Summoned[plNR] = No unit
      • Unit - Add Dummy Silence (Neutral Hostile) to (Triggering unit)
      • Unit - Order (Triggering unit) to Neutral Dark Ranger - Silence TempPoint
      • Wait 1.00 seconds
      • Unit - Remove Dummy Silence (Neutral Hostile) from (Triggering unit)
 
Last edited:
Level 20
Joined
Jul 14, 2011
Messages
3,213
Because Wait actions break some unit relations. If you store a unit into a variable, and use a wait, you have to store the units into the custom variables again... That's one of the many reasons why you have to hate wait actions.
 
Level 17
Joined
Nov 13, 2006
Messages
1,814
Because Wait actions break some unit relations. If you store a unit into a variable, and use a wait, you have to store the units into the custom variables again... That's one of the many reasons why you have to hate wait actions.

sorry but if u check then u see i dont use any variable for caster unit who channeling coz i use only triggering unit.... (and about others i declared the variables after each wait again and again)

another thing with order, no way how could change this (unit group work well and stored the units but action applied only to first unit)
  • Unit - Order Summoned[(Player number of (Owner of (Triggering unit)))] to Neutral - Firebolt (Picked unit)
 
Level 20
Joined
Jul 14, 2011
Messages
3,213
  • Some stuff...
    • Set TempPoint = (Position of (Triggering unit))
    • Set TempPoint2 = (Position of Summoned_Target)
    • Set SummonRegion = (Region(TempPoint, TempPoint2))
    • Custom script: call RemoveLocation(udg_TempPoint)
    • Custom script: call RemoveLocation(udg_TempPoint2)
    • Environment - Create at SummonRegion the weather effect Dungeon White Fog (Heavy)
    • Environment - Turn (Last created weather effect) On
    • Set TempPoint = (Position of (Triggering unit))
    • Set TempPoint2 = (Position of Summoned_Target)
You don't remove the points you declared first... You just "write" over them... afaik it leaks. You have to remove them before giving another value.

Btw, you remove them, and then set them again with the same values... Why don't you remove them when you definitely don't need them anymore?

  • Special Effect - Create a special effect at (TempPoint offset by 150.00 towards (Angle from TempPoint to TempPoint2) degrees) using Doodads\LordaeronSummer\Props\CauldronWithHeads\CauldronWithHeads.mdl
Points with offeset leaks, since it uses two points. The base one, and the offset. You have to declare the Central Point, then the Point with Offset, and then use that one.

You're destroying "Last Created Special Effects" after using some "Wait Actions". It means that if any other sfx is created in the meantime, you'll store one as gargabe, and destroy another one. Same with Weather.

EDIT: Lol... So far, I didn't know it was a Cinematic xD Anyway, use what I've told you however you want to :p


About the Firebolt and Picked Unit, I guess it's because the FireBolt and most wc3 default skills have a casting time. I'm not sure if it's unit dependant or something, but I've found that most skills takes about 0.28 segs to cast. When you order your unit to "Firebolt" (Picked Unit) the Casting Unit doesn't have enough time to cast when the trigger already orders to cast it on some other unit.

I would solve it adding all the Picked Units into a Unit Group, and doing: "For Each Integer A from 1 to (Number of units in PickedUnitsGroup)" do:
-> set u = 1 random unit from PickedUnitGroups
-> Create 1 dummy at point
-> Add 0.5 expiration timer to last created unit
-> Order last created unit to FireBolt u
-> Remove "u" from PickedUnitsGroup
 
Level 17
Joined
Nov 13, 2006
Messages
1,814
  • About the Firebolt and Picked Unit, I guess it's because the FireBolt and most wc3 default skills have a casting time. I'm not sure if it's unit dependant or something, but I've found that most skills takes about 0.28 segs to cast. When you order your unit to "Firebolt" (Picked Unit) the Casting Unit doesn't have enough time to cast when the trigger already orders to cast it on some other unit.
  • I would solve it adding all the Picked Units into a Unit Group, and doing: "For Each Integer A from 1 to (Number of units in PickedUnitsGroup)" do:
  • -> set u = 1 random unit from PickedUnitGroups
  • -> Create 1 dummy at point
  • -> Add 0.5 expiration timer to last created unit
  • -> Order last created unit to FireBolt u
  • -> Remove "u" from PickedUnitsGroup[/QUOTE]
  • leak thing i dont paid attention to that since without the engine (order unit thing) the whole trigger useless :D
  • i tryed with 1-4 sec wait the order, allways with wait still dont doing nothing, i tryed with 4 different skill, and all 4 was applied to 1st target but nothing to rest, its mean the delay between abilities was ok
  • dont laggy if have 100 unit around me and i want stun all 100 with creating each time a dummy and order them?
  • because i want make aoe stun skill to a hero too with low cooldown
 
Level 20
Joined
Jul 14, 2011
Messages
3,213
Depends if you want a simple AoE stun you could just increase the area of effect of WarStomp... But if you want the effect of the fire missile going from your position to the target position, and stun the target when the missile reaches it, then yo would have to do it like I did.

Ayway, the trigger is not so hard to do. You can do it and test if it lags.
 
Level 17
Joined
Nov 13, 2006
Messages
1,814
Depends if you want a simple AoE stun you could just increase the area of effect of WarStomp... But if you want the effect of the fire missile going from your position to the target position, and stun the target when the missile reaches it, then yo would have to do it like I did.

Ayway, the trigger is not so hard to do. You can do it and test if it lags.

just a question, warstomp stun can convert to aoe sleep skill coz maybe that easiest way if could make with object editor a dummy aoe huge rage sleep/debuff what based from standard ability but i dont know a noobie thing, simple buff change can convert the stun skill to sleep skill? :p
 

Chaosy

Tutorial Reviewer
Level 40
Joined
Jun 9, 2011
Messages
13,183
base it on warstomp and set the dmg and stun to 0

after that you can use a dummy ability
  • Untitled Trigger 001
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to War Stomp
    • Actions
      • Set temp_loc = (Position of (Triggering unit))
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units within 300.00 of temp_loc) and do (Actions)
        • Loop - Actions
          • Unit - Create 1 dummy for (Owner of (Picked unit)) at temp_loc facing Default building facing degrees
          • Unit - Order (Last created unit) to Undead Dreadlord - Sleep (Picked unit)
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
          • Custom script: call RemoveLocation(udg_temp_loc)
 
Level 17
Joined
Nov 13, 2006
Messages
1,814
1. New Question, i made a 2 dummy ability and 1 dummy unit. i gived 1st dummy skill to hero, 2nd to dummy unit in object editor, in game i have lagg when 1st time hero use 1st ability and with trigger i create dummy unit and order dummy buff the hero. why have this lagg?

2. and why dont stop the channeling the trigger unit in this trigger? coz that also mysterious, i solved with dummy unit but if possible then i want ignore to create dummy unit/expire timer to him/order to him just coz after each channeling trigger unit dont stop the channeling when summoning is done
http://www.hiveworkshop.com/forums/2045390-post15.html
 
Level 20
Joined
Jul 14, 2011
Messages
3,213
Darkgrom, your trigger destroys de point inside the loop, not outside it, as should.

If it lags too much, maybe your dummy has more abilities, or those abilites have too many levels.
 
Level 17
Joined
Nov 13, 2006
Messages
1,814
Darkgrom, your trigger destroys de point inside the loop, not outside it, as should.

If it lags too much, maybe your dummy has more abilities, or those abilites have too many levels.

ok 1st time i created 2 dummy unit to position of trigger unit but now random still have a bit delay but not too huge. unit got few ability only, also abilities mostly got only 1 lv because abilities for dummies was made for giveing specific buff to trigger unit.

but atleast now finished the hp buff thing (+30% max hp for 5minute, then remove from heroes, but could be applied only to 1 hero/player) with expired unit thing
 
Level 20
Joined
Jul 14, 2011
Messages
3,213
If it's a small lag spike, that's normal. To prevent that create the unit on Map Init and then remove it, or place it somewhere in the WE and remove it on map init with triggers. It will preload the unit, and all the unit abilities aswell. This way they won't lag the first time you use them.
 
Level 17
Joined
Nov 13, 2006
Messages
1,814
If it's a small lag spike, that's normal. To prevent that create the unit on Map Init and then remove it, or place it somewhere in the WE and remove it on map init with triggers. It will preload the unit, and all the unit abilities aswell. This way they won't lag the first time you use them.


thank you.

(damn weird since ~4-5 year i forget everything like basic thing like this and jass in beginer level)
 
Level 17
Joined
Nov 13, 2006
Messages
1,814
now i got another question :D

1.i watched somewhere the ability could get requiment, so i made a techtree for this and made ability for required that tech tree lv1, but since i cant decrease techtree level to 0 how can i disable the ability again without remove from spellbook?
 
Last edited:
Level 20
Joined
Jul 14, 2011
Messages
3,213
Use action "Player - Disable ability"... Or you could remove the requirement? Doesn't matter if the ability is inside a spellbook, if you disable it for the player it won't be removed from the unit (though you won't be able to see it) but it will be disabled.
 
Level 17
Joined
Nov 13, 2006
Messages
1,814
Use action "Player - Disable ability"... Or you could remove the requirement? Doesn't matter if the ability is inside a spellbook, if you disable it for the player it won't be removed from the unit (though you won't be able to see it) but it will be disabled.

but i dont want make invisible because i want make a skill what need a interger value what allways changeing and if its less than x then be there but unable to use, when number is ok then make useable but then again could be unuseable.

how can i remove the requiment if its a upgrade, if i cant even decrease the upgrade levels? i dont want make a unit or building for make that requiment if possible coz many unit later if all player got similiar skills
 
Level 17
Joined
Nov 13, 2006
Messages
1,814
Units, Abilities and Upgrades objects have fields to tell the needed requirements.!

so you can give me a example how can u make dynamic requiment in game?
i mean if my integer variable if greater than x then enable the ability when integer variable is lower than x then disable (but dont remove the ability).

ofc integer variable is allways changed so NOT like level requiment, so not like when once u reach the level then allways enable, its sometimes enable sometimes disable but icon must be there allways
 
Level 20
Joined
Jul 14, 2011
Messages
3,213
Oh... "dynamic". Ok... The best and easiest way I find for that is:

Assuming the ability effect is not triggered:
Create two abilities, the real one, and a dummy one. When the unit meets the integer requirement, remove the "dummy"; and add the real. When the unit doesn't, remove the real, and add the dummy. If the unit uses the "Dummy "ability, display a message like "You require (Required Integer - Actual Integer value) to use this ability.

If the ability effect is triggered (And the ability has no cooldown, or low cd) you just need one ability and work with conditions to know if the unit uses the skill, or just display the message.

It's leakless (though depends on how you do it), it can be MUI (if you use hashtables) and won't be something "heavy" for the system, so there won't be any lag spikes, nor delay, nor desyncs.
 
Level 17
Joined
Nov 13, 2006
Messages
1,814
i have another question too, what about the damage, its work same way than hp and mana?

i mean if i want add x amount of damage to hero then i must add a permanent damage ability, level up it and remove it same like in custom hp case?
 
Level 20
Joined
Jul 14, 2011
Messages
3,213
No. Damage abilities must remain. If you want to increase damage by % and not specific values, you can add auras which increases damage by percent, and increase/reduce the aura level, and the aura targets, and aura models to make it look like... something normal :).
 
Level 17
Joined
Nov 13, 2006
Messages
1,814
No. Damage abilities must remain. If you want to increase damage by % and not specific values, you can add auras which increases damage by percent, and increase/reduce the aura level, and the aura targets, and aura models to make it look like... something normal :).

but i said i want increase with x amount so not by percentage coz percentage work with command aura ability but i want increase a fixed amount (example if i pick up a lv10 axe then ioncrease with 10 dmg, if i drop the axe then decrease with 10=>so back to normal but since i want multiboard inventory then item ability dont work since item is removed when i equip)
 
Level 6
Joined
Jun 16, 2007
Messages
235
Level 17
Joined
Nov 13, 2006
Messages
1,814
Leveling damage abilities does not work, you need a Bonus mod system.
http://www.thehelper.net/forums/showthread.php/112346-Bonus-(unit-state-modification)

sry i dislike that system.
i typed 1000 armor i got 255
i typed 1000 damage and got 1275

ability add/level/remove system let me add any number, example 9999 or just 2 and each attribute need only 1 ability, ok but work only permanent item things, not with eva but anyway for me need only for hp/mp/dmg coz critical/eva far better with gui dmg system coz that very flexible for this
 
Level 20
Joined
Jul 14, 2011
Messages
3,213
Triggering all damage events (Critical, Evasion, Damage Types, Damage Multiplier, Damage Bonuses, etc.) is a lot more flexible, and gives you a lot of handle over what you want. I worked a lot on this kind of stuff, but I ended up making my own damage system. Is more work, but you can create exactly what you want. I created several damage types (Pure - Physycal - Water, Earth, Fire, Wind) several armor types (Same than damage types) stun time based on str, stackable stun, stackable evasion, bash and critical based on str... etc. and MUI.
 
Level 17
Joined
Nov 13, 2006
Messages
1,814
Triggering all damage events (Critical, Evasion, Damage Types, Damage Multiplier, Damage Bonuses, etc.) is a lot more flexible, and gives you a lot of handle over what you want. I worked a lot on this kind of stuff, but I ended up making my own damage system. Is more work, but you can create exactly what you want. I created several damage types (Pure - Physycal - Water, Earth, Fire, Wind) several armor types (Same than damage types) stun time based on str, stackable stun, stackable evasion, bash and critical based on str... etc. and MUI.

ok but stackable stun how work? kinda permanent stun isnt op?

ok acctually i do similiar stun based str, eva/crit based on agi, each int=+1% damage to caster, also planed buffs but still that not done, inventory atm what is annoying a bit then coming the libram part :D

i think about 1 str= 1 armor, 1 int = 1 magic ressist and both work with a damage reduction formula (or another way for magic ressist the item ability what decrease magic damage with x%, make it to lv100 and each lv=1% reduction)
 
Level 6
Joined
Jun 16, 2007
Messages
235
sry i dislike that system.
i typed 1000 armor i got 255
i typed 1000 damage and got 1275

You got 255 armor because it is the maximum armor you can have in the demo map. Need to read more carefully and configure the system for your map.
You got 1275 damage because of deltas (like I said read more carefully)

As a general note using too complicated damage formulas in your map can confuse players, you should use static damage when ever possible.
 
Level 20
Joined
Jul 14, 2011
Messages
3,213
Well.. The stun duration is reduced by 0.05 every 0.05 secons. When the unit is stunned, it takes the current value of the unit stun, and adds the new stun time.
 
Status
Not open for further replies.
Top