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

[Trigger] Choose strickly one unit from unit group?

Status
Not open for further replies.
Level 7
Joined
Nov 22, 2004
Messages
192
I made this leaderboard that is influenced by the fact that a human computer controlled unit is witness to a crime (killing) then you loose 1 point.

I have made this trigger where 1 random unit is picked from unit group in range 2400 of dying unit.

Then I check if the pick unit is human etc then substract 1 from leaderboard.

The problem comes from that: Even if there are like 5 unit really witness, it only picks a random unit, and sometimes the randomisation picks no one. So the leaderboard does not change.

If I change the trigger to pick units in range of.... etc. Then it counts all pick units and influences the leaderboard like crazy, and if there are five witness you loose 5 points. I want it to loose only 1 point.

Can you show me how to do this so it works.

Here is a text copy of the trigger.

  • PolicePatrol Copy
  • Events
  • Unit - A unit Dies
  • Conditions
  • ((Owner of (Dying unit)) Equal to Neutral Passive) and ((Race of (Dying unit)) Equal to Human)
  • Actions
  • Set L43 = (Position of (Dying unit))
  • Set UnitGroup16 = (Random 1 units from (Units within 2400.00 of L43 matching (((Owner of (Matching unit)) controller) Not equal to User)))
  • Unit Group - Pick every unit in UnitGroup16 and do (Actions)
  • Loop - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • (Race of (Picked unit)) Equal to Human
  • Then - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • (Race of (Killing unit)) Equal to Human
  • Then - Actions
  • Game - Display to (All players matching (((Owner of (Killing unit)) controller) Equal to User)) the text: |cffFF0080Criminal ...
  • Set Infraction = (Infraction - 1)
  • Leaderboard - Change the value for (Owner of (Killing unit)) in LawAndOrder to (10 + Infraction)
  • Set LeaderScore3 = (Real((10 + Infraction)))
 
Last edited by a moderator:
Level 6
Joined
Feb 2, 2005
Messages
205
Please use the
  • tags next time
  • Why not just check if killing Unit and Dieing Unit are from same race?
  • like this
  • [Trigger]
  • PolicePatrol Copy
  • Events
  • Unit - A unit Dies
  • Conditions
  • ((Owner of (Dying unit)) Equal to Neutral Passive) and ((Race of (Dying unit)) Equal to Human)
  • Actions
  • If - Conditions (Race of (Killing unit)) Equal to Human
  • Then - Actions
  • Game - Display to (All players matching (((Owner of (Killing unit)) controller) Equal to User)) the text: |cffFF0080Criminal ...
  • Set Infraction = (Infraction - 1)
  • Leaderboard - Change the value for (Owner of (Killing unit)) in LawAndOrder to (10 + Infraction)
  • Set LeaderScore3 = (Real((10 + Infraction)))
 
Level 32
Joined
Oct 23, 2006
Messages
5,291
[off-topic]

Melshisedek1: I have added the proper trigger tags for you.

These (and many other) tags are available in The Hive's vBuelletin editor:
folder.gif
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,198
Firstly set a boolean varable to false (ill refer to this as B). Then you have to pick all units in X range and check if they match [Your conditions]. If they do set B to true. Then at the end of the trigger, if B is true then subrtract one point.

Im sure you can work out the triggering needed for it, it is hardly complex. Just remember to STOP leaks, or else the system might cause the game to lag if used a lot.
 
Status
Not open for further replies.
Top