mirror of
https://github.com/Paintball/BO2-GSC-Releases.git
synced 2025-06-07 21:38:02 -05:00
Delete main.gsc
This commit is contained in:
parent
20961f7c6c
commit
76b4ee09b4
@ -1,356 +0,0 @@
|
|||||||
/*/////////////////////////////////
|
|
||||||
// SIMPLE VOTE KICK SYSTEM BO2 //
|
|
||||||
// DEVELOPED BY @ITSCAHZ //
|
|
||||||
////////////////////////////////
|
|
||||||
|
|
||||||
THANKS @THEHIDDENHOUR FOR THE HELP AND ANSWERING QUESTIONS WHEN I HAD THEM
|
|
||||||
|
|
||||||
VERSION 1.1 ADDED A DVAR FOR BANNING TO PREVENT SOMEONE FROM REJOINING AFTER BEING VOTEKICKED
|
|
||||||
ADDED VOTE KICK LIMIT: ONE VOTE KICK PER PERSON, PER MAP*/
|
|
||||||
|
|
||||||
#include maps\mp\_utility;
|
|
||||||
#include common_scripts\utility;
|
|
||||||
#include maps\mp\gametypes\_hud_util;
|
|
||||||
#include maps\mp\gametypes\_hud_message;
|
|
||||||
|
|
||||||
init()
|
|
||||||
{
|
|
||||||
level thread onPlayerConnect();
|
|
||||||
}
|
|
||||||
|
|
||||||
onPlayerConnect()
|
|
||||||
{
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
level waittill("connected", player);
|
|
||||||
|
|
||||||
if(getPlayerDvar(player, "banned") == "") {} // if the dvar "banned" = none: do nonthing
|
|
||||||
else if(getPlayerDvar(player, "banned") == true) // if the dvar "banned" = true,
|
|
||||||
kick(player getEntityNumber(),"EXE_PLAYERKICKED");// kick that lil bitch lmao
|
|
||||||
|
|
||||||
player thread onPlayerSpawned();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
onPlayerSpawned()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
level endon("game_ended");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
self waittill("spawned_player");
|
|
||||||
|
|
||||||
self thread voteKickButtonMonitor();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
voteKickButtonMonitor()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
level endon("game_ended");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
if(self adsbuttonpressed() && self actionslottwobuttonpressed() && !isDefined(level.voting) && !isDefined(self.checkingToVote))
|
|
||||||
{
|
|
||||||
self thread votekickText();
|
|
||||||
self thread func_whotokick();
|
|
||||||
}
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func_whotokick()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
self endon("close_voting");
|
|
||||||
level endon("game_ended");
|
|
||||||
|
|
||||||
self.checkingToVote = true;
|
|
||||||
level thread recountPlayers();
|
|
||||||
|
|
||||||
i = 0;
|
|
||||||
player = level.players[i];
|
|
||||||
|
|
||||||
self.VoteKickTopString setText("Vote Kick Who?");
|
|
||||||
self.VoteKickBottomString setText("[{+actionslot 3}] << ^1"+player.name+"^7 >> [{+actionslot 4}]");
|
|
||||||
self.VoteKickInfoString setText("^5Press [{+gostand}] to Select, [{+melee}] to Close");
|
|
||||||
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
if(self actionslotfourbuttonpressed())
|
|
||||||
{
|
|
||||||
if(i != (level.players.size - 1))
|
|
||||||
{
|
|
||||||
i++;
|
|
||||||
player = level.players[i];
|
|
||||||
self.VoteKickBottomString setText("[{+actionslot 3}] << ^1"+player.name+"^7 >> [{+actionslot 4}]");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
i = 0;
|
|
||||||
player = level.players[i];
|
|
||||||
self.VoteKickBottomString setText("[{+actionslot 3}] << ^1"+player.name+"^7 >> [{+actionslot 4}]");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(self actionslotthreebuttonpressed())
|
|
||||||
{
|
|
||||||
if(i == 0)
|
|
||||||
{
|
|
||||||
i = (level.players.size - 1);
|
|
||||||
player = level.players[i];
|
|
||||||
self.VoteKickBottomString setText("[{+actionslot 3}] << ^1"+player.name+"^7 >> [{+actionslot 4}]");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
i--;
|
|
||||||
player = level.players[i];
|
|
||||||
self.VoteKickBottomString setText("[{+actionslot 3}] << ^1"+player.name+"^7 >> [{+actionslot 4}]");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(self meleebuttonpressed())
|
|
||||||
{
|
|
||||||
self.checkingToVote = undefined;
|
|
||||||
self.VoteKickTopString destroy();
|
|
||||||
self.VoteKickBottomString destroy();
|
|
||||||
self.VoteKickInfoString destroy();
|
|
||||||
self notify("close_voting");
|
|
||||||
}
|
|
||||||
if(self jumpbuttonpressed())
|
|
||||||
self thread CheckIfCanVoteKick(player);
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
CheckIfCanVoteKick(badplayer)
|
|
||||||
{
|
|
||||||
if(!isDefined(level.voting))
|
|
||||||
{
|
|
||||||
|
|
||||||
if(isDefined(self.VoteKickedAlready)) //only lets a player votekick once per game to prevent abuse
|
|
||||||
self iprintln("^1You cannot vote kick more than once a game!");
|
|
||||||
/*
|
|
||||||
-----------------------------------------------
|
|
||||||
| *USE THIS IF USING A VERFICATION SYSTEM* |
|
|
||||||
| TO STOP VERIFIED USERS FROM BEING VOTEKICKED |
|
|
||||||
-----------------------------------------------
|
|
||||||
else if(badplayer isVerified())
|
|
||||||
{
|
|
||||||
self iprintln("^1Cannot vote kick verified users!");
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
else
|
|
||||||
{
|
|
||||||
level.voting = true;
|
|
||||||
self.VoteKickedAlready = true;
|
|
||||||
foreach(player in level.players)
|
|
||||||
{
|
|
||||||
player.VoteKickTopString destroy();
|
|
||||||
player.VoteKickBottomString destroy();
|
|
||||||
player.VoteKickInfoString destroy();
|
|
||||||
}
|
|
||||||
level thread StartVoteKick(badplayer);
|
|
||||||
self.checkingToVote = undefined;
|
|
||||||
self notify("close_voting");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
self iprintln("^1Voting taking place! Please wait until it has finished!");
|
|
||||||
}
|
|
||||||
|
|
||||||
StartVoteKick(badplayer)
|
|
||||||
{
|
|
||||||
level endon("voting_ended");
|
|
||||||
level endon("game_ended");
|
|
||||||
|
|
||||||
level thread StartVoteKickTimeLimit(badplayer);
|
|
||||||
level thread KickIfVotesAreEnough(badplayer);
|
|
||||||
|
|
||||||
level.votesneeded = ceil(level.numberOfPlayers / 2);
|
|
||||||
level.votestokick = 0;
|
|
||||||
|
|
||||||
foreach(player in level.players)
|
|
||||||
{
|
|
||||||
player thread votekickText();
|
|
||||||
if(player.name == badplayer.name)
|
|
||||||
{
|
|
||||||
player freezeControls(true);
|
|
||||||
player.VoteKickTopString setText("^1Vote Kicking "+badplayer.name);
|
|
||||||
player.VoteKickBottomString setText("^1( "+level.votestokick+" / "+level.votesneeded+" ) ^7votes needed!");
|
|
||||||
player.VoteKickInfoString setText("The lobby is vote kicking you please wait");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
player thread VotingButtonMonitor(badplayer);
|
|
||||||
player.VoteKickTopString setText("^1Vote Kicking "+badplayer.name);
|
|
||||||
player.VoteKickBottomString setText("^1( "+level.votestokick+" / "+level.votesneeded+" ) ^7votes needed!");
|
|
||||||
player.VoteKickInfoString setText("^5Prone [{+actionslot 1}] ^1Vote to Kick\n^5Prone [{+actionslot 2}] ^2Vote to Stay");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
VotingButtonMonitor(badplayer)
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
level endon("voting_ended");
|
|
||||||
level endon("game_ended");
|
|
||||||
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
if(self getStance() == "prone" && self actionslotonebuttonpressed() && !isDefined(self.menu.open) && !isDefined(self.voted))
|
|
||||||
{
|
|
||||||
self.voted = true;
|
|
||||||
level.votestokick += 1;
|
|
||||||
level notify("update_vote_text");
|
|
||||||
self iprintln("^1You voted for ^5"+badplayer.name+" to get kicked!");
|
|
||||||
self.VoteKickInfoString destroy();
|
|
||||||
}
|
|
||||||
if(self getStance() == "prone" && self actionslottwobuttonpressed() && !isDefined(self.menu.open) && !isDefined(self.voted))
|
|
||||||
{
|
|
||||||
self.voted = true;
|
|
||||||
self iprintln("^2You voted for ^5"+badplayer.name+" to stay!");
|
|
||||||
self.VoteKickInfoString destroy();
|
|
||||||
}
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
KickIfVotesAreEnough(badplayer)
|
|
||||||
{
|
|
||||||
level endon("voting_ended");
|
|
||||||
level endon("game_ended");
|
|
||||||
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
wait 0.05;
|
|
||||||
if(level.votestokick >= level.votesneeded)
|
|
||||||
{
|
|
||||||
foreach(player in level.players)
|
|
||||||
{
|
|
||||||
player iprintln("^5Vote Passed! ^1"+badplayer.name+" got Kicked!");
|
|
||||||
player.voted = undefined;
|
|
||||||
player.checkingToVote = undefined;
|
|
||||||
}
|
|
||||||
setPlayerDvar(badplayer, "banned", true); //this dvar is sticky, and will "ban" the player until
|
|
||||||
//the server is reset
|
|
||||||
kick(badplayer getentitynumber());
|
|
||||||
level.votestokick = undefined;
|
|
||||||
level.voting = undefined;
|
|
||||||
level notify("voting_ended");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
StartVoteKickTimeLimit(badplayer)
|
|
||||||
{
|
|
||||||
level endon("voting_ended");
|
|
||||||
level endon("game_ended");
|
|
||||||
|
|
||||||
level thread updateText();
|
|
||||||
level thread removeText();
|
|
||||||
level.votesneeded = ceil(level.numberOfPlayers / 2);
|
|
||||||
level.votestokick = 0;
|
|
||||||
wait 15;
|
|
||||||
if(level.votestokick < level.votesneeded)
|
|
||||||
{
|
|
||||||
foreach(player in level.players)
|
|
||||||
{
|
|
||||||
player.voted = undefined;
|
|
||||||
player.checkingToVote = undefined;
|
|
||||||
if(player.name == badplayer.name)
|
|
||||||
{
|
|
||||||
player iprintln("^1Not Enough votes to kick you!");
|
|
||||||
player freezeControls(false);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
player iprintln("^1Not Enough Votes to Kick ^5"+badplayer.name+"!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
level.votestokick = undefined;
|
|
||||||
level.voting = undefined;
|
|
||||||
level notify("voting_ended");
|
|
||||||
}
|
|
||||||
|
|
||||||
updateText()
|
|
||||||
{
|
|
||||||
level endon("voting_ended");
|
|
||||||
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
level waittill("update_vote_text");
|
|
||||||
foreach(player in level.players)
|
|
||||||
player.VoteKickBottomString setText("^1( "+level.votestokick+" / "+level.votesneeded+" ) ^7votes needed!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
removeText()
|
|
||||||
{
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
level waittill("voting_ended");
|
|
||||||
foreach(player in level.players)
|
|
||||||
{
|
|
||||||
player.VoteKickTopString destroy();
|
|
||||||
player.VoteKickBottomString destroy();
|
|
||||||
player.VoteKickInfoString destroy();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
votekickText()
|
|
||||||
{
|
|
||||||
self.VoteKickTopString = self createFontString("objective", 1.2);
|
|
||||||
self.VoteKickTopString setPoint("CENTER", "CENTER", -345, -100);
|
|
||||||
self.VoteKickBottomString = self createFontString("objective", 1.2);
|
|
||||||
self.VoteKickBottomString setPoint("CENTER", "CENTER", -345, -85);
|
|
||||||
self.VoteKickInfoString = self createFontString("objective", 1);
|
|
||||||
self.VoteKickInfoString setPoint("CENTER", "CENTER", -345, -70);
|
|
||||||
}
|
|
||||||
|
|
||||||
recountPlayers()
|
|
||||||
{
|
|
||||||
level.numberOfBots = 0;
|
|
||||||
level.numberOfPlayers = 0;
|
|
||||||
foreach(player in level.players)
|
|
||||||
{
|
|
||||||
if(isDefined(player.pers["isBot"])&& player.pers["isBot"])
|
|
||||||
level.numberOfBots += 1;
|
|
||||||
else
|
|
||||||
level.numberOfPlayers += 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
setPlayerDvar(player, dvar, value)
|
|
||||||
{
|
|
||||||
thedvar = player getXUID() + "_" + dvar;
|
|
||||||
setDvar(thedvar, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
getPlayerDvar(player, dvar)
|
|
||||||
{
|
|
||||||
thedvar = player getXUID() + "_" + dvar;
|
|
||||||
|
|
||||||
return getDvar(thedvar);
|
|
||||||
}
|
|
||||||
|
|
||||||
getPlayerDvarFloat(player, dvar)
|
|
||||||
{
|
|
||||||
thedvar = player getXUID() + "_" + dvar;
|
|
||||||
|
|
||||||
return getDvarFloat(thedvar);
|
|
||||||
}
|
|
||||||
|
|
||||||
setPlayerDvarVector(player, dvar, vec)
|
|
||||||
{
|
|
||||||
setPlayerDvar(player, dvar + "_0", vec[0]);
|
|
||||||
setPlayerDvar(player, dvar + "_1", vec[1]);
|
|
||||||
setPlayerDvar(player, dvar + "_2", vec[2]);
|
|
||||||
}
|
|
||||||
|
|
||||||
getPlayerDvarVector(player, dvar)
|
|
||||||
{
|
|
||||||
vec_0 = getPlayerDvarFloat(player, dvar + "_0");
|
|
||||||
vec_1 = getPlayerDvarFloat(player, dvar + "_1");
|
|
||||||
vec_2 = getPlayerDvarFloat(player, dvar + "_2");
|
|
||||||
|
|
||||||
return (vec_0, vec_1, vec_2);
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user