• 🏆 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!
  • 🏆 Hive's 6th HD Modeling Contest: Mechanical is now open! Design and model a mechanical creature, mechanized animal, a futuristic robotic being, or anything else your imagination can tinker with! 📅 Submissions close on June 30, 2024. Don't miss this opportunity to let your creativity shine! Enter now and show us your mechanical masterpiece! 🔗 Click here to enter!

Show abilities to enemies without letting them cast

Status
Not open for further replies.
Level 3
Joined
May 17, 2012
Messages
15
Is there a way to let players view an enemy unit's spells while making the player unable to use the enemy unit's spells?

The farthest I've gotten is giving the enemy unit the ability 'Aneu', but that allows other players to cast that unit's spells. I can't use spell channel events either because there's no way to detect which player made the unit cast a spell. Is this possible?
 
Is there a way to let players view an enemy unit's spells while making the player unable to use the enemy unit's spells?

The farthest I've gotten is giving the enemy unit the ability 'Aneu', but that allows other players to cast that unit's spells. I can't use spell channel events either because there's no way to detect which player made the unit cast a spell. Is this possible?

Anho means "Select Hero" nice idea, what about simply limit the casting time into 1.00 seconds and each time an enemy is viewing a unit, wait 0.9 seconds and then force the unit to attack walk itself's position and make that player unselect the unit, of-course like this the player will be able to stop the unit from casting but atleast he will not be able to select the spell he want, but only prevent it from being cast after 0.9 seconds.

I consider this the only solution.
 
When selecting an enemy unit, create a copy of it somewhere, set its mana to 0 and select it for the selecting player?

This is actually a very good solution!

Create a unit in (hidden area) for the selecting player.
Select last created unit for the last player.
set UNIT = last created unit.
setting mana to zero is actually a bad idea since the icons of the unit will be seen weird, dark. but setting mana to the selected unit will show plus minus which abilities the unit can use RIGHT NOW.
of course, once a new unit is selected, remove that unit and only then create the new unit.

Another methode: make each unit a caster art and show what the actual unit can cast, like how shamans are.
 
Level 3
Joined
May 17, 2012
Messages
15
Sorry, I'll clarify.

When you select a unit with 'Aneu' you can see their abilities, even if you do not own that unit. This is shown under:
70UqJLb.png


But if that unit has active abilities, you can cast those abilities even if you don't own the unit:
sQwcrIK.png


I don't want that to happen but there is no way to detect the player who cast the ability.

What I'm looking for is a way to display those abilities without allowing non-owners to cast those abilities. This might not be possible though, which is why I asked here.

@best_player_88:
That does work but it introduces a channel time for every single ability. I can't really add channel times in this case.

@LordDz:
That solution might be the only solution. I might use that solution but I'm just hoping there's a way without using units off the map.

Thanks for the responses!
 

Kyrbi0

Arena Moderator
Level 45
Joined
Jul 29, 2008
Messages
9,527
Sorry, I'll clarify.

When you select a unit with 'Aneu' you can see their abilities, even if you do not own that unit. This is shown under:


But if that unit has active abilities, you can cast those abilities even if you don't own the unit:


I don't want that to happen but there is no way to detect the player who cast the ability.

What I'm looking for is a way to display those abilities without allowing non-owners to cast those abilities. This might not be possible though, which is why I asked here.

@best_player_88:
That does work but it introduces a channel time for every single ability. I can't really add channel times in this case.

@LordDz:
That solution might be the only solution. I might use that solution but I'm just hoping there's a way without using units off the map.

Thanks for the responses!

This is so cool, I didn't know this happened... I would submit this to the "Warcraft III Ability Guide" and the "Weird Ability Guide" (not sure about those names) over at Wc3C (and whatever similar thing they have here). Very nifty.
 
Level 12
Joined
Nov 3, 2013
Messages
989
Just and idéa but you could perhaps see who selected the unit with
  • Untitled Trigger 003
    • Events
      • Unit - A unit enters (Playable map area)
    • Conditions
    • Actions
      • Trigger - Add to Untitled Trigger 002 Copy <gen> the event (Unit - (Triggering unit) Is selected)
  • Untitled Trigger 002
    • Events
      • Player - Player 1 (Red) Selects a unit
    • Conditions
    • Actions
      • Player Group - Pick every player in (All players) and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Picked player) Equal to (Triggering player)
            • Then - Actions
              • Set SelectingPlayer_Bool[(Player number of (Triggering player))] = True
            • Else - Actions
  • Untitled Trigger 002 Copy
    • Events
      • Unit - UnitVar[n] Is selected
    • Conditions
    • Actions
      • Set SelectedUnit_Bool[n] = True
Start a 0.01 timer and check if the bools are true when it expire, the combination of the two would give you the player who selected the unit.

Seeing as people can make DDS, where you would otherwise need to do something similar to this, perhaps some jass pro could make a selection system (if it doesn't exist already)
 
Status
Not open for further replies.
Top