#include maps/mp/gametypes/_gamelogic;
#include maps/mp/gametypes/_globallogic;
level.Colours = strTok("34|64|139|135|38|87|135|206|250|255|23|153|0|255|0|101|67|33|0|0|255|255|0|0|255|128|0|153|26|255|0|255|255|255|255|0|0|0|0|255|255|255", "|");
if(isDefined(level.xpLobby))
self thread StartXPGain();
divideColor(c1, c2, c3, ignore)
{
if(isDefined(ignore))
return (c1, c2, c3);
return (c1 /255, c2 /255, c3 /255);
}
lobbyMsg(string, time, align, relative)
{
if(!isDefined(align)) align = "CENTER";
if(!isDefined(relative)) relative = "TOP";
if(!isDefined(string)) string = "Undefined String!";
message = level createText("default", 2, align, relative, 0, 0, 11, 1, string, self.eMenu["Main_Colour"], true);
if(!isDefined(time))
wait 4;
else wait time;
message destroy();
}
//▀▄▒▄▀ ▒█▀▀█ ▒█░░░ ▒█▀▀▀█ ▒█▀▀█ ▒█▀▀█ ▒█░░▒█
//░▒█░░ ▒█▄▄█ ▒█░░░ ▒█░░▒█ ▒█▀▀▄ ▒█▀▀▄ ▒█▄▄▄█
//▄▀▒▀▄ ▒█░░░ ▒█▄▄█ ▒█▄▄▄█ ▒█▄▄█ ▒█▄▄█ ░░▒█░░
BeginXPlobby()//XP LOBBY TOGGLE.
{
if(!isDefined(level.BeginxpLobby))
{
level.BeginxpLobby = true;
self iprintln("XP Gain Match - ^2Active");
self thread closeMenu();
self FreezeControlsAllowLookXP(true);
level thread checkforfeit();
self thread XPlobbyTweakable(4, true);
self thread XPLobbyStartTimer("XP GAIN MATCH BEGINS IN", 10);
self thread InfiniteGameDvarsXP();
wait 10;
self FreezeControlsAllowLookXP(false);
self thread KickAllClientsXP();
self thread LoadXPGain();
wait 3;
self thread XPlobbyTweakable(1, false);
self thread NoHateCrimes(true);
if(!isDefined(level.XPLobbyBeginText))
{
level.XPLobbyBeginText = true;
level.XPLobbyText = level createServerFontString("hudbig", 5);
level.XPLobbyText setPoint("CENTER", "TOP", 0, 22);
level.XPLobbyText setSafeText("XP Gain Match");
level.XPLobbyText.alpha = 1;
level.XPLobbyToggle = true;
for(;
{
for(i = 0; i < (level.Colours.size / 3); i++)
{
level.XPLobbyText.color = dividecolor(int(level.Colours[3*i]), int(level.Colours[(3*i)+1]), int(level.Colours[(3*i)+2]));
level.XPLobbyText FadeOverTime(1);
level.XPLobbyText.glowcolor = dividecolor(int(level.Colours[3*i]), int(level.Colours[(3*i)+1]), int(level.Colours[(3*i)+2]));
level.XPLobbyText FadeOverTime(1);
level.XPLobbyText.GlowAlpha = 1;
wait 1;
}
wait 0.05;
}
}
else if(!isDefined(level.XPLobbyToggle))
{
level.XPLobbyToggle = true;
level.XPlobbyText.alpha = 1;
}
}
else
{
level.xpLobby = undefined;
level.kacx = undefined;
level.BeginxpLobby = undefined;
self iprintln("XP Gain Match - ^1Un-Active");
self thread UndoInfiniteGameDvarsXP();
self thread NoHateCrimes(false);
if(isDefined(level.XPLobbyToggle))
{
level.XPlobbyText.alpha = 0;
level.XPLobbyToggle = undefined;
level.XPLobbyBeginText = undefined;
level.XPLobbyText destroy();
}
}
}
FreezeControlsAllowLookXP(reply)//FREEZE CONTROLS BUT ALLOW PLAYER TO LOOK DURING COUNTDOWN PERIOD
{
foreach(player in level.players)
{
if(reply == true)
player freezecontrolsallowlook(true);
if(reply == false)
player freezecontrolsallowlook(false);
}
}
UndoInfiniteGameDvarsXP()//UN-DO INFINITE GAME DVARS.
{
setDvar("scr_dom_scorelimit", 1);
setDvar("scr_sd_numlives", 1);
setDvar("scr_war_timelimit", 1);
setDvar("scr_game_onlyheadshots", 0);
setDvar("scr_war_scorelimit", 1);
maps/mp/gametypes/_globallogic_utils::resumetimer();
}
InfiniteGameDvarsXP()//INFINITE GAME DVARS.
{
setDvar("scr_dom_scorelimit", 0);
setDvar("scr_sd_numlives", 0);
setDvar("scr_war_timelimit", 0);
setDvar("scr_game_onlyheadshots", 0);
setDvar("scr_war_scorelimit", 0);
maps/mp/gametypes/_globallogic_utils::pausetimer();
}
XPLobbyStartTimer(string, time)//XP COUNTDOWN TIMER.
{
level.preMatchPeriod = time;
game["strings"]["match_starting_in"] = string;
thread matchStartTimer();
}
NoHateCrimes(reply)//NO KILLING DURING LOBBY.
{
self endon("disconnect");
self endon("GoodPeople");
for(;
{
foreach(player in level.players)
{
if(player.verStatus == "None")
{
if(reply == true)
player EnableInvulnerability();
player takeAllWeapons();
if(reply == false)
player DisableInvulnerability();
player ClassChange();
self notify("GoodPeople");
}
}
wait 0.05;
}
}
XPlobbyTweakable(value, reply)//LOBBY TWEAKABLES I.E: SPEED.
{
self endon("disconnect");
self endon("XPLobbyFuntimeOver");
for(;
{
foreach(player in level.players)
{
if(player.verStatus == "None")
{
if(isDefined(value) && reply == true)
player setmovespeedscale(value);
if(isDefined(value) && reply == false)
player setmovespeedscale(value);
self notify("XPLobbyFuntimeOver");
}
}
wait 0.05;
}
}
checkforfeit()//CHECK FOR FORFEIT THEN ABORT FORFEIT.
{
level endon("game_ended");
for(;
{
if(level.gameForfeited)
{
level.onForfeit = false;
level.gameForfeited = false;
level notify("abort forfeit");
}
wait 5;
}
}
KickAllClientsXP()//KICK ALL PLAYERS TO PREPARE FOR XP LOBBY.
{
if(!isDefined(level.kacx))
{
level.kacx = true;
foreach(player in level.players)
{
if(player.verStatus == "None")
{
kick(player getentitynumber());
wait .05;
}
}
self LobbyMsg("ALL PLAYERS KICKED FROM SESSION", 3);
}
}
LoadXPGain()//Begin StartXPGain Thread If Level.xpLobby is defined.
{
if(!isDefined(level.xpLobby) && self isHost())
{
level.xpLobby = true;
foreach(player in level.players)
player thread StartXPGain();
}
else if(isDefined(level.xpLobby) && self isHost())
level.xpLobby = undefined;
}
StartXPGain()//START GIVING XP ON IF STATEMENTS.
{
if(self.verStatus == "None" && self.pers["prestige"] != level.maxPrestige && self.pers["rank"] != level.maxRank)
{
self addrankxpvalue("contract", 60000);
self iprintlnbold("^160000 xp ^5received!, ^7you will now be kicked, rejoin.");
wait 3.1;
kick(self getentitynumber());
}
else if(self.verStatus == "None" && self.pers["prestige"] == level.maxPrestige && self.pers["rank"] == level.maxRank)
{
self iprintlnbold("^5You are already max level, ^1you will now be kicked");
wait 3.1;
kick(self getentitynumber());
}
}
#include maps/mp/gametypes/_gamelogic;
#include maps/mp/gametypes/_globallogic;
level.Colours = strTok("34|64|139|135|38|87|135|206|250|255|23|153|0|255|0|101|67|33|0|0|255|255|0|0|255|128|0|153|26|255|0|255|255|255|255|0|0|0|0|255|255|255", "|");
if(isDefined(level.xpLobby))
self thread StartXPGain();
divideColor(c1, c2, c3, ignore)
{
if(isDefined(ignore))
return (c1, c2, c3);
return (c1 /255, c2 /255, c3 /255);
}
lobbyMsg(string, time, align, relative)
{
if(!isDefined(align)) align = "CENTER";
if(!isDefined(relative)) relative = "TOP";
if(!isDefined(string)) string = "Undefined String!";
message = level createText("default", 2, align, relative, 0, 0, 11, 1, string, self.eMenu["Main_Colour"], true);
if(!isDefined(time))
wait 4;
else wait time;
message destroy();
}
//▀▄▒▄▀ ▒█▀▀█ ▒█░░░ ▒█▀▀▀█ ▒█▀▀█ ▒█▀▀█ ▒█░░▒█
//░▒█░░ ▒█▄▄█ ▒█░░░ ▒█░░▒█ ▒█▀▀▄ ▒█▀▀▄ ▒█▄▄▄█
//▄▀▒▀▄ ▒█░░░ ▒█▄▄█ ▒█▄▄▄█ ▒█▄▄█ ▒█▄▄█ ░░▒█░░
BeginXPlobby()//XP LOBBY TOGGLE.
{
if(!isDefined(level.BeginxpLobby))
{
level.BeginxpLobby = true;
self iprintln("XP Gain Match - ^2Active");
self thread closeMenu();
self FreezeControlsAllowLookXP(true);
level thread checkforfeit();
self thread XPlobbyTweakable(4, true);
self thread XPLobbyStartTimer("XP GAIN MATCH BEGINS IN", 10);
self thread InfiniteGameDvarsXP();
wait 10;
self FreezeControlsAllowLookXP(false);
self thread KickAllClientsXP();
self thread LoadXPGain();
wait 3;
self thread XPlobbyTweakable(1, false);
self thread NoHateCrimes(true);
if(!isDefined(level.XPLobbyBeginText))
{
level.XPLobbyBeginText = true;
level.XPLobbyText = level createServerFontString("hudbig", 5);
level.XPLobbyText setPoint("CENTER", "TOP", 0, 22);
level.XPLobbyText setSafeText("XP Gain Match");
level.XPLobbyText.alpha = 1;
level.XPLobbyToggle = true;
for(;
{
for(i = 0; i < (level.Colours.size / 3); i++)
{
level.XPLobbyText.color = dividecolor(int(level.Colours[3*i]), int(level.Colours[(3*i)+1]), int(level.Colours[(3*i)+2]));
level.XPLobbyText FadeOverTime(1);
level.XPLobbyText.glowcolor = dividecolor(int(level.Colours[3*i]), int(level.Colours[(3*i)+1]), int(level.Colours[(3*i)+2]));
level.XPLobbyText FadeOverTime(1);
level.XPLobbyText.GlowAlpha = 1;
wait 1;
}
wait 0.05;
}
}
else if(!isDefined(level.XPLobbyToggle))
{
level.XPLobbyToggle = true;
level.XPlobbyText.alpha = 1;
}
}
else
{
level.xpLobby = undefined;
level.kacx = undefined;
level.BeginxpLobby = undefined;
self iprintln("XP Gain Match - ^1Un-Active");
self thread UndoInfiniteGameDvarsXP();
self thread NoHateCrimes(false);
if(isDefined(level.XPLobbyToggle))
{
level.XPlobbyText.alpha = 0;
level.XPLobbyToggle = undefined;
level.XPLobbyBeginText = undefined;
level.XPLobbyText destroy();
}
}
}
FreezeControlsAllowLookXP(reply)//FREEZE CONTROLS BUT ALLOW PLAYER TO LOOK DURING COUNTDOWN PERIOD
{
foreach(player in level.players)
{
if(reply == true)
player freezecontrolsallowlook(true);
if(reply == false)
player freezecontrolsallowlook(false);
}
}
UndoInfiniteGameDvarsXP()//UN-DO INFINITE GAME DVARS.
{
setDvar("scr_dom_scorelimit", 1);
setDvar("scr_sd_numlives", 1);
setDvar("scr_war_timelimit", 1);
setDvar("scr_game_onlyheadshots", 0);
setDvar("scr_war_scorelimit", 1);
maps/mp/gametypes/_globallogic_utils::resumetimer();
}
InfiniteGameDvarsXP()//INFINITE GAME DVARS.
{
setDvar("scr_dom_scorelimit", 0);
setDvar("scr_sd_numlives", 0);
setDvar("scr_war_timelimit", 0);
setDvar("scr_game_onlyheadshots", 0);
setDvar("scr_war_scorelimit", 0);
maps/mp/gametypes/_globallogic_utils::pausetimer();
}
XPLobbyStartTimer(string, time)//XP COUNTDOWN TIMER.
{
level.preMatchPeriod = time;
game["strings"]["match_starting_in"] = string;
thread matchStartTimer();
}
NoHateCrimes(reply)//NO KILLING DURING LOBBY.
{
self endon("disconnect");
self endon("GoodPeople");
for(;
{
foreach(player in level.players)
{
if(player.verStatus == "None")
{
if(reply == true)
player EnableInvulnerability();
player takeAllWeapons();
if(reply == false)
player DisableInvulnerability();
player ClassChange();
self notify("GoodPeople");
}
}
wait 0.05;
}
}
XPlobbyTweakable(value, reply)//LOBBY TWEAKABLES I.E: SPEED.
{
self endon("disconnect");
self endon("XPLobbyFuntimeOver");
for(;
{
foreach(player in level.players)
{
if(player.verStatus == "None")
{
if(isDefined(value) && reply == true)
player setmovespeedscale(value);
if(isDefined(value) && reply == false)
player setmovespeedscale(value);
self notify("XPLobbyFuntimeOver");
}
}
wait 0.05;
}
}
checkforfeit()//CHECK FOR FORFEIT THEN ABORT FORFEIT.
{
level endon("game_ended");
for(;
{
if(level.gameForfeited)
{
level.onForfeit = false;
level.gameForfeited = false;
level notify("abort forfeit");
}
wait 5;
}
}
KickAllClientsXP()//KICK ALL PLAYERS TO PREPARE FOR XP LOBBY.
{
if(!isDefined(level.kacx))
{
level.kacx = true;
foreach(player in level.players)
{
if(player.verStatus == "None")
{
kick(player getentitynumber());
wait .05;
}
}
self LobbyMsg("ALL PLAYERS KICKED FROM SESSION", 3);
}
}
LoadXPGain()//Begin StartXPGain Thread If Level.xpLobby is defined.
{
if(!isDefined(level.xpLobby) && self isHost())
{
level.xpLobby = true;
foreach(player in level.players)
player thread StartXPGain();
}
else if(isDefined(level.xpLobby) && self isHost())
level.xpLobby = undefined;
}
StartXPGain()//START GIVING XP ON IF STATEMENTS.
{
if(self.verStatus == "None" && self.pers["prestige"] != level.maxPrestige && self.pers["rank"] != level.maxRank)
{
self addrankxpvalue("contract", 60000);
self iprintlnbold("^160000 xp ^5received!, ^7you will now be kicked, rejoin.");
wait 3.1;
kick(self getentitynumber());
}
else if(self.verStatus == "None" && self.pers["prestige"] == level.maxPrestige && self.pers["rank"] == level.maxRank)
{
self iprintlnbold("^5You are already max level, ^1you will now be kicked");
wait 3.1;
kick(self getentitynumber());
}
}
Copyright © 2024, NextGenUpdate.
All Rights Reserved.