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

Help with building the Sharing Bounty System

Status
Not open for further replies.
Level 8
Joined
Jun 26, 2019
Messages
318
I found the assist system that will have sharing bounty system and I uploaded the file of this assist system. I need someone to play Battleships Crossfire with greedisgood 1000000 to max out your ship and kill enemy computers to test the sharing bounty system for you to see what I wanted the sharing bounty system from Battleships Crossfire into my own map the way I want it to be. I need to turn off the lost gold tiggers. Only sharing bounty system enabled. Also, I need to fix the message to be "(Player name) killed (Player name)." Not "(Player name) has been killed by (Player name)." I uploaded the Battleships Crossfire map for anyone of you to play to test out the sharing bounty system.

How do you build the sharing bounty system like this in tiggers…?
************************
Example:

Player Names: Speed, Warcraft, Fast, Slow


[ Ally Hero killing Enemy Hero - Looted 100 golds ]
  • 1. "Speed killed Warcraft"
  • 2. Floating text "100+" golds on top of Warcraft's hero corpse shown to Speed only
  • 3. Speed get 100 golds

[ 2 Ally Heros killing 1 Enemy Hero - Share Loot ]
  • 1. "Speed killed Warcraft with assist by Fast"
  • 2. Floating text "50+" golds on top of Warcraft's hero corpse shown to Speed & Fast only
  • 3. Speed & Fast get 50 golds each

[ Ally Hero killing 2 Enemy Heros - Looted 250 golds ]
  • 1. "Speed killed Warcraft
    Speed killed Slow
    Double Kill!"
  • 2. Floating text "100+" golds on top of each hero corpses shown to Speed only
  • 3. Floating text "Double Kill 50+" golds on top of Speed's hero shown to all players
  • 4. Speed get 250 golds total

[ Ally suicides ]
  • 1. "Speed suicided"
  • 2. Floating text "Suicided!" on top of Speed's hero corpse shown to all players
  • 3. Get nothing

[ Ally killed 5 enemy heros without dying ]
  • 1. "Kill Speed for 500 golds bounty!"
  • 2. Floating text "500+" golds on top of Speed's hero corpse
  • 3. All Ally Heros who have killing Speed get 500 golds each

How do you build the sharing bounty system like this in tiggers…?
************************
Example:

Player Names: Speed, Warcraft, Fast, Slow


[ Ally Hero killing Enemy Hero - Looted 100 golds ]
  • 1. "Speed killed Warcraft"
  • 2. Floating text "100+" golds on top of Warcraft's hero corpse shown to Speed only
  • 3. Speed get 100 golds

[ 2 Ally Heros killing 1 Enemy Hero - Share Loot ]
  • 1. "Speed killed Warcraft with assist by Fast"
  • 2. Floating text "50+" golds on top of Warcraft's hero corpse shown to Speed & Fast only
  • 3. Speed & Fast get 50 golds each

[ Ally Hero killing 2 Enemy Heros - Looted 250 golds ]
  • 1. "Speed killed Warcraft
    Speed killed Slow
    Double Kill!"
  • 2. Floating text "100+" golds on top of each hero corpses shown to Speed only
  • 3. Floating text "Double Kill 50+" golds on top of Speed's hero shown to all players
  • 4. Speed get 250 golds total

[ Ally suicides ]
  • 1. "Speed suicided"
  • 2. Floating text "Suicided!" on top of Speed's hero corpse shown to all players
  • 3. Get nothing

[ Ally killed 5 enemy heros without dying ]
  • 1. "Kill Speed for 500 golds bounty!"
  • 2. Floating text "500+" golds on top of Speed's hero corpse
  • 3. All Ally Heros who have killing Speed get 500 golds each

How do you build the sharing bounty system like this in tiggers…?
************************
Example:

Player Names: Speed, Warcraft, Fast, Slow


[ Ally Hero killing Enemy Hero - Looted 100 golds ]
  • 1. "Speed killed Warcraft"
  • 2. Floating text "100+" golds on top of Warcraft's hero corpse shown to Speed only
  • 3. Speed get 100 golds

[ 2 Ally Heros killing 1 Enemy Hero - Share Loot ]
  • 1. "Speed killed Warcraft with assist by Fast"
  • 2. Floating text "50+" golds on top of Warcraft's hero corpse shown to Speed & Fast only
  • 3. Speed & Fast get 50 golds each

[ Ally Hero killing 2 Enemy Heros - Looted 250 golds ]
  • 1. "Speed killed Warcraft
    Speed killed Slow
    Double Kill!"
  • 2. Floating text "100+" golds on top of each hero corpses shown to Speed only
  • 3. Floating text "Double Kill 50+" golds on top of Speed's hero shown to all players
  • 4. Speed get 250 golds total

[ Ally suicides ]
  • 1. "Speed suicided"
  • 2. Floating text "Suicided!" on top of Speed's hero corpse shown to all players
  • 3. Get nothing

[ Ally killed 5 enemy heros without dying ]
  • 1. "Kill Speed for 500 golds bounty!"
  • 2. Floating text "500+" golds on top of Speed's hero corpse
  • 3. All Ally Heros who have killing Speed get 500 golds each
 
Last edited by a moderator:

Uncle

Warcraft Moderator
Level 64
Joined
Aug 10, 2018
Messages
6,537
Do you mean you want to create your own Bounty System from scratch or are you using someone else's already? If you're using one already then how are we supposed to know how it works if you haven't shown it to us?

Anyway, I attached a map with an example of what you could do. It's nothing amazing but it gets the job done. Maybe you can look it over and figure out some ideas for yourself.

How it works:
I use Bribe's Damage Detection System to detect whenever damage is dealt. So whenever a Hero deals damage to another Hero I store some information inside a Hashtable. First I store a Boolean that I use to represent whether or not a Player has been damaged by another Player. So if Player 1 has damaged Player 2 then this Boolean will basically say "Player 1 has damaged Player 2 = True". Then I store a Real in the Hashtable which I use as a timer. By default I set this timer to 5 seconds but you can change it to however long you want. This timer represents how long our Boolean will remain True. So if it's been 5 seconds since Player 1 has damaged Player 2, then "Player 1 has damaged Player 2" will be set to False. This Boolean is what we use to figure out which players have recently damaged a dying unit. So when a unit dies we can loop through all of our players and determine if this Boolean is True or False, if it's True we know that the player had damaged the dying unit in the last 5 seconds.

EDIT:

Added version 2. Has the increased bounty stuff. Haven't added the "multi-kill, double kill, triple kill" text yet but I'll see if I can soon.
 

Attachments

  • Assist System v.2.w3x
    51 KB · Views: 14
Last edited:

Uncle

Warcraft Moderator
Level 64
Joined
Aug 10, 2018
Messages
6,537
Can you have more than 1 Ship at a time in this game? Not counting the Item Combiner/Stash thingy.

If you cannot, add this trigger:

  • Set Your Boat
    • Events
      • Unit - A unit enters (Entire map)
    • Conditions
      • ((Triggering unit) is A Hero) Equal to True
      • (Unit-type of (Triggering unit)) Not equal to Gear Stash & Item Combiner
      • (Owner of (Triggering unit)) Not equal to Player 1 (Red)
      • (Owner of (Triggering unit)) Not equal to Player 2 (Blue)
      • ((Triggering unit) is an illusion) Equal to False
    • Actions
      • Set AS_PlayerHero[(Player number of (Owner of (Triggering unit)))] = (Triggering unit)
There might be some more conditions you need to add depending on how the map works. I don't have the time to test through the entire game to find any weird interactions.

OR, you can go into the Change Ship trigger and set the AS_PlayerHero variable there. This is the trigger used for buying ships. In the trigger below I added my AS_PlayerHero variable. I simply set "AS_PlayerHero[]" to "PlayerBoat[]" so they will always be the same unit. You need to do this AFTER PlayerBoat has been set.

  • Change Ship
    • Events
      • Unit - A unit Sells a unit
    • Conditions
    • Actions
      • Wait 0.10 seconds
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Or - Any (Conditions) are true
                • Conditions
                  • And - All (Conditions) are true
                    • Conditions
                      • ((Owner of PlayerBoat[(Player number of (Owner of (Sold unit)))]) is an ally of Player 1 (Red)) Equal to True
                  • And - All (Conditions) are true
                    • Conditions
                      • ((Owner of PlayerBoat[(Player number of (Owner of (Sold unit)))]) is an ally of Player 2 (Blue)) Equal to True
                  • (Selling unit) Equal to Pirate Ships 0124 <gen>
                  • (Selling unit) Equal to Pirate Ships 0158 <gen>
                  • (Selling unit) Equal to Main Harbour 0131 <gen>
                  • (Selling unit) Equal to Main Harbour 0018 <gen>
                  • (Selling unit) Equal to Main Harbour 0020 <gen>
                  • (Selling unit) Equal to Pirate Ships 0081 <gen>
            • Then - Actions
              • -------- Change Ship --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Unit-type of PlayerBoat[(Player number of (Owner of (Sold unit)))]) Not equal to Captain
                • Then - Actions
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Or - Any (Conditions) are true
                    • Conditions
                      • (Unit-type of (Sold unit)) Equal to Support DPS
                      • (Unit-type of (Sold unit)) Equal to DPS Carry
                      • (Unit-type of (Sold unit)) Equal to Support Tank Healer
                      • (Unit-type of (Sold unit)) Equal to Mobile DPS Carry
                      • (Unit-type of (Sold unit)) Equal to DPS
                      • (Unit-type of (Sold unit)) Equal to Forgotten
                      • (Unit-type of (Sold unit)) Equal to Forgotten
                      • (Unit-type of (Sold unit)) Equal to Eliminator
                      • (Unit-type of (Sold unit)) Equal to DPS
                      • (Unit-type of (Sold unit)) Equal to Support Healer
                      • (Unit-type of (Sold unit)) Equal to Eliminator
                      • (Unit-type of (Sold unit)) Equal to Scorpion
                      • (Unit-type of (Sold unit)) Equal to Forgotten
                      • (Unit-type of (Sold unit)) Equal to DPS Carry
                      • (Unit-type of (Sold unit)) Equal to Tank
                      • (Unit-type of (Sold unit)) Equal to Support Tank
                      • (Unit-type of (Sold unit)) Equal to DPS Carry
                      • (Unit-type of (Sold unit)) Equal to Ruler
                      • (Unit-type of (Sold unit)) Equal to Ruler
                      • (Unit-type of (Sold unit)) Equal to Ruler
                      • (Unit-type of (Sold unit)) Equal to Emperor
                      • (Unit-type of (Sold unit)) Equal to Tank Carry
                      • (Unit-type of (Sold unit)) Equal to Tank Support
                      • (Unit-type of (Sold unit)) Equal to Trade Boat
                      • (Unit-type of (Sold unit)) Equal to Support Tank
                • Then - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Unit-type of (Sold unit)) Equal to Trade Boat
                    • Then - Actions
                    • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Unit-type of (Sold unit)) Equal to Hardcore Trade Boat
                    • Then - Actions
                    • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • ((Owner of (Sold unit)) is an ally of Player 1 (Red)) Equal to True
                    • Then - Actions
                      • Game - Display to (All allies of (Owner of (Sold unit))) the text: (|cffFF6666 + ((Name of (Owner of (Sold unit))) + (|r has changed ship to a |cffffcc00 + ((Proper name of (Sold unit)) + (|r. (|cffffcc00 + ((Name of (Sold unit)) + |r)))))))
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • gameon Equal to False
                        • Then - Actions
                          • Unit - Move (Buying unit) instantly to (Center of SouthRespawn <gen>)
                        • Else - Actions
                          • Unit - Move (Buying unit) instantly to (Center of Region 055 <gen>)
                      • Player - Add 1 to (Owner of (Sold unit)) Current gold
                    • Else - Actions
                      • Player - Add 1 to (Owner of (Sold unit)) Current gold
                      • Game - Display to (All allies of (Owner of (Sold unit))) the text: (|cff6666FF + ((Name of (Owner of (Sold unit))) + (|r has changed ship to a |cffffcc00 + ((Proper name of (Sold unit)) + (|r. (|cffffcc00 + ((Name of (Sold unit)) + |r)))))))
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • gameon Equal to False
                        • Then - Actions
                          • Unit - Move (Buying unit) instantly to (Center of NorthRespawn <gen>)
                        • Else - Actions
                          • Unit - Move (Buying unit) instantly to (Center of Region 056 <gen>)
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Or - Any (Conditions) are true
                    • Conditions
                • Then - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • ((Owner of (Sold unit)) is an ally of Player 1 (Red)) Equal to True
                    • Then - Actions
                      • Game - Display to (All allies of (Owner of (Sold unit))) the text: (|cffFF6666 + ((Name of (Owner of (Sold unit))) + (|r has changed ship to an |cffffcc00 + ((Proper name of (Sold unit)) + (|r. (|cffffcc00 + ((Name of (Sold unit)) + |r)))))))
                    • Else - Actions
                      • Game - Display to (All allies of (Owner of (Sold unit))) the text: (|cff6666FF + ((Name of (Owner of (Sold unit))) + (|r has changed ship to an |cffffcc00 + ((Proper name of (Sold unit)) + (|r. (|cffffcc00 + ((Name of (Sold unit)) + |r)))))))
                • Else - Actions
              • -------- No Ship To Sell --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Unit-type of (Sold unit)) Equal to (Unit-type of PlayerBoat[(Player number of (Owner of (Sold unit)))])
                  • (Unit-type of (Sold unit)) Equal to Captain
                • Then - Actions
                  • Game - Display to (Player group((Owner of PlayerBoat[(Player number of (Owner of (Sold unit)))]))) the text: |cffFF3333You don't...
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Unit-type of (Sold unit)) Not equal to Captain
                    • Then - Actions
                      • Unit - Replace PlayerBoat[(Player number of (Owner of (Sold unit)))] with a (Unit-type of (Sold unit)) using The new unit's max life and mana
                      • Unit - Change ownership of PlayerHandyMan[(Player number of (Owner of (Sold unit)))] to (Owner of (Sold unit)) and Change color
                      • Set PlayerBoat[(Player number of (Owner of (Sold unit)))] = (Last replaced unit)
                      • Unit - Set life of (Sold unit) to 1.00
                      • Unit - Set life of (Last replaced unit) to 1.00
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • ShipChange Equal to False
                        • Then - Actions
                        • Else - Actions
                    • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Unit-type of (Sold unit)) Equal to Captain
                    • Then - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • NOBUG[(Player number of (Owner of (Sold unit)))] Not equal to False
                        • Then - Actions
                          • Set LumberPieces[(Player number of (Owner of (Triggering unit)))] = 0
                          • For each (Integer A) from 1 to 6, do (Actions)
                            • Loop - Actions
                              • Hero - Give (Item carried by PlayerBoat[(Player number of (Owner of (Sold unit)))] in slot (Integer A)) to PlayerHandyMan[(Player number of (Owner of (Sold unit)))]
                              • Item - Move (Item carried by PlayerBoat[(Player number of (Owner of (Sold unit)))] in slot (Integer A)) to (Position of PlayerHandyMan[(Player number of (Owner of (Sold unit)))])
                          • Unit - Remove PlayerBoat[(Player number of (Owner of (Sold unit)))] from the game
                          • Set PlayerBoat[(Player number of (Owner of (Sold unit)))] = PlayerHandyMan[(Player number of (Owner of (Sold unit)))]
                          • Unit - Replace PlayerBoat[(Player number of (Owner of (Sold unit)))] with a (Unit-type of PlayerHandyMan[(Player number of (Owner of (Sold unit)))]) using The new unit's max life and mana
                          • Unit - Change ownership of PlayerHandyMan[(Player number of (Owner of (Sold unit)))] to (Owner of (Sold unit)) and Change color
                          • Unit - Remove Get Onboard from PlayerHandyMan[(Player number of (Owner of (Sold unit)))]
                          • Unit - Set life of (Last replaced unit) to 1.00
                          • Unit - Set life of (Sold unit) to 1.00
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • ShipChange Equal to False
                            • Then - Actions
                            • Else - Actions
                        • Else - Actions
                          • Unit - Replace PlayerBoat[(Player number of (Owner of (Sold unit)))] with a (Unit-type of PlayerHandyMan[(Player number of (Owner of (Sold unit)))]) using The new unit's max life and mana
                          • Unit - Change ownership of PlayerHandyMan[(Player number of (Owner of (Sold unit)))] to (Owner of (Sold unit)) and Change color
                          • Set PlayerBoat[(Player number of (Owner of (Sold unit)))] = (Last replaced unit)
                          • Unit - Set life of (Last replaced unit) to 1.00
                          • Unit - Set life of (Sold unit) to 1.00
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • ShipChange Equal to False
                            • Then - Actions
                            • Else - Actions
                    • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Or - Any (Conditions) are true
                        • Conditions
                          • (South Main <gen> contains PlayerBoat[(Player number of (Owner of (Sold unit)))]) Equal to True
                          • (North Main <gen> contains PlayerBoat[(Player number of (Owner of (Sold unit)))]) Equal to True
                    • Then - Actions
                      • Do nothing
                    • Else - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • ((Owner of (Last replaced unit)) is an ally of Player 1 (Red)) Equal to True
                        • Then - Actions
                          • Camera - Pan camera for (Owner of (Buying unit)) to (Position of (Last replaced unit)) over 1.00 seconds
                        • Else - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • ((Owner of (Last replaced unit)) is an ally of Player 2 (Blue)) Equal to True
                        • Then - Actions
                          • Camera - Pan camera for (Owner of (Buying unit)) to (Position of (Last replaced unit)) over 1.00 seconds
                        • Else - Actions
                          • -------- Kill Pirate Harbour - Black Pearl --------
              • -------- ASSIST SYSTEM VARIABLE --------
              • -------- ASSIST SYSTEM VARIABLE --------
              • -------- ASSIST SYSTEM VARIABLE --------
              • -------- ASSIST SYSTEM VARIABLE --------
              • -------- ASSIST SYSTEM VARIABLE --------
              • Set AS_PlayerHero[(Player number of (Owner of (Sold unit)))] = PlayerBoat[(Player number of (Owner of (Sold unit)))]
              • -------- ASSIST SYSTEM VARIABLE --------
              • -------- ASSIST SYSTEM VARIABLE --------
              • -------- ASSIST SYSTEM VARIABLE --------
              • -------- ASSIST SYSTEM VARIABLE --------
              • -------- ASSIST SYSTEM VARIABLE --------
              • Unit - Remove (Sold unit) from the game
              • Wait 0.20 seconds
            • Else - Actions
        • Else - Actions
      • Unit Group - Pick every unit in (Units owned by (Owner of (Buying unit)) matching (((Matching unit) is A Hero) Equal to True)) and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Picked unit) is hidden) Equal to True
            • Then - Actions
              • Unit - Remove (Picked unit) from the game
            • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in (Units owned by (Owner of (Buying unit)) matching (((Matching unit) is A Hero) Equal to True))) Greater than 2
        • Then - Actions
          • Unit Group - Pick every unit in (Units owned by (Owner of (Buying unit)) matching (((Matching unit) is A Hero) Equal to True)) and do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Picked unit) Not equal to PlayerBoat[(Player number of (Owner of (Picked unit)))]
                • Then - Actions
                  • Unit - Remove (Picked unit) from the game
                • Else - Actions
          • Unit - Make PlayerBoat[(Player number of (Owner of (Buying unit)))] Vulnerable
          • Unit - Unpause PlayerBoat[(Player number of (Owner of (Buying unit)))]
          • Unit - Unpause PlayerBoat[(Player number of (Owner of (Buying unit)))]
          • Unit - Make (Last replaced unit) Vulnerable
          • Selection - Select PlayerBoat[(Player number of (Owner of (Buying unit)))] for (Owner of (Buying unit))
          • Camera - Pan camera for (Owner of (Buying unit)) to (Position of (Last replaced unit)) over 1.00 seconds
        • Else - 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
              • clearon[(Player number of (Picked player))] Equal to True
            • Then - Actions
              • Cinematic - Clear the screen of text messages for (Player group((Picked player)))
            • Else - Actions
 
Last edited:
Level 8
Joined
May 21, 2019
Messages
435
Player Names: Speed, Warcraft, Fast, Slow
These are terrible placeholder names.

[ Ally Hero killing Enemy Hero - Looted 100 golds ]
  • 1. "Speed killed Warcraft"
  • 2. Floating text "100+" golds on top of Warcraft's hero corpse shown to Speed only
  • 3. Speed get 100 golds
  1. Use the game message action and a concenated string. It's going to look something like: (Owner of Killing Unit + " killed " + Owner of Dying Unit)
  2. Kinda hard to do, since floating text is displayed to all players. The best course would be to generate a dummy unit and kill it to grant the bounty gold after calculating it, as this would give the desired visual effect.
  3. This is as easy as "Add 100 gold to owner of killing unit", but you may wanna look into the above suggestion if you want that scrolling text so badly.
[ 2 Ally Heros killing 1 Enemy Hero - Share Loot ]
  • 1. "Speed killed Warcraft with assist by Fast"
  • 2. Floating text "50+" golds on top of Warcraft's hero corpse shown to Speed & Fast only
  • 3. Speed & Fast get 50 golds each
First off, you need to define what an "assist" is. Is it damaging the target before it dies? Is it being nearby when it dies? Is it any form of contribution to the fight? (the latter is by far the most intensive to code).
Lets say that it's damaging the target:
  1. Again, concenated string. What you need is something that keeps track of assisting players. For this, you need timers that are reset whenever a player damages a target.
  2. Basically an expanded version of my answer to the previous point.
  3. Same as before, but with basic math.

[ Ally Hero killing 2 Enemy Heros - Looted 250 golds ]
  • 1. "Speed killed Warcraft
    Speed killed Slow
    Double Kill!"
  • 2. Floating text "100+" golds on top of each hero corpses shown to Speed only
  • 3. Floating text "Double Kill 50+" golds on top of Speed's hero shown to all players
  • 4. Speed get 250 golds total
  1. You need a timer to keep track of kill streaks. When a kill is landed, a timer is started, and if another kill is made during that time, you restart the timer and trigger the chain kill bonuses.
  2. Same as the two previous ones.
  3. Since its shown to all players, you can just use an actual floating text action.
  4. Yes, 100+100+50 is indeed 250.
[ Ally suicides ]
  • 1. "Speed suicided"
  • 2. Floating text "Suicided!" on top of Speed's hero corpse shown to all players
  • 3. Get nothing
Suicides and suicided aren't real words. Use "committed suicide" instead.
What you need is to clarify how exactly a suicide is performed. Judging by the general vibe from these questions, I am going to assume it means damaging your own heroes. So basically, you can keep track of this by checking if "Owner of killing unit" is equal to "Owner of dying unit" and then act from there.
  1. Game message with concenated string
  2. Floating text with concenated string
  3. Literally answers itself.
[ Ally killed 5 enemy heros without dying ]
  • 1. "Kill Speed for 500 golds bounty!"
  • 2. Floating text "500+" golds on top of Speed's hero corpse
  • 3. All Ally Heros who have killing Speed get 500 golds each
Let me get this right. If a guy on a team kills all enemy heroes, his allies are told to kill him for a bounty? What on earth would make this a sensible mechanic?
Either way...
  1. Concenated string, game message.
  2. Literally answers itself.
  3. Using the assist tracking system, you give each player 500 gold with the add property action.

IN SUMMARY:

Judging by the range of these questions, I think it's safe to say that you have little to no experience with coding triggers. Some of the parts of this system are fairly complicated, and I wouldn't recommend them for a beginner.

You may want to change the original post to "Can anyone make this for me?" instead of "How do I do this?", as you are already in the recruitment section.
 
Level 8
Joined
Jun 26, 2019
Messages
318
Picture shown as example for multiboard on asisst because I need this for my WC3stats.com to work.

upload_2020-2-16_14-6-40.png


Here the map file that need to have assist system added to multiboard. Example. Kills, Deaths, Assists on Multiboard, you know? But, don't worry about kills or deaths.

@Uncle
 

Uncle

Warcraft Moderator
Level 64
Joined
Aug 10, 2018
Messages
6,537
It's been a while since I made that. I'll look into it soon. It shouldn't be too difficult though, you just increase an Integer by 1 whenever you get a kill or assist.

Edit:
Uploaded a map with the fixed multiboard. Added kills, assists, and deaths.
 

Attachments

  • Bounty System with Assist Multiboard Fixed 1.w3x
    54.7 KB · Views: 22
Last edited:
Level 8
Joined
Jun 26, 2019
Messages
318
I dont have problem with flame strike in your bounty system, but I want this capsize to be worked too, but it doesn't work good. Or, if we have to use flame strike to be worked with your bounty system, then the only problem I have on flame strike ability is that when I customized the flame strike to be as suicide bomb like capsize, and used it in the game, and it crashed the game.............. I don't know why flame strike ability crashing the game every time it's being edited. That's why I want capsize ability, but... it having problem with your bounty system. The flame strike ability works good with your bounty system, but it's hard to choose which one. Both have problem. So. I was wondering if you could fix the bounty system for capsize ability to be work like flame strike suicide. You can compare the flame strike by suicide the mage with its own flame strike within the range of nearby enemy units, and killed them along with flame strike.
 

Uncle

Warcraft Moderator
Level 64
Joined
Aug 10, 2018
Messages
6,537
The system works like this:
A unit dies ->
If killing unit belongs to an enemy of dying unit -> Killing Unit has killed Dying Unit (normal kill)

If killing unit belongs to an ally of dying unit -> Killing Unit has accidentally killed Dying Unit (team kill)

If killing unit belongs to owner of dying unit -> Killing Unit has committed suicide (self kill)

So the Suicide ability must be considered from an "enemy" source if it displays the "unit has killed unit" text. We can't really do anything about that since it's a hardcoded Blizzard ability so instead we should just trigger it ourselves.

So with that in mind I triggered capsize so that it will deal 2500 damage to nearby units EXCEPT the caster, and then cause the casting unit to deal 1000000000 damage to itself. This way the casting unit is killing itself. Some of Blizzard's abilities won't be programmed to work like this so you need to trigger it yourself.

  • Cast Capsize
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Capsize (Goblin Sapper)
    • Actions
      • Set VariableSet AS_TempPoint[10] = (Position of (Triggering unit))
      • -------- --------
      • -------- Explosion Special Effect --------
      • Special Effect - Create a special effect at AS_TempPoint[10] using Objects\Spawnmodels\Human\HCancelDeath\HCancelDeath.mdl
      • Special Effect - Destroy (Last created special effect)
      • -------- --------
      • -------- Deal Damage --------
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units within 150.00 of AS_TempPoint[10].) and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Picked unit) Not equal to (Triggering unit)
            • Then - Actions
              • Unit - Cause (Triggering unit) to damage (Picked unit), dealing 2500.00 damage of attack type Spells and damage type Normal
            • Else - Actions
      • Custom script: call RemoveLocation(udg_AS_TempPoint[10])
      • -------- --------
      • -------- Suicide Caster --------
      • Unit - Cause (Triggering unit) to damage (Triggering unit), dealing 1000000000.00 damage of attack type Chaos and damage type Universal
I also added a way to ignore the Assist System when you want to kill a unit like this:
  • TEST Ignore Assist System
    • Events
      • Player - Player 1 (Red) types a chat message containing test as An exact match
    • Conditions
    • Actions
      • Set VariableSet IgnoreAssistSystem = True
      • Unit - Kill Paladin 0000 <gen>
      • Set VariableSet IgnoreAssistSystem = False
Set IgnoreAssistSystem = True before killing the units and then set it back to false afterwards.

Also, I tested Flamestrike and had no issues, so i'm not too sure what you're talking about in regards to that.
 

Attachments

  • Bounty System Capsize Fix.w3x
    56.7 KB · Views: 13
Last edited:
Level 8
Joined
Jun 26, 2019
Messages
318
Oh. Okay. So. we have to custom the capsize. Ok. Got it. Thanks. I guess I will go with custom capsize.

About the flame strike, of course, there's no issues about it. I already told you about it, and wanted you to see it to compare to the capsize ability. But, nevermind the flame strike. Lol. Thanks man. I understood how the Blizzard treated the capsize ability. Sucks.
 
Status
Not open for further replies.
Top