Return to post
- settings
- {
- main
- {
Description: "▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ ▩▩▩▩▩ LogTime v1.00 ▩▩▩▩▩ ▩▩▩ workshop.codes/logtime ▩▩▩ ▩▩ Configure in Workshop Settings ▩▩ ▩▩▩ Output in CSV format ▩▩▩ ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩"
- Description: "■■■■■■■■■■■■■■■■■■■■■■ ■■■■ LogTime v1.20 ■■■■ ■■ Standard ■■ ■■ workshop.codes/scrimtime ■■ ■■ Configure in Workshop Settings ■■ ■■ Ready Up: Interact + Reload ■■ ■■■■■■■■■■■■■■■■■■■■■■"
- }
- lobby
- {
- Map Rotation: After A Game
- Max Spectators: 12
- Return To Lobby: After A Game
- }
- modes
- {
- Assault
- {
- disabled maps
- {
- Hanamura Winter
- }
- }
- Control
- {
- Score To Win: 3
- disabled maps
- {
- Lijiang Tower Lunar New Year
- }
- }
- Escort
- Hybrid
- {
- disabled maps
- {
- Blizzard World Winter
- Eichenwalde Halloween
- Hollywood Halloween
- King's Row Winter
- }
- }
- General
- {
- Competitive Rules: On
- Game Mode Start: Immediately
- Kill Cam: Off
- Limit Roles: 2 Of Each Role Per Team
- Skins: Off
- }
- }
- workshop
- {
- Control Point Progress Increment: 33.330
- }
- }
- variables
- {
- global:
- 100: Scrim_MatchTime
- 101: Logs_EnableLogTracker
- 102: Logs_OutputFormat
- 103: Logs_CurrentObjectiveIndex
- 104: Logs_CurrentControlScoringTeam
- 105: Logs_TrackKills
- 106: Logs_TrackHeroSwaps
- 107: Logs_TrackObjectiveCapture
108: Logs_TrackAbilities
109: Logs_TrackUltimates
110: Logs_TrackOffensiveAssists
111: Logs_TrackDefensiveAssists
112: Logs_TrackDamage
113: Logs_TrackHealing
114: Logs_TrackDvaDemechs
115: Logs_TrackEchoDuplicates
116: Logs_TrackRoundStartEnd
117: Logs_TrackMatchStartEnd
118: Logs_EnablePlayerSummary
119: Logs_PlayerSummaryCount
- 108: Logs_PointCaptureProgressStep
- 109: Logs_PayloadCaptureProgressStep
- 110: Logs_PointCaptureProgress
- 111: Logs_PayloadCaptureProgress
- 112: Logs_TrackAbilities
- 113: Logs_TrackUltimates
- 114: Logs_TrackOffensiveAssists
- 115: Logs_TrackDefensiveAssists
- 116: Logs_TrackDamage
- 117: Logs_TrackHealing
- 118: Logs_TrackDvaDemechs
- 119: Logs_TrackEchoDuplicates
- 120: Logs_TrackRoundStartEnd
- 121: Logs_TrackMatchStartEnd
- 122: Logs_PlayerSummaryFrequency
- 123: Logs_PlayerSummaryCount
- 124: Logs_TrackMercyRez
- player:
101: Logs_LastHero
102: Logs_OffensiveAssists
103: Logs_DefensiveAssists
104: Logs_HeroesPlayedArray
105: Logs_CurrentHeroIterator
106: Logs_CurrentHeroIterated
- 100: Logs_LastHero
- 101: Logs_LastHeroTime
- 102: Logs_HeroesPlayedTimeArray
- 103: Logs_HeroesPlayedArray
- 104: Logs_OffensiveAssists
- 105: Logs_DefensiveAssists
- 106: Logs_CurrentHeroIterator
- 107: Logs_CurrentHeroIterated
- 108: Logs_UltimateID
- 109: Logs_DuplicateID
- }
rule("Init: Player")
- subroutines
- {
event
{
Ongoing - Each Player;
All;
All;
}
actions
{
Event Player.Logs_HeroesPlayedArray = Empty Array;
}
- 0: CalcHeroPlayedTime
- }
- rule("Settings: Log Options")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- Global.Logs_EnableLogTracker = Workshop Setting Toggle(Custom String("Log Generator"), Custom String("Enable Log Generator"), True,
- 0);
- Global.Logs_OutputFormat = Workshop Setting Combo(Custom String("Log Generator"), Custom String("Output Format"), 0, Array(
- Custom String("CSV")), 1);
- Global.Logs_TrackKills = Workshop Setting Toggle(Custom String("Log Generator"), Custom String("Kills and Deaths"), True, 2);
- Global.Logs_TrackOffensiveAssists = Workshop Setting Toggle(Custom String("Log Generator"), Custom String("Offensive Assists"),
- True, 3);
- Global.Logs_TrackDefensiveAssists = Workshop Setting Toggle(Custom String("Log Generator"), Custom String("Defensive Assists"),
- True, 4);
- Global.Logs_TrackHeroSwaps = Workshop Setting Toggle(Custom String("Log Generator"), Custom String("Hero Swaps"), True, 5);
- Global.Logs_TrackUltimates = Workshop Setting Toggle(Custom String("Log Generator"), Custom String("Ultimates"), True, 6);
- Global.Logs_TrackAbilities = Workshop Setting Toggle(Custom String("Log Generator"), Custom String("Abilities*"), True, 7);
- Global.Logs_TrackDamage = Workshop Setting Toggle(Custom String("Log Generator"), Custom String("Damage*"), True, 8);
- Global.Logs_TrackHealing = Workshop Setting Toggle(Custom String("Log Generator"), Custom String("Healing*"), True, 9);
- Global.Logs_TrackDvaDemechs = Workshop Setting Toggle(Custom String("Log Generator"), Custom String("D.Va Demechs & Remechs"),
- True, 10);
- Global.Logs_TrackEchoDuplicates = Workshop Setting Toggle(Custom String("Log Generator"), Custom String("Echo Duplicates"), True,
- 11);
- Global.Logs_TrackMercyRez = Workshop Setting Toggle(Custom String("Log Generator"), Custom String("Mercy Resurrects"), True, 12);
- Global.Logs_TrackMatchStartEnd = Workshop Setting Toggle(Custom String("Log Generator"), Custom String("Match Start & End"), True,
12);
Global.Logs_TrackRoundStartEnd = Workshop Setting Toggle(Custom String("Log Generator"), Custom String("Round Start & End"), True,
- 13);
- Global.Logs_TrackRoundStartEnd = Workshop Setting Toggle(Custom String("Log Generator"), Custom String("Round Start & End"), True,
- 14);
- Global.Logs_TrackObjectiveCapture = Workshop Setting Toggle(Custom String("Log Generator"), Custom String("Objective Captures"),
True, 14);
Global.Logs_EnablePlayerSummary = Workshop Setting Toggle(Custom String("Log Generator"), Custom String(
"End-of-Match Player Summary"), True, 15);
- True, 15);
- Global.Logs_PointCaptureProgressStep = Workshop Setting Real(Custom String("Log Generator"), Custom String(
- "Control Point Progress Increment"), 33.333, 0, 100, 16);
- Global.Logs_PayloadCaptureProgressStep = Workshop Setting Real(Custom String("Log Generator"), Custom String(
- "Payload Progress Increment"), 10, 0, 100, 17);
- Global.Logs_PlayerSummaryFrequency = Workshop Setting Combo(Custom String("Log Generator"), Custom String(
- "Player Stat Summary Frequency"), 0, Array(Custom String("Every Round End"), Custom String("Only Match End"), Custom String(
- "Off")), 18);
- }
- }
- rule("Logs: Update Match Time")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- Global.Scrim_MatchTime = 0;
- While(True);
- Wait Until(Is Game In Progress, 99999);
- Chase Global Variable At Rate(Scrim_MatchTime, 99999, 1, None);
- Wait Until(!Is Game In Progress, 99999);
- Stop Chasing Global Variable(Scrim_MatchTime);
- End;
- }
- }
- rule("Logs: Match Start")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
- Match Round == 1;
- }
- actions
- {
- If(Global.Logs_TrackMatchStartEnd);
Log To Inspector(Custom String(",match_start,{0},{1}", Custom String("{0},{1},{2}", Total Time Elapsed, Current Map,
- Log To Inspector(Custom String(",match_start,{0},{1}", Custom String("{0},{1},{2}", Global.Scrim_MatchTime, Current Map,
- Current Game Mode), Custom String("{0},{1}", Team 1, Team 2)));
- End;
- }
- }
- rule("Logs: Round Start")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
- Is In Setup == True;
- }
- actions
- {
- Global.Logs_CurrentControlScoringTeam = All Teams;
- Global.Logs_CurrentObjectiveIndex = Objective Index;
- If(Global.Logs_TrackRoundStartEnd == True);
Log To Inspector(Custom String(",round_start,{0},{1}", Custom String("{0},{1}", Total Time Elapsed, Match Round), Custom String(
"{0},{1},{2}", Team Score(Team 1), Team Score(Team 2), Objective Index)));
End;
Wait Until(Is Game In Progress, 99999);
Log To Inspector(Custom String(",setup_complete,{0}", Custom String("{0},{1}", Total Time Elapsed, Match Round)));
- Log To Inspector(Custom String(",round_start,{0},{1},{2}", Custom String("{0},{1},{2}", Global.Scrim_MatchTime, Match Round,
- Current Game Mode != Game Mode(Control) ? (Is Team On Offense(Team 1) ? Team 1 : Team 2) : Null), Custom String("{0},{1}",
- Team Score(Team 1), Team Score(Team 2)), Custom String("{0}", Objective Index)));
- Wait Until(Is Game In Progress, 99999);
- Log To Inspector(Custom String(",setup_complete,{0}", Custom String("{0},{1},{2}", Global.Scrim_MatchTime, Match Round,
- Match Time)));
- End;
- }
- }
rule("Logs: Objective Captured (Non-Control)")
- rule("Logs: Round Complete")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
Global.Logs_TrackObjectiveCapture == True;
- Global.Logs_TrackRoundStartEnd == True;
- Is Between Rounds == True;
- }
- actions
- {
- Log To Inspector(Custom String(",round_end,{0},{1},{2}", Custom String("{0},{1},{2}", Global.Scrim_MatchTime, Match Round,
- Current Game Mode != Game Mode(Control) ? (Is Team On Offense(Team 1) ? Team 1 : Team 2) : Null), Custom String("{0},{1}",
- Team Score(Team 1), Team Score(Team 2)), Custom String("{0},{1},{2}", Objective Index, Custom String("{0},{1}",
- Control Mode Scoring Percentage(Team 1), Control Mode Scoring Percentage(Team 2)), Match Time)));
- }
- }
- rule("Logs: Match Complete")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
- Global.Logs_TrackMatchStartEnd == True;
- Is Match Complete == True;
- }
- actions
- {
- Log To Inspector(Custom String(",match_end,{0},{1},{2}", Custom String("{0},{1}", Global.Scrim_MatchTime, Match Round),
- Custom String("{0}", Team Score(Team 1)), Custom String("{0}", Team Score(Team 2))));
- }
- }
- rule("Logs: Control Point Increment")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
- Global.Logs_PointCaptureProgressStep > 0;
- Is Game In Progress == True;
Current Game Mode != Game Mode(Control);
Is Objective Complete(Global.Logs_CurrentObjectiveIndex) == True;
- Point Capture Percentage >= Global.Logs_PointCaptureProgress + Global.Logs_PointCaptureProgressStep;
- }
- actions
- {
Log To Inspector(Custom String(",objective_captured,{0},{1},{2}", Custom String("{0}", Total Time Elapsed), Custom String(
"{0},{1}", Is Team On Offense(Team 1) ? Team 1 : Team 2, Objective Index), Custom String("{0},{1}")));
Global.Logs_CurrentObjectiveIndex = Objective Index;
- Log To Inspector(Custom String(",point_progress,{0},{1}", Custom String("{0},{1}", Global.Scrim_MatchTime, Match Round),
- Custom String("{0},{1},{2}", Current Game Mode == Game Mode(Control) ? Opposite Team Of(Control Mode Scoring Team) : (
- Is Team On Offense(Team 1) ? Team 1 : Team 2), Objective Index, Point Capture Percentage)));
- Global.Logs_PointCaptureProgress += Global.Logs_PointCaptureProgressStep;
- }
- }
rule("Logs: Objective Captured (Control)")
- rule("Logs: Payload Increment")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
Global.Logs_TrackObjectiveCapture == True;
- Global.Logs_PayloadCaptureProgressStep > 0;
- Is Game In Progress == True;
Current Game Mode == Game Mode(Control);
Control Mode Scoring Team != Global.Logs_CurrentControlScoringTeam;
- Payload Progress Percentage >= Global.Logs_PayloadCaptureProgress + Global.Logs_PayloadCaptureProgressStep;
- }
- actions
- {
Log To Inspector(Custom String(",objective_captured,{0},{1},{2}", Custom String("{0}", Total Time Elapsed), Custom String(
"{0},{1}", Control Mode Scoring Team, Objective Index), Custom String("{0},{1}", Control Mode Scoring Percentage(Team 1),
Control Mode Scoring Percentage(Team 2))));
Global.Logs_CurrentControlScoringTeam = Control Mode Scoring Team;
- Log To Inspector(Custom String(",payload_progress,{0},{1}", Custom String("{0},{1}", Global.Scrim_MatchTime, Match Round),
- Custom String("{0},{1},{2}", Is Team On Offense(Team 1) ? Team 1 : Team 2, Objective Index, Payload Progress Percentage)));
- Global.Logs_PayloadCaptureProgress += Global.Logs_PayloadCaptureProgressStep;
- }
- }
rule("Logs: Round Complete")
- rule("Logs: Reset Control Point Progress")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
Global.Logs_TrackRoundStartEnd == True;
Is Between Rounds == True;
- Global.Logs_PointCaptureProgressStep > 0;
- Is Game In Progress == True;
- Point Capture Percentage == 0;
- }
- actions
- {
Log To Inspector(Custom String(",round_end,{0},{1},{2}", Custom String("{0},{1}", Total Time Elapsed, Match Round), Custom String(
"{0},{1}", Team Score(Team 1), Team Score(Team 2)), Custom String("{0},{1},{2}", Objective Index,
Control Mode Scoring Percentage(Team 1), Control Mode Scoring Percentage(Team 2))));
- Global.Logs_PointCaptureProgress = 0;
- }
- }
rule("Logs: Match Complete")
- rule("Logs: Reset Payload Progress")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
Is Match Complete == True;
- Global.Logs_PayloadCaptureProgressStep > 0;
- Is Game In Progress == True;
- Payload Progress Percentage == 0;
- }
- actions
- {
Wait Until(!Global.Logs_EnablePlayerSummary || Global.Logs_PlayerSummaryCount == Count Of(All Players(All Teams)), 99999);
If(Global.Logs_TrackMatchStartEnd);
Log To Inspector(Custom String(",match_end,{0},{1},{2}", Custom String("{0}", Total Time Elapsed), Custom String("{0}", Team Score(
Team 1)), Custom String("{0}", Team Score(Team 2))));
End;
- Global.Logs_PayloadCaptureProgress = 0;
- }
- }
rule("Logs: End-of-Match Player Summary")
- rule("Logs: Objective Captured (Non-Control)")
- {
- event
- {
Ongoing - Each Player;
All;
All;
- Ongoing - Global;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
Global.Logs_EnablePlayerSummary == True;
Is Match Complete == True;
- Global.Logs_TrackObjectiveCapture == True;
- Current Game Mode != Game Mode(Control);
- Is Objective Complete(Global.Logs_CurrentObjectiveIndex) == True;
- }
- actions
- {
For Player Variable(Event Player, Logs_CurrentHeroIterator, 0, Count Of(Event Player.Logs_HeroesPlayedArray), 1);
Event Player.Logs_CurrentHeroIterated = Event Player.Logs_HeroesPlayedArray[Event Player.Logs_CurrentHeroIterator];
Log To Inspector(Custom String(",player_stat,{0},{1},{2}", Total Time Elapsed, Custom String("{0},{1},{2}", Team Of(Event Player),
Event Player, Event Player.Logs_CurrentHeroIterated), Custom String("{0},{1}", Custom String("{0},{1},{2}", Custom String(
"{0},{1},{2}", Custom String("{0},{1},{2}", Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated,
Eliminations), Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Final Blows), Player Hero Stat(
Event Player, Event Player.Logs_CurrentHeroIterated, Deaths)), Custom String("{0},{1},{2}", Player Hero Stat(Event Player,
Event Player.Logs_CurrentHeroIterated, All Damage Dealt), Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated,
Barrier Damage Dealt), Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Hero Damage Dealt)),
Custom String("{0},{1},{2}", Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Healing Dealt),
Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Healing Received), Player Hero Stat(Event Player,
Event Player.Logs_CurrentHeroIterated, Self Healing))), Custom String("{0},{1},{2}", Custom String("{0},{1}", Player Hero Stat(
Event Player, Event Player.Logs_CurrentHeroIterated, Damage Taken), Player Hero Stat(Event Player,
Event Player.Logs_CurrentHeroIterated, Damage Blocked)), Custom String("{0},{1}", Player Hero Stat(Event Player,
Event Player.Logs_CurrentHeroIterated, Defensive Assists), Player Hero Stat(Event Player,
Event Player.Logs_CurrentHeroIterated, Offensive Assists)), Custom String("{0},{1}", Player Hero Stat(Event Player,
Event Player.Logs_CurrentHeroIterated, Ultimates Earned), Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated,
Ultimates Used))), Custom String("{0},{1}", Custom String("{0},{1},{2}", Player Hero Stat(Event Player,
Event Player.Logs_CurrentHeroIterated, Multikill Best), Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated,
Multikills), Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Solo Kills)), Custom String("{0},{1},{2}",
Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Objective Kills), Player Hero Stat(Event Player,
Event Player.Logs_CurrentHeroIterated, Environmental Kills), Player Hero Stat(Event Player,
Event Player.Logs_CurrentHeroIterated, Environmental Deaths)))), Custom String("{0},{1}", Custom String("{0},{1},{2}",
Custom String("{0},{1}", Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Critical Hits),
Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Critical Hit Accuracy)), Custom String("{0},{1},{2}",
Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Scoped Accuracy), Player Hero Stat(Event Player,
Event Player.Logs_CurrentHeroIterated, Scoped Critical Hit Accuracy), Player Hero Stat(Event Player,
Event Player.Logs_CurrentHeroIterated, Scoped Critical Hit Kills)), Custom String("{0},{1},{2}", Player Hero Stat(Event Player,
Event Player.Logs_CurrentHeroIterated, Shots Fired), Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated,
Shots Hit), Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Shots Missed))), Custom String("{0}",
Custom String("{0},{1},{2}", Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Scoped Shots),
Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Scoped Hits), Player Hero Stat(Event Player,
Event Player.Logs_CurrentHeroIterated, Weapon Accuracy)))))));
End;
Global.Logs_PlayerSummaryCount += 1;
- Log To Inspector(Custom String(",objective_captured,{0},{1},{2}", Custom String("{0},{1}", Global.Scrim_MatchTime, Match Round),
- Custom String("{0},{1}", Is Team On Offense(Team 1) ? Team 1 : Team 2, Objective Index), Custom String("{0},{1},{2}", Null,
- Null, Match Time)));
- Global.Logs_CurrentObjectiveIndex = Objective Index;
- }
- }
- rule("Logs: Objective Captured (Control)")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
- Global.Logs_TrackObjectiveCapture == True;
- Is Game In Progress == True;
- Current Game Mode == Game Mode(Control);
- Control Mode Scoring Team != Global.Logs_CurrentControlScoringTeam;
- }
- actions
- {
- Log To Inspector(Custom String(",objective_captured,{0},{1},{2}", Custom String("{0},{1}", Global.Scrim_MatchTime, Match Round),
- Custom String("{0},{1}", Control Mode Scoring Team, Objective Index), Custom String("{0},{1},{2}",
- Control Mode Scoring Percentage(Team 1), Control Mode Scoring Percentage(Team 2), Match Time)));
- Global.Logs_CurrentControlScoringTeam = Control Mode Scoring Team;
- }
- }
- rule("Logs: Kills")
- {
- event
- {
- Player Died;
- All;
- All;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
- Global.Logs_TrackKills == True;
- Is Game In Progress == True;
- }
- actions
- {
Log To Inspector(Custom String(",kill,{0},{1}", Total Time Elapsed, Custom String("{0},{1},{2}", Custom String("{0},{1},{2}",
- Log To Inspector(Custom String(",kill,{0},{1}", Global.Scrim_MatchTime, Custom String("{0},{1},{2}", Custom String("{0},{1},{2}",
- Team Of(Attacker), Attacker, Hero Of(Attacker)), Custom String("{0},{1},{2}", Team Of(Victim), Victim, Hero Of(Victim)),
- Custom String("{0},{1},{2}", Custom String("{0},{1}", Event Ability, Event Damage), Event Was Critical Hit,
- Event Was Environment))));
- }
- }
rule("Logs: Hero Swap")
- rule("Logs: Hero Spawn/Swap")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
- (Global.Logs_TrackHeroSwaps || Global.Logs_PlayerSummaryCount != 2) == True;
- Hero Of(Event Player) != Event Player.Logs_LastHero;
- Is Match Complete == False;
- }
- actions
- {
Log To Inspector(Custom String(",hero_swap,{0},{1},{2}", Total Time Elapsed, Custom String("{0},{1}", Team Of(Event Player),
Event Player), Custom String("{0},{1}", Hero Of(Event Player), Event Player.Logs_LastHero)));
- If(Global.Logs_TrackHeroSwaps && Array Contains(All Heroes, Hero Of(Event Player)));
- If(Array Contains(All Heroes, Event Player.Logs_LastHero));
- Log To Inspector(Custom String(",hero_swap,{0},{1},{2}", Global.Scrim_MatchTime, Custom String("{0},{1}", Team Of(Event Player),
- Event Player), Custom String("{0},{1},{2}", Hero Of(Event Player), Event Player.Logs_LastHero,
- Global.Scrim_MatchTime - Event Player.Logs_LastHeroTime)));
- Else;
- Log To Inspector(Custom String(",hero_spawn,{0},{1},{2}", Global.Scrim_MatchTime, Custom String("{0},{1}", Team Of(Event Player),
- Event Player), Custom String("{0},{1},{2}", Hero Of(Event Player), Event Player.Logs_LastHero,
- Global.Scrim_MatchTime - Event Player.Logs_LastHeroTime)));
- End;
- End;
- If(!Array Contains(Event Player.Logs_HeroesPlayedArray, Hero Of(Event Player)) && Array Contains(All Heroes, Hero Of(
- Event Player)));
- Modify Player Variable(Event Player, Logs_HeroesPlayedArray, Append To Array, Hero Of(Event Player));
- End;
- If(Array Contains(All Heroes, Hero Of(Event Player)) && Array Contains(All Heroes, Event Player.Logs_LastHero));
- Call Subroutine(CalcHeroPlayedTime);
- End;
- Event Player.Logs_LastHero = Hero Of(Event Player);
- Event Player.Logs_LastHeroTime = Global.Scrim_MatchTime;
- }
- }
- rule("Logs SUBR: Calculate Hero Played Time")
- {
- event
- {
- Subroutine;
- CalcHeroPlayedTime;
- }
- actions
- {
- Event Player.Logs_HeroesPlayedTimeArray[Index Of Array Value(Event Player.Logs_HeroesPlayedArray, Event Player.Logs_LastHero)
- ] += Global.Scrim_MatchTime - Event Player.Logs_LastHeroTime;
- }
- }
- rule("Logs: Damage")
- {
- event
- {
- Player Dealt Damage;
- All;
- All;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
- Global.Logs_TrackDamage == True;
- Is Game In Progress == True;
- }
- actions
- {
Log To Inspector(Custom String(",damage,{0},{1}", Total Time Elapsed, Custom String("{0},{1},{2}", Custom String("{0},{1},{2}",
- Log To Inspector(Custom String(",damage,{0},{1}", Global.Scrim_MatchTime, Custom String("{0},{1},{2}", Custom String("{0},{1},{2}",
- Team Of(Attacker), Attacker, Hero Of(Attacker)), Custom String("{0},{1},{2}", Team Of(Victim), Victim, Hero Of(Victim)),
- Custom String("{0},{1},{2}", Custom String("{0},{1}", Event Ability, Event Damage), Event Was Critical Hit,
- Event Was Environment))));
- }
- }
- rule("Logs: Healing")
- {
- event
- {
- Player Received Healing;
- All;
- All;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
- Global.Logs_TrackHealing == True;
- Is Game In Progress == True;
- }
- actions
- {
Log To Inspector(Custom String(",healing,{0},{1}", Total Time Elapsed, Custom String("{0},{1},{2}", Custom String("{0},{1},{2}",
Team Of(Healer), Healer, Hero Of(Healer)), Custom String("{0},{1},{2}", Team Of(Healee), Healee, Hero Of(Healee)),
Custom String("{0},{1},{2}", Event Ability, Event Healing, Event Was Health Pack))));
- Log To Inspector(Custom String(",healing,{0},{1}", Global.Scrim_MatchTime, Custom String("{0},{1},{2}", Custom String(
- "{0},{1},{2}", Team Of(Healer), Healer, Hero Of(Healer)), Custom String("{0},{1},{2}", Team Of(Healee), Healee, Hero Of(
- Healee)), Custom String("{0},{1},{2}", Event Ability, Event Healing, Event Was Health Pack))));
- }
- }
- rule("Logs: Offensive Assists")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
- Global.Logs_TrackOffensiveAssists == True;
- Event Player.Logs_OffensiveAssists < Player Stat(Event Player, Offensive Assists);
- Is Game In Progress == True;
- }
- actions
- {
Log To Inspector(Custom String(",offensive_assist,{0},{1}", Custom String("{0}", Total Time Elapsed), Custom String("{0},{1},{2}",
Team Of(Event Player), Event Player, Hero Of(Event Player))));
- Log To Inspector(Custom String(",offensive_assist,{0},{1},{2}", Custom String("{0}", Global.Scrim_MatchTime), Custom String(
- "{0},{1},{2}", Team Of(Event Player), Event Player, Hero Of(Event Player)), Custom String("{0}", Hero Being Duplicated(
- Event Player))));
- Event Player.Logs_OffensiveAssists += 1;
- Loop If Condition Is True;
- }
- }
- rule("Logs: Defensive Assists")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
- Global.Logs_TrackDefensiveAssists == True;
- Event Player.Logs_DefensiveAssists < Player Stat(Event Player, Defensive Assists);
- Is Game In Progress == True;
- }
- actions
- {
Log To Inspector(Custom String(",defensive_assist,{0},{1}", Custom String("{0}", Total Time Elapsed), Custom String("{0},{1},{2}",
Team Of(Event Player), Event Player, Hero Of(Event Player))));
- Log To Inspector(Custom String(",defensive_assist,{0},{1},{2}", Custom String("{0}", Global.Scrim_MatchTime), Custom String(
- "{0},{1},{2}", Team Of(Event Player), Event Player, Hero Of(Event Player)), Custom String("{0}", Hero Being Duplicated(
- Event Player))));
- Event Player.Logs_DefensiveAssists += 1;
- Loop If Condition Is True;
- }
- }
- rule("Logs: Ability 1 Used")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
- Global.Logs_TrackAbilities == True;
- Is Using Ability 1(Event Player) == True;
- Is Game In Progress == True;
- }
- actions
- {
Log To Inspector(Custom String(",ability_1_used,{0},{1}", Custom String("{0}", Total Time Elapsed), Custom String("{0},{1},{2}",
Team Of(Event Player), Event Player, Hero Of(Event Player))));
- Log To Inspector(Custom String(",ability_1_used,{0},{1},{2}", Custom String("{0}", Global.Scrim_MatchTime), Custom String(
- "{0},{1},{2}", Team Of(Event Player), Event Player, Hero Of(Event Player)), Custom String("{0}", Hero Being Duplicated(
- Event Player))));
- }
- }
- rule("Logs: Ability 2 Used")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
- Global.Logs_TrackAbilities == True;
- Is Using Ability 2(Event Player) == True;
- Is Game In Progress == True;
- }
- actions
- {
Log To Inspector(Custom String(",ability_2_used,{0},{1}", Custom String("{0}", Total Time Elapsed), Custom String("{0},{1},{2}",
Team Of(Event Player), Event Player, Hero Of(Event Player))));
- Log To Inspector(Custom String(",ability_2_used,{0},{1},{2}", Custom String("{0}", Global.Scrim_MatchTime), Custom String(
- "{0},{1},{2}", Team Of(Event Player), Event Player, Hero Of(Event Player)), Custom String("{0}", Hero Being Duplicated(
- Event Player))));
- }
- }
- rule("Logs: Ultimate Charged")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
- Global.Logs_TrackUltimates == True;
- Ultimate Charge Percent(Event Player) == 100;
- Is Game In Progress == True;
- }
- actions
- {
Log To Inspector(Custom String(",ultimate_charged,{0},{1}", Custom String("{0}", Total Time Elapsed), Custom String("{0},{1},{2}",
Team Of(Event Player), Event Player, Hero Of(Event Player))));
- Event Player.Logs_UltimateID += 1;
- If(Hero Of(Event Player) == Hero(D.Va) && Is In Alternate Form(Event Player) && Global.Logs_TrackDvaDemechs);
- Log To Inspector(Custom String(",remech_charged,{0},{1},{2}", Custom String("{0}", Global.Scrim_MatchTime), Custom String(
- "{0},{1},{2}", Team Of(Event Player), Event Player, Hero Of(Event Player)), Custom String("{0},{1}", Hero Being Duplicated(
- Event Player), Event Player.Logs_UltimateID)));
- Else;
- Log To Inspector(Custom String(",ultimate_charged,{0},{1},{2}", Custom String("{0}", Global.Scrim_MatchTime), Custom String(
- "{0},{1},{2}", Team Of(Event Player), Event Player, Hero Of(Event Player)), Custom String("{0},{1}", Hero Being Duplicated(
- Event Player), Event Player.Logs_UltimateID)));
- End;
- }
- }
- rule("Logs: Ultimate Used")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
- Global.Logs_TrackUltimates == True;
- Is Using Ultimate(Event Player) == True;
- Hero Of(Event Player) != Hero(D.Va);
- Is Game In Progress == True;
- }
- actions
- {
If(Global.Logs_TrackDvaDemechs && Hero Of(Event Player) == Hero(D.Va));
Wait(1.740, Ignore Condition);
If(!Is In Alternate Form(Event Player));
Log To Inspector(Custom String(",dva_remech,{0},{1}", Custom String("{0}", Total Time Elapsed), Custom String("{0},{1},{2}",
Team Of(Event Player), Event Player, Hero Of(Event Player))));
Else;
Log To Inspector(Custom String(",ultimate_used,{0},{1}", Custom String("{0}", Total Time Elapsed), Custom String("{0},{1},{2}",
Team Of(Event Player), Event Player, Hero Of(Event Player))));
End;
Else;
Log To Inspector(Custom String(",ultimate_used,{0},{1}", Custom String("{0}", Total Time Elapsed), Custom String("{0},{1},{2}",
Team Of(Event Player), Event Player, Hero Of(Event Player))));
- Log To Inspector(Custom String(",ultimate_start,{0},{1},{2}", Custom String("{0}", Global.Scrim_MatchTime), Custom String(
- "{0},{1},{2}", Team Of(Event Player), Event Player, Hero Of(Event Player)), Custom String("{0},{1}", Hero Being Duplicated(
- Event Player), Event Player.Logs_UltimateID)));
- Wait Until(!Is Using Ultimate(Event Player), 99999);
- Log To Inspector(Custom String(",ultimate_end,{0},{1},{2}", Custom String("{0}", Global.Scrim_MatchTime), Custom String(
- "{0},{1},{2}", Team Of(Event Player), Event Player, Hero Of(Event Player)), Custom String("{0},{1}", Hero Being Duplicated(
- Event Player), Event Player.Logs_UltimateID)));
- }
- }
- rule("Logs: D.Va Remech/Self-Destruct Used")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
- Is Using Ultimate(Event Player) == True;
- Hero Of(Event Player) == Hero(D.Va);
- Is Game In Progress == True;
- }
- actions
- {
- Wait(1.740, Ignore Condition);
- If(Global.Logs_TrackDvaDemechs && !Is In Alternate Form(Event Player));
- Log To Inspector(Custom String(",dva_remech,{0},{1},{2}", Custom String("{0}", Global.Scrim_MatchTime), Custom String(
- "{0},{1},{2}", Team Of(Event Player), Event Player, Hero Of(Event Player)), Custom String("{0}",
- Event Player.Logs_UltimateID)));
- Else If(Global.Logs_TrackUltimates);
- Log To Inspector(Custom String(",ultimate_start,{0},{1},{2}", Custom String("{0}", Global.Scrim_MatchTime), Custom String(
- "{0},{1},{2}", Team Of(Event Player), Event Player, Hero Of(Event Player)), Custom String("{0},{1}", Hero Being Duplicated(
- Event Player), Event Player.Logs_UltimateID)));
- Wait Until(!Is Using Ultimate(Event Player), 99999);
- Log To Inspector(Custom String(",ultimate_end,{0},{1},{2}", Custom String("{0}", Global.Scrim_MatchTime), Custom String(
- "{0},{1},{2}", Team Of(Event Player), Event Player, Hero Of(Event Player)), Custom String("{0},{1}", Hero Being Duplicated(
- Event Player), Event Player.Logs_UltimateID)));
- End;
- }
- }
- rule("Logs: Echo Duplicate")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
- Global.Logs_TrackEchoDuplicates == True;
Is Duplicating(Event Player) == True;
- Is Game In Progress == True;
- Is Duplicating(Event Player) == True;
- }
- actions
- {
Log To Inspector(Custom String(",echo_duplicate_start,{0},{1},{2}", Total Time Elapsed, Custom String("{0},{1},{2}", Team Of(
Event Player), Event Player, Hero Of(Event Player)), Custom String("{0}", Hero Being Duplicated(Event Player))));
- Event Player.Logs_DuplicateID = Event Player.Logs_UltimateID;
- Log To Inspector(Custom String(",echo_duplicate_start,{0},{1},{2}", Global.Scrim_MatchTime, Custom String("{0},{1},{2}", Team Of(
- Event Player), Event Player, Hero Of(Event Player)), Custom String("{0},{1}", Hero Being Duplicated(Event Player),
- Event Player.Logs_DuplicateID)));
- Wait Until(!Is Duplicating(Event Player), 99999);
Log To Inspector(Custom String(",echo_duplicate_end,{0},{1}", Total Time Elapsed, Custom String("{0},{1},{2}", Team Of(
Event Player), Event Player, Hero Of(Event Player))));
- Log To Inspector(Custom String(",echo_duplicate_end,{0},{1},{2}", Global.Scrim_MatchTime, Custom String("{0},{1},{2}", Team Of(
- Event Player), Event Player, Hero Of(Event Player)), Event Player.Logs_DuplicateID));
- }
- }
rule("Logs: D.Va Demech")
- rule("Logs: Mercy Resurrect")
- {
- event
- {
Player Took Damage;
- Ongoing - Each Player;
- All;
- All;
D.Va;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
Global.Logs_TrackDvaDemechs == True;
Is In Alternate Form(Event Player) == False;
Health(Event Player) == 0.020;
- Global.Logs_TrackMercyRez == True;
- Is Game In Progress == True;
- Is Dead(Event Player) == True;
- }
- actions
- {
Log To Inspector(Custom String(",dva_demech,{0},{1}", Total Time Elapsed, Custom String("{0},{1},{2}", Custom String("{0},{1},{2}",
Team Of(Attacker), Attacker, Hero Of(Attacker)), Custom String("{0},{1},{2}", Team Of(Victim), Victim, Hero Of(Victim)),
Custom String("{0},{1},{2}", Custom String("{0},{1}", Event Ability, Event Damage), Event Was Critical Hit,
Event Was Environment))));
- Wait Until(Is Alive(Event Player), 99999);
- Wait(0.240, Ignore Condition);
- If(!Is In Spawn Room(Event Player) && Is Game In Progress);
- Log To Inspector(Custom String(",mercy_rez,{0},{1}", Global.Scrim_MatchTime, Custom String("{0},{1}", Custom String("{0},{1},{2}",
- Team Of(Event Player), Players On Hero(Hero(Mercy), Team Of(Event Player)), Hero(Mercy)), Custom String("{0},{1},{2}", Team Of(
- Event Player), Event Player, Hero Of(Event Player)))));
- End;
- }
- }
- rule("Logs: Player Stat Summary")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
- (Global.Logs_PlayerSummaryFrequency == 0 || (Global.Logs_PlayerSummaryFrequency == 1 && Is Match Complete)) == True;
- Is Between Rounds == True;
- }
- actions
- {
- Call Subroutine(CalcHeroPlayedTime);
- For Player Variable(Event Player, Logs_CurrentHeroIterator, 0, Count Of(Event Player.Logs_HeroesPlayedArray), 1);
- Event Player.Logs_CurrentHeroIterated = Event Player.Logs_HeroesPlayedArray[Event Player.Logs_CurrentHeroIterator];
- Log To Inspector(Custom String(",player_stat,{0},{1},{2}", Custom String("{0},{1}", Global.Scrim_MatchTime, Match Round),
- Custom String("{0},{1},{2}", Team Of(Event Player), Event Player, Event Player.Logs_CurrentHeroIterated), Custom String(
- "{0},{1}", Custom String("{0},{1},{2}", Custom String("{0},{1},{2}", Custom String("{0},{1},{2}", Player Hero Stat(
- Event Player, Event Player.Logs_CurrentHeroIterated, Eliminations), Player Hero Stat(Event Player,
- Event Player.Logs_CurrentHeroIterated, Final Blows), Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated,
- Deaths)), Custom String("{0},{1},{2}", Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, All Damage Dealt),
- Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Barrier Damage Dealt), Player Hero Stat(Event Player,
- Event Player.Logs_CurrentHeroIterated, Hero Damage Dealt)), Custom String("{0},{1},{2}", Player Hero Stat(Event Player,
- Event Player.Logs_CurrentHeroIterated, Healing Dealt), Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated,
- Healing Received), Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Self Healing))), Custom String(
- "{0},{1},{2}", Custom String("{0},{1}", Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Damage Taken),
- Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Damage Blocked)), Custom String("{0},{1}",
- Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Defensive Assists), Player Hero Stat(Event Player,
- Event Player.Logs_CurrentHeroIterated, Offensive Assists)), Custom String("{0},{1}", Player Hero Stat(Event Player,
- Event Player.Logs_CurrentHeroIterated, Ultimates Earned), Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated,
- Ultimates Used))), Custom String("{0},{1}", Custom String("{0},{1},{2}", Player Hero Stat(Event Player,
- Event Player.Logs_CurrentHeroIterated, Multikill Best), Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated,
- Multikills), Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Solo Kills)), Custom String("{0},{1},{2}",
- Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Objective Kills), Player Hero Stat(Event Player,
- Event Player.Logs_CurrentHeroIterated, Environmental Kills), Player Hero Stat(Event Player,
- Event Player.Logs_CurrentHeroIterated, Environmental Deaths)))), Custom String("{0},{1}", Custom String("{0},{1},{2}",
- Custom String("{0},{1}", Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Critical Hits),
- Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Critical Hit Accuracy)), Custom String("{0},{1},{2}",
- Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Scoped Accuracy), Player Hero Stat(Event Player,
- Event Player.Logs_CurrentHeroIterated, Scoped Critical Hit Accuracy), Player Hero Stat(Event Player,
- Event Player.Logs_CurrentHeroIterated, Scoped Critical Hit Kills)), Custom String("{0},{1},{2}", Player Hero Stat(Event Player,
- Event Player.Logs_CurrentHeroIterated, Shots Fired), Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated,
- Shots Hit), Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Shots Missed))), Custom String("{0},{1}",
- Custom String("{0},{1},{2}", Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Scoped Shots),
- Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Scoped Hits), Player Hero Stat(Event Player,
- Event Player.Logs_CurrentHeroIterated, Weapon Accuracy)),
- Event Player.Logs_HeroesPlayedTimeArray[Event Player.Logs_CurrentHeroIterator])))));
- End;
- Global.Logs_PlayerSummaryCount += 1;
- }
- }