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

Multiboard and Streak System

Status
Not open for further replies.
Level 5
Joined
Dec 31, 2015
Messages
116
I need help, as stated by the title, with multiboard and streak system. Both of this is my only problem in making it. I tried reading tutorial and making it, but it results as a disaster. So, I just search some systems in the spell section, and I did manage to find something.

The problem in multiboard, it doesn't properly update the death and kill column. And I don't how to remove the Timer Elapsed.

While the streak system doesn't reset when the extra streak timer expires.
 

Attachments

  • Steak System and Multiboard.w3x
    34.5 KB · Views: 43
Level 15
Joined
Aug 14, 2007
Messages
936
For streak system, you need a timer limit, DotA has a streak timer of over 10 seconds or near that timing. Streak is mostly only TIED to Players but you can option it for each Hero and from there but let's get back to topic. Since it is TIED to Players you will need a player variable that has 12 array to record all Players. The timer here is important for the streak limit of Double and Triple Kills but other streak also include Killing Spree/Dominating/etc. . . For all kill streaks you will need a number count, use two integer variable with array that TIE to player number. First integer variable is for Double Kill and Triple Kill, add in another real variable with array as well for the timer. By the way, the second integer variable will be used for killing sprees, this one do not require any timer but remember to set this to 0 when a Hero die. Create an event that detect Hero death and set the integer to 0. Every time you are using something to detect the spree, always refer to those two integers and you will not get any bugs.
 
Level 5
Joined
Dec 31, 2015
Messages
116
For streak system, you need a timer limit, DotA has a streak timer of over 10 seconds or near that timing. Streak is mostly only TIED to Players but you can option it for each Hero and from there but let's get back to topic. Since it is TIED to Players you will need a player variable that has 12 array to record all Players. The timer here is important for the streak limit of Double and Triple Kills but other streak also include Killing Spree/Dominating/etc. . . For all kill streaks you will need a number count, use two integer variable with array that TIE to player number. First integer variable is for Double Kill and Triple Kill, add in another real variable with array as well for the timer. By the way, the second integer variable will be used for killing sprees, this one do not require any timer but remember to set this to 0 when a Hero die. Create an event that detect Hero death and set the integer to 0. Every time you are using something to detect the spree, always refer to those two integers and you will not get any bugs.
Thanks, I will try it soon.
 
Level 5
Joined
Dec 31, 2015
Messages
116
The streak system is fixed, but I need help with the multiboard. The multiboard don't update the kill and death tabs properly. Here's the trigger:
  • MBUpdateDying
    • Events
      • Unit - A unit Dies
    • Conditions
      • ((Dying unit) is A Hero) Equal to True
    • Actions
      • Set MB_DEATHS[(Player number of (Owner of (Triggering unit)))] = (MB_DEATHS[(Player number of (Owner of (Triggering unit)))] + 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Owner of (Killing unit)) is an enemy of (Owner of (Dying unit))) Equal to True
        • Then - Actions
          • Set MB_KILLS[(Player number of (Owner of (Killing unit)))] = ((Player number of (Owner of (Killing unit))) + 1)
        • Else - Actions
      • -------- // UPDATE MULTIBOARD // --------
      • For each (Integer A) from 1 to 12, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Owner of (Dying unit)) is an ally of Player 1 (Red)) Equal to True
            • Then - Actions
              • Multiboard - Set the text for MB[(Integer A)] item in column 4, row ((Position of (Owner of (Triggering unit)) in MB_LB[1]) + 1) to (String(MB_DEATHS[(Player number of (Owner of (Triggering unit)))]))
              • Multiboard - Set the text for MB[(Integer A)] item in column 4, row 2 to (String((MB_DEATHS[1] + (MB_DEATHS[2] + (MB_DEATHS[3] + (MB_DEATHS[4] + MB_DEATHS[5]))))))
            • Else - Actions
              • Multiboard - Set the text for MB[(Integer A)] item in column 4, row ((Position of (Owner of (Triggering unit)) in MB_LB[2]) + ((Number of players in MB_T1_PLAYERS) + 4)) to (String(MB_DEATHS[(Player number of (Owner of (Triggering unit)))]))
              • Multiboard - Set the text for MB[(Integer A)] item in column 4, row ((Number of players in MB_T1_PLAYERS) + 1) to (String((MB_DEATHS[6] + (MB_DEATHS[7] + (MB_DEATHS[8] + (MB_DEATHS[9] + MB_DEATHS[10]))))))
      • For each (Integer A) from 1 to 12, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Owner of (Killing unit)) is an ally of Player 1 (Red)) Equal to True
            • Then - Actions
              • Multiboard - Set the text for MB[(Integer A)] item in column 3, row ((Position of (Owner of (Killing unit)) in MB_LB[1]) + 1) to (String(MB_KILLS[(Player number of (Owner of (Killing unit)))]))
              • Multiboard - Set the text for MB[(Integer A)] item in column 3, row 2 to (String((MB_KILLS[1] + (MB_KILLS[2] + (MB_KILLS[3] + (MB_KILLS[4] + MB_KILLS[5]))))))
            • Else - Actions
              • Multiboard - Set the text for MB[(Integer A)] item in column 3, row ((Position of (Owner of (Killing unit)) in MB_LB[2]) + ((Number of players in MB_T1_PLAYERS) + 4)) to (String(MB_KILLS[(Player number of (Owner of (Killing unit)))]))
              • Multiboard - Set the text for MB[(Integer A)] item in column 3, row ((Number of players in MB_T1_PLAYERS) + 1) to (String((MB_KILLS[6] + (MB_KILLS[7] + (MB_KILLS[8] + (MB_KILLS[9] + MB_KILLS[10]))))))
Can someone please fix this. I really need this on my map.
 
Level 28
Joined
Feb 18, 2014
Messages
3,579
The streak system is fixed, but I need help with the multiboard. The multiboard don't update the kill and death tabs properly. Here's the trigger:
  • MBUpdateDying
    • Events
      • Unit - A unit Dies
    • Conditions
      • ((Dying unit) is A Hero) Equal to True
    • Actions
      • Set MB_DEATHS[(Player number of (Owner of (Triggering unit)))] = (MB_DEATHS[(Player number of (Owner of (Triggering unit)))] + 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Owner of (Killing unit)) is an enemy of (Owner of (Dying unit))) Equal to True
        • Then - Actions
          • Set MB_KILLS[(Player number of (Owner of (Killing unit)))] = ((Player number of (Owner of (Killing unit))) + 1)
        • Else - Actions
      • -------- // UPDATE MULTIBOARD // --------
      • For each (Integer A) from 1 to 12, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Owner of (Dying unit)) is an ally of Player 1 (Red)) Equal to True
            • Then - Actions
              • Multiboard - Set the text for MB[(Integer A)] item in column 4, row ((Position of (Owner of (Triggering unit)) in MB_LB[1]) + 1) to (String(MB_DEATHS[(Player number of (Owner of (Triggering unit)))]))
              • Multiboard - Set the text for MB[(Integer A)] item in column 4, row 2 to (String((MB_DEATHS[1] + (MB_DEATHS[2] + (MB_DEATHS[3] + (MB_DEATHS[4] + MB_DEATHS[5]))))))
            • Else - Actions
              • Multiboard - Set the text for MB[(Integer A)] item in column 4, row ((Position of (Owner of (Triggering unit)) in MB_LB[2]) + ((Number of players in MB_T1_PLAYERS) + 4)) to (String(MB_DEATHS[(Player number of (Owner of (Triggering unit)))]))
              • Multiboard - Set the text for MB[(Integer A)] item in column 4, row ((Number of players in MB_T1_PLAYERS) + 1) to (String((MB_DEATHS[6] + (MB_DEATHS[7] + (MB_DEATHS[8] + (MB_DEATHS[9] + MB_DEATHS[10]))))))
      • For each (Integer A) from 1 to 12, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Owner of (Killing unit)) is an ally of Player 1 (Red)) Equal to True
            • Then - Actions
              • Multiboard - Set the text for MB[(Integer A)] item in column 3, row ((Position of (Owner of (Killing unit)) in MB_LB[1]) + 1) to (String(MB_KILLS[(Player number of (Owner of (Killing unit)))]))
              • Multiboard - Set the text for MB[(Integer A)] item in column 3, row 2 to (String((MB_KILLS[1] + (MB_KILLS[2] + (MB_KILLS[3] + (MB_KILLS[4] + MB_KILLS[5]))))))
            • Else - Actions
              • Multiboard - Set the text for MB[(Integer A)] item in column 3, row ((Position of (Owner of (Killing unit)) in MB_LB[2]) + ((Number of players in MB_T1_PLAYERS) + 4)) to (String(MB_KILLS[(Player number of (Owner of (Killing unit)))]))
              • Multiboard - Set the text for MB[(Integer A)] item in column 3, row ((Number of players in MB_T1_PLAYERS) + 1) to (String((MB_KILLS[6] + (MB_KILLS[7] + (MB_KILLS[8] + (MB_KILLS[9] + MB_KILLS[10]))))))
Can someone please fix this. I really need this on my map.
Because you're not using a timer, you'll need to create another trigger which is a timer event in order to update the multiboard.
 
Level 5
Joined
Dec 31, 2015
Messages
116
Because you're not using a timer, you'll need to create another trigger which is a timer event in order to update the multiboard.
What do you mean adding a timer? I didn't know multiboard needed a timer for updating.
 
Status
Not open for further replies.
Top