Return to post
- settings
- {
- main
- {
Description: "▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ ▩▩▩▩ LogTime v1.10 ▩▩▩▩ ▩▩ workshop.codes/logtime ▩▩ ▩▩ Configure in Workshop Settings ▩▩ ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩"
- 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_ControlMapArray
106: Logs_ControlStageArray
107: Logs_AbilityNameArray
108: Logs_TrackKills
109: Logs_TrackHeroSwaps
110: Logs_TrackObjectiveCapture
111: Logs_PointCaptureProgressStep
112: Logs_PayloadCaptureProgressStep
113: Logs_PointCaptureProgress
114: Logs_PayloadCaptureProgress
115: Logs_TrackAbilities
116: Logs_TrackUltimates
117: Logs_TrackOffensiveAssists
118: Logs_TrackDefensiveAssists
119: Logs_TrackDamage
120: Logs_TrackHealing
121: Logs_TrackDvaDemechs
122: Logs_TrackEchoDuplicates
123: Logs_TrackRoundStartEnd
124: Logs_TrackMatchStartEnd
125: Logs_PlayerSummaryFrequency
126: Logs_PlayerSummaryCount
127: Logs_TrackMercyRez
- 105: Logs_TrackKills
- 106: Logs_TrackHeroSwaps
- 107: Logs_TrackObjectiveCapture
- 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:
- 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
- }
- subroutines
- {
- 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,
- 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, 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);
- }
- }
disabled rule("Logs: Array Configuration")
- rule("Logs: Update Match Time")
- {
- event
- {
- Ongoing - Global;
- }
conditions
{
Global.Logs_EnableLogTracker == True;
}
- actions
- {
Global.Logs_ControlMapArray = Array(Map(Nepal), Map(Lijiang Tower), Map(Ilios), Map(Oasis), Map(Busan));
Global.Logs_ControlStageArray = Array(Custom String("Village"), Custom String("Shrine"), Custom String("Sanctum"), Custom String(
"Night Market"), Custom String("Garden"), Custom String("Control Center"), Custom String("Lighthouse"), Custom String("Well"),
Custom String("Ruins"), Custom String("City Center"), Custom String("Gardens"), Custom String("University"), Custom String(
"Downtown"), Custom String("Sanctuary"), Custom String("MEKA Base"));
Global.Logs_AbilityNameArray = Array(Array(Custom String("Wraith Form"), Custom String("Shadow Step"), Custom String(
"Death Blossom")), Array(Custom String("Blink"), Custom String("Recall"), Custom String("Pulse Bomb")), Array(Custom String(
"Guardian Angel"), Custom String("Resurrect"), Custom String("Valkyrie")), Array(Custom String("Storm Arrows"), Custom String(
"Sonic Arrow"), Custom String("Dragonstrike")), Array(Custom String("Deploy Turret"), Custom String("Overload"), Custom String(
"Molten Core")), Array(Custom String("Charge"), Custom String("Fire Strike"), Custom String("Earthshatter")), Array(
Custom String("Jump Jet"), Custom String("Concussive Blast"), Custom String("Barrage")), Array(Custom String("Jump Pack"),
Custom String("Barrier Projector"), Custom String("Primal Rage")), Array(Custom String("Grappling Hook"), Custom String(
"Venom Mine"), Custom String("Infra-Sight")), Array(Custom String("Reconfigure"), Custom String("Self-Repair"), Custom String(
"Configuration: Tank")), Array(Custom String("Sentry Turret"), Custom String("Teleporter"), Custom String("Photon Barrier")),
Array(Custom String("Orb of Harmony"), Custom String("Orb of Discord"), Custom String("Transcendence")), Array(Custom String(
"Swift Strike"), Custom String("Deflect"), Custom String("Dragonblade")), Array(Custom String("Chain Hook"), Custom String(
"Take a Breather"), Custom String("Whole Hog")), Array(Custom String("Combat Roll"), Custom String("Flashbang"), Custom String(
"Deadeye")), Array(Custom String("Concussion Mine"), Custom String("Steel Trap"), Custom String("RIP-Tire")), Array(
Custom String("Particle Barrier"), Custom String("Projected Barrier"), Custom String("Graviton Surge")), Array(Custom String(
"Sprint"), Custom String("Biotic Field"), Custom String("Tactical Visor")), Array(Custom String("Crossfade"), Custom String(
"Amp It Up"), Custom String("Sound Barrier")), Array(Custom String("Boosters"), Custom String("Micro Missiles"), Custom String(
"Self-Destruct")), Array(Custom String("Cryo-Freeze"), Custom String("Ice Wall"), Custom String("Blizzard")), Array(
Custom String("Stealth"), Custom String("Translocator"), Custom String("EMP")), Array(Custom String("Rising Uppercut"),
Custom String("Seismic Slam"), Custom String("Meteor Strike")), Array(Custom String("Sleep Dart"), Custom String(
"Biotic Grenade"), Custom String("Nano Boost")), Array(Custom String("Fortify"), Custom String("Protective Barrier"),
Custom String("Supercharger")), Array(Custom String("Whip Shot"), Custom String("Repair Pack"), Custom String("Rally")), Array(
Custom String("Fade"), Custom String("Biotic Orb"), Custom String("Coalescence")), Array(Custom String("Roll"), Custom String(
"Adaptive Shield"), Custom String("Minefield")), Array(Custom String("Coach Gun"), Custom String("Dynamite"), Custom String(
"B.O.B.")), Array(Custom String("Flight"), Custom String("Focusing Beam"), Custom String("Duplicate")), Array(Custom String(
"Regenerative Burst"), Custom String("Immortality Field"), Custom String("Amplification Matrix")), Array(Custom String(
"Kinetic Grasp"), Custom String("Accretion"), Custom String("Gravitic Flux")));
- 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}", 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}", Global.Scrim_MatchTime, Match Round),
Custom String("{0},{1},{2}", Team Score(Team 1), Team Score(Team 2), Objective Index)));
- 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}", Global.Scrim_MatchTime, Match Round)));
- Log To Inspector(Custom String(",setup_complete,{0}", Custom String("{0},{1},{2}", Global.Scrim_MatchTime, Match Round,
- Match Time)));
- End;
- }
- }
- rule("Logs: Round Complete")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == 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;
- Point Capture Percentage >= Global.Logs_PointCaptureProgress + Global.Logs_PointCaptureProgressStep;
- }
- actions
- {
- 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: Payload Increment")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
- Global.Logs_PayloadCaptureProgressStep > 0;
- Is Game In Progress == True;
- Payload Progress Percentage >= Global.Logs_PayloadCaptureProgress + Global.Logs_PayloadCaptureProgressStep;
- }
- actions
- {
- 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: Reset Control Point Progress")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
- Global.Logs_PointCaptureProgressStep > 0;
- Is Game In Progress == True;
- Point Capture Percentage == 0;
- }
- actions
- {
- Global.Logs_PointCaptureProgress = 0;
- }
- }
- rule("Logs: Reset Payload Progress")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
- Global.Logs_PayloadCaptureProgressStep > 0;
- Is Game In Progress == True;
- Payload Progress Percentage == 0;
- }
- actions
- {
- Global.Logs_PayloadCaptureProgress = 0;
- }
- }
- rule("Logs: Objective Captured (Non-Control)")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
- Global.Logs_TrackObjectiveCapture == True;
- Current Game Mode != Game Mode(Control);
- Is Objective Complete(Global.Logs_CurrentObjectiveIndex) == True;
- }
- actions
- {
- 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}")));
- 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}", Control Mode Scoring Percentage(
Team 1), Control Mode Scoring Percentage(Team 2))));
- 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}", 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
- {
If(Global.Logs_TrackHeroSwaps);
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)));
- 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}", 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}", 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},{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},{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},{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},{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},{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_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}", Global.Scrim_MatchTime), Custom String("{0},{1},{2}",
Team Of(Event Player), Event Player, Hero Of(Event Player))));
Else;
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}", Hero Being Duplicated(
Event Player))));
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}", Hero Being Duplicated(
Event Player))));
End;
Else;
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}", Hero Being Duplicated(
Event Player))));
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}", Hero Being Duplicated(
Event Player))));
End;
- 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: Echo Duplicate")
- rule("Logs: D.Va Remech/Self-Destruct Used")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
Global.Logs_TrackEchoDuplicates == True;
Is Duplicating(Event Player) == True;
- Is Using Ultimate(Event Player) == True;
- Hero Of(Event Player) == Hero(D.Va);
- Is Game In Progress == True;
- }
- actions
- {
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}", Hero Being Duplicated(Event Player))));
Wait Until(!Is Duplicating(Event Player), 99999);
Log To Inspector(Custom String(",echo_duplicate_end,{0},{1}", Global.Scrim_MatchTime, Custom String("{0},{1},{2}", Team Of(
Event Player), Event Player, Hero Of(Event Player))));
- 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: D.Va Demech")
- rule("Logs: Echo Duplicate")
- {
- 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_TrackEchoDuplicates == True;
- Is Game In Progress == True;
- Is Duplicating(Event Player) == True;
- }
- actions
- {
Log To Inspector(Custom String(",dva_demech,{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))));
- 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},{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: Mercy Resurrect")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Global.Logs_EnableLogTracker == True;
- Global.Logs_TrackMercyRez == True;
- Is Game In Progress == True;
- Is Dead(Event Player) == True;
- }
- actions
- {
- 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: Round Complete")
{
event
{
Ongoing - Global;
}
conditions
{
Global.Logs_EnableLogTracker == True;
Global.Logs_TrackRoundStartEnd == True;
Is Between Rounds == True;
}
actions
{
Log To Inspector(Custom String(",round_end,{0},{1},{2}", Custom String("{0},{1}", Global.Scrim_MatchTime, 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))));
}
}
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: 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;
- }
- }