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