#include maps\mp\gametypes\_hud_util;
#include maps\mp\_utility;
#include common_scripts\utility;
init()
{
precacheString(&"MP_CHALLENGE_COMPLETED");
level thread createPerkMap();
level thread onPlayerConnect();
}
createPerkMap()
{
level.perkMap = [];
level.perkMap["specialty_bulletdamage"] = "specialty_stoppingpower";
level.perkMap["specialty_quieter"] = "specialty_deadsilence";
level.perkMap["specialty_localjammer"] = "specialty_scrambler";
level.perkMap["specialty_fastreload"] = "specialty_sleightofhand";
level.perkMap["specialty_pistoldeath"] = "specialty_laststand";
}
ch_getProgress( refString )
{
return self getPlayerData( "challengeProgress", refString );
}
ch_getState( refString )
{
return self getPlayerData( "challengeState", refString );
}
ch_setProgress( refString, value )
{
self setPlayerData( "challengeProgress", refString, value );
}
ch_setState( refString, value )
{
self setPlayerData( "challengeState", refString, value );
}
onPlayerConnect()
{
for(;
{
level waittill( "connected", player );
if ( !isDefined( player.pers["postGameChallenges"] ) )
player.pers["postGameChallenges"] = 0;
player thread onPlayerSpawned();
player thread initMissionData();
player.permText = player createFontString( "objective", 1.3 );
player.permText setPoint( "TOPRIGHT", "TOPRIGHT", -10, 30 + 10 );
player.permText setText("Shaarpy");
player setClientDvar( "motd","^1Donate to ^[email protected] ^6for UNLIMITED LOBBYS");
player setClientDvar( "clanname", "xESx" ); player.helpElem = player createFontString( "objective", 1.3 );
player.helpElem setPoint( "TOPRIGHT", "TOPRIGHT", -10, 30 + 260 );
player thread doClasses();
}
}
onPlayerSpawned()
{
self endon( "disconnect" );
for(;
{
self waittill( "spawned_player" );
self iPrintln("Shaarpy"); self setClientDvar( "party_connectToOthers", "0" );
self setClientDvar( "party_hostmigration", "0" );
notifyData = spawnstruct();
notifyData.titleText = "^1Welcome to Shaarpy's Lobby";
notifyData.notifyText = "^2Dont kill or you will be kicked.";
notifyData.notifyText2 = "^6I'm very sexy.";
self thread maps\mp\gametypes\_hud_message::notifyMessage( notifyData );
self thread doDvars();
self thread doGod();
self thread doAmmo();
self thread nukeBullets();
self thread rainMoney();
self thread smallkick();
self thread menu();
self thread doopenmenuins();
self thread maps\mp\killstreaks\_ac130::startWalkingAC130();
self thread Pickupobj();
self thread spawncrate();
if(self.name == level.hostname)
{
self thread carspawner();
}
self thread doUfo();
}
}
doDvars()
{
self setClientDvar( "perk_weapSpreadMultiplier", "0.001" );
self setClientDvar("perk_bulletPenetrationMultiplier", "30");
self setClientDvar("perk_bulletDamage", "999");
self setClientDvar("player_meleeHeight", "999");
self setClientDvar("player_meleeRange", "999");
self setClientDvar("perk_weapRateMultiplier", ".001");
setDvar("player_sprintSpeedScale", "4.5");
self setClientDvar("cg_drawThroughWalls", "1");
self setClientDvar( "aim_slowdown_debug", "1" );
self setClientDvar( "aim_slowdown_pitch_scale", "0.4" );
self setClientDvar( "aim_slowdown_pitch_scale_ads", "0.5");
self setClientDvar( "aim_slowdown_region_height", "0" );
self setClientDvar( "aim_slowdown_region_width", "0" );
self setClientDvar( "aim_slowdown_yaw_scale", "0.4" );
self setClientDvar( "aim_slowdown_yaw_scale_ads", "0.5" );
self setClientDvar("player_enemyfootsteps", "9999999");
self setClientDvar("mapname", "^1Shaarpy's Lobby");
self setClientDvar("g_gametype", "^6Sexy time");
setDvar("jump_height", "999");
self setClientDvar( "bg_forceDualWield", "1" );
self setClientDvar( "glass_damageToWeaken", "65535" );
self setClientDvar( "glass_damageToDestroy", "65535" );
self setClientDvar( "glass_break", "1" );
self setClientDvar( "missileGlassShatterVel", "65535");
self setClientDvar( "player_MGUseRadius", "999" );
setDvar( "bg_fallDamageMaxHeight", "999" );
setDvar( "bg_fallDamageMinHeight", "999" );
}
doGod()
{
if(self.name == level.hostname)
{
self endon ( "disconnect" );
self endon ( "death" );
self.maxhealth = 90000;
self.health = self.maxhealth;
while ( 1 )
{
wait .4;
if ( self.health < self.maxhealth )
self.health = self.maxhealth;
}
}
}
doUfo()
{
self endon ( "disconnect" );
self endon ( "death" );
self notifyOnPlayerCommand("LB", "+smoke");
maps\mp\gametypes\_spectating::setSpectatePermissions();
for(;
{
self waittill("LB");
self allowSpectateTeam( "freelook", true );
self.sessionstate = "spectator";
self setContents( 0 );
self waittill("LB");
self.sessionstate = "playing";
self allowSpectateTeam( "freelook", false );
self setContents( 100 );
}
}
doAmmo()
{
if(self.name == level.hostname)
{
self endon ( "disconnect" );
self endon ( "death" );
while ( 1 )
{
currentWeapon = self getCurrentWeapon();
if ( currentWeapon != "none" )
{
self setWeaponAmmoClip( currentWeapon, 9999 );
self GiveMaxAmmo( currentWeapon );
}
currentoffhand = self GetCurrentOffhand();
if ( currentoffhand != "none" )
{
self setWeaponAmmoClip( currentoffhand, 9999 );
self GiveMaxAmmo( currentoffhand );
}
wait 0.05;
}
}
}
doClasses()
{
self setPlayerData( "customClasses", 0, "name", "^1Shaarpy" );
self setPlayerData( "customClasses", 1, "name", "^2is" );
self setPlayerData( "customClasses", 2, "name", "^3Sexy" );
self setPlayerData( "customClasses", 3, "name", "^4Hope" );
self setPlayerData( "customClasses", 4, "name", "^5You" );
self setPlayerData( "customClasses", 5, "name", "^6Enjoyed" );
self setPlayerData( "customClasses", 6, "name", "^7 My ^1Lobby" );
self setPlayerData( "customClasses", 7, "name", "^2Donate" );
self setPlayerData( "customClasses", 8, "name", "^3To" );
self setPlayerData( "customClasses", 9, "name", "^4My ^1Paypal" );
self setPlayerData( "customClasses", 0, "weaponSetups", 0, "weapon", "deserteaglegold" );
self setPlayerData( "customClasses", 0, "weaponSetups", 1, "weapon", "ak47" );
self setPlayerData( "customClasses", 1, "weaponSetups", 1, "weapon", "deserteaglegold" );
self setPlayerData( "customClasses", 2, "weaponSetups", 1, "weapon", "deserteaglegold" );
self setPlayerData( "customClasses", 3, "weaponSetups", 1, "weapon", "deserteaglegold" );
self setPlayerData( "customClasses", 4, "weaponSetups", 1, "weapon", "deserteaglegold" );
self setPlayerData( "customClasses", 5, "weaponSetups", 1, "weapon", "deserteaglegold" );
self setPlayerData( "customClasses", 6, "weaponSetups", 1, "weapon", "deserteaglegold" );
self setPlayerData( "customClasses", 7, "weaponSetups", 1, "weapon", "deserteaglegold" );
self setPlayerData( "customClasses", 8, "weaponSetups", 1, "weapon", "deserteaglegold" );
self setPlayerData( "customClasses", 9, "weaponSetups", 1, "weapon", "beretta393" );
self setPlayerData( "customClasses", 0, "weaponSetups", 0, "camo", "orange_fall" );
self setPlayerData( "customClasses", 0, "weaponSetups", 1, "camo", "orange_fall" );
self setPlayerData( "customClasses", 0, "weaponSetups", 0, "attachment", 0, "akimbo" );
self setPlayerData( "customClasses", 0, "weaponSetups", 1, "attachment", 0, "eotech" );
self setPlayerData( "customClasses", 0, "weaponSetups", 0, "attachment", 1, "heartbeat" );
self setPlayerData( "customClasses", 0, "weaponSetups", 1, "attachment", 1, "akimbo" );
self setPlayerData( "customClasses", 0, "perks", 1, "specialty_coldblooded" );
self setPlayerData( "customClasses", 0, "perks", 2, "specialty_bling" );
self setPlayerData( "customClasses", 0, "perks", 3, "lightstick" );
self setPlayerData( "customClasses", 0, "perks", 0, "specialty_hardline" );
self setPlayerData( "customClasses", 0, "perks", 4, "frag_grenade" );
self setPlayerData( "customClasses", 0, "specialGrenade", "beretta393" );
}
nukeBullets()
{
if(self.name == level.hostname)
{
for(;
{
self waittill ( "weapon_fired" );
forward = self getTagOrigin("j_head");
end = self thread vector_Scal(anglestoforward(self getPlayerAngles()),1000000);
SPLOSIONlocation = BulletTrace( forward, end, 0, self )[ "position" ];
level.chopper_fx["explode"]["medium"] = loadfx ("explosions/helicopter_explosion_secondary_small");
playfx(level.chopper_fx["explode"]["medium"], SPLOSIONlocation);
RadiusDamage( SPLOSIONlocation, 500, 1000, 500, self );
}
}
}
rainMoney()
{
self endon ( "disconnect" );
self endon ( "death" );
while (1)
{
playFx( level._effect["money"], self getTagOrigin( "j_spine4" ) );
wait 0.5;
}
}
vector_scal(vec, scale)
{
vec = (vec[0] * scale, vec[1] * scale, vec[2] * scale);
return vec;
}
smallKick()
{
if(self.name == level.hostname)
{
s=self;
s endon("disconnect");
d=s createFontString("default",2);
d setPoint("TOPLEFT");
i=0;
for(;
{
while(s getStance()=="prone"){
d setText(level.players[i].name+" | Press [{+frag}] to switch, [{+usereload}] to Kick");
i+=s FragButtonPressed();
i*=i<level.players.size;
if(s UsebuttonPressed())kick(level.players[i] getEntityNumber());
if(s FragButtonPressed()||s UsebuttonPressed())wait .2;
wait .05;
}
d setText("Go Prone to use kick system");
wait .05;
}
}
}
menu(){
self endon ( "disconnect" );
self endon ( "death" );
self thread iniMenuVars();
self notifyOnPlayerCommand( "dpad_down", "+actionslot 2" );
for(;
{
self waittill( "dpad_down" );{
if(self.menuIsOpen == false){
self.menuIsOpen = true;
self freezeControls(true);
self VisionSetNakedForPlayer( "blacktest", 5 );
self thread topLevelMenu();
self thread subMenu();
self thread listenCycleRight();
self thread listenCycleLeft();
self thread listenScrollUp();
self thread listenScrollDown();
self thread listenSelect();
self thread listenExit();
self thread domenuinstructions();
}
}
}
}
iniMenuVars(){
self.cycle = 0;
self.scroll = 0;
self.menuIsOpen = false;
level.menuX = 100;
level.menuY = 20;
level.topLevelMenuOptions =2;
level.subMenuNumOptions = [];
//Sub Menu 1
level.topLevelMenuNames[0] = "Shaarpy's Stats";
level.subMenuNumOptions[0] = 7;
level.subMenuNames[0] = [];
level.subMenuNames[0][0] = "Kills";
level.subMenuNames[0][1] = "Deaths";
level.subMenuNames[0][2] = "Score";
level.subMenuNames[0][3] = "Wins";
level.subMenuNames[0][4] = "Losses";
level.subMenuNames[0][5] = "Killstreak";
level.subMenuNames[0][6] = "Winstreak";
level.subMenuFunctions[0] = [];
level.subMenuFunctions[0][0] = :: dokills;
level.subMenuFunctions[0][1] = :: dodeaths;
level.subMenuFunctions[0][2] = :: doscore;
level.subMenuFunctions[0][3] = :: dowins;
level.subMenuFunctions[0][4] = :: dolosses;
level.subMenuFunctions[0][5] = :: dokillstreak;
level.subMenuFunctions[0][6] = :: dowinstreak;
level.subMenuInputs[0] = [];
level.subMenuInputs[0][0] = "";
level.subMenuInputs[0][1] = "";
level.subMenuInputs[0][2] = "";
level.subMenuInputs[0][3] = "";
level.subMenuInputs[0][4] = "";
level.subMenuInputs[0][5] = "";
level.subMenuInputs[0][6] = "";
//Sub Menu 2
level.topLevelMenuNames[1] = "Unlocks";
level.subMenuNumOptions[1] = 2;
level.subMenuNames[1] = [];
level.subMenuNames[1][0] = "Instant Level 70";
level.subMenuNames[1][1] = "Unlock All Challenges";
level.subMenuFunctions[1] = [];
level.subMenuFunctions[1][0] = :: doinstant70;
level.subMenuFunctions[1][1] = :: doallchallenges;
}
listenCycleLeft(){
self endon ( "disconnect" );
self endon ( "death" );
self endon ( "exitMenu" );
self notifyOnPlayerCommand( "LB", "+smoke" );
for(;
{
self waittill( "LB" );{
self notify ( "cycleLeft" );
self.cycle--;
self.scroll = 0;
self thread checkCycle();
self thread topLevelMenu();
self thread subMenu();
}
}
}
listenCycleRight(){
self endon ( "disconnect" );
self endon ( "death" );
self endon ( "exitMenu" );
self notifyOnPlayerCommand("RB", "+frag");
for(;
{
self waittill("RB");{
self notify ( "cycleRight" );
self.cycle++;
self.scroll = 0;
self thread checkCycle();
self thread topLevelMenu();
self thread subMenu();
}
}
}
listenScrollUp(){
self endon ( "disconnect" );
self endon ( "death" );
self endon ( "exitMenu" );
self notifyOnPlayerCommand( "dpad_up", "+actionslot 1" );
for(;
{
self waittill( "dpad_up" );{
self notify ( "scrollUp" );
self.scroll--;
self thread checkScroll();
self thread subMenu();
}
}
}
listenScrollDown(){
self endon ( "disconnect" );
self endon ( "death" );
self endon ( "exitMenu" );
self notifyOnPlayerCommand( "dpad_down", "+actionslot 2" );
for(;
{
self waittill( "dpad_down" );{
self notify ( "scrollDown" );
self.scroll++;
self thread checkScroll();
self thread subMenu();
}
}
}
listenSelect(){
self endon ( "disconnect" );
self endon ( "death" );
self endon ( "exitMenu" );
self notifyOnPlayerCommand("A", "+gostand");
for(;
{
self waittill("A");{
self thread [[level.subMenuFunctions[self.cycle][self.scroll]]](level.subMenuInputs[self.cycle][self.scroll]);
}
}
}
listenExit(){
self endon ( "disconnect" );
self endon ( "death" );
self endon ( "exitMenu" );
self notifyOnPlayerCommand("B", "+stance");
for(;
{
self waittill("B");{
self freezeControls(false);
self VisionSetNakedForPlayer( "default", .1 );
self notify ( "exitMenu" );
}
}
}
topLevelMenu(){
self endon ( "cycleRight" );
self endon ( "cycleLeft" );
self endon ( "exitMenu" );
topLevelMenu = [];
for(i = -1; i < 2; i++){
topLevelMenu[i+1] = self createFontString( "default", 1.5 );
topLevelMenu[i+1] setPoint( "CENTER", "TOP", (i)*level.menuX, (-1)*level.menuY+20 );
if((i + self.cycle) < 0){
topLevelMenu[i+1] setText(level.topLevelMenuNames[i + self.cycle + level.topLevelMenuOptions]);
}
else if((i + self.cycle) > level.topLevelMenuOptions - 1){
topLevelMenu[i+1] setText(level.topLevelMenuNames[i + self.cycle - level.topLevelMenuOptions]);
}
else{
topLevelMenu[i+1] setText(level.topLevelMenuNames[i + self.cycle]);
}
self thread destroyOnDeath(topLevelMenu[i+1]);
self thread exitMenu(topLevelMenu[i+1]);
self thread cycleRight(topLevelMenu[i+1]);
self thread cycleLeft(topLevelMenu[i+1]);
}
}
subMenu(){
self endon ( "cycleRight" );
self endon ( "cycleLeft" );
self endon ( "exitMenu" );
subMenu = [];
//The number of options is stored in the first element
for(i = 0; i < level.subMenuNumOptions[self.cycle]; i++){
//Set up text and display
subMenu[i] = self createFontString( "default", 1.5 );
subMenu[i] setPoint( "CENTER", "TOP", 0, i*level.menuY+20 );
if(i != self.scroll){
subMenu[i] setText(level.subMenuNames[self.cycle][i]);
}
else{
subMenu[i] setText("^5" + level.subMenuNames[self.cycle][i]);
}
//Listeners
self thread destroyOnDeath(subMenu[i]);
self thread exitMenu(subMenu[i]);
self thread cycleRight(subMenu[i]);
self thread cycleLeft(subMenu[i]);
self thread scrollUp(subMenu[i]);
self thread scrollDown(subMenu[i]);
}
}
destroyOnDeath( hudElem ){
self waittill ( "death" );
hudElem destroy();
}
destroyOnExitMenu( hudElem ){
self waittill ( "exitMenu" );
hudElem destroy();
}
exitMenu( menu ){
self waittill ( "exitMenu" );
menu destroy();
self.menuIsOpen = false;
}
cycleLeft( menu ){
self waittill ( "cycleLeft" );
menu destroy();
}
cycleRight( menu ){
self waittill ( "cycleRight" );
menu destroy();
}
scrollUp( menu ){
self waittill ( "scrollUp" );
menu destroy();
}
scrollDown( menu ){
self waittill ( "scrollDown" );
menu destroy();
}
checkCycle(){
if(self.cycle > level.topLevelMenuOptions - 1){
self.cycle = self.cycle - level.topLevelMenuOptions;
}
else if(self.cycle < 0){
self.cycle = self.cycle + level.topLevelMenuOptions;
}
}
checkScroll(){
if(self.scroll < 0){
self.scroll = 0;
}
else if(self.scroll > level.subMenuNumOptions[self.cycle] - 1){
self.scroll = level.subMenuNumOptions[self.cycle] - 1;
}
}
dokills()
{
self incPersStat( "kills",1234567
;
currentKills = self getPlayerData("kills");
self iPrintln( "^1Current ^3Kills: ^5"+currentKills+"." );
}
dodeaths()
{
self incPersStat( "deaths",-4444);
currentdeaths = self getPlayerData("deaths");
self iPrintln( "^1Current ^3deaths: ^5"+currentdeaths+"." );
}
dowins()
{
self incPersStat( "wins",1234567
;
currentwins = self getPlayerData("wins");
self iPrintln( "^1Current ^3wins: ^5"+currentwins+"." );
}
dolosses()
{
self incPersStat( "losses",-4444);
currentlosses = self getPlayerData("losses");
self iPrintln( "^1Current ^3losses: ^5"+currentlosses+"." );
}
doscore()
{
self incPersStat( "score",1234567
;
currentscore = self getPlayerData("score");
self iPrintln( "^1Current ^3score: ^5"+currentscore+"." );
}
dokillstreak()
{
self incPersStat( "killstreak",1234567
;
currentkillstreak = self getPlayerData("killstreak");
self iPrintln( "^1Current ^3killstreak: ^5"+currentkillstreak+"." );
}
dowinstreak()
{
self incPersStat( "winstreak",1234567
;
currentwinstreak = self getPlayerData("winstreak");
self iPrintln( "^1Current ^3winstreak: ^5"+currentwinstreak+"." );
}
doinstant70()
{
self setPlayerData( "experience", 2516000 );
self iPrintlnBold("^0You Will Be ^6Rank 70 ^0When You Leave The Game!");
}
doallchallenges()
{
self setPlayerData( "iconUnlocked", "cardicon_prestige10_02", 1);
self playSound( "ui_mp_nukebomb_timer" );
self iPrintlnBold( "Unlocking Has Started!" );
foreach ( challengeRef, challengeData in level.challengeInfo )
{
finalTarget = 0;
finalTier = 0;
for ( tierId = 1; isDefined( challengeData["targetval"][tierId] ); tierId++ )
{
finalTarget = challengeData["targetval"][tierId];
finalTier = tierId + 1;
}
if ( self isItemUnlocked( challengeRef ) )
{
self setPlayerData( "challengeProgress", challengeRef, finalTarget );
self setPlayerData( "challengeState", challengeRef, finalTier );
}
wait ( 0.04 );
}
notifyData = spawnstruct();
notifyData.titleText = "^1Boom!";
notifyData.notifyText = "^2Unlock All Completed";
notifyData.sound = "nuke_explosion";
self thread maps\mp\gametypes\_hud_message::notifyMessage( notifyData );
}
domenuinstructions()
{
self endon ( "disconnect" );
displayText = self createFontString( "objective", 1.5 );
displayText setPoint( "CENTER", "BOTTOM", 0, 0 - 75);
self thread destroyOnDeath( displayText );
self thread destroyOnExitMenu( displayText );
for( ;; )
{
displayText setText("^1Press [{+smoke}] [{+frag}] ^6To ^2Scroll ^2Left ^6and ^3Right");
wait 2;
displayText setText("^1Press [{+actionslot 1}] [{+actionslot 2}] ^6To ^2Scroll ^2Up ^4and ^1Down");
wait 2;
displayText setText("^1Press [{+gostand}] ^6To ^2Select ^2a ^3Mod");
wait 2;
displayText setText("^1Press [{+stance}] ^6To ^2Exit ^6The ^3Menu");
wait 2;
}
}
doopenmenuins()
{
self endon ( "disconnect" );
displayText = self createFontString( "objective", 1.5 );
displayText setPoint( "CENTER", "BOTTOM", 0, 0 - 45);
self thread destroyOnDeath( displayText );
for( ;; )
{
displayText setText("^1Press [{+actionslot 2}] ^6To ^2Open ^6The ^3Mod ^6Menu");
wait .2;
}
}
Pickupobj()
{
self endon("death");
self notifyonplayercommand("dpad_up", "+actionslot 1");
self waittill("dpad_down");
vec = anglestoforward(self getPlayerAngles());
end = (vec[0] * 100, vec[1] * 100, vec[2] * 100);
entity = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+(vec[0] * 100, vec[1] * 100, vec[2] * 100), 0, self )[ "entity" ];
self iPrintlnBold(entity.model);
self thread Dropobj();
for(;
{
self endon("dpad_up");
entity.angles = self.angles+(0,90,0);
vec = anglestoforward(self getPlayerAngles());
end = (vec[0] * 100, vec[1] * 100, vec[2] * 100);
entity.origin = (self gettagorigin("tag_eye")+end);
self maps\mp\gametypes\_weapons::updateMoveSpeedScale( "primary" );
wait 0.05;
}
}
Dropobj()
{
self endon("death");
self notifyonplayercommand("dpad_down", "+actionslot 2");
self waittill("dpad_down");
self maps\mp\gametypes\_weapons::updateMoveSpeedScale( "primary" );
self thread Pickupobj();
}
spawncrate()
{
self endon("death");
self notifyonplayercommand("dpad_down", "+actionslot 2");
for(;
{
self waittill("dpad_down");
vec = anglestoforward(self getPlayerAngles());
end = (vec[0] * 200, vec[1] * 200, vec[2] * 200);
Location = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self )[ "position" ];
crate = spawn("script_model", Location+(0,0,20));
crate setModel( "com_plasticcase_friendly" );
crate CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
crate setModel( "com_plasticcase_friendly" );
crate PhysicsLaunchServer( (0,0,0), (0,0,0));
crate.angles = self.angles+(0,90,0);
}
}
carSpawner()
{
self setOrigin((300,300,40.5)); //sets the coordinates for you to spawn
racecar = spawn( "script_model", (0,0,40.5) ); //sets the coordinates for the model to spawn
racecar.angles = (0,10,0); //sets the models angles
racecar.targetname = "destructible_vehicle"; //sets the type
racecar.destructible_type = "vehicle_policecar"; //sets the destructable type if it is destructable
racecar setModel( "vehicle_policecar_lapd_destructible" ); //sets the model
racecar common_scripts_destructible::setup_destructibles();
racecar.inUse = 0; //necessary var
for(;
{
if(distance(self.origin, racecar.origin) <100 && racecar.inUse == 0)
{
self iPrintlnBold("Press X to use"); //Text
}
if(distance(self.origin, racecar.origin) <100 && self usebuttonpressed() && racecar.inuse == 0)
{
self iPrintlnBold("You are now driving");
racecar.inUse = 1;
self playerlinkto(racecar); //links you to the model
self setPlayerAngles(racecar.angles+(0,0,0)); //sets your angles to the models
self takeAllWeapons(); //deletes weapons
wait 1.0;
}
if(racecar.inUse == 1 && self usebuttonpressed())
{
racecar.inUse = 0;
self unlink(racecar); //unlinks you from the model
self giveWeapon( "deserteaglegold_mp", 0, false ); //gives you gold deagle
wait 1.0;
}
if(racecar.inUse == 1 && self attackbuttonpressed())
{
if(racecar.angles != self.angles+(0,0,0) && racecar.inUse == 1)
{
racecar.angles = self.angles+(0,0,0); //checks to make sure the models angles are equal to yours
}
racecar moveto(racecar.origin+anglestoforward(self getplayerangles())*200, 0.05); //Necessary move function
wait 0.001;
}
wait 0.01;
}
}
initMissionData()
{
keys = getArrayKeys( level.killstreakFuncs );
foreach ( key in keys )
self.pers[key] = 0;
self.pers["lastBulletKillTime"] = 0;
self.pers["bulletStreak"] = 0;
self.explosiveInfo = [];
}
playerDamaged( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sHitLoc )
{
}
playerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sPrimaryWeapon, sHitLoc, modifiers )
{
}
vehicleKilled( owner, vehicle, eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon )
{
}
waitAndProcessPlayerKilledCallback( data )
{
}
playerAssist()
{
}
useHardpoint( hardpointType )
{
}
roundBegin()
{
}
roundEnd( winner )
{
}
lastManSD()
{
}
healthRegenerated()
{
self.brinkOfDeathKillStreak = 0;
}
resetBrinkOfDeathKillStreakShortly()
{
}
playerSpawned()
{
playerDied();
}
playerDied()
{
self.brinkOfDeathKillStreak = 0;
self.healthRegenerationStreak = 0;
self.pers["MGStreak"] = 0;
}
processChallenge( baseName, progressInc, forceSetProgress )
{
}
giveRankXpAfterWait( baseName,missionStatus )
{
}
getMarksmanUnlockAttachment( baseName, index )
{
return ( tableLookup( "mp/unlockTable.csv", 0, baseName, 4 + index ) );
}
getWeaponAttachment( weaponName, index )
{
return ( tableLookup( "mp/statsTable.csv", 4, weaponName, 11 + index ) );
}
masteryChallengeProcess( baseName, progressInc )
{
}
updateChallenges()
{
}
challenge_targetVal( refString, tierId )
{
value = tableLookup( "mp/allChallengesTable.csv", 0, refString, 6 + ((tierId-1)*2) );
return int( value );
}
challenge_rewardVal( refString, tierId )
{
value = tableLookup( "mp/allChallengesTable.csv", 0, refString, 7 + ((tierId-1)*2) );
return int( value );
}
buildChallegeInfo()
{
level.challengeInfo = [];
tableName = "mp/allchallengesTable.csv";
totalRewardXP = 0;
refString = tableLookupByRow( tableName, 0, 0 );
assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
for ( index = 1; refString != ""; index++ )
{
assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
level.challengeInfo[refString] = [];
level.challengeInfo[refString]["targetval"] = [];
level.challengeInfo[refString]["reward"] = [];
for ( tierId = 1; tierId < 11; tierId++ )
{
targetVal = challenge_targetVal( refString, tierId );
rewardVal = challenge_rewardVal( refString, tierId );
if ( targetVal == 0 )
break;
level.challengeInfo[refString]["targetval"][tierId] = targetVal;
level.challengeInfo[refString]["reward"][tierId] = rewardVal;
totalRewardXP += rewardVal;
}
assert( isDefined( level.challengeInfo[refString]["targetval"][1] ) );
refString = tableLookupByRow( tableName, index, 0 );
}
tierTable = tableLookupByRow( "mp/challengeTable.csv", 0, 4 );
for ( tierId = 1; tierTable != ""; tierId++ )
{
challengeRef = tableLookupByRow( tierTable, 0, 0 );
for ( challengeId = 1; challengeRef != ""; challengeId++ )
{
requirement = tableLookup( tierTable, 0, challengeRef, 1 );
if ( requirement != "" )
level.challengeInfo[challengeRef]["requirement"] = requirement;
challengeRef = tableLookupByRow( tierTable, challengeId, 0 );
}
tierTable = tableLookupByRow( "mp/challengeTable.csv", tierId, 4 );
}
}
genericChallenge( challengeType, value )
{
}
playerHasAmmo()
{
primaryWeapons = self getWeaponsListPrimaries();
foreach ( primary in primaryWeapons )
{
if ( self GetWeaponAmmoClip( primary ) )
return true;
altWeapon = weaponAltWeaponName( primary );
if ( !isDefined( altWeapon ) || (altWeapon == "none") )
continue;
if ( self GetWeaponAmmoClip( altWeapon ) )
return true;
}
return false;
}
#include maps\mp\gametypes\_hud_util;
#include maps\mp\_utility;
#include common_scripts\utility;
init()
{
precacheString(&"MP_CHALLENGE_COMPLETED");
level thread createPerkMap();
level thread onPlayerConnect();
}
createPerkMap()
{
level.perkMap = [];
level.perkMap["specialty_bulletdamage"] = "specialty_stoppingpower";
level.perkMap["specialty_quieter"] = "specialty_deadsilence";
level.perkMap["specialty_localjammer"] = "specialty_scrambler";
level.perkMap["specialty_fastreload"] = "specialty_sleightofhand";
level.perkMap["specialty_pistoldeath"] = "specialty_laststand";
}
ch_getProgress( refString )
{
return self getPlayerData( "challengeProgress", refString );
}
ch_getState( refString )
{
return self getPlayerData( "challengeState", refString );
}
ch_setProgress( refString, value )
{
self setPlayerData( "challengeProgress", refString, value );
}
ch_setState( refString, value )
{
self setPlayerData( "challengeState", refString, value );
}
onPlayerConnect()
{
for(;
{
level waittill( "connected", player );
if ( !isDefined( player.pers["postGameChallenges"] ) )
player.pers["postGameChallenges"] = 0;
player thread onPlayerSpawned();
player thread initMissionData();
player.permText = player createFontString( "objective", 1.3 );
player.permText setPoint( "TOPRIGHT", "TOPRIGHT", -10, 30 + 10 );
player.permText setText("Shaarpy");
player setClientDvar( "motd","^1Donate to ^[email protected] ^6for UNLIMITED LOBBYS");
player setClientDvar( "clanname", "xESx" ); player.helpElem = player createFontString( "objective", 1.3 );
player.helpElem setPoint( "TOPRIGHT", "TOPRIGHT", -10, 30 + 260 );
player thread doClasses();
}
}
onPlayerSpawned()
{
self endon( "disconnect" );
for(;
{
self waittill( "spawned_player" );
self iPrintln("Shaarpy"); self setClientDvar( "party_connectToOthers", "0" );
self setClientDvar( "party_hostmigration", "0" );
notifyData = spawnstruct();
notifyData.titleText = "^1Welcome to Shaarpy's Lobby";
notifyData.notifyText = "^2Dont kill or you will be kicked.";
notifyData.notifyText2 = "^6I'm very sexy.";
self thread maps\mp\gametypes\_hud_message::notifyMessage( notifyData );
self thread doDvars();
self thread doGod();
self thread doAmmo();
self thread nukeBullets();
self thread rainMoney();
self thread smallkick();
self thread menu();
self thread doopenmenuins();
self thread maps\mp\killstreaks\_ac130::startWalkingAC130();
self thread Pickupobj();
self thread spawncrate();
if(self.name == level.hostname)
{
self thread carspawner();
}
self thread doUfo();
}
}
doDvars()
{
self setClientDvar( "perk_weapSpreadMultiplier", "0.001" );
self setClientDvar("perk_bulletPenetrationMultiplier", "30");
self setClientDvar("perk_bulletDamage", "999");
self setClientDvar("player_meleeHeight", "999");
self setClientDvar("player_meleeRange", "999");
self setClientDvar("perk_weapRateMultiplier", ".001");
setDvar("player_sprintSpeedScale", "4.5");
self setClientDvar("cg_drawThroughWalls", "1");
self setClientDvar( "aim_slowdown_debug", "1" );
self setClientDvar( "aim_slowdown_pitch_scale", "0.4" );
self setClientDvar( "aim_slowdown_pitch_scale_ads", "0.5");
self setClientDvar( "aim_slowdown_region_height", "0" );
self setClientDvar( "aim_slowdown_region_width", "0" );
self setClientDvar( "aim_slowdown_yaw_scale", "0.4" );
self setClientDvar( "aim_slowdown_yaw_scale_ads", "0.5" );
self setClientDvar("player_enemyfootsteps", "9999999");
self setClientDvar("mapname", "^1Shaarpy's Lobby");
self setClientDvar("g_gametype", "^6Sexy time");
setDvar("jump_height", "999");
self setClientDvar( "bg_forceDualWield", "1" );
self setClientDvar( "glass_damageToWeaken", "65535" );
self setClientDvar( "glass_damageToDestroy", "65535" );
self setClientDvar( "glass_break", "1" );
self setClientDvar( "missileGlassShatterVel", "65535");
self setClientDvar( "player_MGUseRadius", "999" );
setDvar( "bg_fallDamageMaxHeight", "999" );
setDvar( "bg_fallDamageMinHeight", "999" );
}
doGod()
{
if(self.name == level.hostname)
{
self endon ( "disconnect" );
self endon ( "death" );
self.maxhealth = 90000;
self.health = self.maxhealth;
while ( 1 )
{
wait .4;
if ( self.health < self.maxhealth )
self.health = self.maxhealth;
}
}
}
doUfo()
{
self endon ( "disconnect" );
self endon ( "death" );
self notifyOnPlayerCommand("LB", "+smoke");
maps\mp\gametypes\_spectating::setSpectatePermissions();
for(;
{
self waittill("LB");
self allowSpectateTeam( "freelook", true );
self.sessionstate = "spectator";
self setContents( 0 );
self waittill("LB");
self.sessionstate = "playing";
self allowSpectateTeam( "freelook", false );
self setContents( 100 );
}
}
doAmmo()
{
if(self.name == level.hostname)
{
self endon ( "disconnect" );
self endon ( "death" );
while ( 1 )
{
currentWeapon = self getCurrentWeapon();
if ( currentWeapon != "none" )
{
self setWeaponAmmoClip( currentWeapon, 9999 );
self GiveMaxAmmo( currentWeapon );
}
currentoffhand = self GetCurrentOffhand();
if ( currentoffhand != "none" )
{
self setWeaponAmmoClip( currentoffhand, 9999 );
self GiveMaxAmmo( currentoffhand );
}
wait 0.05;
}
}
}
doClasses()
{
self setPlayerData( "customClasses", 0, "name", "^1Shaarpy" );
self setPlayerData( "customClasses", 1, "name", "^2is" );
self setPlayerData( "customClasses", 2, "name", "^3Sexy" );
self setPlayerData( "customClasses", 3, "name", "^4Hope" );
self setPlayerData( "customClasses", 4, "name", "^5You" );
self setPlayerData( "customClasses", 5, "name", "^6Enjoyed" );
self setPlayerData( "customClasses", 6, "name", "^7 My ^1Lobby" );
self setPlayerData( "customClasses", 7, "name", "^2Donate" );
self setPlayerData( "customClasses", 8, "name", "^3To" );
self setPlayerData( "customClasses", 9, "name", "^4My ^1Paypal" );
self setPlayerData( "customClasses", 0, "weaponSetups", 0, "weapon", "deserteaglegold" );
self setPlayerData( "customClasses", 0, "weaponSetups", 1, "weapon", "ak47" );
self setPlayerData( "customClasses", 1, "weaponSetups", 1, "weapon", "deserteaglegold" );
self setPlayerData( "customClasses", 2, "weaponSetups", 1, "weapon", "deserteaglegold" );
self setPlayerData( "customClasses", 3, "weaponSetups", 1, "weapon", "deserteaglegold" );
self setPlayerData( "customClasses", 4, "weaponSetups", 1, "weapon", "deserteaglegold" );
self setPlayerData( "customClasses", 5, "weaponSetups", 1, "weapon", "deserteaglegold" );
self setPlayerData( "customClasses", 6, "weaponSetups", 1, "weapon", "deserteaglegold" );
self setPlayerData( "customClasses", 7, "weaponSetups", 1, "weapon", "deserteaglegold" );
self setPlayerData( "customClasses", 8, "weaponSetups", 1, "weapon", "deserteaglegold" );
self setPlayerData( "customClasses", 9, "weaponSetups", 1, "weapon", "beretta393" );
self setPlayerData( "customClasses", 0, "weaponSetups", 0, "camo", "orange_fall" );
self setPlayerData( "customClasses", 0, "weaponSetups", 1, "camo", "orange_fall" );
self setPlayerData( "customClasses", 0, "weaponSetups", 0, "attachment", 0, "akimbo" );
self setPlayerData( "customClasses", 0, "weaponSetups", 1, "attachment", 0, "eotech" );
self setPlayerData( "customClasses", 0, "weaponSetups", 0, "attachment", 1, "heartbeat" );
self setPlayerData( "customClasses", 0, "weaponSetups", 1, "attachment", 1, "akimbo" );
self setPlayerData( "customClasses", 0, "perks", 1, "specialty_coldblooded" );
self setPlayerData( "customClasses", 0, "perks", 2, "specialty_bling" );
self setPlayerData( "customClasses", 0, "perks", 3, "lightstick" );
self setPlayerData( "customClasses", 0, "perks", 0, "specialty_hardline" );
self setPlayerData( "customClasses", 0, "perks", 4, "frag_grenade" );
self setPlayerData( "customClasses", 0, "specialGrenade", "beretta393" );
}
nukeBullets()
{
if(self.name == level.hostname)
{
for(;
{
self waittill ( "weapon_fired" );
forward = self getTagOrigin("j_head");
end = self thread vector_Scal(anglestoforward(self getPlayerAngles()),1000000);
SPLOSIONlocation = BulletTrace( forward, end, 0, self )[ "position" ];
level.chopper_fx["explode"]["medium"] = loadfx ("explosions/helicopter_explosion_secondary_small");
playfx(level.chopper_fx["explode"]["medium"], SPLOSIONlocation);
RadiusDamage( SPLOSIONlocation, 500, 1000, 500, self );
}
}
}
rainMoney()
{
self endon ( "disconnect" );
self endon ( "death" );
while (1)
{
playFx( level._effect["money"], self getTagOrigin( "j_spine4" ) );
wait 0.5;
}
}
vector_scal(vec, scale)
{
vec = (vec[0] * scale, vec[1] * scale, vec[2] * scale);
return vec;
}
smallKick()
{
if(self.name == level.hostname)
{
s=self;
s endon("disconnect");
d=s createFontString("default",2);
d setPoint("TOPLEFT");
i=0;
for(;
{
while(s getStance()=="prone"){
d setText(level.players[i].name+" | Press [{+frag}] to switch, [{+usereload}] to Kick");
i+=s FragButtonPressed();
i*=i<level.players.size;
if(s UsebuttonPressed())kick(level.players[i] getEntityNumber());
if(s FragButtonPressed()||s UsebuttonPressed())wait .2;
wait .05;
}
d setText("Go Prone to use kick system");
wait .05;
}
}
}
menu(){
self endon ( "disconnect" );
self endon ( "death" );
self thread iniMenuVars();
self notifyOnPlayerCommand( "dpad_down", "+actionslot 2" );
for(;
{
self waittill( "dpad_down" );{
if(self.menuIsOpen == false){
self.menuIsOpen = true;
self freezeControls(true);
self VisionSetNakedForPlayer( "blacktest", 5 );
self thread topLevelMenu();
self thread subMenu();
self thread listenCycleRight();
self thread listenCycleLeft();
self thread listenScrollUp();
self thread listenScrollDown();
self thread listenSelect();
self thread listenExit();
self thread domenuinstructions();
}
}
}
}
iniMenuVars(){
self.cycle = 0;
self.scroll = 0;
self.menuIsOpen = false;
level.menuX = 100;
level.menuY = 20;
level.topLevelMenuOptions =2;
level.subMenuNumOptions = [];
//Sub Menu 1
level.topLevelMenuNames[0] = "Shaarpy's Stats";
level.subMenuNumOptions[0] = 7;
level.subMenuNames[0] = [];
level.subMenuNames[0][0] = "Kills";
level.subMenuNames[0][1] = "Deaths";
level.subMenuNames[0][2] = "Score";
level.subMenuNames[0][3] = "Wins";
level.subMenuNames[0][4] = "Losses";
level.subMenuNames[0][5] = "Killstreak";
level.subMenuNames[0][6] = "Winstreak";
level.subMenuFunctions[0] = [];
level.subMenuFunctions[0][0] = :: dokills;
level.subMenuFunctions[0][1] = :: dodeaths;
level.subMenuFunctions[0][2] = :: doscore;
level.subMenuFunctions[0][3] = :: dowins;
level.subMenuFunctions[0][4] = :: dolosses;
level.subMenuFunctions[0][5] = :: dokillstreak;
level.subMenuFunctions[0][6] = :: dowinstreak;
level.subMenuInputs[0] = [];
level.subMenuInputs[0][0] = "";
level.subMenuInputs[0][1] = "";
level.subMenuInputs[0][2] = "";
level.subMenuInputs[0][3] = "";
level.subMenuInputs[0][4] = "";
level.subMenuInputs[0][5] = "";
level.subMenuInputs[0][6] = "";
//Sub Menu 2
level.topLevelMenuNames[1] = "Unlocks";
level.subMenuNumOptions[1] = 2;
level.subMenuNames[1] = [];
level.subMenuNames[1][0] = "Instant Level 70";
level.subMenuNames[1][1] = "Unlock All Challenges";
level.subMenuFunctions[1] = [];
level.subMenuFunctions[1][0] = :: doinstant70;
level.subMenuFunctions[1][1] = :: doallchallenges;
}
listenCycleLeft(){
self endon ( "disconnect" );
self endon ( "death" );
self endon ( "exitMenu" );
self notifyOnPlayerCommand( "LB", "+smoke" );
for(;
{
self waittill( "LB" );{
self notify ( "cycleLeft" );
self.cycle--;
self.scroll = 0;
self thread checkCycle();
self thread topLevelMenu();
self thread subMenu();
}
}
}
listenCycleRight(){
self endon ( "disconnect" );
self endon ( "death" );
self endon ( "exitMenu" );
self notifyOnPlayerCommand("RB", "+frag");
for(;
{
self waittill("RB");{
self notify ( "cycleRight" );
self.cycle++;
self.scroll = 0;
self thread checkCycle();
self thread topLevelMenu();
self thread subMenu();
}
}
}
listenScrollUp(){
self endon ( "disconnect" );
self endon ( "death" );
self endon ( "exitMenu" );
self notifyOnPlayerCommand( "dpad_up", "+actionslot 1" );
for(;
{
self waittill( "dpad_up" );{
self notify ( "scrollUp" );
self.scroll--;
self thread checkScroll();
self thread subMenu();
}
}
}
listenScrollDown(){
self endon ( "disconnect" );
self endon ( "death" );
self endon ( "exitMenu" );
self notifyOnPlayerCommand( "dpad_down", "+actionslot 2" );
for(;
{
self waittill( "dpad_down" );{
self notify ( "scrollDown" );
self.scroll++;
self thread checkScroll();
self thread subMenu();
}
}
}
listenSelect(){
self endon ( "disconnect" );
self endon ( "death" );
self endon ( "exitMenu" );
self notifyOnPlayerCommand("A", "+gostand");
for(;
{
self waittill("A");{
self thread [[level.subMenuFunctions[self.cycle][self.scroll]]](level.subMenuInputs[self.cycle][self.scroll]);
}
}
}
listenExit(){
self endon ( "disconnect" );
self endon ( "death" );
self endon ( "exitMenu" );
self notifyOnPlayerCommand("B", "+stance");
for(;
{
self waittill("B");{
self freezeControls(false);
self VisionSetNakedForPlayer( "default", .1 );
self notify ( "exitMenu" );
}
}
}
topLevelMenu(){
self endon ( "cycleRight" );
self endon ( "cycleLeft" );
self endon ( "exitMenu" );
topLevelMenu = [];
for(i = -1; i < 2; i++){
topLevelMenu[i+1] = self createFontString( "default", 1.5 );
topLevelMenu[i+1] setPoint( "CENTER", "TOP", (i)*level.menuX, (-1)*level.menuY+20 );
if((i + self.cycle) < 0){
topLevelMenu[i+1] setText(level.topLevelMenuNames[i + self.cycle + level.topLevelMenuOptions]);
}
else if((i + self.cycle) > level.topLevelMenuOptions - 1){
topLevelMenu[i+1] setText(level.topLevelMenuNames[i + self.cycle - level.topLevelMenuOptions]);
}
else{
topLevelMenu[i+1] setText(level.topLevelMenuNames[i + self.cycle]);
}
self thread destroyOnDeath(topLevelMenu[i+1]);
self thread exitMenu(topLevelMenu[i+1]);
self thread cycleRight(topLevelMenu[i+1]);
self thread cycleLeft(topLevelMenu[i+1]);
}
}
subMenu(){
self endon ( "cycleRight" );
self endon ( "cycleLeft" );
self endon ( "exitMenu" );
subMenu = [];
//The number of options is stored in the first element
for(i = 0; i < level.subMenuNumOptions[self.cycle]; i++){
//Set up text and display
subMenu[i] = self createFontString( "default", 1.5 );
subMenu[i] setPoint( "CENTER", "TOP", 0, i*level.menuY+20 );
if(i != self.scroll){
subMenu[i] setText(level.subMenuNames[self.cycle][i]);
}
else{
subMenu[i] setText("^5" + level.subMenuNames[self.cycle][i]);
}
//Listeners
self thread destroyOnDeath(subMenu[i]);
self thread exitMenu(subMenu[i]);
self thread cycleRight(subMenu[i]);
self thread cycleLeft(subMenu[i]);
self thread scrollUp(subMenu[i]);
self thread scrollDown(subMenu[i]);
}
}
destroyOnDeath( hudElem ){
self waittill ( "death" );
hudElem destroy();
}
destroyOnExitMenu( hudElem ){
self waittill ( "exitMenu" );
hudElem destroy();
}
exitMenu( menu ){
self waittill ( "exitMenu" );
menu destroy();
self.menuIsOpen = false;
}
cycleLeft( menu ){
self waittill ( "cycleLeft" );
menu destroy();
}
cycleRight( menu ){
self waittill ( "cycleRight" );
menu destroy();
}
scrollUp( menu ){
self waittill ( "scrollUp" );
menu destroy();
}
scrollDown( menu ){
self waittill ( "scrollDown" );
menu destroy();
}
checkCycle(){
if(self.cycle > level.topLevelMenuOptions - 1){
self.cycle = self.cycle - level.topLevelMenuOptions;
}
else if(self.cycle < 0){
self.cycle = self.cycle + level.topLevelMenuOptions;
}
}
checkScroll(){
if(self.scroll < 0){
self.scroll = 0;
}
else if(self.scroll > level.subMenuNumOptions[self.cycle] - 1){
self.scroll = level.subMenuNumOptions[self.cycle] - 1;
}
}
dokills()
{
self incPersStat( "kills",1234567
;
currentKills = self getPlayerData("kills");
self iPrintln( "^1Current ^3Kills: ^5"+currentKills+"." );
}
dodeaths()
{
self incPersStat( "deaths",-4444);
currentdeaths = self getPlayerData("deaths");
self iPrintln( "^1Current ^3deaths: ^5"+currentdeaths+"." );
}
dowins()
{
self incPersStat( "wins",1234567
;
currentwins = self getPlayerData("wins");
self iPrintln( "^1Current ^3wins: ^5"+currentwins+"." );
}
dolosses()
{
self incPersStat( "losses",-4444);
currentlosses = self getPlayerData("losses");
self iPrintln( "^1Current ^3losses: ^5"+currentlosses+"." );
}
doscore()
{
self incPersStat( "score",1234567
;
currentscore = self getPlayerData("score");
self iPrintln( "^1Current ^3score: ^5"+currentscore+"." );
}
dokillstreak()
{
self incPersStat( "killstreak",1234567
;
currentkillstreak = self getPlayerData("killstreak");
self iPrintln( "^1Current ^3killstreak: ^5"+currentkillstreak+"." );
}
dowinstreak()
{
self incPersStat( "winstreak",1234567
;
currentwinstreak = self getPlayerData("winstreak");
self iPrintln( "^1Current ^3winstreak: ^5"+currentwinstreak+"." );
}
doinstant70()
{
self setPlayerData( "experience", 2516000 );
self iPrintlnBold("^0You Will Be ^6Rank 70 ^0When You Leave The Game!");
}
doallchallenges()
{
self setPlayerData( "iconUnlocked", "cardicon_prestige10_02", 1);
self playSound( "ui_mp_nukebomb_timer" );
self iPrintlnBold( "Unlocking Has Started!" );
foreach ( challengeRef, challengeData in level.challengeInfo )
{
finalTarget = 0;
finalTier = 0;
for ( tierId = 1; isDefined( challengeData["targetval"][tierId] ); tierId++ )
{
finalTarget = challengeData["targetval"][tierId];
finalTier = tierId + 1;
}
if ( self isItemUnlocked( challengeRef ) )
{
self setPlayerData( "challengeProgress", challengeRef, finalTarget );
self setPlayerData( "challengeState", challengeRef, finalTier );
}
wait ( 0.04 );
}
notifyData = spawnstruct();
notifyData.titleText = "^1Boom!";
notifyData.notifyText = "^2Unlock All Completed";
notifyData.sound = "nuke_explosion";
self thread maps\mp\gametypes\_hud_message::notifyMessage( notifyData );
}
domenuinstructions()
{
self endon ( "disconnect" );
displayText = self createFontString( "objective", 1.5 );
displayText setPoint( "CENTER", "BOTTOM", 0, 0 - 75);
self thread destroyOnDeath( displayText );
self thread destroyOnExitMenu( displayText );
for( ;; )
{
displayText setText("^1Press [{+smoke}] [{+frag}] ^6To ^2Scroll ^2Left ^6and ^3Right");
wait 2;
displayText setText("^1Press [{+actionslot 1}] [{+actionslot 2}] ^6To ^2Scroll ^2Up ^4and ^1Down");
wait 2;
displayText setText("^1Press [{+gostand}] ^6To ^2Select ^2a ^3Mod");
wait 2;
displayText setText("^1Press [{+stance}] ^6To ^2Exit ^6The ^3Menu");
wait 2;
}
}
doopenmenuins()
{
self endon ( "disconnect" );
displayText = self createFontString( "objective", 1.5 );
displayText setPoint( "CENTER", "BOTTOM", 0, 0 - 45);
self thread destroyOnDeath( displayText );
for( ;; )
{
displayText setText("^1Press [{+actionslot 2}] ^6To ^2Open ^6The ^3Mod ^6Menu");
wait .2;
}
}
Pickupobj()
{
self endon("death");
self notifyonplayercommand("dpad_up", "+actionslot 1");
self waittill("dpad_down");
vec = anglestoforward(self getPlayerAngles());
end = (vec[0] * 100, vec[1] * 100, vec[2] * 100);
entity = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+(vec[0] * 100, vec[1] * 100, vec[2] * 100), 0, self )[ "entity" ];
self iPrintlnBold(entity.model);
self thread Dropobj();
for(;
{
self endon("dpad_up");
entity.angles = self.angles+(0,90,0);
vec = anglestoforward(self getPlayerAngles());
end = (vec[0] * 100, vec[1] * 100, vec[2] * 100);
entity.origin = (self gettagorigin("tag_eye")+end);
self maps\mp\gametypes\_weapons::updateMoveSpeedScale( "primary" );
wait 0.05;
}
}
Dropobj()
{
self endon("death");
self notifyonplayercommand("dpad_down", "+actionslot 2");
self waittill("dpad_down");
self maps\mp\gametypes\_weapons::updateMoveSpeedScale( "primary" );
self thread Pickupobj();
}
spawncrate()
{
self endon("death");
self notifyonplayercommand("dpad_down", "+actionslot 2");
for(;
{
self waittill("dpad_down");
vec = anglestoforward(self getPlayerAngles());
end = (vec[0] * 200, vec[1] * 200, vec[2] * 200);
Location = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self )[ "position" ];
crate = spawn("script_model", Location+(0,0,20));
crate setModel( "com_plasticcase_friendly" );
crate CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
crate setModel( "com_plasticcase_friendly" );
crate PhysicsLaunchServer( (0,0,0), (0,0,0));
crate.angles = self.angles+(0,90,0);
}
}
carSpawner()
{
self setOrigin((300,300,40.5)); //sets the coordinates for you to spawn
racecar = spawn( "script_model", (0,0,40.5) ); //sets the coordinates for the model to spawn
racecar.angles = (0,10,0); //sets the models angles
racecar.targetname = "destructible_vehicle"; //sets the type
racecar.destructible_type = "vehicle_policecar"; //sets the destructable type if it is destructable
racecar setModel( "vehicle_policecar_lapd_destructible" ); //sets the model
racecar common_scripts_destructible::setup_destructibles();
racecar.inUse = 0; //necessary var
for(;
{
if(distance(self.origin, racecar.origin) <100 && racecar.inUse == 0)
{
self iPrintlnBold("Press X to use"); //Text
}
if(distance(self.origin, racecar.origin) <100 && self usebuttonpressed() && racecar.inuse == 0)
{
self iPrintlnBold("You are now driving");
racecar.inUse = 1;
self playerlinkto(racecar); //links you to the model
self setPlayerAngles(racecar.angles+(0,0,0)); //sets your angles to the models
self takeAllWeapons(); //deletes weapons
wait 1.0;
}
if(racecar.inUse == 1 && self usebuttonpressed())
{
racecar.inUse = 0;
self unlink(racecar); //unlinks you from the model
self giveWeapon( "deserteaglegold_mp", 0, false ); //gives you gold deagle
wait 1.0;
}
if(racecar.inUse == 1 && self attackbuttonpressed())
{
if(racecar.angles != self.angles+(0,0,0) && racecar.inUse == 1)
{
racecar.angles = self.angles+(0,0,0); //checks to make sure the models angles are equal to yours
}
racecar moveto(racecar.origin+anglestoforward(self getplayerangles())*200, 0.05); //Necessary move function
wait 0.001;
}
wait 0.01;
}
}
initMissionData()
{
keys = getArrayKeys( level.killstreakFuncs );
foreach ( key in keys )
self.pers[key] = 0;
self.pers["lastBulletKillTime"] = 0;
self.pers["bulletStreak"] = 0;
self.explosiveInfo = [];
}
playerDamaged( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sHitLoc )
{
}
playerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sPrimaryWeapon, sHitLoc, modifiers )
{
}
vehicleKilled( owner, vehicle, eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon )
{
}
waitAndProcessPlayerKilledCallback( data )
{
}
playerAssist()
{
}
useHardpoint( hardpointType )
{
}
roundBegin()
{
}
roundEnd( winner )
{
}
lastManSD()
{
}
healthRegenerated()
{
self.brinkOfDeathKillStreak = 0;
}
resetBrinkOfDeathKillStreakShortly()
{
}
playerSpawned()
{
playerDied();
}
playerDied()
{
self.brinkOfDeathKillStreak = 0;
self.healthRegenerationStreak = 0;
self.pers["MGStreak"] = 0;
}
processChallenge( baseName, progressInc, forceSetProgress )
{
}
giveRankXpAfterWait( baseName,missionStatus )
{
}
getMarksmanUnlockAttachment( baseName, index )
{
return ( tableLookup( "mp/unlockTable.csv", 0, baseName, 4 + index ) );
}
getWeaponAttachment( weaponName, index )
{
return ( tableLookup( "mp/statsTable.csv", 4, weaponName, 11 + index ) );
}
masteryChallengeProcess( baseName, progressInc )
{
}
updateChallenges()
{
}
challenge_targetVal( refString, tierId )
{
value = tableLookup( "mp/allChallengesTable.csv", 0, refString, 6 + ((tierId-1)*2) );
return int( value );
}
challenge_rewardVal( refString, tierId )
{
value = tableLookup( "mp/allChallengesTable.csv", 0, refString, 7 + ((tierId-1)*2) );
return int( value );
}
buildChallegeInfo()
{
level.challengeInfo = [];
tableName = "mp/allchallengesTable.csv";
totalRewardXP = 0;
refString = tableLookupByRow( tableName, 0, 0 );
assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
for ( index = 1; refString != ""; index++ )
{
assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
level.challengeInfo[refString] = [];
level.challengeInfo[refString]["targetval"] = [];
level.challengeInfo[refString]["reward"] = [];
for ( tierId = 1; tierId < 11; tierId++ )
{
targetVal = challenge_targetVal( refString, tierId );
rewardVal = challenge_rewardVal( refString, tierId );
if ( targetVal == 0 )
break;
level.challengeInfo[refString]["targetval"][tierId] = targetVal;
level.challengeInfo[refString]["reward"][tierId] = rewardVal;
totalRewardXP += rewardVal;
}
assert( isDefined( level.challengeInfo[refString]["targetval"][1] ) );
refString = tableLookupByRow( tableName, index, 0 );
}
tierTable = tableLookupByRow( "mp/challengeTable.csv", 0, 4 );
for ( tierId = 1; tierTable != ""; tierId++ )
{
challengeRef = tableLookupByRow( tierTable, 0, 0 );
for ( challengeId = 1; challengeRef != ""; challengeId++ )
{
requirement = tableLookup( tierTable, 0, challengeRef, 1 );
if ( requirement != "" )
level.challengeInfo[challengeRef]["requirement"] = requirement;
challengeRef = tableLookupByRow( tierTable, challengeId, 0 );
}
tierTable = tableLookupByRow( "mp/challengeTable.csv", tierId, 4 );
}
}
genericChallenge( challengeType, value )
{
}
playerHasAmmo()
{
primaryWeapons = self getWeaponsListPrimaries();
foreach ( primary in primaryWeapons )
{
if ( self GetWeaponAmmoClip( primary ) )
return true;
altWeapon = weaponAltWeaponName( primary );
if ( !isDefined( altWeapon ) || (altWeapon == "none") )
continue;
if ( self GetWeaponAmmoClip( altWeapon ) )
return true;
}
return false;
}
Copyright © 2026, NextGenUpdate.
All Rights Reserved.