• 🏆 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!

Crippling Ray

Status
Not open for further replies.
Level 2
Joined
Jun 3, 2008
Messages
13
im trying to make a ability wich is a chain lightning with 1 target that cripples the unit that it hits, but something seens wrong...

Event
Unit - A unit Begins casting an abilty

Condition
Ability being cast equal to Crippling Ray

Actions
Unit - Create 1 Dummy for (owner of (triggering unit)) at (target point of ability being cast) facing Default building facing degrees
Unit - Add Cripple to (last created unit)
Unit - Set level of Cripple for (last created unit) to (level of Crippling Ray for (triggering unit))
Unit - Order (last created unit) to undead necromancer - cripple (target unit of ability being cast)
unit - add a 2.00 second generic expiration timer to (last created unit)
 
it wont cripple the target =\ , thats the problem

have you tried my suggestion? you dont have target point of ability being cast since it is a targeted spell... that is also a problem... it would return a location 0,0, meaning map center which can cause your unit to be unable to cast criplle because the target is too far... and the location leaks... and make sure that cripple has no mana requirement... btw, TargetUnitOfAbilityBeingCast also bugs sometimes even without waits...
try this one...
  • Event
    • Unit - A unit starts the effect of an abilty
  • Condition
    • Ability being cast equal to Crippling Ray
  • Actions
    • Set TempLoc = Position of (TargetUnitOfAbilityBeingCast)
    • Unit - Create 1 Dummy for (owner of (triggering unit)) at (TempLoc) facing Default building facing degrees
    • Set Dummy = last created unit
    • Unit - Add Cripple to (Dummy)
    • Unit - Set level of Cripple for (Dummy) to (level of Crippling Ray for (triggering unit))
    • Unit - Order (Dummy) to undead necromancer - cripple (target unit of ability being cast)
    • Unit - add a 2.00 second generic expiration timer to (Dummy)
    • Custom script: call RemoveLocation(udg_TempLoc)
 
Level 29
Joined
Mar 10, 2009
Messages
5,016
my suggestion is reduce movement speed and make special effects (cripple) of that target...

NOTE: this is just a sample...

  • Event
    • Unit - A unit starts the effect of an abilty
  • Condition
    • Ability being cast equal to Crippling Ray
  • Actions
    • Set Target = Target of ability being cast
    • Unit - Set movement speed to (SPECIFY SPEED HERE) of Target
    • Special effects - Create special effect (ON TARGET)
    • Wait 3 seconds
    • "Then you can set the speed to default & remove special effects"
 
Level 33
Joined
Mar 27, 2008
Messages
8,035
Test map is the best choice ;D

EDIT:
mckill2009, it is NOT efficient if you use Wait action as this can cause a bug or turns out to be a non-MPI trigger
It is better to use what is in the WE for easy configuration rather than using a hard way (set the targeted's MS to XXX)
Use a harder method when your spell is HARDER than the custom spell from Blizzard
 

Attachments

  • Cripling Lightning.w3x
    13.1 KB · Views: 54
Level 29
Joined
Mar 10, 2009
Messages
5,016
Test map is the best choice ;D

EDIT:
mckill2009, it is NOT efficient if you use Wait action as this can cause a bug or turns out to be a non-MPI trigger
It is better to use what is in the WE for easy configuration rather than using a hard way (set the targeted's MS to XXX)
Use a harder method when your spell is HARDER than the custom spell from Blizzard

Your example is OK but I did not see any bug in the sample map I made, maybe you can find any?...I made 3 levels of it...no dummy used...
 
Last edited:
fortunately, there is a thing called 'cooldown', so it cannot be used 2 times within that period of time, of course except with 'cheats' though...

well, if you have two units that cast it at the same time or within 3 seconds, you're doomed too... seriously, you should learn how to do things MUI as much as possible( if always is not possible)...
 
I know MUI, but I'm not as expert as you guys, also I want to do this a different way...

I did not say that you dont know MUI, what I said is that learn to apply it almost always...

and the trigger's you posted are incomplete... example this line

Special effects - Create special effect (ON TARGET)

+ you dont set it to a variable so you can only use GetLastCreatedSpecialEffect so it could cause more bugs if he uses another create special effect...
 
Level 29
Joined
Mar 10, 2009
Messages
5,016
I did not say that you dont know MUI, what I said is that learn to apply it almost always...

and the trigger's you posted are incomplete... example this line

Special effects - Create special effect (ON TARGET)

+ you dont set it to a variable so you can only use GetLastCreatedSpecialEffect so it could cause more bugs if he uses another create special effect...

Im at the office at that time so its incomplete, that's why I made a map...anyway, thanks for the advice :)
 
Level 2
Joined
Jun 3, 2008
Messages
13
weird, something's wrong, i did exactly the same thing as defskull, but mine is not working as his is...
i just uploaded it, what's wrong? ~~'
 

Attachments

  • Crippling Ray.w3x
    139.8 KB · Views: 65
Level 33
Joined
Mar 27, 2008
Messages
8,035
  • Conditions
    • (Ability being cast) Equal to Fireball [Dummy]
It should be Equal to Crippling Ray, not Fireball [Dummy], furthermore, this Dummy is NOT even a spell, it is just a dummy

  • Unit - Order (Last created unit) to Undead Necromancer - Cripple Targeted
When using this kind of action, you MUST NOT modify the spell itself (like you did, you copy and pasted the Cripple spell)
It cannot work because the order uses a unique base ID to identify the spell
You must use ORIGINAL spell (just modify the fields and stuff, doesn't need Copy and Paste) OR you can base it off Channel spell where you can change the ID by yourself

  • Unit - Set level of Cripple for Dummy to (Level of Crippling Ray 2 for (Triggering unit))
When you're setting a level of an ability, you must set the ability from the spell itself
Look at what you did, you set the level of Cripple for Dummy to Level of CRIPPLING RAY... This will call a null function

It should be like this:

  • Unit - Set level of Cripple for Dummy to (Level of Crippling Ray for (Triggering unit))
Example: Your Crippling Ray level is 3, so the Cripple effect would be at Level 3 where level 3 is 70% slow
 
Level 2
Joined
Jun 3, 2008
Messages
13
lol, i messed up that saved file i sent you, imported the fireball with multiple targets to there xD , gona fix it right away

Edit: wait, so how can i order the unit to use my own ID spell? thanks for the patience by the way, you are all being really helpful!
 
Level 13
Joined
May 11, 2008
Messages
1,198
didn't he say copy and paste...? first, copy and paste a base spell(one that is appropriate for your targetting purposes), then do it for cripple(or any other spell that affects movespeed) edit the spells so the base spell is the hero ability...don't matter if dummy ability the ms affecting one is hero or not... just make sure the dummy can cast the spell...for example if you used cripple instead of slow, you may need to remove the tech requirements...everything is default like ladder so cripple requires level 2 necromancing. anyway...you can pretty much set duration like nothing or almost nothing for the base spell...casting time and cooldown can be imporant to be whatever is appropriate. you want your dummy spell though to be like 0 cooldown and casting time mostlikely also and longer casting range than normal maybe and 0 manacost possibly...

you can add other spells to the list as well...maybe a reduction in armor from acid bomb, unableto cast spells fromsoul burn...whatever. if you use jass you can make yourself some custom functions easily which can make this spell enhancement process easier.

i have a function that casts status effect in a target area and i also have one that does it only on a target unit.

basically when you run your base spell...you need to run the dummy spell.

you want to assure the level of the base spell and involved variables such as caster, target and so on are used for the dummy spell.

one last thing to remember, check the hero spell animation and see if it needs to be edited with your base spell. a dummy unit is typically invisible, so changing the dummy spell animation might be pointless...
 
  • Unit - Order (Last created unit) to Undead Necromancer - Cripple Targeted
When using this kind of action, you MUST NOT modify the spell itself (like you did, you copy and pasted the Cripple spell)
It cannot work because the order uses a unique base ID to identify the spell
You must use ORIGINAL spell (just modify the fields and stuff, doesn't need Copy and Paste) OR you can base it off Channel spell where you can change the ID by yourself

nope... you can modify the spell... even custom spells will work with that action as long as the orderstring - use/turn on is equal to cripple... if you try to search the GUI spells in the section, those that require dummies casting spells use these kind of actions, and they cast custom spells...

and see SanKakU's post above for possible areas of error that you can have which causes the spell not to be casted...
 
Status
Not open for further replies.
Top