level.finalKillCam_winner
with
self
since the function caller should be the final killcam winner but it's not working in combination with ending the game using either
maps\mp\gametypes\_globallogic::endGame("tie", level.hostname + " is the best ^1<3");
or
maps\mp\gametypes\_globallogic::forceEnd();
. Finally I noticed that the game always keeps track of the last killcam of each team so I figured, why not write my killcam data to each team's final killcam data? Here's the code:
beginForcingFinalKillcam()
{
if(!level.forcingFinalKillcam)
{
level.forcingFinalKillcam = true;
thread forceFinalKillcam();
}
}
forceFinalKillcam()
{
myTeam = "none";
if(level.myTeamBased)
{
myTeam = self.myTeam;
}
if(!isDefined(level.savedKillcamSettings))
{
level.savedKillcamSettings = [];
level.savedKillcamSettings[myTeam] = spawnStruct();
level.savedKillcamSettings[myTeam].spectatorclient = undefined;
level.savedKillcamSettings[myTeam].weapon = undefined;
level.savedKillcamSettings[myTeam].deathTime = undefined;
level.savedKillcamSettings[myTeam].deathTimeOffset = undefined;
level.savedKillcamSettings[myTeam].offsettime = undefined;
level.savedKillcamSettings[myTeam].entityindex = undefined;
level.savedKillcamSettings[myTeam].targetentityindex = undefined;
level.savedKillcamSettings[myTeam].entitystarttime = undefined;
level.savedKillcamSettings[myTeam].perks = undefined;
level.savedKillcamSettings[myTeam].killstreaks = undefined;
level.savedKillcamSettings[myTeam].attacker = undefined;
}
while(true)
{
currentlySavedAttacker = level.finalKillcamSettings[myTeam].attacker;
if(currentlySavedAttacker == self)
{
// Backup our killcam data
level.savedKillcamSettings[myTeam].spectatorclient = level.finalKillcamSettings[myTeam].spectatorclient;
level.savedKillcamSettings[myTeam].weapon = level.finalKillcamSettings[myTeam].weapon;
level.savedKillcamSettings[myTeam].deathTime = level.finalKillcamSettings[myTeam].deathTime;
level.savedKillcamSettings[myTeam].deathTimeOffset = level.finalKillcamSettings[myTeam].deathTimeOffset;
level.savedKillcamSettings[myTeam].offsettime = level.finalKillcamSettings[myTeam].offsettime;
level.savedKillcamSettings[myTeam].entityindex = level.finalKillcamSettings[myTeam].entityindex;
level.savedKillcamSettings[myTeam].targetentityindex = level.finalKillcamSettings[myTeam].targetentityindex;
level.savedKillcamSettings[myTeam].entitystarttime = level.finalKillcamSettings[myTeam].entitystarttime;
level.savedKillcamSettings[myTeam].perks = level.finalKillcamSettings[myTeam].perks;
level.savedKillcamSettings[myTeam].killstreaks = level.finalKillcamSettings[myTeam].killstreaks;
level.savedKillcamSettings[myTeam].attacker = level.finalKillcamSettings[myTeam].attacker;
}
else
{
teams = level.teams;
teams[teams.size] = "none"; // Also affect the team-less modes
foreach(team in teams)
{
// Restore our killcam data
level.finalKillcamSettings[team].spectatorclient = level.savedKillcamSettings[myTeam].spectatorclient;
level.finalKillcamSettings[team].weapon = level.savedKillcamSettings[myTeam].weapon;
level.finalKillcamSettings[team].deathTime = level.savedKillcamSettings[myTeam].deathTime;
level.finalKillcamSettings[team].deathTimeOffset = level.savedKillcamSettings[myTeam].deathTimeOffset;
level.finalKillcamSettings[team].offsettime = level.savedKillcamSettings[myTeam].offsettime;
level.finalKillcamSettings[team].entityindex = level.savedKillcamSettings[myTeam].entityindex;
level.finalKillcamSettings[team].targetentityindex = level.savedKillcamSettings[myTeam].targetentityindex;
level.finalKillcamSettings[team].entitystarttime = level.savedKillcamSettings[myTeam].entitystarttime;
level.finalKillcamSettings[team].perks = level.savedKillcamSettings[myTeam].perks;
level.finalKillcamSettings[team].killstreaks = level.savedKillcamSettings[myTeam].killstreaks;
level.finalKillcamSettings[team].attacker = level.savedKillcamSettings[myTeam].attacker;
wait 0.05;
}
}
wait 0.1;
}
}
onPlayerSpawned()
{
self endon("disconnect");
level endon("game_ended");
while(true)
{
self waittill("spawned_player");
if(self isHost())
{
beginForcingFinalKillcam();
}
}
}
level.finalKillCam_winner
with
self
since the function caller should be the final killcam winner but it's not working in combination with ending the game using either
maps\mp\gametypes\_globallogic::endGame("tie", level.hostname + " is the best ^1<3");
or
maps\mp\gametypes\_globallogic::forceEnd();
. Finally I noticed that the game always keeps track of the last killcam of each team so I figured, why not write my killcam data to each team's final killcam data? Here's the code:
beginForcingFinalKillcam()
{
if(!level.forcingFinalKillcam)
{
level.forcingFinalKillcam = true;
thread forceFinalKillcam();
}
}
forceFinalKillcam()
{
myTeam = "none";
if(level.myTeamBased)
{
myTeam = self.myTeam;
}
if(!isDefined(level.savedKillcamSettings))
{
level.savedKillcamSettings = [];
level.savedKillcamSettings[myTeam] = spawnStruct();
level.savedKillcamSettings[myTeam].spectatorclient = undefined;
level.savedKillcamSettings[myTeam].weapon = undefined;
level.savedKillcamSettings[myTeam].deathTime = undefined;
level.savedKillcamSettings[myTeam].deathTimeOffset = undefined;
level.savedKillcamSettings[myTeam].offsettime = undefined;
level.savedKillcamSettings[myTeam].entityindex = undefined;
level.savedKillcamSettings[myTeam].targetentityindex = undefined;
level.savedKillcamSettings[myTeam].entitystarttime = undefined;
level.savedKillcamSettings[myTeam].perks = undefined;
level.savedKillcamSettings[myTeam].killstreaks = undefined;
level.savedKillcamSettings[myTeam].attacker = undefined;
}
while(true)
{
currentlySavedAttacker = level.finalKillcamSettings[myTeam].attacker;
if(currentlySavedAttacker == self)
{
// Backup our killcam data
level.savedKillcamSettings[myTeam].spectatorclient = level.finalKillcamSettings[myTeam].spectatorclient;
level.savedKillcamSettings[myTeam].weapon = level.finalKillcamSettings[myTeam].weapon;
level.savedKillcamSettings[myTeam].deathTime = level.finalKillcamSettings[myTeam].deathTime;
level.savedKillcamSettings[myTeam].deathTimeOffset = level.finalKillcamSettings[myTeam].deathTimeOffset;
level.savedKillcamSettings[myTeam].offsettime = level.finalKillcamSettings[myTeam].offsettime;
level.savedKillcamSettings[myTeam].entityindex = level.finalKillcamSettings[myTeam].entityindex;
level.savedKillcamSettings[myTeam].targetentityindex = level.finalKillcamSettings[myTeam].targetentityindex;
level.savedKillcamSettings[myTeam].entitystarttime = level.finalKillcamSettings[myTeam].entitystarttime;
level.savedKillcamSettings[myTeam].perks = level.finalKillcamSettings[myTeam].perks;
level.savedKillcamSettings[myTeam].killstreaks = level.finalKillcamSettings[myTeam].killstreaks;
level.savedKillcamSettings[myTeam].attacker = level.finalKillcamSettings[myTeam].attacker;
}
else
{
teams = level.teams;
teams[teams.size] = "none"; // Also affect the team-less modes
foreach(team in teams)
{
// Restore our killcam data
level.finalKillcamSettings[team].spectatorclient = level.savedKillcamSettings[myTeam].spectatorclient;
level.finalKillcamSettings[team].weapon = level.savedKillcamSettings[myTeam].weapon;
level.finalKillcamSettings[team].deathTime = level.savedKillcamSettings[myTeam].deathTime;
level.finalKillcamSettings[team].deathTimeOffset = level.savedKillcamSettings[myTeam].deathTimeOffset;
level.finalKillcamSettings[team].offsettime = level.savedKillcamSettings[myTeam].offsettime;
level.finalKillcamSettings[team].entityindex = level.savedKillcamSettings[myTeam].entityindex;
level.finalKillcamSettings[team].targetentityindex = level.savedKillcamSettings[myTeam].targetentityindex;
level.finalKillcamSettings[team].entitystarttime = level.savedKillcamSettings[myTeam].entitystarttime;
level.finalKillcamSettings[team].perks = level.savedKillcamSettings[myTeam].perks;
level.finalKillcamSettings[team].killstreaks = level.savedKillcamSettings[myTeam].killstreaks;
level.finalKillcamSettings[team].attacker = level.savedKillcamSettings[myTeam].attacker;
wait 0.05;
}
}
wait 0.1;
}
}
onPlayerSpawned()
{
self endon("disconnect");
level endon("game_ended");
while(true)
{
self waittill("spawned_player");
if(self isHost())
{
beginForcingFinalKillcam();
}
}
}
EndgameWhenYoBitchAssGetsaKill()
{
self endon("disconnect");
self endon("killlllcaminbounnnd");
for(;
{
if(self.pers["kills"] > 0)
{
level thread maps/mp/gametypes/_globallogic::forceend();
self notify("killlllcaminbounnnd");
}
wait 0.01;
}
}
Copyright © 2026, NextGenUpdate.
All Rights Reserved.