How Do I Prevent Charm From Being Cast On Any Unit Besides Specific Unit?

Squeekems

TH.net Regular
Reaction score
11
I was trying to use a trigger like this. But I don't know how to refer to the target of the item being manipulated.
Trigger:
  • Prevent Lead Archer Misuse
    • Events
      • Unit - A unit Uses an item
    • Conditions
      • (Item being manipulated) Equal to EtherealBow
      • (Target unit of ability being cast) Not equal to Ethereal_Spawn
    • Actions
      • Unit - Change ownership of (Target unit of ability being cast) to Player 11 (Dark Green) and Change color

I tried using the "Unit - A unit Begins casting an ability" event, and the "(Ability being cast) Equal to Charm (Item)" condition. But that didn't seem to trigger at all.

What am I doing?:
For a quest on my map, you must weaken a boss. It is level 18. When you take 1k hit points out of it, it "delevels." You're suppose to get it to level 5 and then use this item on it. But I don't want people to abuse this item on other units.
 

johnnymra

New Member
Reaction score
14
Well, set the item ability to be able only to charm units under level 6 (therefore only those at 5 or lower will be valid targets).
 

Squeekems

TH.net Regular
Reaction score
11
K, well, you clearly didn't read the part about only using it on that one unit. There are other units that are under 6.
Thanks for the response.
 

luorax

Invasion in Duskwood
Reaction score
67
You can use a dummy unit classification (like Ancient, Mechanic, etc). If the HP of the boss becomes lower than X and reaches level 5, add the classification to the unit (Add Unit Type, or something like this in GUI, or [ljass]UnitAddType(unit u, unittype type)[/ljass] in JASS/custom script) Then go to the object editor and edit the Targets Allowed part of the charm ability. This should work.

Another way I can imagine is a dummy ability that fires the proper event and can be interrupted. If it's succesfully casted, you create a dummy unit, add the dummy charm to it and order it to charm the boss.
 

inevit4ble

Well-Known Member
Reaction score
38
I see your condition as "Not Equal to". That would tell me any unit but "Ethereal Spawn". I would think you'd want to make it == Ethereal Spawn? if that were the boss else make it only equal to the boss so trigger would only run if cast on boss?

Another observation is that "Unit uses an item" will allow you to check which "item was being manipulated" but there isn't an ability being cast to get a target from. I have run through all the events in the past and using an item can be registered via (Begins casting, stats effect, Uses item, Starts channeling, Finishes casting, etc) just not "Unit is issued order x"
Perhaps using a casting detection would be better as you could successfully check the target and the spell being cast.
 

Squeekems

TH.net Regular
Reaction score
11
I see your condition as "Not Equal to". That would tell me any unit but "Ethereal Spawn". I would think you'd want to make it == Ethereal Spawn? if that were the boss else make it only equal to the boss so trigger would only run if cast on boss?
This trigger is to prevent the item from being used on any unit but "Ethereal Spawn."

Another observation is that "Unit uses an item" will allow you to check which "item was being manipulated" but there isn't an ability being cast to get a target from. I have run through all the events in the past and using an item can be registered via (Begins casting, stats effect, Uses item, Starts channeling, Finishes casting, etc) just not "Unit is issued order x"
Perhaps using a casting detection would be better as you could successfully check the target and the spell being cast.
I tried using the "Unit - A unit Begins casting an ability" event, and the "(Ability being cast) Equal to Charm (Item)" condition. But that didn't seem to trigger at all.
This is what the trigger looked like before I tried the trigger in my initial post:
Trigger:
  • Prevent Lead Archer Misuse
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Charm (Item)
      • (Target unit of ability being cast) Not equal to Ethereal_Spawn
    • Actions
      • Unit - Change ownership of (Target unit of ability being cast) to Player 11 (Dark Green) and Change color
 

TheOverWhelm

Member
Reaction score
16
This may be me being Herpa Derpa (just woke up!) but
"This trigger is to prevent the item from being used on any unit but "Ethereal Spawn.""
That is exactly what the trigger is not doing.
(Target unit of ability being cast) Not equal to Ethereal_Spawn
 

Squeekems

TH.net Regular
Reaction score
11
Here's the other trigger for when the item is going to be used on the right unit. It too is not being triggered correctly.

Trigger:
  • Quest Finish Lead Archer
    • Events
      • Unit - A unit Finishes casting an ability
    • Conditions
      • (Ability being cast) Equal to Charm (Item)
      • (Target unit of ability being cast) Equal to Ethereal_Spawn
    • Actions
      • Unit - Change ownership of Ethereal_Spawn to Player 9 (Gray) and Retain color
      • Unit - Move Ethereal_Spawn instantly to (Player 9 (Gray) start location)
      • Unit - Move (Triggering unit) instantly to (Player 9 (Gray) start location)
      • Item - Remove EtherealBow
      • Quest - Mark QUESTREQUIREMENT[7] as Completed
      • Cinematic - Flash a speech indicator for Lead Archer 0051 <gen> of color (100.00%, 100.00%, 100.00%) with 0.00% transparency
      • Cinematic - Send transmission to PLAYING from Lead Archer 0051 <gen> named |cffC0C0C0Lead Arch...: Play No sound and display Good job. Now we ha.... Modify duration: Add 0.00 seconds and Wait
      • For each (Integer A) from 1 to 8, do (Actions)
        • Loop - Actions
          • Hero - Add 500 experience to HERO[(Integer A)], Show level-up graphics
      • Quest - Mark QUESTLeadArcher as Completed
 

inevit4ble

Well-Known Member
Reaction score
38
This trigger works.
Trigger:
  • Ethereal Bow
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Charm
      • (Unit-type of (Target unit of ability being cast)) Equal to Ethereal Spawn
    • Actions
      • Unit - Change ownership of (Target unit of ability being cast) to Player 1 (Red) and Change color

Can only be cast on Ethereal Spawn and changes the owner just fine.


Test map is for example. (Footman = Ethereal Spawn)
Try cast it on the footman and the other units
 

Attachments

  • Ethereal Bow Test.w3x
    12.9 KB · Views: 84

Squeekems

TH.net Regular
Reaction score
11
Interesting...
It doesn't exactly work the same as charm, but beggars can't choosers!

Thanks, inevit4ble.
 
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