• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

Channel Spell SFX

Status
Not open for further replies.
Level 2
Joined
Feb 25, 2016
Messages
20
Hello guys, I'm new to this channel ability and need some guidance. I'm aware that this ability doesn't deal damage.

I tried to create a Custom Undead Possesion (for the AI) and imitate like the original spell, I set the based order ID to possesion ID it works but imitated the original (cast range is short) I even set the cast range to 1000(Channel dummy ability) and it still doesn't work

My Goal here is that I able to custom the range and the effect like the GREEN to DARK ghost instead and so AI can use it the custom spell and not the usual AI Melee spell trigger

Or is it only possible with trigger? if so any good way to do it?
Any help is appreciated, Thank you
 

Uncle

Warcraft Moderator
Level 73
Joined
Aug 10, 2018
Messages
7,871
Hello guys, I'm new to this channel ability and need some guidance. I'm aware that this ability doesn't deal damage.

I tried to create a Custom Undead Possesion (for the AI) and imitate like the original spell, I set the based order ID to possesion ID it works but imitated the original (cast range is short) I even set the cast range to 1000(Channel dummy ability) and it still doesn't work

My Goal here is that I able to custom the range and the effect like the GREEN to DARK ghost instead and so AI can use it the custom spell and not the usual AI Melee spell trigger

Or is it only possible with trigger? if so any good way to do it?
Any help is appreciated, Thank you
So abilities in Warcraft 3 are hardcoded to do something specific. You can only change what the developers have made accessible about that ability. For the most part you are constrained to the abilities original design. If you want to go outside of that original design then you will almost definitely need to rely on triggers.

The Channel ability was made as a base for triggered spells, giving you access to some very useful options that almost no other abilities have:

Base Order Id: You've probably tried giving a unit two copies of the same ability before and ran into issues. The issue is that two abilities will conflict with one another if they share the same Order Id. There's no proper solution to this problem, contrary to what the Object Editor says, you CANNOT change an abilities Order Id. The exception to this rule is the Channel ability, which has this special Base Order Id field that allows you to actually change the Order Id. But I think you're a little confused about this. This doesn't change the effects of Channel, Channel will never actually do anything outside of Casting/Art stuff - you're supposed to trigger the Missile/Damage/Buff effects yourself. All changing the Base Order Id does is allow you to get around the multiple copy issue.

Options: Allows you to modify certain behavior of the ability. You almost certainly want to check Visible in here as otherwise you can't even cast the ability and there's better methods for hiding a button. Targeting Image comes in handy if you want your ability to display an Area Of Effect ring when you're choosing where to cast it, similar to spells like Earthquake, Flame Strike, etc. My memory is foggy on the other options but they can come in handy as well and you should look into them if there's a certain behavior you're after.

Targeting Type: Allows you to modify the targeting mechanics of the ability (not to be confused with Targets Allowed). This can be Immediate (War Stomp), Unit (Storm Bolt), Point (Earthquake), or Unit/Point (I think Shockwave can target both of these?).

Follow Through Time: This is how long the ability can be channeled for. If you aren't making a channeled ability then set this to 0.

Disable Other Abilities: I almost always set this to False as it Pauses the unit which often has unwanted side effects. But this could be useful for cinematics or unique mechanics in your map if used properly.

Those five fields are the main ones you need to focus on to get the most out of Channel.

My Goal here is that I able to custom the range and the effect like the GREEN to DARK ghost instead and so AI can use it the custom spell and not the usual AI Melee spell trigger
It sounds like you simply want to copy and paste the Possession ability and modify this new copy to have alternate Art / Cast Range. Then give this ability to the AI's Banshee units. You could handle this Ability swapping through triggers fairly easily.
  • Events
    • Unit - A unit enters (Playable map area)
  • Conditions
    • (Unit-type of (Triggering unit)) Equal to Banshee
    • ((Owner of (Triggering unit)) is a Computer) Equal to True
  • Actions
    • Unit - Remove Possession (Normal) from (Triggering unit)
    • Unit - Add Possession (AI) to (Triggering unit)
 
Last edited:
Level 2
Joined
Feb 25, 2016
Messages
20
So abilities in Warcraft 3 are hardcoded to do something specific. You can only change what the developers have made accessible about that ability. For the most part you are constrained to the abilities original design. If you want to go outside of that original design then you will almost definitely need to rely on triggers.

The Channel ability was made as a base for triggered spells, giving you access to some very useful options that almost no other abilities have:

Base Order Id: You've probably tried giving a unit two copies of the same ability before and ran into issues. The issue is that two abilities will conflict with one another if they share the same Order Id. There's no proper solution to this problem, contrary to what the Object Editor says, you CANNOT change an abilities Order Id. The exception to this rule is the Channel ability, which has this special Base Order Id field that allows you to actually change the Order Id. But I think you're a little confused about this. This doesn't change the effects of Channel, Channel will never actually do anything outside of Casting/Art stuff - you're supposed to trigger the Missile/Damage/Buff effects yourself. All changing the Base Order Id does is allow you to get around the multiple copy issue.

Options: Allows you to modify certain behavior of the ability. You almost certainly want to check Visible in here as otherwise you can't even cast the ability and there's better methods for hiding a button. Targeting Image comes in handy if you want your ability to display an Area Of Effect ring when you're choosing where to cast it, similar to spells like Earthquake, Flame Strike, etc. My memory is foggy on the other options but they can come in handy as well and you should look into them if there's a certain behavior you're after.

Targeting Type: Allows you to modify the targeting mechanics of the ability (not to be confused with Targets Allowed). This can be Immediate (War Stomp), Unit (Storm Bolt), Point (Earthquake), or Unit/Point (I think Shockwave can target both of these?).

Follow Through Time: This is how long the ability can be channeled for. If you aren't making a channeled ability then set this to 0.

Disable Other Abilities: I almost always set this to False as it Pauses the unit which often has unwanted side effects. But this could be useful for cinematics or unique mechanics in your map if used properly.

Those five fields are the main ones you need to focus on to get the most out of Channel.


It sounds like you simply want to copy and paste the Possession ability and modify this new copy to have alternate Art / Cast Range. Then give this ability to the AI's Banshee units. You could handle this Ability swapping through triggers fairly easily.
  • Events
    • Unit - A unit enters (Playable map area)
  • Conditions
    • (Unit-type of (Triggering unit)) Equal to Banshee
    • ((Owner of (Triggering unit)) is a Computer) Equal to True
  • Actions
    • Unit - Remove Possession (Normal) from (Triggering unit)
    • Unit - Add Possession (AI) to (Triggering unit)
Thank you for explaining this, I should research a lot more before posting my question. For now I use other alternative I feel like it is much simpler.
Yes there's leaks, I'm still learning about that

  • Map1 Event
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • -------- ------- --------
      • Set VariableSet RollDice[4] = (Random integer number between 1 and 10)
      • -------- ------- --------
      • Unit Group - Pick every unit in H_HeroGroup and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • RollDice[4] Equal to 1
              • M_Monster_Hunt Equal to 0
              • (Map1 Base <gen> contains (Picked unit)) Equal to True
            • Then - Actions
              • -------- ------- --------
              • Trigger - Run Event1 Banshee A <gen> (checking conditions)
              • -------- ------- --------
              • Game - Display to (All players) the text: |cff808000 Monster...
              • -------- ------- --------
              • Trigger - Turn off (This trigger)
              • -------- ------- --------
            • Else - Actions
              • Game - Display to (All players) the text: ( |cff808000 + (String(RollDice[4])))
  • Event1 Banshee A
    • Events
    • Conditions
    • Actions
      • -------- ------- --------
      • Unit - Create 1 Banshee for Player 9 (Gray) at (Center of Map1 R1 <gen>) facing Default building facing degrees
      • -------- ------- --------
      • Set VariableSet M_Monster_EventCaster = (Last created unit)
      • -------- ------- --------
      • Unit - Add a 10.00 second Generic expiration timer to (Last created unit)
      • -------- ------- --------
      • Unit Group - Pick every unit in H_HeroGroup and do (Actions)
        • Loop - Actions
          • -------- ------- --------
          • Unit - Order M_Monster_EventCaster to Attack (Picked unit)
          • -------- ------- --------
  • Event1 Banshee B
    • Events
      • Unit - A unit Is attacked
    • Conditions
    • Actions
      • Set VariableSet M_Monster_EventCaster = (Attacking unit)
      • -------- ------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Unit-type of (Attacking unit)) Equal to Banshee
        • Then - Actions
          • Trigger - Turn on Map1 Event <gen>
          • -------- ------- --------
          • Unit - Kill M_Monster_EventCaster
          • -------- ------- --------
          • Special Effect - Create a special effect attached to the origin of (Attacked unit) using Objects\Spawnmodels\Undead\UCancelDeath\UCancelDeath.mdl
          • Special Effect - Destroy (Last created special effect)
          • -------- ------- --------
          • Unit - Set mana of (Attacked unit) to ((Percentage mana of (Attacked unit)) - 10.00)
          • -------- ------- --------
          • Custom script: set udg_M_Monster_EventCaster = null
          • -------- ------- --------
        • Else - Actions
 
Status
Not open for further replies.
Top