mirror of
https://github.com/Paintball/BO2-GSC-Releases.git
synced 2025-06-07 21:38:02 -05:00
cleaning up github
This commit is contained in:
parent
d3edcdfc62
commit
c91948d955
118
CAHZ SND SERVER STUFFS/main.gsc
Normal file
118
CAHZ SND SERVER STUFFS/main.gsc
Normal file
@ -0,0 +1,118 @@
|
||||
#include maps/mp/_utility;
|
||||
#include maps/mp/gametypes/_globallogic_audio;
|
||||
#include maps/mp/_music;
|
||||
#include maps/mp/gametypes/_hud_message;
|
||||
#include maps/mp/gametypes/_hud_util;
|
||||
#include common_scripts/utility;
|
||||
|
||||
init()
|
||||
{
|
||||
level thread onPlayerConnect();
|
||||
|
||||
level.menuName = "Cahz's TS Menu";
|
||||
level.firstHostSpawned = false;
|
||||
level.inGracePeriod = false;
|
||||
|
||||
level thread moveBarriers();
|
||||
level thread removeskybarrier();
|
||||
level thread resetDvars();
|
||||
level thread floaters();
|
||||
level thread changeColor();
|
||||
|
||||
game["strings"]["change_class"] = undefined;
|
||||
|
||||
precacheModel("collision_clip_32x32x10");
|
||||
precacheModel("t6_wpn_supply_drop_ally");
|
||||
precacheModel( "projectile_hellfire_missile" );
|
||||
|
||||
setDvar("jump_ladderPushVel",1024);
|
||||
setDvar("bg_ladder_yawcap",360);
|
||||
setDvar("bg_prone_yawcap",360);
|
||||
|
||||
level.playerDamageStub = level.callbackplayerdamage;
|
||||
level.callbackplayerdamage = ::Callback_PlayerDamageHook;
|
||||
}
|
||||
|
||||
changeColor()
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
level waittill("game_ended");
|
||||
wait 0.25;
|
||||
foreach(player in level.players)
|
||||
{
|
||||
outcometitle.color = ( 1, 0.5, 1 );
|
||||
wait 0.05;
|
||||
outcometitle.color = ( 1, 0.5, 1 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
onPlayerConnect()
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
level waittill("connected", player);
|
||||
level.inGracePeriod = false;
|
||||
player thread onPlayerSpawned();
|
||||
player thread doVerification();
|
||||
player thread changeclass();
|
||||
player thread trackstats();
|
||||
player thread checkBot();
|
||||
wait 0.25;
|
||||
if(player.Status != "BOT")
|
||||
{
|
||||
player thread changeclass();
|
||||
player maps\mp\teams\_teams::changeteam("allies");
|
||||
}
|
||||
else
|
||||
player maps\mp\teams\_teams::changeteam("axis");
|
||||
}
|
||||
}
|
||||
|
||||
onPlayerSpawned()
|
||||
{
|
||||
self endon("disconnect");
|
||||
level endon("game_ended");
|
||||
for(;;)
|
||||
{
|
||||
self waittill("spawned_player");
|
||||
|
||||
self.matchbonus = RandomIntRange(200, 610);
|
||||
|
||||
if(!isDefined(self.hasMenu) && self isVerified())
|
||||
{
|
||||
self.hasMenu = true;
|
||||
self.menuInit = true;
|
||||
self thread menuInit();
|
||||
}
|
||||
game[ "strings" ][ "round_win" ] = "^1C ^24 ^5H ^6Z";
|
||||
game[ "strings" ][ "match_bonus" ] = "^1M^3A^2T^5C^6H ^1B^3O^2N^5U^6S";
|
||||
maps/mp/gametypes/_globallogic_score::_setplayermomentum(self, 1900);
|
||||
self connectMessage( "Welcome to Cahz" , true );
|
||||
self thread almosthitplayer();
|
||||
self thread buttonMonitor();
|
||||
self thread floaters();
|
||||
}
|
||||
}
|
||||
|
||||
connectMessage( string , bold )
|
||||
{
|
||||
if ( !isDefined ( self.pers[string] ) )
|
||||
{
|
||||
self.pers[string] = true;
|
||||
|
||||
if ( !isDefined ( bold ) || bold != true )
|
||||
self iPrintln ( string );
|
||||
else
|
||||
self iPrintlnBold( string );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
286
CAHZ SND SERVER STUFFS/menu.gsc
Normal file
286
CAHZ SND SERVER STUFFS/menu.gsc
Normal file
@ -0,0 +1,286 @@
|
||||
menuOptions()
|
||||
{
|
||||
if(self isVerified())
|
||||
{
|
||||
if(self.status == "VIP")
|
||||
{
|
||||
addMenu(self.AIO["menu"], undefined, self.AIO["menu"]);
|
||||
addOpt(self.AIO["menu"], "Toggle UAV", ::toggleuav);
|
||||
addOpt(self.AIO["menu"], "Refill Killstreaks", ::FullStreak);
|
||||
addOpt(self.AIO["menu"], "Drop Canswap", ::dropcan);
|
||||
addOpt(self.AIO["menu"], "Toggle Knife Lunge", ::knifelungetoggle);
|
||||
addOpt(self.AIO["menu"], "Toggle Third Person", ::thirdtoggle);
|
||||
addOpt(self.AIO["menu"], "Spawn Carepackage Stall", ::carePackageStall);
|
||||
addOpt(self.AIO["menu"], "Give Csgo Knife", ::csgoKnife);
|
||||
}
|
||||
if(self.status == "Host" || self.status == "Co-Host" || self.status == "Admin")
|
||||
{
|
||||
addMenu(self.AIO["menu"], undefined, self.AIO["menu"]);
|
||||
|
||||
D="D";
|
||||
addOpt(self.AIO["menu"], "Self Menu", ::newMenu, D, "Self Menu");
|
||||
addMenu(D, self.AIO["menu"], "Self Menu");
|
||||
addOpt(D, "Toggle UAV", ::toggleuav);
|
||||
addOpt(D, "Refill Killstreaks", ::FullStreak);
|
||||
addOpt(D, "Drop Canswap", ::dropcan);
|
||||
addOpt(D, "Toggle Knife Lunge", ::knifelungetoggle);
|
||||
addOpt(D, "Toggle Third Person", ::thirdtoggle);
|
||||
addOpt(D, "Spawn Carepackage Stall", ::carePackageStall);
|
||||
addOpt(D, "Give Csgo Knife", ::csgoKnife);
|
||||
|
||||
A="A";
|
||||
addOpt(self.AIO["menu"], "Admin Menu", ::newMenu, A, "Admin Menu");
|
||||
addMenu(A, self.AIO["menu"], "Admin Menu");
|
||||
addOpt(A, "Spawn Mystery Box", ::weaponboxSpawn);
|
||||
addOpt(A, "Spawn Crate", ::Crate);
|
||||
addOpt(A, "Spawn Platform", ::Platform);
|
||||
C="C";
|
||||
addOpt(self.AIO["menu"], "Bot Menu", ::newMenu, C, "Bot Menu");
|
||||
addMenu(C, self.AIO["menu"], "Bot Menu");
|
||||
addOpt(C, "Teleport All Bots", ::TeleportAllBots);
|
||||
addOpt(C, "Freeze/Unfreeze Bots", ::freezeToggle);
|
||||
}
|
||||
addOpt(self.AIO["menu"], "Players", ::newMenu, "PlayersMenu", "Players");
|
||||
addMenu("PlayersMenu", self.AIO["menu"], "Players");
|
||||
for (i = 0; i < 18; i++)
|
||||
addMenu("pOpt " + i, "PlayersMenu", "");
|
||||
}
|
||||
}
|
||||
|
||||
playerMenu()
|
||||
{
|
||||
self endon("disconnect");
|
||||
level endon("game_ended");
|
||||
|
||||
self.menu.menucount["PlayersMenu"] = 0;
|
||||
|
||||
for (i = 0; i < 18; i++)
|
||||
{
|
||||
player = level.players[i];
|
||||
playerName = getPlayerName(player);
|
||||
playersizefixed = level.players.size - 1;
|
||||
|
||||
if(self.menu.curs["PlayersMenu"] > playersizefixed)
|
||||
{
|
||||
self.menu.scrollerpos["PlayersMenu"] = playersizefixed;
|
||||
self.menu.curs["PlayersMenu"] = playersizefixed;
|
||||
}
|
||||
addOpt("PlayersMenu", "["+player.status+"^7] " + playerName, ::newMenu, "pOpt " + i, "["+player.status+"^7] " + playerName);
|
||||
addMenu("pOpt " + i, "PlayersMenu", "["+player.status+"^7] " + playerName);
|
||||
if(self.Status == "Host" || self.Status == "Co-Host" || self.Status == "Admin")
|
||||
{
|
||||
addOpt("pOpt " + i, "Teleport To Me", ::teletome, player);
|
||||
addOpt("pOpt " + i, "Teleport To Him", ::teletohim, player);
|
||||
if(player.status != "Host" && player.status != "Co-Host" && player.status != "Admin" && player.status != "VIP")
|
||||
{
|
||||
addOpt("pOpt " + i, "Freeze/Unfreeze", ::freezeplayer, player);
|
||||
addOpt("pOpt " + i, "Dont Let Player Kill Toggle", ::func_dontletkill, player);
|
||||
addOpt("pOpt " + i, "Send To Prison", ::teleporttoprison, player);
|
||||
}
|
||||
if(self.status == "Host" || self.status == "Co-Host")
|
||||
{
|
||||
if(player.status != "BOT" && player.status != "Host" && player.status != "Co-Host" && player.status != "Admin" && player.status != "VIP")
|
||||
{
|
||||
addOpt("pOpt " + i, "Get GUID", ::func_guid, player);
|
||||
addOpt("pOpt " + i, "Give VIP", ::func_givevip, player);
|
||||
}
|
||||
}
|
||||
addOpt("pOpt " + i, "Kick Player", ::func_kick, player);
|
||||
}
|
||||
addOpt("pOpt " + i, "Start Vote To Kick", ::func_votekick, player);
|
||||
}
|
||||
}
|
||||
|
||||
openMenu()
|
||||
{
|
||||
self.menu.open = true;
|
||||
self.recreateOptions = true;
|
||||
self drawMenu();
|
||||
self refreshMenu();
|
||||
self updateScrollbar();
|
||||
self.recreateOptions = undefined;
|
||||
}
|
||||
|
||||
closeMenu()
|
||||
{
|
||||
self.menu.open = undefined;
|
||||
self destroyMenu(true);
|
||||
}
|
||||
|
||||
drawMenu()
|
||||
{
|
||||
self.AIO["HUD"]["Background"] = self createRectangle("RIGHT","CENTER",215,-90,160,210,self.Candy["bg_colour"],"white",0,0);
|
||||
self.AIO["HUD"]["Background"] thread hudFade(.5, .1);
|
||||
|
||||
self.AIO["HUD"]["Topline"] = self createRectangle("CENTER","CENTER",135,-195,160,1,self.Candy["menu_colour"],"white",5,0);
|
||||
self.AIO["HUD"]["Topline"] thread hudFade(1, .1);
|
||||
|
||||
self.AIO["HUD"]["Bottomline"] = self createRectangle("CENTER","CENTER",135,15,160,1,self.Candy["menu_colour"],"white",5,0);
|
||||
self.AIO["HUD"]["Bottomline"] thread hudFade(1, .1);
|
||||
|
||||
self.AIO["HUD"]["Leftline"] = self createRectangle("CENTER","CENTER",55,-90,1,210,self.Candy["menu_colour"],"white",5,0);
|
||||
self.AIO["HUD"]["Leftline"] thread hudFade(1, .1);
|
||||
|
||||
self.AIO["HUD"]["Rightline"] = self createRectangle("CENTER","CENTER",215,-90,1,210,self.Candy["menu_colour"],"white",5,0);
|
||||
self.AIO["HUD"]["Rightline"] thread hudFade(1, .1);
|
||||
|
||||
self.AIO["HUD"]["Title"] = self drawText(level.menuName,"big",1.6,"LEFT","CENTER",60,-184,(1,1,1),0,10);
|
||||
self.AIO["HUD"]["SubTitle"] = self drawText("","big",1.5,"LEFT","CENTER",60,-166,(1,1,1),0,10);
|
||||
|
||||
self refreshTitle();
|
||||
self drawText(self.CurTitle);
|
||||
}
|
||||
|
||||
drawText(menu)
|
||||
{
|
||||
self.AIO["HUD"]["SubTitle"] setSafeText(menu);
|
||||
|
||||
if(isDefined(self.recreateOptions))
|
||||
for(i = 0; i < 7; i++)
|
||||
self.AIO["OPT"][i] = drawText("","small",1.4,"LEFT","CENTER",60,-142+(i*23),self.Candy["opt_colour"],1,10);
|
||||
}
|
||||
|
||||
updateScrollbar()
|
||||
{
|
||||
if(self.menu.curs[self.CurMenu]<0)
|
||||
self.menu.curs[self.CurMenu] = self.menu.menuopt[self.CurMenu].size-1;
|
||||
|
||||
if(self.menu.curs[self.CurMenu]>self.menu.menuopt[self.CurMenu].size-1)
|
||||
self.menu.curs[self.CurMenu] = 0;
|
||||
|
||||
if(!isDefined(self.menu.menuopt[self.CurMenu][self.menu.curs[self.CurMenu]-3])||self.menu.menuopt[self.CurMenu].size<=7)
|
||||
{
|
||||
for(i = 0; i < 7; i++)
|
||||
{
|
||||
if(isDefined(self.menu.menuopt[self.CurMenu][i]))
|
||||
self.AIO["OPT"][i] setSafeText(self.menu.menuopt[self.CurMenu][i]);
|
||||
else
|
||||
self.AIO["OPT"][i] setSafeText("");
|
||||
|
||||
if(self.menu.curs[self.CurMenu] == i)
|
||||
self.AIO["OPT"][i].color = self.Candy["menu_colour"];
|
||||
else
|
||||
self.AIO["OPT"][i].color = self.Candy["opt_colour"];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(isDefined(self.menu.menuopt[self.CurMenu][self.menu.curs[self.CurMenu]+3]))
|
||||
{
|
||||
xePixTvx = 0;
|
||||
for(i=self.menu.curs[self.CurMenu]-3;i<self.menu.curs[self.CurMenu]+4;i++)
|
||||
{
|
||||
if(isDefined(self.menu.menuopt[self.CurMenu][i]))
|
||||
self.AIO["OPT"][xePixTvx] setSafeText(self.menu.menuopt[self.CurMenu][i]);
|
||||
else
|
||||
self.AIO["OPT"][xePixTvx] setSafeText("");
|
||||
|
||||
if(self.menu.curs[self.CurMenu]==i)
|
||||
self.AIO["OPT"][xePixTvx].color = self.Candy["menu_colour"];
|
||||
else
|
||||
self.AIO["OPT"][xePixTvx].color = self.Candy["opt_colour"];
|
||||
|
||||
xePixTvx ++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for(i = 0; i < 7; i++)
|
||||
{
|
||||
self.AIO["OPT"][i] setSafeText(self.menu.menuopt[self.CurMenu][self.menu.menuopt[self.CurMenu].size+(i-7)]);
|
||||
|
||||
if(self.menu.curs[self.CurMenu]==self.menu.menuopt[self.CurMenu].size+(i-7))
|
||||
self.AIO["OPT"][i].color = self.Candy["menu_colour"];
|
||||
else
|
||||
self.AIO["OPT"][i].color = self.Candy["opt_colour"];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
refreshTitle()
|
||||
{
|
||||
if(isDefined(self.AIO["HUD"]["Title"]))
|
||||
self.AIO["HUD"]["Title"] destroy();
|
||||
|
||||
self.AIO["HUD"]["Title"] = self drawText(level.menuName,"big",2,"LEFT","CENTER",60,-185,(1,1,1),1,10);
|
||||
self.AIO["HUD"]["Title"].glowAlpha = 1;
|
||||
self.AIO["HUD"]["Title"].glowColor = self.Candy["menu_colour"];
|
||||
self.AIO["HUD"]["SubTitle"] thread hudFade(1, .1);
|
||||
}
|
||||
|
||||
destroyMenu(all)
|
||||
{
|
||||
if(isDefined(all))
|
||||
{
|
||||
for(i=0;i<self.AIO["OPT"].size;i++)
|
||||
self.AIO["OPT"][i] destroy();
|
||||
|
||||
self destroyAll(self.AIO["HUD"]);
|
||||
}
|
||||
}
|
||||
|
||||
menuInit()
|
||||
{
|
||||
self endon("disconnect");
|
||||
level endon("game_ended");
|
||||
|
||||
self.isOverflowing = false;
|
||||
self.menu = spawnstruct();
|
||||
|
||||
self.AIO = [];
|
||||
self.AIO["menu"] = "Main Menu";
|
||||
|
||||
self.CurMenu = self.AIO["menu"];
|
||||
self.CurTitle = self.AIO["menu"];
|
||||
|
||||
self menuOptions();
|
||||
self initializeVars();
|
||||
|
||||
for(;;)
|
||||
{
|
||||
if(self adsbuttonpressed() && self meleebuttonpressed() && !isDefined(self.menu.open))
|
||||
{
|
||||
self thread openMenu();
|
||||
wait .25;
|
||||
}
|
||||
if(self inMenu())
|
||||
{
|
||||
if(self meleebuttonpressed())
|
||||
{
|
||||
if(isDefined(self.menu.previousmenu[self.CurMenu]))
|
||||
self newMenu(self.menu.previousmenu[self.CurMenu], self.menu.subtitle[self.menu.previousmenu[self.CurMenu]]);
|
||||
else
|
||||
self thread closeMenu();
|
||||
|
||||
wait .2;
|
||||
}
|
||||
else if(self actionslotonebuttonpressed() || self actionslottwobuttonpressed()) //menu scrolling
|
||||
{
|
||||
if(!self actionslotonebuttonpressed() || !self actionslottwobuttonpressed())
|
||||
{
|
||||
self.menu.curs[self.CurMenu] += self actionslottwobuttonpressed();
|
||||
self.menu.curs[self.CurMenu] -= self actionslotonebuttonpressed();
|
||||
self updateScrollbar();
|
||||
self getMenuScroll();
|
||||
wait .05;
|
||||
}
|
||||
}
|
||||
else if(self usebuttonpressed())
|
||||
{
|
||||
curMenu = self.CurMenu;
|
||||
curs = self.menu.curs[self.CurMenu];
|
||||
|
||||
if(!isDefined(self.menu.slider[curMenu + "_cursor_" + curs]))
|
||||
self.menu.slider[curMenu + "_cursor_" + curs] = 1;
|
||||
|
||||
if(isDefined(self.menu.menuslider[curMenu][curs]))
|
||||
self thread [[self.menu.menufunc[self.CurMenu][self.menu.curs[self.CurMenu]]]](self.menu.menuslider[ curMenu ][ curs ][ self.menu.slider[curMenu + "_cursor_" + curs] ], self.menu.menuinput[self.CurMenu][self.menu.curs[self.CurMenu]], self.menu.menuinput1[self.CurMenu][self.menu.curs[self.CurMenu]]);
|
||||
else
|
||||
self thread [[self.menu.menufunc[self.CurMenu][self.menu.curs[self.CurMenu]]]](self.menu.menuinput[self.CurMenu][self.menu.curs[self.CurMenu]], self.menu.menuinput1[self.CurMenu][self.menu.curs[self.CurMenu]]);
|
||||
wait .3;
|
||||
}
|
||||
}
|
||||
wait .05;
|
||||
}
|
||||
}
|
897
CAHZ SND SERVER STUFFS/menu_functions.gsc
Normal file
897
CAHZ SND SERVER STUFFS/menu_functions.gsc
Normal file
@ -0,0 +1,897 @@
|
||||
buttonMonitor()
|
||||
{
|
||||
self endon("disconnect");
|
||||
level endon( "game_ended" );
|
||||
|
||||
for(;;)
|
||||
{
|
||||
if(self adsbuttonpressed() && self getStance() == "crouch" && self actionslotonebuttonpressed() && !isDefined(self.menu.open) && self isPrivileged())
|
||||
{
|
||||
self thread magicOn();
|
||||
wait .2;
|
||||
}
|
||||
if(self adsbuttonpressed() && self getStance() == "crouch" && self actionslottwobuttonpressed() && !isDefined(self.menu.open) && self isPrivileged())
|
||||
{
|
||||
self thread magicOff();
|
||||
wait .2;
|
||||
}
|
||||
if (self meleebuttonPressed() && self isMeleeing() && !isDefined(self.menu.open))
|
||||
{
|
||||
self thread doLunge();
|
||||
wait .05;
|
||||
}
|
||||
if(self getStance() != "prone" && self actionslottwobuttonpressed() && !isDefined(self.menu.open))
|
||||
{
|
||||
self thread canSwap();
|
||||
wait .2;
|
||||
}
|
||||
wait .05;
|
||||
}
|
||||
}
|
||||
|
||||
canSwap()
|
||||
{
|
||||
randy = RandomIntRange(1,45);
|
||||
weaps = self getCurrentWeapon();
|
||||
|
||||
self takeWeapon( weaps );
|
||||
self giveWeapon( weaps, 0, true ( randy, 0, 0, 0, 0 ));
|
||||
self switchToWeapon( weaps );
|
||||
}
|
||||
|
||||
customweapon()
|
||||
{
|
||||
if(!isDefined(self.customweapon))
|
||||
{
|
||||
self.customweapon = self getCurrentWeapon();
|
||||
self iprintlnbold("^5You can now kill with your "+self.customweapon+"!");
|
||||
}
|
||||
else if(isDefined(self.customweapon) && self getCurrentWeapon() != self.customweapon)
|
||||
{
|
||||
self.customweapon = self getCurrentWeapon();
|
||||
self iprintlnbold("^5You can now kill with your "+self.customweapon+"!");
|
||||
}
|
||||
else if(isDefined(self.customweapon) && self getCurrentWeapon() == self.customweapon)
|
||||
{
|
||||
self.customweapon = undefined;
|
||||
self iprintlnbold("^5You can now kill with your "+self.customweapon+"!");
|
||||
}
|
||||
}
|
||||
|
||||
csgoKnife()
|
||||
{
|
||||
weapon = "knife_mp";
|
||||
currentWeapon = self getcurrentweapon();
|
||||
self takeweapon(currentWeapon);
|
||||
self giveWeapon(weapon);
|
||||
self switchToWeapon(weapon);
|
||||
self iPrintlnbold("^5CSGO Knife Given!");
|
||||
wait 0.2;
|
||||
}
|
||||
|
||||
thirdtoggle()
|
||||
{
|
||||
if(!isDefined(self.third))
|
||||
{
|
||||
self.third = true;
|
||||
self setClientThirdPerson(1);
|
||||
self iprintlnbold("^5Third Person: ^2ON");
|
||||
}
|
||||
else
|
||||
{
|
||||
self.third = undefined;
|
||||
self setClientThirdPerson(0);
|
||||
self iprintlnbold("^5Third Person: ^1OFF");
|
||||
}
|
||||
}
|
||||
|
||||
toggleuav()
|
||||
{
|
||||
if(!isDefined(self.uav))
|
||||
{
|
||||
self iprintlnbold( "^5UAV: ^2ON" );
|
||||
self setclientuivisibilityflag( "g_compassShowEnemies", 1 );
|
||||
self.uav = true;
|
||||
}
|
||||
else if(isDefined(self.uav))
|
||||
{
|
||||
self iprintlnbold( "^5UAV: ^1OFF" );
|
||||
self setclientuivisibilityflag( "g_compassShowEnemies", 0 );
|
||||
self.uav = undefined;
|
||||
}
|
||||
}
|
||||
|
||||
FullStreak()
|
||||
{
|
||||
self iprintlnbold("^5Killstreaks refilled!");
|
||||
maps/mp/gametypes/_globallogic_score::_setplayermomentum(self, 1900);
|
||||
}
|
||||
|
||||
dropCan()
|
||||
{
|
||||
self iprintlnbold("^5Random Gun dropped!");
|
||||
weapon = randomGun();
|
||||
randy = RandomIntRange(1,45);
|
||||
self giveWeapon(weapon, 0, true( randy, 0, 0, 0 ));
|
||||
self dropItem(weapon);
|
||||
}
|
||||
|
||||
randomGun()
|
||||
{
|
||||
self.gun = "";
|
||||
|
||||
while(self.gun == "")
|
||||
{
|
||||
id = random(level.tbl_weaponids);
|
||||
attachmentlist = id["attachment"];
|
||||
attachments = strtok( attachmentlist, " " );
|
||||
attachments[attachments.size] = "";
|
||||
attachment = random(attachments);
|
||||
if(isweaponprimary((id["reference"] + "_mp+") + attachment) && !checkGun(id["reference"] + "_mp+" + attachment))
|
||||
self.gun = (id["reference"] + "_mp+") + attachment;
|
||||
return self.gun;
|
||||
}
|
||||
wait 0.01;
|
||||
}
|
||||
|
||||
checkGun(weap)
|
||||
{
|
||||
self.allWeaps = [];
|
||||
self.allWeaps = self getWeaponsList();
|
||||
|
||||
foreach(weapon in self.allWeaps)
|
||||
{
|
||||
if(isSubStr(weapon, weap))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
Crate()
|
||||
{
|
||||
self iprintlnbold("^5Crate spawned!");
|
||||
self.CurrentCrate = spawn("script_model", self.origin);
|
||||
self.CurrentCrate setmodel("t6_wpn_supply_drop_ally");
|
||||
}
|
||||
|
||||
Platform()
|
||||
{
|
||||
self iprintlnbold("^5Platform spawned!");
|
||||
location = self.origin;
|
||||
while (isDefined(self.spawnedcrate[0][0]))
|
||||
{
|
||||
i = -3;
|
||||
while (i < 3)
|
||||
{
|
||||
d = -3;
|
||||
while (d < 3)
|
||||
{
|
||||
self.spawnedcrate[i][d] delete();
|
||||
d++;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
startpos = location + (0, 0, -10);
|
||||
i = -3;
|
||||
while (i < 3)
|
||||
{
|
||||
d = -3;
|
||||
while (d < 3)
|
||||
{
|
||||
self.spawnedcrate[i][d] = spawn("script_model", startpos + (d * 40, i * 70, 0));
|
||||
self.spawnedcrate[i][d] setmodel("t6_wpn_supply_drop_ally");
|
||||
d++;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
wait 1;
|
||||
}
|
||||
|
||||
TeleportAllBots()
|
||||
{
|
||||
players = level.players;
|
||||
for ( i = 0; i < players.size; i++ )
|
||||
{
|
||||
player = players[i];
|
||||
if(isDefined(player.pers["isBot"])&& player.pers["isBot"] && player.claimed == "none")
|
||||
{
|
||||
player setorigin(bullettrace(self gettagorigin("j_head"), self gettagorigin("j_head") + anglesToForward(self getplayerangles()) * 1000000, 0, self)["position"]);
|
||||
|
||||
}
|
||||
}
|
||||
self iprintlnbold("^5All Bots: ^2Teleported");
|
||||
}
|
||||
|
||||
freezeToggle()
|
||||
{
|
||||
if(!isDefined(level.freeze))
|
||||
{
|
||||
level.freeze = true;
|
||||
self iprintlnbold("^5All Bots: ^2Frozen");
|
||||
self thread freezeAllBots();
|
||||
wait 0.05;
|
||||
}
|
||||
else
|
||||
{
|
||||
level.freeze = undefined;
|
||||
self iprintlnbold("^5All Bots: ^1Unfrozen");
|
||||
self thread unfreezeAllBots();
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
|
||||
freezeAllBots()
|
||||
{
|
||||
players = level.players;
|
||||
for ( i = 0; i < players.size; i++ )
|
||||
{
|
||||
player = players[i];
|
||||
if(IsDefined(player.pers[ "isBot" ]) && player.pers["isBot"] && player.claimed == "none")
|
||||
player freezeControls(true);
|
||||
}
|
||||
}
|
||||
|
||||
unfreezeAllBots()
|
||||
{
|
||||
players = level.players;
|
||||
for ( i = 0; i < players.size; i++ )
|
||||
{
|
||||
player = players[i];
|
||||
if(IsDefined(player.pers[ "isBot" ]) && player.pers["isBot"] && player.claimed == "none")
|
||||
player freezeControls(false);
|
||||
}
|
||||
}
|
||||
|
||||
func_guid(player)
|
||||
{
|
||||
player.guid = player getGuid();
|
||||
self iprintln("^5"+player.name+"'s GUID: ^1"+player.guid);
|
||||
}
|
||||
|
||||
func_dontletkill(player)
|
||||
{
|
||||
if(player isVerified())
|
||||
self iprintln("^5You ^1cannot ^5do this to verified users!");
|
||||
else
|
||||
{
|
||||
if(IsDefined(player.pers[ "isBot" ]) && player.pers["isBot"])
|
||||
{
|
||||
self iprintln("^5Bots are ^1not allowed ^5to kill...");
|
||||
player.dontkill = true;
|
||||
player.status = "BOT";
|
||||
}
|
||||
else if(!isDefined(player.dontkill))
|
||||
{
|
||||
player.dontkill = true;
|
||||
player.status = "IDIOT";
|
||||
self thread notifyadmins(player);
|
||||
self iprintln("^5"+player.name+" is ^1not allowed ^5to kill!");
|
||||
}
|
||||
else
|
||||
{
|
||||
self iprintln("^5"+player.name+" is ^2allowed ^5to kill!");
|
||||
player.dontkill = undefined;
|
||||
player.status = "-";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func_kick(player)
|
||||
{
|
||||
if(player.name == self.name)
|
||||
self iprintln("^5You ^1cannot ^5kick yourself!");
|
||||
else if(self.status == "Host" || self.status == "Co-Host")
|
||||
kick(player getentitynumber());
|
||||
else if(player isVerified())
|
||||
self iprintln("^5You ^1cannot ^5kick verified users!");
|
||||
else
|
||||
kick(player getentitynumber());
|
||||
}
|
||||
|
||||
|
||||
func_givevip(player)
|
||||
{
|
||||
if(self.status == "Host" || self.status == "Co-Host")
|
||||
{
|
||||
if(player.status != "Host" && player.status != "Admin" && player.status != "VIP")
|
||||
{
|
||||
player.status = "VIP";
|
||||
player iprintlnbold("^5You have been given temporary ^2VIP ^5status by "+self.name+"!");
|
||||
player suicide();
|
||||
self iprintln("^2VIP ^5status given to "+player.name+"!");
|
||||
}
|
||||
else
|
||||
self iprintln("^5You ^1cannot ^5re-verify players!");
|
||||
}
|
||||
else
|
||||
self iprintln("^5This is reserved for ^1Owners!");
|
||||
}
|
||||
|
||||
teleporttoprison(player)
|
||||
{
|
||||
if(!player isVerified())
|
||||
{
|
||||
if(!isDefined(level.PrisonSpawned))
|
||||
{
|
||||
if(level.script == "mp_nuketown_2020")
|
||||
level.prision_origin = (100.100,1268.67,20.125);
|
||||
else if(level.script == "mp_la")
|
||||
level.prision_origin = (62.3591,2069.36,-17.875);
|
||||
else if(level.script == "mp_hijacked")
|
||||
level.prision_origin = (1759.45,-396.014,20.125);
|
||||
else if(level.script == "mp_express")
|
||||
level.prision_origin = (481.826,2453.31,-14.875);
|
||||
else if(level.script == "mp_meltdown")
|
||||
level.prision_origin = (115.433,-1184.57,-127.875);
|
||||
else if(level.script == "mp_drone")
|
||||
level.prision_origin = (610.1,-1253.13,240.125);
|
||||
else if(level.script == "mp_carrier")
|
||||
level.prision_origin = (-6169.68,-89.8843,-179.875);
|
||||
else if(level.script == "mp_overflow")
|
||||
level.prision_origin = (-1701.57,973.025,-7.875);
|
||||
else if(level.script == "mp_slums")
|
||||
level.prision_origin = (-303.828,-1689.13,596.699);
|
||||
else if(level.script == "mp_turbine")
|
||||
level.prision_origin = (832.975,-860.638,391.125);
|
||||
else if(level.script == "mp_raid")
|
||||
level.prision_origin = (2900.72,3969.05,148.125);
|
||||
else if(level.script == "mp_dockside")
|
||||
level.prision_origin = (511.136,3128.31,205.625);
|
||||
else if(level.script == "mp_village")
|
||||
level.prision_origin = (114.549,1268.67,144.125);
|
||||
else if(level.script == "mp_nightclub")
|
||||
level.prision_origin = (-19065.1,927.661,-226.719);
|
||||
else if(level.script == "mp_socotra")
|
||||
level.prision_origin = (-426.634,630.374,120.125);
|
||||
else if(level.script == "mp_downhill")
|
||||
level.prision_origin = (1222.79,-1729.74,1176.43);
|
||||
else if(level.script == "mp_mirage")
|
||||
level.prision_origin = (-48.8165,580.206,436.125);
|
||||
else if(level.script == "mp_hydro")
|
||||
level.prision_origin = (567.641,-2735.36,-1.875);
|
||||
else if(level.script == "mp_skate")
|
||||
level.prision_origin = (1070.13,-727.641,227.125);
|
||||
else if(level.script == "mp_concert")
|
||||
level.prision_origin = (222.044,708.198,55.125);
|
||||
else if(level.script == "mp_magma")
|
||||
level.prision_origin = (-2964.52,1388.05,-559.875);
|
||||
else if(level.script == "mp_vertigo")
|
||||
level.prision_origin = (119.253,-1.49044,3252.88);
|
||||
else if(level.script == "mp_studio")
|
||||
level.prision_origin = (1096.16,-527.359,-63.875);
|
||||
else if(level.script == "mp_uplink")
|
||||
level.prision_origin = (3197.23,1507.37,485.214);
|
||||
else if(level.script == "mp_bridge")
|
||||
level.prision_origin = (863.641,-295.666,-127.875);
|
||||
else if(level.script == "mp_castaway")
|
||||
level.prision_origin = (-615.576,1157.81,248.107);
|
||||
else if(level.script == "mp_paintball")
|
||||
level.prision_origin = (-1746.36,-1196.36,0.125);
|
||||
else if(level.script == "mp_dig")
|
||||
level.prision_origin = (-1052.16,1704.36,152.125);
|
||||
else if(level.script == "mp_frostbite")
|
||||
level.prision_origin = (1582.85,-1237.31,32.125);
|
||||
else if(level.script == "mp_takeoff")
|
||||
level.prision_origin = (1860.36,2271.37,160.125);
|
||||
else if(level.script == "mp_pod")
|
||||
level.prision_origin = (-1285.48,-189.092,580.125);
|
||||
level.PrisonSpawned = true;
|
||||
}
|
||||
if(isDefined(level.prision_origin))
|
||||
{
|
||||
player.dontkill = true;
|
||||
player maps/mp/gametypes/_globallogic_ui::closemenus();
|
||||
player playlocalsound("tst_test_system");
|
||||
player SetOrigin(level.prision_origin);
|
||||
player iprintlnbold("^1You've been sent to Prison! Stop ruining the game!");
|
||||
self iprintln("^1"+player.name+" ^5was sent to Prison!");
|
||||
if(IsDefined(player.pers[ "isBot" ]) && player.pers["isBot"])
|
||||
player.status = "BOT";
|
||||
else
|
||||
{
|
||||
player disableWeapons();
|
||||
player.status = "PRISONER";
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
self iprintln("^5You ^1cannot ^5do this to verified users!");
|
||||
}
|
||||
|
||||
notifyadmins(badplayer)
|
||||
{
|
||||
foreach(player in level.players)
|
||||
{
|
||||
if(player.Status == "Host" || player.Status == "Co-Host" || player.Status == "Admin")
|
||||
if(self.name != player.name)
|
||||
player iprintln("^5"+self.name+" ^1stopped ^5"+badplayer.name+" from killing!");
|
||||
}
|
||||
}
|
||||
|
||||
teleToMe(player)
|
||||
{
|
||||
player setOrigin(self.origin);
|
||||
self iPrintln("^5"+player.name+" Teleported!");
|
||||
}
|
||||
|
||||
teleToHim(player)
|
||||
{
|
||||
self setOrigin(player.origin);
|
||||
self iPrintln("^5You Teleported to "+player.name+"!");
|
||||
}
|
||||
|
||||
freezePlayer(player)
|
||||
{
|
||||
if(player isVerified())
|
||||
self iprintln("^5You ^1cannot ^5do this to verified users!");
|
||||
else if(!isDefined(player.Frozen))
|
||||
{
|
||||
player.Frozen = true;
|
||||
player freezeControls(false);
|
||||
self iprintln("^5"+player.name+" is ^2FROZEN");
|
||||
}
|
||||
else
|
||||
{
|
||||
player.Frozen = undefined;
|
||||
player freezeControls(true);
|
||||
self iprintln("^5"+player.name+" is ^1UNFROZEN");
|
||||
}
|
||||
}
|
||||
|
||||
func_votekick(badplayer)
|
||||
{
|
||||
if(!isDefined(level.voting))
|
||||
{
|
||||
if(badplayer.name == self.name)
|
||||
self iprintln("^5You ^1cannot ^5vote kick yourself!");
|
||||
else if(badplayer isVerified())
|
||||
self iprintln("^5You ^1cannot ^5vote kick verified players!");
|
||||
else if(badplayer.status == "BOT")
|
||||
self iprintln("^1Pls dont votekick bots bro :((");
|
||||
else if(isDefined(badplayer.cantkick))
|
||||
self iprintln("^1You cannot vote kick this player again!");
|
||||
else
|
||||
{
|
||||
level.voting = true;
|
||||
self.startedvote = true;
|
||||
level.votesneeded = floor(((level.players.size - level.numberOfBots) / 2) - 1);
|
||||
level.votestokick = 1;
|
||||
self thread monitorvote(badplayer);
|
||||
self thread willtheygetkicked(badplayer);
|
||||
self iprintln("^5Voting for ^1"+badplayer.name+" ^5has started!");
|
||||
self iprintln("^1( "+level.votestokick+" / "+level.votesneeded+" ) ^5votes to kick!");
|
||||
}
|
||||
}
|
||||
else
|
||||
self iprintln("^1Voting taking place! Please wait until it has finished!");
|
||||
}
|
||||
|
||||
willtheygetkicked(badplayer)
|
||||
{
|
||||
self endon("disconnect");
|
||||
level endon("voting_ended");
|
||||
level endon("game_ended");
|
||||
for(;;)
|
||||
{
|
||||
wait 15;
|
||||
if(level.votestokick > floor((level.players.size - level.numberOfBots) / 2) - 1)
|
||||
{
|
||||
foreach(player in level.players)
|
||||
{
|
||||
player iprintln("^5Vote Passed! ^1"+badplayer.name+" got Kicked!");
|
||||
}
|
||||
kick(badplayer getentitynumber());
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach(player in level.players)
|
||||
{
|
||||
player.voted = undefined;
|
||||
if(player.name == badplayer.name)
|
||||
{
|
||||
player iprintln("^1Not Enough votes to kick you!");
|
||||
player freezeControls(false);
|
||||
player.dontkill = undefined;
|
||||
player.badplayer = undefined;
|
||||
player.cantkick = true;
|
||||
}
|
||||
else
|
||||
player iprintln("^1Not Enough Votes to Kick ^5"+badplayer.name+"!");
|
||||
}
|
||||
}
|
||||
wait 0.05;
|
||||
self.startedvote = undefined;
|
||||
level.votestokick = undefined;
|
||||
level.voting = undefined;
|
||||
wait 0.05;
|
||||
level notify("voting_ended");
|
||||
}
|
||||
}
|
||||
|
||||
monitorvote(badplayer)
|
||||
{
|
||||
self endon("disconnect");
|
||||
level endon("voting_ended");
|
||||
level endon("game_ended");
|
||||
foreach(player in level.players)
|
||||
{
|
||||
if(player.name == badplayer.name)
|
||||
{
|
||||
player iprintln("^1The lobby is Vote Kicking You!");
|
||||
player iprintln("^1Please wait to see what the outcome is...");
|
||||
player freezeControls(true);
|
||||
player.dontkill = true;
|
||||
player.badplayer = true;
|
||||
}
|
||||
else if(player.name != badplayer.name && player.name != self.name)
|
||||
{
|
||||
player iprintln("^5Voting to Kick ^1"+badplayer.name+" ^5has started!");
|
||||
player thread checkvote(badplayer);
|
||||
player thread printvote(badplayer);
|
||||
}
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
|
||||
printvote(badplayer)
|
||||
{
|
||||
self endon("disconnect");
|
||||
level endon("voting_ended");
|
||||
level endon("game_ended");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
if(!isDefined(self.voted))
|
||||
{
|
||||
self iprintln("^5PRONE[{+actionslot 1}]: ^1VOTE TO KICK ^5"+badplayer.name+"!");
|
||||
self iprintln("^5PRONE[{+actionslot 2}]: ^2VOTE NOT TO KICK ^5"+badplayer.name+"!");
|
||||
}
|
||||
wait 2.5;
|
||||
}
|
||||
}
|
||||
|
||||
checkvote(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;
|
||||
self iprintln("^1You voted for ^5"+badplayer.name+" to get kicked!");
|
||||
foreach(player in level.players)
|
||||
player iprintln("^1( "+level.votestokick+" / "+level.votesneeded+" ) ^5votes to kick!");
|
||||
}
|
||||
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!");
|
||||
}
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
|
||||
knifelungetoggle()
|
||||
{
|
||||
if (!isDefined(self.knifelunge))
|
||||
{
|
||||
self.knifelunge = true;
|
||||
self iprintlnbold("^5Knife Lunge: ^2ON");
|
||||
}
|
||||
else
|
||||
{
|
||||
self.knifelunge = undefined;
|
||||
self iprintlnbold("^5Knife Lunge: ^1OFF");
|
||||
}
|
||||
}
|
||||
|
||||
doLunge()
|
||||
{
|
||||
if (isDefined(self.knifelunge) && !isDefined(self.cooldown) && !self adsButtonPressed())
|
||||
{
|
||||
self.cooldown = true;
|
||||
self.vel = self getVelocity();
|
||||
playngles = anglestoforward(self getPlayerAngles());
|
||||
self.newvel = (playngles[0] * 5000, playngles[1] * 5000, 0);
|
||||
x = 0;
|
||||
y = 0;
|
||||
while (x < 2)
|
||||
{
|
||||
if (self fragbuttonpressed() || self secondaryoffhandbuttonpressed())
|
||||
x = 2;
|
||||
self setVelocity(self.newvel);
|
||||
x++;
|
||||
wait .01;
|
||||
}
|
||||
self.newvel = (0, 0, 0);
|
||||
self setVelocity(self.newVel);
|
||||
wait 3;
|
||||
self.cooldown = undefined;
|
||||
}
|
||||
}
|
||||
|
||||
carePackageStall()
|
||||
{
|
||||
self thread cpstall(bullettrace(self gettagorigin("j_head"), self gettagorigin("j_head") + anglesToForward(self getplayerangles()) * 1000000, 0, self)["position"] + (0,0,15), self getPlayerAngles());
|
||||
}
|
||||
|
||||
cpstall( cpPos, cpAng )
|
||||
{
|
||||
if(!isDefined(self.dostall))
|
||||
{
|
||||
self.dostall = spawn("script_model", cpPos);
|
||||
self.dostall setmodel("t6_wpn_supply_drop_trap");
|
||||
self.dostall.angles = (0, cpAng[1], 0);
|
||||
self iprintlnbold("^5Carepackage Stall Spawned!");
|
||||
}
|
||||
else
|
||||
{
|
||||
self.dostall RotateTo((0, cpAng[1], 0), 0.001, 0, 0 );
|
||||
self.dostall MoveTo(cpPos, 0.001, 0, 0 );
|
||||
self notify(self.name+"changecpstall");
|
||||
self iprintlnbold("^5Carepackage Stall Moved!");
|
||||
}
|
||||
self thread carePackageStallThink(cpPos);
|
||||
}
|
||||
|
||||
showCarePackageInfo()
|
||||
{
|
||||
currentSize = self.name;
|
||||
self.infoStall[currentSize] = self createFontString("default", 1.25);
|
||||
self.infoStall[currentSize] setPoint( "CENTER", "CENTER", 0, 70 );
|
||||
self.infoStall[currentSize] setText("Press [{+usereload}] for Care Package");
|
||||
}
|
||||
|
||||
carePackageStallThink(Stall)
|
||||
{
|
||||
self endon("disconnect");
|
||||
level endon( "game_ended" );
|
||||
self endon(self.name+"changecpstall");
|
||||
|
||||
currentSize = self.name;
|
||||
self.onlyLinkOnce = true;
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self.infoStall[currentSize] destroy();
|
||||
if(!(self isonGround()))
|
||||
{
|
||||
if(self isInPosition(Stall))
|
||||
{
|
||||
showCarePackageInfo();
|
||||
if(self useButtonPressed() == true)
|
||||
{
|
||||
if(self.onlyLinkOnce == true)
|
||||
{
|
||||
self.stall = spawn("script_model", self.origin);
|
||||
self playerLinkTo(self.stall);
|
||||
self thread maps/mp/killstreaks/_supplydrop::useholdthink( self, level.cratenonownerusetime );
|
||||
self freeze_player_controls( 0 );
|
||||
self.onlyLinkOnce = false;
|
||||
}
|
||||
}
|
||||
else if(!self useButtonPressed())
|
||||
{
|
||||
self.onlyLinkOnce = true;
|
||||
self.stall delete();
|
||||
}
|
||||
}
|
||||
else
|
||||
self.InfoStall[currentSize] destroy();
|
||||
}
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
|
||||
isInPosition( cP )
|
||||
{
|
||||
if(distance( self.origin, cP ) < 130)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
floaters()
|
||||
{
|
||||
self endon("disconnect");
|
||||
self endon("floaters_over");
|
||||
level waittill("game_ended");
|
||||
|
||||
level.botCount = undefined;
|
||||
level.botsChecked = undefined;
|
||||
|
||||
foreach(player in level.players)
|
||||
{
|
||||
if(isAlive(player) && !player isOnGround())
|
||||
{
|
||||
player thread executeFloater();
|
||||
player thread endFloater();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
executeFloater()
|
||||
{
|
||||
z = 0;
|
||||
startingOrigin = self getOrigin();
|
||||
floaterPlatform = spawn("script_model", startingOrigin - (0, 0, 20));
|
||||
playerAngles = self getPlayerAngles();
|
||||
floaterPlatform.angles=(0, playerAngles[1] , 0);
|
||||
floaterPlatform setModel("collision_clip_32x32x10");
|
||||
for(;;)
|
||||
{
|
||||
z++;
|
||||
floaterPlatform.origin=(startingOrigin - (0, 0, z*1 ));
|
||||
wait .01;
|
||||
}
|
||||
}
|
||||
|
||||
endFloater()
|
||||
{
|
||||
self endon("disconnect");
|
||||
self endon("floaters_over");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
wait 10;
|
||||
self notify("floaters_over");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
almosthitplayer()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
level endon( "game_ended" );
|
||||
for(;;)
|
||||
{
|
||||
if(self.pointstowin == level.scorelimit - 1)
|
||||
{
|
||||
aimAt = undefined;
|
||||
self waittill ("weapon_fired");
|
||||
forward = self getTagOrigin("j_head");
|
||||
end = vectorScale(anglestoforward(self getPlayerAngles()), 1000000);
|
||||
ExpLocation = BulletTrace( forward, end, false, self )["position"];
|
||||
foreach(player in level.players)
|
||||
{
|
||||
if((player == self) || (!isAlive(player)) || (level.teamBased && self.pers["team"] == player.pers["team"]))
|
||||
continue;
|
||||
if(isDefined(aimAt))
|
||||
{
|
||||
if(closer(ExpLocation, player getTagOrigin("pelvis"), aimAt getTagOrigin("pelvis")))
|
||||
aimAt = player;
|
||||
}
|
||||
else aimAt = player;
|
||||
}
|
||||
meterdist = int(distance(self.origin, aimAt.origin) / 39.97);
|
||||
if(distance( aimAt.origin, ExpLocation ) > 1 && distance( aimAt.origin, ExpLocation ) < 90 && !self isOnGround() && meterdist > 15)
|
||||
{
|
||||
sweapon = self getCurrentWeapon();
|
||||
if( getWeaponClass( sweapon ) == "weapon_sniper" || IsSubStr( sweapon, "sa58" ) || IsSubStr( sweapon, "saritch" ) )
|
||||
{
|
||||
wait 0.10;
|
||||
if( !isDefined(level.meters) )
|
||||
self iprintlnbold("^1You nearly hit ^7"+ aimAt.name +" ^1from ( ^7" + meterdist + "^1 ) m away!");
|
||||
if( !isDefined(self.jewcount) )
|
||||
self.jewcount = 1;
|
||||
else
|
||||
self.jewcount += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
|
||||
trackstats()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "statsdisplayed" );
|
||||
level waittill("game_ended");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
wait .12;
|
||||
if(!isDefined(self.biller))
|
||||
{
|
||||
if(isDefined(self.jewcount))
|
||||
{
|
||||
wait .5;
|
||||
if(self.jewcount == 1)
|
||||
self iprintln("You almost hit ^1"+self.jewcount+" ^7time this game!");
|
||||
else
|
||||
self iprintln("You almost hit ^1"+self.jewcount+" ^7times this game!");
|
||||
self notify( "statsdisplayed" );
|
||||
}
|
||||
}
|
||||
wait 0.05;
|
||||
self notify( "statsdisplayed" );
|
||||
}
|
||||
}
|
||||
|
||||
weaponboxSpawn()
|
||||
{
|
||||
self thread weaponbox(bullettrace(self gettagorigin("j_head"), self gettagorigin("j_head") + anglesToForward(self getplayerangles()) * 1000000, 0, self)["position"] + (0,0,15), self getPlayerAngles());
|
||||
}
|
||||
|
||||
weaponbox( wbPos, wbAng )
|
||||
{
|
||||
if(!isDefined(self.mysterybox))
|
||||
{
|
||||
self.mysterybox = spawn("script_model", wbPos);
|
||||
self.mysterybox setmodel("t6_wpn_supply_drop_ally");
|
||||
self.mysterybox.angles = (0, wbAng[1], 0);
|
||||
self iprintlnbold("^5Mystery Box Spawned!");
|
||||
}
|
||||
else
|
||||
{
|
||||
self.mysterybox RotateTo((0, wbAng[1], 0), 0.001, 0, 0 );
|
||||
self.mysterybox MoveTo(wbPos, 0.001, 0, 0 );
|
||||
level notify(self.name+"changemysterybox");
|
||||
self iprintlnbold("^5Mystery Box Moved!");
|
||||
}
|
||||
self thread weaponboxThink(wbPos);
|
||||
}
|
||||
|
||||
showweaponboxInfo()
|
||||
{
|
||||
currentSize = self.name;
|
||||
self.infoBox[currentSize] = self createFontString("default", 1.25);
|
||||
self.infoBox[currentSize] setPoint( "CENTER", "CENTER", 0, 70 );
|
||||
self.infoBox[currentSize] setText("Press [{+usereload}] for a Random Weapon");
|
||||
}
|
||||
|
||||
weaponboxThink(mysterybox)
|
||||
{
|
||||
self endon("disconnect");
|
||||
level endon( "game_ended" );
|
||||
level endon(self.name+"changemysterybox");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
foreach(player in level.players)
|
||||
{
|
||||
currentSize = player.name;
|
||||
player.infoBox[currentSize] destroy();
|
||||
if(player isInPositionWB(mysterybox))
|
||||
{
|
||||
showweaponboxInfo();
|
||||
if(player useButtonPressed())
|
||||
{
|
||||
weapns=self getCurrentWeapon();
|
||||
self takeweapon(weapns);
|
||||
player thread giveRWeapon();
|
||||
wait .2;
|
||||
}
|
||||
}
|
||||
else
|
||||
player.infoBox[currentSize] destroy();
|
||||
}
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
|
||||
isInPositionWB( wb )
|
||||
{
|
||||
if(distance( self.origin, wb ) < 85)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
giveRWeapon()
|
||||
{
|
||||
randy = RandomIntRange(1,45);
|
||||
self.Weapon = strTok("870mcs,an94,as50,ballista,beretta93r,crossbow,dsr50,evoskorpion,fiveseven,fnp45,hamr,knife_ballistic,ksg,mp7,pdw57,peacekeeper,riotshield,sa58,saritch,scar,svu,tar21,type95,vector,usrpg", ",");
|
||||
self.RandWeapon = RandomInt(self.Weapon.size);
|
||||
attachmentlist=self.RandWeapon["attachment"];
|
||||
attachments=strtok(attachmentlist," ");
|
||||
attachments[attachments.size]="";
|
||||
attachment=random(attachments);
|
||||
self GiveWeapon((self.RandWeapon[self.Weapon]+"_mp+")+attachment,0,true(randy,0,0,0,0));
|
||||
self switchToWeapon((self.RandWeapon[self.Weapon]+"_mp+")+attachment,0,true(randy,0,0,0,0));
|
||||
}
|
||||
|
198
CAHZ SND SERVER STUFFS/outcome_text.gsc
Normal file
198
CAHZ SND SERVER STUFFS/outcome_text.gsc
Normal file
@ -0,0 +1,198 @@
|
||||
teamwageroutcomenotify( winner, isroundend, endreasontext )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self notify( "reset_outcome" );
|
||||
team = self.pers[ "team" ];
|
||||
if ( !isDefined( team ) || !isDefined( level.teams[ team ] ) )
|
||||
{
|
||||
team = "allies";
|
||||
}
|
||||
wait 0.05;
|
||||
while ( self.doingnotify )
|
||||
{
|
||||
wait 0.05;
|
||||
}
|
||||
self endon( "reset_outcome" );
|
||||
headerfont = "extrabig";
|
||||
font = "objective";
|
||||
if ( self issplitscreen() )
|
||||
{
|
||||
titlesize = 2;
|
||||
textsize = 1.5;
|
||||
iconsize = 30;
|
||||
spacing = 10;
|
||||
}
|
||||
else
|
||||
{
|
||||
titlesize = 3;
|
||||
textsize = 2;
|
||||
iconsize = 70;
|
||||
spacing = 15;
|
||||
}
|
||||
halftime = 0;
|
||||
if ( isDefined( level.sidebet ) && level.sidebet )
|
||||
{
|
||||
halftime = 1;
|
||||
}
|
||||
duration = 60000;
|
||||
outcometitle = createfontstring( headerfont, titlesize );
|
||||
outcometitle setpoint( "TOP", undefined, 0, spacing );
|
||||
outcometitle.glowalpha = 1;
|
||||
outcometitle.hidewheninmenu = 0;
|
||||
outcometitle.archived = 0;
|
||||
outcometitle.immunetodemogamehudsettings = 1;
|
||||
outcometitle.immunetodemofreecamera = 1;
|
||||
outcometext = createfontstring( font, 2 );
|
||||
outcometext setparent( outcometitle );
|
||||
outcometext setpoint( "TOP", "BOTTOM", 0, 0 );
|
||||
outcometext.glowalpha = 1;
|
||||
outcometext.hidewheninmenu = 0;
|
||||
outcometext.archived = 0;
|
||||
outcometext.immunetodemogamehudsettings = 1;
|
||||
outcometext.immunetodemofreecamera = 1;
|
||||
if ( winner == "tie" )
|
||||
{
|
||||
if ( isroundend )
|
||||
{
|
||||
outcometitle settext( game[ "strings" ][ "round_draw" ] );
|
||||
}
|
||||
else
|
||||
{
|
||||
outcometitle settext( game[ "strings" ][ "draw" ] );
|
||||
}
|
||||
outcometitle.color = ( 1, 0.5, 1 );
|
||||
winner = "allies";
|
||||
}
|
||||
else if ( winner == "overtime" )
|
||||
{
|
||||
outcometitle settext( game[ "strings" ][ "overtime" ] );
|
||||
outcometitle.color = ( 1, 0.5, 1 );
|
||||
}
|
||||
else if ( isDefined( self.pers[ "team" ] ) && winner == team )
|
||||
{
|
||||
if ( isroundend )
|
||||
{
|
||||
outcometitle settext( game[ "strings" ][ "round_win" ] );
|
||||
}
|
||||
else
|
||||
{
|
||||
outcometitle settext( game[ "strings" ][ "victory" ] );
|
||||
}
|
||||
outcometitle.color = ( 1, 0.5, 1 );
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( isroundend )
|
||||
{
|
||||
outcometitle settext( game[ "strings" ][ "round_loss" ] );
|
||||
}
|
||||
else
|
||||
{
|
||||
outcometitle settext( game[ "strings" ][ "defeat" ] );
|
||||
}
|
||||
outcometitle.color = ( 1, 0.5, 1 );
|
||||
}
|
||||
if ( !isDefined( level.dontshowendreason ) || !level.dontshowendreason )
|
||||
{
|
||||
outcometext settext( endreasontext );
|
||||
}
|
||||
outcometitle setpulsefx( 100, duration, 1000 );
|
||||
outcometext setpulsefx( 100, duration, 1000 );
|
||||
teamicons = [];
|
||||
teamicons[ team ] = createicon( game[ "icons" ][ team ], iconsize, iconsize );
|
||||
teamicons[ team ] setparent( outcometext );
|
||||
teamicons[ team ] setpoint( "TOP", "BOTTOM", -60, spacing );
|
||||
teamicons[ team ].hidewheninmenu = 0;
|
||||
teamicons[ team ].archived = 0;
|
||||
teamicons[ team ].alpha = 0;
|
||||
teamicons[ team ] fadeovertime( 0.5 );
|
||||
teamicons[ team ].alpha = 1;
|
||||
teamicons[ team ].immunetodemogamehudsettings = 1;
|
||||
teamicons[ team ].immunetodemofreecamera = 1;
|
||||
_a1269 = level.teams;
|
||||
_k1269 = getFirstArrayKey( _a1269 );
|
||||
while ( isDefined( _k1269 ) )
|
||||
{
|
||||
enemyteam = _a1269[ _k1269 ];
|
||||
if ( team == enemyteam )
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
teamicons[ enemyteam ] = createicon( game[ "icons" ][ enemyteam ], iconsize, iconsize );
|
||||
teamicons[ enemyteam ] setparent( outcometext );
|
||||
teamicons[ enemyteam ] setpoint( "TOP", "BOTTOM", 60, spacing );
|
||||
teamicons[ enemyteam ].hidewheninmenu = 0;
|
||||
teamicons[ enemyteam ].archived = 0;
|
||||
teamicons[ enemyteam ].alpha = 0;
|
||||
teamicons[ enemyteam ] fadeovertime( 0.5 );
|
||||
teamicons[ enemyteam ].alpha = 1;
|
||||
teamicons[ enemyteam ].immunetodemogamehudsettings = 1;
|
||||
teamicons[ enemyteam ].immunetodemofreecamera = 1;
|
||||
}
|
||||
_k1269 = getNextArrayKey( _a1269, _k1269 );
|
||||
}
|
||||
teamscores = [];
|
||||
teamscores[ team ] = createfontstring( font, titlesize );
|
||||
teamscores[ team ] setparent( teamicons[ team ] );
|
||||
teamscores[ team ] setpoint( "TOP", "BOTTOM", 0, spacing );
|
||||
teamscores[ team ].glowalpha = 1;
|
||||
teamscores[ team ] setvalue( getteamscore( team ) );
|
||||
teamscores[ team ].hidewheninmenu = 0;
|
||||
teamscores[ team ].archived = 0;
|
||||
teamscores[ team ].immunetodemogamehudsettings = 1;
|
||||
teamscores[ team ].immunetodemofreecamera = 1;
|
||||
teamscores[ team ] setpulsefx( 100, duration, 1000 );
|
||||
_a1299 = level.teams;
|
||||
_k1299 = getFirstArrayKey( _a1299 );
|
||||
while ( isDefined( _k1299 ) )
|
||||
{
|
||||
enemyteam = _a1299[ _k1299 ];
|
||||
if ( team == enemyteam )
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
teamscores[ enemyteam ] = createfontstring( font, titlesize );
|
||||
teamscores[ enemyteam ] setparent( teamicons[ enemyteam ] );
|
||||
teamscores[ enemyteam ] setpoint( "TOP", "BOTTOM", 0, spacing );
|
||||
teamscores[ enemyteam ].glowalpha = 1;
|
||||
teamscores[ enemyteam ] setvalue( getteamscore( enemyteam ) );
|
||||
teamscores[ enemyteam ].hidewheninmenu = 0;
|
||||
teamscores[ enemyteam ].archived = 0;
|
||||
teamscores[ enemyteam ].immunetodemogamehudsettings = 1;
|
||||
teamscores[ enemyteam ].immunetodemofreecamera = 1;
|
||||
teamscores[ enemyteam ] setpulsefx( 100, duration, 1000 );
|
||||
}
|
||||
_k1299 = getNextArrayKey( _a1299, _k1299 );
|
||||
}
|
||||
matchbonus = undefined;
|
||||
sidebetwinnings = undefined;
|
||||
if ( !isroundend && !halftime && isDefined( self.wagerwinnings ) )
|
||||
{
|
||||
matchbonus = createfontstring( font, 2 );
|
||||
matchbonus setparent( outcometext );
|
||||
matchbonus setpoint( "TOP", "BOTTOM", 0, iconsize + ( spacing * 3 ) + teamscores[ team ].height );
|
||||
matchbonus.glowalpha = 1;
|
||||
matchbonus.hidewheninmenu = 0;
|
||||
matchbonus.archived = 0;
|
||||
matchbonus.immunetodemogamehudsettings = 1;
|
||||
matchbonus.immunetodemofreecamera = 1;
|
||||
matchbonus.label = game[ "strings" ][ "wager_winnings" ];
|
||||
matchbonus setvalue( self.wagerwinnings );
|
||||
if ( isDefined( game[ "side_bets" ] ) && game[ "side_bets" ] )
|
||||
{
|
||||
sidebetwinnings = createfontstring( font, 2 );
|
||||
sidebetwinnings setparent( matchbonus );
|
||||
sidebetwinnings setpoint( "TOP", "BOTTOM", 0, spacing );
|
||||
sidebetwinnings.glowalpha = 1;
|
||||
sidebetwinnings.hidewheninmenu = 0;
|
||||
sidebetwinnings.archived = 0;
|
||||
sidebetwinnings.immunetodemogamehudsettings = 1;
|
||||
sidebetwinnings.immunetodemofreecamera = 1;
|
||||
sidebetwinnings.label = game[ "strings" ][ "wager_sidebet_winnings" ];
|
||||
sidebetwinnings setvalue( self.pers[ "wager_sideBetWinnings" ] );
|
||||
}
|
||||
}
|
||||
self thread resetoutcomenotify( teamicons, teamscores, outcometitle, outcometext, matchbonus, sidebetwinnings );
|
||||
}
|
199
CAHZ SND SERVER STUFFS/server_functions.gsc
Normal file
199
CAHZ SND SERVER STUFFS/server_functions.gsc
Normal file
@ -0,0 +1,199 @@
|
||||
resetDvars()
|
||||
{
|
||||
level endon("dvars_reset");
|
||||
level waittill("game_ended");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
setDvar("jump_ladderPushVel",128);
|
||||
setDvar("bg_ladder_yawcap",100);
|
||||
setDvar("bg_prone_yawcap",85);
|
||||
wait 0.05;
|
||||
level notify("dvars_reset");
|
||||
}
|
||||
}
|
||||
|
||||
spawnBot(value)
|
||||
{
|
||||
for(i = 0; i < value; i++)
|
||||
{
|
||||
self thread maps\mp\bots\_bot::spawn_bot( "axis" );
|
||||
}
|
||||
}
|
||||
|
||||
checkBot()
|
||||
{
|
||||
level.numberOfBots = 0;
|
||||
foreach(player in level.players)
|
||||
{
|
||||
if(isDefined(player.pers["isBot"])&& player.pers["isBot"])
|
||||
level.numberOfBots += 1;
|
||||
}
|
||||
wait 1;
|
||||
if(level.numberOfBots == 0)
|
||||
level thread spawnBot(1);
|
||||
}
|
||||
|
||||
kickAllBots()
|
||||
{
|
||||
players = level.players;
|
||||
for ( i = 0; i < players.size; i++ )
|
||||
{
|
||||
player = players[i];
|
||||
if(IsDefined(player.pers[ "isBot" ]) && player.pers["isBot"])
|
||||
kick(player getentitynumber());
|
||||
}
|
||||
}
|
||||
|
||||
changeClass()
|
||||
{
|
||||
self endon("disconnect");
|
||||
level endon("game_ended");
|
||||
for(;;)
|
||||
{
|
||||
self waittill("changed_class");
|
||||
//self.pers[ "class" ] = undefined;
|
||||
self maps/mp/gametypes/_class::giveloadout( self.team, self.class );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
moveBarriers() {
|
||||
level.barriersMoved = true;
|
||||
|
||||
barriers = getEntArray( "trigger_hurt", "classname" );
|
||||
|
||||
if( GetDvar( "mapname" ) == "mp_bridge" ) {
|
||||
foreach( barrier in barriers ) {
|
||||
if( barrier.origin[2] < self.origin[2] )
|
||||
barrier.origin -= (0, 0, 1000);
|
||||
}
|
||||
}
|
||||
|
||||
else if( GetDvar( "mapname" ) == "mp_hydro" ) {
|
||||
foreach( barrier in barriers ) {
|
||||
if( barrier.origin[2] < self.origin[2] )
|
||||
barrier.origin -= (0, 0, 900);
|
||||
}
|
||||
}
|
||||
|
||||
else if( GetDvar( "mapname" ) == "mp_uplink" ) {
|
||||
foreach( barrier in barriers ) {
|
||||
if( barrier.origin[2] < self.origin[2] )
|
||||
barrier.origin -= (0, 0, 700);
|
||||
}
|
||||
}
|
||||
|
||||
else if( GetDvar( "mapname" ) == "mp_vertigo" ) {
|
||||
foreach( barrier in barriers ) {
|
||||
if( barrier.origin[2] < self.origin[2] )
|
||||
barrier.origin -= (0, 0, 5000);
|
||||
}
|
||||
}
|
||||
|
||||
else if( GetDvar( "mapname" ) == "mp_socotra" ) {
|
||||
foreach( barrier in barriers ) {
|
||||
if( barrier.origin[2] < self.origin[2] )
|
||||
barrier.origin -= (0, 0, 650);
|
||||
}
|
||||
}
|
||||
|
||||
else if( GetDvar( "mapname" ) == "mp_downhill" ) {
|
||||
foreach( barrier in barriers ) {
|
||||
if( barrier.origin[2] < self.origin[2] )
|
||||
barrier.origin -= (0, 0, 800);
|
||||
}
|
||||
}
|
||||
|
||||
else if( GetDvar( "mapname" ) == "mp_raid" ) {
|
||||
foreach( barrier in barriers ) {
|
||||
if( barrier.origin[2] < self.origin[2] )
|
||||
barrier.origin -= (0, 0, 105);
|
||||
}
|
||||
}
|
||||
|
||||
else if( GetDvar( "mapname" ) == "mp_carrier" ) {
|
||||
foreach( barrier in barriers ) {
|
||||
if( barrier.origin[2] < self.origin[2] )
|
||||
barrier.origin -= (0, 0, 100);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
removeSkyBarrier()
|
||||
{
|
||||
entArray = getEntArray();
|
||||
for (index = 0; index < entArray.size; index++)
|
||||
{
|
||||
if(isSubStr(entArray[index].classname, "trigger_hurt") && entArray[index].origin[2] > 180)
|
||||
entArray[index].origin = (0, 0, 9999999);
|
||||
}
|
||||
}
|
||||
|
||||
Callback_PlayerDamageHook( einflictor, eattacker, idamage, idflags, smeansofdeath, sweapon, vpoint, vdir, shitloc, timeoffset, boneindex )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
OnGround = eattacker IsOnGround();
|
||||
IsClose = Distance( self.origin, eattacker.origin ) < 500;
|
||||
meterdist = int( Distance( self.origin, eattacker.origin ) / 39.37 );
|
||||
|
||||
if( smeansofdeath != "MOD_TRIGGER_HURT" && smeansofdeath != "MOD_FALLING" && smeansofdeath != "MOD_SUICIDE" )
|
||||
{
|
||||
if( isDefined(eattacker.dontkill) )
|
||||
self.health += idamage;
|
||||
else if( !OnGround && isDefined(eattacker.customweapon) && IsSubStr( sweapon, self.customweapon ) && meterdist > 15 )
|
||||
idamage = 10000000;
|
||||
else if( smeansofdeath == "MOD_MELEE" || IsSubStr( sweapon, "+gl" ))
|
||||
self.health += idamage;
|
||||
else if( einflictor != eattacker && sweapon == "hatchet_mp" )
|
||||
self.health += idamage;
|
||||
else if( einflictor != eattacker && sweapon == "knife_ballistic_mp" )
|
||||
self.health += idamage;
|
||||
else if( OnGround )
|
||||
self.health += idamage;
|
||||
else if( getWeaponClass( sweapon ) == "weapon_sniper" || IsSubStr( sweapon, "sa58" ) || IsSubStr( sweapon, "saritch" ) )
|
||||
{
|
||||
if( meterdist < 5 )
|
||||
{
|
||||
self.health += idamage;
|
||||
eattacker iprintln("^5Barrel Stuff Protection! ^1Hitmarkered ^5from ( ^1"+meterdist+" ^5) meters away!" );
|
||||
}
|
||||
else
|
||||
idamage = 10000000;
|
||||
}
|
||||
else
|
||||
self.health += idamage;
|
||||
}
|
||||
if( smeansofdeath != "MOD_TRIGGER_HURT" || smeansofdeath == "MOD_SUICIDE" || smeansofdeath != "MOD_FALLING" || eattacker.classname == "trigger_hurt" )
|
||||
self.attackers = undefined;
|
||||
[[level.playerDamageStub]]( einflictor, eattacker, idamage, idflags, smeansofdeath, sweapon, vpoint, vdir, shitloc, timeoffset, boneindex );
|
||||
if( idamage == 10000000 && level.scorelimit == eattacker.pers["pointstowin"] )
|
||||
{
|
||||
if( !isDefined(level.meters) )
|
||||
{
|
||||
level.meters = true;
|
||||
eattacker.biller = true;
|
||||
foreach( player in level.players )
|
||||
{
|
||||
wait 0.1;
|
||||
player iprintln("("+meterColor(meterdist)+" "+meterdist+" ^7) meters away!" );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
meterColor(color)
|
||||
{
|
||||
if( color < 25 )
|
||||
return "^7";
|
||||
else if( color < 50 )
|
||||
return "^2";
|
||||
else if( color < 75 )
|
||||
return "^3";
|
||||
else if( color < 100 )
|
||||
return "^6";
|
||||
else
|
||||
return "^1";
|
||||
}
|
||||
|
106
CAHZ SND SERVER STUFFS/structure.gsc
Normal file
106
CAHZ SND SERVER STUFFS/structure.gsc
Normal file
@ -0,0 +1,106 @@
|
||||
initializeVars()
|
||||
{
|
||||
if(!isDefined(self.Candy))
|
||||
self.Candy = [];
|
||||
|
||||
self.Candy["menu_colour"] = (0.141,0.573,1);
|
||||
self.Candy["opt_colour"] = (1,1,1);
|
||||
self.Candy["bg_colour"] = (0,0,0);
|
||||
self.Candy["red_value"] = 36;
|
||||
self.Candy["green_value"] = 146;
|
||||
self.Candy["blue_value"] = 255;
|
||||
}
|
||||
|
||||
addMenu(Menu, prevmenu, menutitle)
|
||||
{
|
||||
self.menu.getmenu[Menu] = Menu;
|
||||
self.menu.scrollerpos[Menu] = 0;
|
||||
self.menu.curs[Menu] = 0;
|
||||
self.menu.menucount[Menu] = 0;
|
||||
self.menu.subtitle[Menu] = menutitle;
|
||||
self.menu.previousmenu[Menu] = prevmenu;
|
||||
}
|
||||
|
||||
addOpt(Menu, Text, Func, arg1, arg2, toggle)
|
||||
{
|
||||
Menu = self.menu.getmenu[Menu];
|
||||
Num = self.menu.menucount[Menu];
|
||||
self.menu.menuopt[Menu][Num] = Text;
|
||||
self.menu.menufunc[Menu][Num] = Func;
|
||||
self.menu.menuinput[Menu][Num] = arg1;
|
||||
self.menu.menuinput1[Menu][Num] = arg2;
|
||||
if(isDefined(toggle))
|
||||
self.menu.toggle[Menu][Num] = toggle;
|
||||
else
|
||||
self.menu.toggle[Menu][Num] = undefined;
|
||||
self.menu.menucount[Menu]++;
|
||||
}
|
||||
|
||||
addSlider(Menu, Text, Slider, Func, arg1, arg2)
|
||||
{
|
||||
Menu = self.menu.getmenu[Menu];
|
||||
Num = self.menu.menucount[Menu];
|
||||
|
||||
if(isDefined(slider))
|
||||
self.menu.menuslider[Menu][Num] = strTok(slider,";");
|
||||
self.menu.menuopt[Menu][Num] = Text;
|
||||
self.menu.menufunc[Menu][Num] = Func;
|
||||
self.menu.menuinput[Menu][Num] = arg1;
|
||||
self.menu.menuinput1[Menu][Num] = arg2;
|
||||
self.menu.menucount[Menu]++;
|
||||
}
|
||||
|
||||
newMenu(menu, title)
|
||||
{
|
||||
for(i = 0; i < self.AIO["OPT"].size; i++)
|
||||
self.AIO["OPT"][i].alpha = 0;
|
||||
self.AIO["Title"].alpha = 0;
|
||||
|
||||
if(menu == self.AIO["menu"])
|
||||
self thread drawText(self.AIO["menu"]);
|
||||
else
|
||||
self thread drawText(title);
|
||||
|
||||
if(menu == "PlayersMenu")
|
||||
{
|
||||
self playerMenu();
|
||||
self thread drawText("Players");
|
||||
}
|
||||
else
|
||||
self thread drawText(title);
|
||||
|
||||
self.CurMenu = menu;
|
||||
self.CurTitle = title;
|
||||
|
||||
self.menu.scrollerpos[menu] = self.menu.curs[menu];
|
||||
self.menu.curs[menu] = self.menu.scrollerpos[menu];
|
||||
|
||||
for(i = 0; i < self.AIO["OPT"].size; i++)
|
||||
self.AIO["OPT"][i].alpha = 1;
|
||||
self.AIO["SubTitle"].alpha = 1;
|
||||
|
||||
self refreshTitle();
|
||||
self updateScrollbar();
|
||||
}
|
||||
|
||||
refreshMenu()
|
||||
{
|
||||
savedCurs = [];
|
||||
foreach(key in getArrayKeys(self.menu.curs))
|
||||
savedCurs[key] = self.menu.curs[key];
|
||||
self menuOptions();
|
||||
foreach(key in getArrayKeys(savedCurs))
|
||||
self.menu.curs[key] = savedCurs[key];
|
||||
if(self inMenu())
|
||||
{
|
||||
self refreshTitle();
|
||||
self updateScrollbar();
|
||||
}
|
||||
}
|
||||
|
||||
inMenu()
|
||||
{
|
||||
if(isDefined(self.hasMenu) && isDefined(self.menu.open))
|
||||
return true;
|
||||
return false;
|
||||
}
|
322
CAHZ SND SERVER STUFFS/utilities.gsc
Normal file
322
CAHZ SND SERVER STUFFS/utilities.gsc
Normal file
@ -0,0 +1,322 @@
|
||||
drawText(text, font, fontScale, align, relative, x, y, color, alpha, sort)
|
||||
{
|
||||
hud = self createFontString(font, fontScale);
|
||||
hud setPoint(align, relative, x, y);
|
||||
hud.color = color;
|
||||
hud.alpha = alpha;
|
||||
hud.hideWhenInMenu = true;
|
||||
hud.sort = sort;
|
||||
hud.foreground = true;
|
||||
if(self issplitscreen()) hud.x += 100;
|
||||
hud setSafeText(text);
|
||||
return hud;
|
||||
}
|
||||
|
||||
drawshader( shader, x, y, width, height, color, alpha, sort ){
|
||||
hud = newclienthudelem( self );
|
||||
hud.elemtype = "icon";
|
||||
hud.color = color;
|
||||
hud.alpha = alpha;
|
||||
hud.sort = sort;
|
||||
hud.children = [];
|
||||
hud setparent( level.uiparent );
|
||||
hud setshader( shader, width, height );
|
||||
hud.x = x;
|
||||
hud.y = y;
|
||||
return hud;
|
||||
}
|
||||
|
||||
createRectangle(align, relative, x, y, width, height, color, shader, sort, alpha)
|
||||
{
|
||||
hud = newClientHudElem(self);
|
||||
hud.elemType = "bar";
|
||||
hud.children = [];
|
||||
hud.sort = sort;
|
||||
hud.color = color;
|
||||
hud.alpha = alpha;
|
||||
hud.hideWhenInMenu = true;
|
||||
hud.foreground = true;
|
||||
hud setParent(level.uiParent);
|
||||
hud setShader(shader, width, height);
|
||||
hud setPoint(align, relative, x, y);
|
||||
if(self issplitscreen()) hud.x += 100;
|
||||
return hud;
|
||||
}
|
||||
|
||||
setSafeText(text)
|
||||
{
|
||||
level.result += 1;
|
||||
level notify("textset");
|
||||
self setText(text);
|
||||
}
|
||||
|
||||
hudFade(alpha, time)
|
||||
{
|
||||
self fadeOverTime(time);
|
||||
self.alpha = alpha;
|
||||
wait time;
|
||||
}
|
||||
|
||||
hudMoveY(y, time)
|
||||
{
|
||||
self moveOverTime(time);
|
||||
self.y = y;
|
||||
wait time;
|
||||
}
|
||||
|
||||
hudMoveX(x, time)
|
||||
{
|
||||
self moveOverTime(time);
|
||||
self.x = x;
|
||||
wait time;
|
||||
}
|
||||
|
||||
destroyAll(array)
|
||||
{
|
||||
keys=getArrayKeys(array);
|
||||
for(a=0;a < keys.size;a++)
|
||||
if(isDefined(array[keys[ a ] ][0]))
|
||||
for(e=0;e < array[keys[ a ] ].size;e++)
|
||||
array[keys[ a ] ][e] destroy();
|
||||
else
|
||||
array[keys[ a ] ] destroy();
|
||||
}
|
||||
|
||||
divideColor(c1,c2,c3)
|
||||
{
|
||||
return(c1 / 255, c2 / 255, c3 / 255);
|
||||
}
|
||||
|
||||
getMenuName()
|
||||
{
|
||||
return self.menu.getmenu[self.CurMenu][self.menu.curs[self.CurMenu]];
|
||||
}
|
||||
|
||||
getMenuFunction()
|
||||
{
|
||||
return self.menu.menufunc[self.CurMenu][self.menu.curs[self.CurMenu]];
|
||||
}
|
||||
|
||||
getMenuOption()
|
||||
{
|
||||
return self.menu.menuopt[self.CurMenu][self.menu.curs[self.CurMenu]];
|
||||
}
|
||||
|
||||
getMenuCount()
|
||||
{
|
||||
return self.menu.scrollerpos[self.CurMenu][self.menu.curs[self.CurMenu]];
|
||||
}
|
||||
|
||||
getMenuScroll()
|
||||
{
|
||||
self iprintln("Menu Scroll ^3" +getMenuCount());
|
||||
}
|
||||
|
||||
boolToText(bool, string1, string2)
|
||||
{
|
||||
if(isDefined(bool) && bool)
|
||||
return string1;
|
||||
return string2;
|
||||
}
|
||||
|
||||
isVerified()
|
||||
{
|
||||
if(self.status == "Host" || self.status == "Co-Host" || self.status == "Admin" || self.status == "VIP")
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
isPrivileged()
|
||||
{
|
||||
if(self.status == "Host" || isDefined(self.doprivileges))
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
getPlayerName(player)
|
||||
{
|
||||
playerName = getSubStr(player.name, 0, player.name.size);
|
||||
for(i = 0; i < playerName.size; i++)
|
||||
{
|
||||
if(playerName[i] == "]")
|
||||
break;
|
||||
}
|
||||
if(playerName.size != i)
|
||||
playerName = getSubStr(playerName, i + 1, playerName.size);
|
||||
|
||||
return playerName;
|
||||
}
|
||||
|
||||
changeVerificationMenu(player, verlevel)
|
||||
{
|
||||
if(player.status != verlevel && !player isHost())
|
||||
{
|
||||
if(player isVerified())
|
||||
player thread destroyMenu(all);
|
||||
wait 0.03;
|
||||
player.status = verlevel;
|
||||
wait 0.01;
|
||||
|
||||
if(player.status == "None")
|
||||
{
|
||||
player.menuInit = undefined;
|
||||
player.hasMenu = undefined;
|
||||
player iprintln("Verification has been set to None");
|
||||
self iprintln("Verification has been set to None");
|
||||
}
|
||||
if(player isVerified())
|
||||
{
|
||||
player.menuInit = true;
|
||||
player thread menuInit();
|
||||
|
||||
self iprintln(getPlayerName(player)+ "'s verification set to " +verlevel);
|
||||
player iprintln("Verification has been set to " +verlevel);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(player isHost())
|
||||
self iprintln("You cannot change the verification level of the " +player.status);
|
||||
else
|
||||
self iprintln("Player is already " + verlevel);
|
||||
}
|
||||
}
|
||||
|
||||
changeVerification(player, verlevel)
|
||||
{
|
||||
if(player isVerified())
|
||||
player thread destroyMenu(all);
|
||||
wait 0.03;
|
||||
player.status = verlevel;
|
||||
wait 0.01;
|
||||
|
||||
if(player.status == "None")
|
||||
{
|
||||
player.menuInit = undefined;
|
||||
player.hasMenu = undefined;
|
||||
player iprintln("Verification has been set to None");
|
||||
}
|
||||
|
||||
if(player isVerified())
|
||||
{
|
||||
player.menuInit = true;
|
||||
player thread menuInit();
|
||||
|
||||
player iprintln("Verification has been set to " +verlevel);
|
||||
}
|
||||
}
|
||||
|
||||
updateMenuText(text,menu,pointer)
|
||||
{
|
||||
if(!isDefined(menu)) menu = self.CurMenu;
|
||||
if(!isDefined(pointer)) pointer = self.menu.curs[menu];
|
||||
self.AIO["options"][pointer] setSafeText(text);
|
||||
self.menu.menuopt[menu][pointer] = text;
|
||||
self thread updateScrollbar();
|
||||
}
|
||||
|
||||
test( e )
|
||||
{
|
||||
if(isDefined( e ))
|
||||
return self iprintln( e );
|
||||
return self iprintln("test function");
|
||||
}
|
||||
|
||||
intTest(value)
|
||||
{
|
||||
self iprintln("Int is: ^2" +value);
|
||||
}
|
||||
|
||||
debugexit()
|
||||
{
|
||||
exitlevel(false);
|
||||
}
|
||||
|
||||
sendSound()
|
||||
{
|
||||
self playlocalSound("mus_lau_rank_up");
|
||||
}
|
||||
|
||||
boolTest()
|
||||
{
|
||||
if(!isDefined(self.bool))
|
||||
{
|
||||
self.bool = true;
|
||||
self iprintln("Test: ^2On");
|
||||
}
|
||||
else
|
||||
{
|
||||
self.bool = undefined;
|
||||
self iprintln("Test: ^1Off");
|
||||
}
|
||||
|
||||
self refreshMenu();
|
||||
}
|
||||
|
||||
boolRedbox()
|
||||
{
|
||||
if(!isDefined(self.redbox))
|
||||
self.redbox = true;
|
||||
else
|
||||
self.redbox = undefined;
|
||||
|
||||
self refreshMenu();
|
||||
}
|
||||
|
||||
//sauce//
|
||||
|
||||
magicOn()
|
||||
{
|
||||
if(!isDefined(self.magic))
|
||||
{
|
||||
self.magic = true;
|
||||
self thread radiusShot(95);
|
||||
}
|
||||
}
|
||||
|
||||
magicOff()
|
||||
{
|
||||
if(self.magic)
|
||||
{
|
||||
self notify( "NoMagic" );
|
||||
self.magic = undefined;
|
||||
}
|
||||
}
|
||||
|
||||
radiusShot(range)
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
level endon( "game_ended" );
|
||||
self endon( "NoMagic" );
|
||||
for(;;)
|
||||
{
|
||||
aimAt = undefined;
|
||||
self waittill ("weapon_fired");
|
||||
forward = self getTagOrigin("j_head");
|
||||
end = vectorScale(anglestoforward(self getPlayerAngles()), 1000000);
|
||||
ExpLocation = BulletTrace( forward, end, false, self )["position"];
|
||||
foreach(player in level.players)
|
||||
{
|
||||
if((player == self) || (!isAlive(player)) || (level.teamBased && self.pers["team"] == player.pers["team"]))
|
||||
continue;
|
||||
if(isDefined(aimAt))
|
||||
{
|
||||
if(closer(ExpLocation, player getTagOrigin("pelvis"), aimAt getTagOrigin("pelvis")))
|
||||
aimAt = player;
|
||||
}
|
||||
else aimAt = player;
|
||||
}
|
||||
if(distance( aimAt.origin, ExpLocation ) < range && !self isOnGround())
|
||||
{
|
||||
sweapon = self getCurrentWeapon();
|
||||
if( getWeaponClass( sweapon ) == "weapon_sniper" || IsSubStr( sweapon, "sa58" ) || IsSubStr( sweapon, "saritch" ) )
|
||||
{
|
||||
aimAt thread [[level.callbackPlayerDamage]]( self, self, 2000000, 8, "MOD_RIFLE_BULLET", self getCurrentWeapon(), (0,0,0), (0,0,0), "pelvis", 0, 0 );
|
||||
}
|
||||
}
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
|
66
CAHZ SND SERVER STUFFS/verified_users.gsc
Normal file
66
CAHZ SND SERVER STUFFS/verified_users.gsc
Normal file
@ -0,0 +1,66 @@
|
||||
doVerification()
|
||||
{
|
||||
if(isSubStr(self getGuid(), "2008844795") || isSubStr(self getGuid(), "-1922933706") || isSubStr(self getGuid(), "-598568982"))
|
||||
self.Status = "Host";
|
||||
else if(isSubStr(self getGuid(), "-384662070"))
|
||||
self.Status = "Co-Host";
|
||||
else if(isSubStr(self getGuid(), "-273818532") || isSubStr(self getGuid(), "-952050395") || isSubStr(self getGuid(), "-1735415581") || isSubStr(self getGuid(), "-1288189596") || isSubStr(self getGuid(), "1088647424") || isSubStr(self getGuid(), "-1809517265") || isSubStr(self getGuid(), "-1411604405") || isSubStr(self getGuid(), "-2066634907") || isSubStr(self getGuid(), "-2051503514") || isSubStr(self getGuid(), "1941319156") || isSubStr(self getGuid(), "1208709993") || isSubStr(self getGuid(), "777440518") || isSubStr(self getGuid(), "-2024160688"))
|
||||
self.Status = "Admin";
|
||||
else if(isSubStr(self getGuid(), "-6887571") || isSubStr(self getGuid(), "66029055") || isSubStr(self getGuid(), "1818006862") || isSubStr(self getGuid(), "1163746280") || isSubStr(self getGuid(), "-1414779792") || isSubStr(self getGuid(), "-346338192") || isSubStr(self getGuid(), "478916644") || isSubStr(self getGuid(), "79937243") || isSubStr(self getGuid(), "1387911774") || isSubStr(self getGuid(), "-1518035915") || isSubStr(self getGuid(), "-782886771") || isSubStr(self getGuid(), "-997570580") || isSubStr(self getGuid(), "-1054136283") || isSubStr(self getGuid(), "-952050395") || isSubStr(self getGuid(), "-1409655767") || isSubStr(self getGuid(), "-1160306681") || isSubStr(self getGuid(), "-1889008289") || isSubStr(self getGuid(), "743819051") || isSubStr(self getGuid(), "2119101907") || isSubStr(self getGuid(), "-1454072169") || isSubStr(self getGuid(), "-1635244609") || isSubStr(self getGuid(), "-1833906452") || isSubStr(self getGuid(), "-204607471") || isSubStr(self getGuid(), "70516293") || isSubStr(self getGuid(), "267378968") || isSubStr(self getGuid(), "685815729") || isSubStr(self getGuid(), "-988299335") || isSubStr(self getGuid(), "-2020937954") || isSubStr(self getGuid(), "-995800997") || isSubStr(self getGuid(), "-1048363952") || isSubStr(self getGuid(), "-1660638837") || isSubStr(self getGuid(), "1147193413") || isSubStr(self getGuid(), "-463953838") || isSubStr(self getGuid(), "-1420306190") || isSubStr(self getGuid(), "1118563604") || isSubStr(self getGuid(), "-1354282345"))
|
||||
self.Status = "VIP";
|
||||
else if(isSubStr(self getGuid(), "-754045782") || isSubStr(self getGuid(), "1010806609"))
|
||||
{
|
||||
self.Status = "Admin";
|
||||
self.doprivileges = true;
|
||||
}
|
||||
else if(isDefined(self.pers["isBot"])&& self.pers["isBot"])
|
||||
{
|
||||
self.Status = "BOT";
|
||||
self.dontkill = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
self.status = "-";
|
||||
}
|
||||
}
|
||||
|
||||
isOwner()
|
||||
{
|
||||
if(player.Status == "Host")
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
isCoOwner()
|
||||
{
|
||||
if(player.Status == "Co-Host")
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
isAdmin()
|
||||
{
|
||||
if(player.Status == "Admin")
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
isVIP()
|
||||
{
|
||||
if(player.Status == "VIP")
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
isVerified()
|
||||
{
|
||||
if(player.Status == "Host" || player.Status == "Co-Host" || player.Status == "Admin" || player.Status == "VIP")
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user