From 62adad1a07b7ddd08258b27c149b35dc7e753b44 Mon Sep 17 00:00:00 2001 From: cdnutter Date: Sat, 1 Jun 2024 20:43:11 -0700 Subject: [PATCH] added snipers only random variant, (currently random per person...) --- .gitignore | 1 + README.md | 0 maps/mp/gametypes/_rank.gsc | 194 ++++++++++++++++++++++++++---------- 3 files changed, 141 insertions(+), 54 deletions(-) mode change 100644 => 100755 README.md diff --git a/.gitignore b/.gitignore index a9e11f6..e72c91f 100755 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ z_svr_bots.iwd bots.txt scriptdata logs +guns.txt \ No newline at end of file diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/maps/mp/gametypes/_rank.gsc b/maps/mp/gametypes/_rank.gsc index 99f933f..f8f4f85 100755 --- a/maps/mp/gametypes/_rank.gsc +++ b/maps/mp/gametypes/_rank.gsc @@ -2,22 +2,30 @@ #include maps\mp\_utility; #include maps\mp\gametypes\_hud_util; -/* - Features: - A awesome Gungame mod - You spawn with a throwing knife - get two kills and you are given a pistol etc all the way up to sniper rifles - It includes the Golden Desert Eagle and nightvision - It includes some modded killstreaks - But most are disabled to keep things fair. -*/ - -initGuns() -{ +initGuns() { self.upgscore = 50; // Score necessary for upgrade. Leave at 100 for 2 kill upgrade. Do 50 for 1 kill, 150 for 3 kill. + self.finalkills = 2; // Kills to win after getting final weapon self.gunList = []; + self.variantType = RandomInt(2); + self.variantName = ""; - // Gun Name, Laser Sight, Akimbo + switch(self.variantType) { + case 0: + self.variantName = "Random Guns"; + self thread randomGuns(); + break; + case 1: + self.variantName = "Snipers Only"; + self thread snipersOnly(); + break; + } + +} + +// ============= Custom Variants ============ // + +randomGuns() { self.gunList[0] = createGun("beretta_akimbo_mp", 5, false, true); self.gunList[1] = createGun("mp5k_rof_mp", 7, true, false); @@ -119,24 +127,98 @@ initGuns() self.gunList[97] = createGun("uzi_akimbo_rof_mp", 2, false, true); self.gunList[98] = createGun("javelin_mp", 9, true, false); self.gunList[99] = createGun("throwingknife_mp", 9, false, false); +} +snipersOnly() { + + // Also give SoH Pro + self maps\mp\perks\_perks::givePerk("specialty_fastsnipe"); + self maps\mp\perks\_perks::givePerk("specialty_fastreload"); + self maps\mp\perks\_perks::givePerk("specialty_quickdraw"); + self maps\mp\perks\_perks::givePerk("specialty_fastsprintrecovery"); + + self.gunList[0] = createGun("cheytac_heartbeat_xmags_mp", 5, true, false); + self.gunList[1] = createGun("barrett_acog_mp", 9, false, false); + self.gunList[2] = createGun("barrett_thermal_xmags_mp", 6, true, false); + self.gunList[3] = createGun("m21_fmj_silencer_mp", 3, false, false); + self.gunList[4] = createGun("wa2000_fmj_thermal_mp", 4, true, false); + self.gunList[5] = createGun("barrett_heartbeat_xmags_mp", 7, false, false); + self.gunList[6] = createGun("wa2000_silencer_xmags_mp", 8, true, false); + self.gunList[7] = createGun("cheytac_xmags_mp", 1, false, false); + self.gunList[8] = createGun("m21_acog_heartbeat_mp", 2, true, false); + self.gunList[9] = createGun("cheytac_acog_silencer_mp", 0, false, false); + self.gunList[10] = createGun("wa2000_mp", 2, true, false); + self.gunList[11] = createGun("cheytac_silencer_mp", 3, false, false); + self.gunList[12] = createGun("cheytac_fmj_xmags_mp", 1, true, false); + self.gunList[13] = createGun("barrett_thermal_mp", 0, false, false); + self.gunList[14] = createGun("wa2000_silencer_thermal_mp", 6, true, false); + self.gunList[15] = createGun("m21_fmj_heartbeat_mp", 8, false, false); + self.gunList[16] = createGun("barrett_fmj_xmags_mp", 6, true, false); + self.gunList[17] = createGun("cheytac_thermal_mp", 2, false, false); + self.gunList[18] = createGun("wa2000_acog_xmags_mp", 9, true, false); + self.gunList[19] = createGun("m21_mp", 4, false, false); + self.gunList[20] = createGun("cheytac_silencer_xmags_mp", 7, true, false); + self.gunList[21] = createGun("barrett_fmj_silencer_mp", 5, false, false); + self.gunList[22] = createGun("barrett_mp", 3, true, false); + self.gunList[23] = createGun("m21_acog_mp", 4, false, false); + self.gunList[24] = createGun("m21_silencer_mp", 2, true, false); + self.gunList[25] = createGun("wa2000_silencer_mp", 7, false, false); + self.gunList[26] = createGun("m21_fmj_xmags_mp", 6, true, false); + self.gunList[27] = createGun("wa2000_acog_fmj_mp", 3, false, false); + self.gunList[28] = createGun("cheytac_fmj_thermal_mp", 5, true, false); + self.gunList[29] = createGun("barrett_acog_heartbeat_mp", 8, false, false); + self.gunList[30] = createGun("wa2000_acog_silencer_mp", 1, true, false); + self.gunList[31] = createGun("m21_thermal_xmags_mp", 0, false, false); + self.gunList[32] = createGun("cheytac_acog_mp", 7, true, false); + self.gunList[33] = createGun("wa2000_heartbeat_silencer_mp", 5, false, false); + self.gunList[34] = createGun("m21_silencer_xmags_mp", 6, true, false); + self.gunList[35] = createGun("m21_thermal_mp", 9, false, false); + self.gunList[36] = createGun("barrett_fmj_heartbeat_mp", 4, true, false); + self.gunList[37] = createGun("barrett_silencer_thermal_mp", 3, false, false); + self.gunList[38] = createGun("cheytac_heartbeat_silencer_mp", 1, true, false); + self.gunList[39] = createGun("cheytac_acog_fmj_mp", 7, false, false); + self.gunList[40] = createGun("cheytac_fmj_mp", 8, true, false); + self.gunList[41] = createGun("barrett_heartbeat_thermal_mp", 6, false, false); + self.gunList[42] = createGun("wa2000_acog_heartbeat_mp", 2, true, false); + self.gunList[43] = createGun("m21_heartbeat_xmags_mp", 0, false, false); + self.gunList[44] = createGun("cheytac_acog_heartbeat_mp", 5, true, false); + self.gunList[45] = createGun("barrett_silencer_xmags_mp", 4, false, false); + self.gunList[46] = createGun("m21_fmj_thermal_mp", 5, true, false); + self.gunList[47] = createGun("wa2000_heartbeat_mp", 2, false, false); + self.gunList[48] = createGun("cheytac_thermal_xmags_mp", 3, true, false); + self.gunList[49] = createGun("barrett_heartbeat_mp", 0, false, false); + self.gunList[50] = createGun("wa2000_xmags_mp", 7, true, false); + self.gunList[51] = createGun("barrett_acog_silencer_mp", 4, false, false); + self.gunList[52] = createGun("wa2000_fmj_heartbeat_mp", 3, true, false); + self.gunList[53] = createGun("m21_heartbeat_silencer_mp", 1, false, false); + self.gunList[54] = createGun("cheytac_silencer_thermal_mp", 8, true, false); + self.gunList[55] = createGun("wa2000_heartbeat_xmags_mp", 5, false, false); + self.gunList[56] = createGun("wa2000_fmj_silencer_mp", 9, true, false); + self.gunList[57] = createGun("barrett_acog_xmags_mp", 2, false, false); + self.gunList[58] = createGun("barrett_fmj_thermal_mp", 6, true, false); + self.gunList[59] = createGun("cheytac_heartbeat_thermal_mp", 7, false, false); + self.gunList[60] = createGun("m21_acog_silencer_mp", 1, true, false); + self.gunList[61] = createGun("cheytac_mp", 4, false, false); + self.gunList[62] = createGun("wa2000_thermal_mp", 3, true, false); + self.gunList[63] = createGun("cheytac_heartbeat_mp", 5, false, false); } - -createGun(gunName, camo, laserSight, akimbo) -{ + +// ========================================= // + +createGun(gunName, camo, laserSight, akimbo) { gun = spawnstruct(); gun.name = gunName; gun.camo = camo; gun.laser = laserSight; gun.akimbo = akimbo; + return gun; } -doBinds() //Put persistent threads that are started once here -{ +doBinds() { // Put persistent threads that are started once here self.firstRun = true; + self thread initGuns(); - self thread killCrosshairs(); self thread doScore(); self thread doGun(); @@ -146,8 +228,7 @@ doBinds() //Put persistent threads that are started once here setDvar("scr_game_killstreakdelay", 99999999); } -doDvars() // Put threads that are called with every respawn -{ +doDvars() { // Put threads that are called with every respawn setDvar("g_speed", 225); setDvar("bg_fallDamageMaxHeight", 1); setDvar("bg_fallDamageMinHeight", 999); @@ -171,28 +252,41 @@ doDvars() // Put threads that are called with every respawn self maps\mp\gametypes\_class::setKillstreaks( "none", "none", "none" ); self notifyOnPlayercommand("E", "+melee"); - while(true){ - self waittill("E"); - self thread maps\mp\gametypes\_hud_message::hintMessage("^No melee allowed."); - curwep = self getCurrentWeapon(); - self takeWeapon(curwep); + // Remove Melee + while(true) { + self waittill("E"); + self thread maps\mp\gametypes\_hud_message::hintMessage("No melee allowed."); - if(isSubStr( curwep, "akimbo" )) { - self giveWeapon(curwep, 8, true); - } else { - self giveWeapon(curwep, 8, false);} - } + curwep = self getCurrentWeapon(); + self takeWeapon(curwep); - if(self.firstRun){ + if(isSubStr( curwep, "akimbo" )) { + self giveWeapon(curwep, 8, true); + } else { + self giveWeapon(curwep, 8, false); + } + + } + + if(self.firstRun) { self thread maps\mp\gametypes\_hud_message::hintMessage("^:Chroma ^7Games presents..."); self thread maps\mp\gametypes\_hud_message::hintMessage("^7Gun Game"); + + switch(self.variantType) { + case 0: + self thread maps\mp\gametypes\_hud_message::hintMessage("^7Random Weapons"); + break; + case 1: + self thread maps\mp\gametypes\_hud_message::hintMessage("^7Snipers Only"); + break; + } + self.firstRun = false; } } -doGun() -{ +doGun() { self endon("disconnect"); self.curgun = 0; curscore = 0; @@ -224,33 +318,25 @@ doGun() } } -doScore() -{ +doScore() { + self endon("disconnect"); + + // Current Weapon Number scoreText = self createFontString("default", 1.5); scoreText setPoint("TOPRIGHT", "TOPRIGHT", -5, 0); - while(true) - { - scoreText setText("^3 Weapon " + (self.curgun + 1) + " / " + (self.gunList.size)); + + variantText = self createFontString("default", 1.5); + variantText setPoint("TOPRIGHT", "TOPRIGHT", -5, 15); + + while(true) { + scoreText setText("^:Weapon ^3" + (self.curgun + 1) + " ^2/^3 " + (self.gunList.size)); + variantText setText("^3" + (self.variantName)); + wait .2; } } -killCrosshairs() // Get rid of those fucking useless hax -{ - self endon("disconnect"); - - while(true){ - setDvar("cg_drawcrosshair", 0); - self setClientDvar("cg_scoreboardPingText", 1); - self setClientDvar("com_maxfps", 0); - self setClientDvar("cg_drawFPS", 1); - wait 1; - } -} - - - @@ -922,4 +1008,4 @@ syncXPStat() xp = self getRankXP(); self maps\mp\gametypes\_persistence::statSet( "experience", xp ); -} \ No newline at end of file +}