diff --git a/quakec/fallout2/combat.qc b/quakec/fallout2/combat.qc index 6ee2d327a..e7987ada0 100644 --- a/quakec/fallout2/combat.qc +++ b/quakec/fallout2/combat.qc @@ -118,7 +118,7 @@ void(entity targ, entity inflictor, entity attacker, float damage) T_Damage = local float save, dm; local float take, severity, helm; local string attackerteam, targteam; - + local string info1, info2; if (!targ.takedamage) return; @@ -535,6 +535,7 @@ take = damage; } + targ.health = targ.health - take; if (targ.classname == "monster" && targ.enemy.classname != "player" && attacker.classname == "player") diff --git a/quakec/fallout2/csqc/invent.qc b/quakec/fallout2/csqc/invent.qc index fc24389c7..0cf3c766d 100644 --- a/quakec/fallout2/csqc/invent.qc +++ b/quakec/fallout2/csqc/invent.qc @@ -623,8 +623,18 @@ void() Invent_Draw = SlotImageSmall('1 12.5 0'*IMGSIZEK, 4); - SlotImageSmall('11 12 0'*IMGSIZEK, 23); - SlotImageSmall('13 12 0'*IMGSIZEK, 24); + check = getstati(97); + if (check > 0) + SlotImage('11 12 0'*IMGSIZEK, 23); + else + drawpic('11 12 0'*IMGSIZEK, "gui/pipboy/mix.png", IMGSIZEH, '1 1 1', 1); + + + check = getstati(98); + if (check > 0) + SlotImage('13 12 0'*IMGSIZEK, 24); + else + drawpic('13 12 0'*IMGSIZEK, "gui/pipboy/mix.png", IMGSIZEH, '1 1 1', 1); /* perki = GetPerkImage(getstati(60)); @@ -756,7 +766,36 @@ else if (slotnum == 99) } // drawfill(mousepos, '8 8 0', '0 0 0', 0.7); // drawstring(mousepos, "^", '8 8 0', '1 1 1', 1); - drawpic(mousepos, "gui/cursor.jpg", '1 1 0'*CURSORSIZE, '1 1 1', 1); + + if (downslotnum == 0) + drawpic(mousepos, "gui/cursor.jpg", '1 1 0'*CURSORSIZE, '1 1 1', 1); + else + { + + if (downslotnum <= 16) + it = getstati(31+downslotnum); + else + { + if (downslotnum == 17) + it = getstati(91); + if (downslotnum == 18) + it = getstati(92); + if (downslotnum == 19) + it = getstati(93); + if (downslotnum == 20) + it = getstati(94); + if (downslotnum == 21) + it = getstati(95); + if (downslotnum == 22) + it = getstati(96); + if (downslotnum == 23) + it = getstati(97); + if (downslotnum == 24) + it = getstati(98); + } + itname = GetItemImage(ToIID(it)); + drawpic(mousepos, strcat("gui/", itname), '48 48 0', '1 1 1', 1); + } }; void() CalcScrollPos = diff --git a/quakec/fallout2/dog.qc b/quakec/fallout2/dog.qc index 8e945196a..2978bd51c 100644 --- a/quakec/fallout2/dog.qc +++ b/quakec/fallout2/dog.qc @@ -66,12 +66,8 @@ local float ldmg; T_Damage (self.enemy, self, self, ldmg); - if (random()*25 <= 5) - { - stuffcmd(self.enemy, "drop\n"); - self.enemy.attack_finished = time + 1; - self.enemy.position = 2; - } + self.enemy.attack_finished = time + 0.25; + }; void() Dog_JumpTouch = diff --git a/quakec/fallout2/inventory.qc b/quakec/fallout2/inventory.qc index 888e8255a..a4e36dae7 100644 --- a/quakec/fallout2/inventory.qc +++ b/quakec/fallout2/inventory.qc @@ -681,13 +681,13 @@ string(float iid) GetItemVModel = if (iid == IID_WP_JACKHAMMER) return "progs/v_jackhammer.mdl"; if (iid == IID_WP_GREASEGUN) - return "progs/v_mp9.mdl"; + return "progs/v_smg.mdl"; if (iid == IID_WP_MP9) - return "progs/v_smg.mdl"; - if (iid == IID_WP_GREASEGUN_S) return "progs/v_mp9.mdl"; - if (iid == IID_WP_MP9_S) + if (iid == IID_WP_GREASEGUN_S) return "progs/v_smg.mdl"; + if (iid == IID_WP_MP9_S) + return "progs/v_mp9.mdl"; if (iid == IID_WP_RANGEMASTER) return "progs/v_rangem.mdl"; if (iid == IID_WP_RANGEMASTER_SCOPE) @@ -707,7 +707,7 @@ string(float iid) GetItemVModel = if (iid == IID_WP_FNFAL) return "progs/v_fnfal.mdl"; if (iid == IID_WP_AK112_M) - return "progs/v_ak47.mdl"; + return "progs/v_lsw.mdl"; if (iid == IID_WP_G11) return "progs/v_g11.mdl"; @@ -916,7 +916,7 @@ float(float iid) WeaponAmmoType = if (iid == IID_WP_AK47) return IID_AM_WARSAW; if (iid == IID_WP_AK112_M) - return IID_AM_5MMHIGHVEL; + return IID_AM_556MM; if (iid == IID_WP_AK74) return IID_AM_WARSAW; if (iid == IID_WP_ACR) @@ -993,7 +993,7 @@ float(float iid) WeaponMagQuant = if (iid == IID_WP_AK112) return 24; if (iid == IID_WP_AK112_M) - return 90; + return 100; if (iid == IID_WP_AK74) return 30; if (iid == IID_WP_ACR) @@ -1077,7 +1077,7 @@ float(float iid) GetItemWeight = if (iid == IID_WP_AK47) return 6; if (iid == IID_WP_AK112_M) - return 7; + return 8; if (iid == IID_WP_AK74) return 5; if (iid == IID_WP_ACR) @@ -1206,7 +1206,7 @@ string(float iid) GetItemName = if (iid == IID_WP_WINCHESTER) return "winchester (12g)"; if (iid == IID_WP_MOSSBERG) - return "mossberg (12g)"; + return "citykiller (12g)"; if (iid == IID_WP_JACKHAMMER) return "jackhammer (12g)"; if (iid == IID_WP_GREASEGUN) @@ -1222,7 +1222,7 @@ string(float iid) GetItemName = if (iid == IID_WP_AK112) return "ak-112 (5mm jhp)"; if (iid == IID_WP_AK112_M) - return "ak-112 (extended magazine)"; + return "light support weapon (5.56mm)"; if (iid == IID_WP_AK74) return "ak-47 (7.62mm warsaw pact)"; if (iid == IID_WP_ACR) @@ -1707,9 +1707,9 @@ string(float iid) GetItemDesc = if (iid == IID_WP_AK112) return "a common assault rifle with extreme durability"; if (iid == IID_WP_AK112_M) - return "this rifle has been modified to accept larger magazines"; + return "a great weapon for providing suppressing fire"; if (iid == IID_WP_DKS1) - return "this sturdy rifle fires .308\na larger and more reliable round"; + return "the larger caliber 7.62mm provides extra power"; if (iid == IID_WP_DKS1_S) return ".308 sniper rifle, silenced for stealth-ops"; if (iid == IID_WP_DKS1) @@ -1733,7 +1733,7 @@ string(float iid) GetItemDesc = if (iid == IID_WP_LASERGATLING) return "quite simply, the ultimate in heavy firepower"; if (iid == IID_WP_ACR) - return "sniper-style weapon that supports burst fire"; + return "fast, powerful, and accurate - a sniper's dream"; if (iid == IID_AM_NEEDLER) @@ -1784,7 +1784,7 @@ string(float iid) GetItemDesc = if (iid == IID_ARM_METAL) return "gives great protection at a sacrifice to speed."; if (iid == IID_ARM_TESLA) - return "experimental armor with high deflection but low absorb."; + return "experimental armor. great against small rounds."; if (iid == IID_ARM_COMBAT) return "this all-purpose armor is designed for combat missions."; if (iid == IID_ARM_SEVA) @@ -2180,7 +2180,7 @@ string(float iid) GetItemImage = if (iid == IID_WP_AK112) return "ak112.png"; if (iid == IID_WP_AK112_M) - return "ak112.png"; + return "lsw.png"; if (iid == IID_WP_AK74) return "ak47.jpg"; if (iid == IID_WP_ACR) diff --git a/quakec/fallout2/items.qc b/quakec/fallout2/items.qc index 7321ea218..2f0bbc30a 100644 --- a/quakec/fallout2/items.qc +++ b/quakec/fallout2/items.qc @@ -291,6 +291,9 @@ void(vector loc) SpawnJunk = { local entity junk; + if (random()*100 <= 80) + return; + junk = spawn (); setorigin(junk, loc + '0 0 96'); @@ -315,13 +318,12 @@ void(vector loc) SpawnJunk = junk.classname = "random_junk"; - if (random()*100 <= 10) - junk.islot1 = SlotVal(IID_MISC_JUNK, 1); - else if (random()*100 <= 10) + + if (random()*100 <= 25) junk.islot1 = SlotVal(IID_MISC_NUKACOLA, 1); - else if (random()*100 <= 10) + else if (random()*100 <= 25) junk.islot1 = SlotVal(IID_MISC_CHEMICALS, 1); - else if (random()*100 <= 10) + else if (random()*100 <= 25) junk.islot1 = SlotVal(IID_MISC_AEROSOL, 1); else if (random()*100 <= 10) junk.islot1 = SlotVal(IID_MISC_RDXCRYSTAL, 1); diff --git a/quakec/fallout2/menus.qc b/quakec/fallout2/menus.qc index e337a8b14..a6c063a38 100644 --- a/quakec/fallout2/menus.qc +++ b/quakec/fallout2/menus.qc @@ -474,7 +474,7 @@ string () MissionString = "3‘ shadow mission \n" "4‘ zombie mission \n" "5‘ destroy supplies \n" - "6‘ bomb defusal \n\n" + "6‘ bomb defusal \n\n" "7‘ grab one later \n"); }; diff --git a/quakec/fallout2/misc.qc b/quakec/fallout2/misc.qc index 628e118f1..fef0a35b0 100644 --- a/quakec/fallout2/misc.qc +++ b/quakec/fallout2/misc.qc @@ -911,6 +911,13 @@ void() misc_noisemaker = void() brotherhood_merchant = { + local entity sign; +/* + sign = spawn(); + sign.origin = self.origin + '0 0 32'; + setmodel(sign, "progs/trader.spr"); + sign.solid = SOLID_NOT;*/ + setorigin(self, self.origin + '0 0 64'); self.movetype = MOVETYPE_BOUNCE; self.velocity_z = -200; @@ -925,111 +932,35 @@ void() brotherhood_merchant = self.nextthink = time + 0.5; - if (random()*100 < 33) - { - self.xslot1 = SlotVal(IID_WP_GREASEGUN, 1); - self.xslot6 = SlotVal(IID_AM_45ACP, 30); - } - else if (random()*100 < 33) - { - self.xslot1 = SlotVal(IID_WP_USP, 1); - self.xslot6 = SlotVal(IID_AM_45ACP, 30); - } - else - { - self.xslot1 = SlotVal(IID_WP_GLOCK, 1); - self.xslot6 = SlotVal(IID_AM_10MM, 30); - } + + self.xslot1 = SlotVal(IID_WP_USP, 1); + self.xslot6 = SlotVal(IID_AM_45ACP, 30); - if (random()*100 < 33) - { - self.xslot2 = SlotVal(IID_WP_DEAGLE, 1); - self.xslot7 = SlotVal(IID_AM_44MAGNUM, 30); - } - else if (random()*100 < 33) - { - self.xslot2 = SlotVal(IID_WP_NEEDLER, 1); - self.xslot7 = SlotVal(IID_AM_NEEDLER, 30); - } - else - { - self.xslot2 = SlotVal(IID_WP_PIPERIFLE, 1); - self.xslot7 = SlotVal(IID_AM_44MAGNUM, 30); - } + self.xslot2 = SlotVal(IID_WP_PIPERIFLE, 1); + self.xslot7 = SlotVal(IID_AM_44MAGNUM, 30); - if (random()*100 < 33) - { - self.xslot3 = SlotVal(IID_WP_WINCHESTER, 1); - self.xslot8 = SlotVal(IID_AM_12GAUGESHELLS, 30); - } - else if (random()*100 < 33) - { - self.xslot3 = SlotVal(IID_WP_RANGEMASTER, 1); - self.xslot8 = SlotVal(IID_AM_556MM, 30); - } - else - { - self.xslot3 = SlotVal(IID_WP_DKS1, 1); - self.xslot8 = SlotVal(IID_AM_762MM, 30); - } + self.xslot3 = SlotVal(IID_WP_WINCHESTER, 1); + self.xslot8 = SlotVal(IID_AM_12GAUGESHELLS, 30); - if (random()*100 < 33) - { - self.xslot4 = SlotVal(IID_WP_WINCHESTER, 1); - self.xslot9 = SlotVal(IID_AM_12GAUGESHELLS, 30); - } - else if (random()*100 < 33) - { - self.xslot4 = SlotVal(IID_WP_RANGEMASTER, 1); - self.xslot9 = SlotVal(IID_AM_556MM, 30); - } - else - { - self.xslot4 = SlotVal(IID_WP_DKS1, 1); - self.xslot9 = SlotVal(IID_AM_762MM, 30); - } + self.xslot4 = SlotVal(IID_WP_RANGEMASTER, 1); + self.xslot9 = SlotVal(IID_AM_556MM, 30); - if (random()*100 < 33) - { - self.xslot5 = SlotVal(IID_WP_AK112, 1); - self.xslot10 = SlotVal(IID_AM_5MMHIGHVEL, 30); - } - else if (random()*100 < 33) - { - self.xslot5 = SlotVal(IID_WP_MOSSBERG, 1); - self.xslot10 = SlotVal(IID_AM_12GAUGESHELLS, 30); - } - else - { - self.xslot5 = SlotVal(IID_WP_MP9, 1); - self.xslot10 = SlotVal(IID_AM_10MM, 30); - } + self.xslot5 = SlotVal(IID_WP_MP9, 1); + self.xslot10 = SlotVal(IID_AM_10MM, 30); - if (random()*100 < 50) - self.xslot11 = SlotVal(IID_ARM_LEATHER, 1); - else - self.xslot11 = SlotVal(IID_ARM_VANDAL, 1); - if (random()*100 < 50) - self.xslot12 = SlotVal(IID_ARM_METAL, 1); - else - self.xslot12 = SlotVal(IID_ARM_TESLA, 1); - - if (random()*100 < 75) - self.xslot13 = SlotVal(IID_ARM_COMBAT, 1); - else - self.xslot13 = SlotVal(IID_ARM_SEVA, 1); + self.xslot11 = SlotVal(IID_ARM_VANDAL, 1); + self.xslot12 = SlotVal(IID_ARM_METAL, 1); + self.xslot13 = SlotVal(IID_ARM_TESLA, 1); self.xslot14 = SlotVal(IID_CHEM_STIMPACK, 1); - - self.xslot15 = SlotVal(IID_CHEM_MEDICALBAG, 25); - self.xslot16 = SlotVal(IID_WP_ACR, 1); + self.xslot16 = SlotVal(IID_WP_DKS1, 1); self.xslot17 = SlotVal(IID_AM_762MM, 30); @@ -1081,11 +1012,17 @@ void() brotherhood_soldier = self.xslot6 = SlotVal(IID_AM_556MM, 30); self.xslot7 = SlotVal(IID_AM_ENERGYCELL, 30); self.xslot8 = SlotVal(IID_AM_CASELESS, 30); - self.xslot8 = SlotVal(IID_AM_NEEDLER, 30); + self.xslot9 = SlotVal(IID_AM_NEEDLER, 30); + self.xslot15 = SlotVal(IID_WP_ACR, 1); self.xslot16 = SlotVal(IID_WP_AK112_M, 1); self.xslot17 = SlotVal(IID_WP_G11, 1); self.xslot18 = SlotVal(IID_WP_JACKHAMMER, 1); self.xslot19 = SlotVal(IID_WP_MOONLIGHT, 1); + self.xslot19 = SlotVal(IID_WP_MOSSBERG, 1); + + self.think = shop_face; + self.nextthink = time + 0.5; + }; void() brotherhood_guard = diff --git a/quakec/fallout2/mod_buy.qc b/quakec/fallout2/mod_buy.qc index 9ce5b0eac..bd3bb0f74 100644 --- a/quakec/fallout2/mod_buy.qc +++ b/quakec/fallout2/mod_buy.qc @@ -978,14 +978,21 @@ void() W_PlayerMenu = { if (self.impulse >= 1 && self.impulse <= 6) { - if (infokey(world, "objective") == "return" || infokey(world, "objective") == "start") - get_new_mission(1); - else - { - sprint(self, 2, "you're already on a mission!\n"); - self.currentmenu = "none"; - return; - } + + if (self.impulse == 1) + get_new_mission(1); + if (self.impulse == 2) + get_new_mission(2); + if (self.impulse == 3) + get_new_mission(3); + if (self.impulse == 4) + get_new_mission(4); + if (self.impulse == 5) + get_new_mission(5); + if (self.impulse == 6) + get_new_mission(6); + + self.team = 1; sound (self, CHAN_WEAPON, "effects/radio2.wav", TRUE, ATTN_IDLE); centerprint(self, "mission obtained\n"); diff --git a/quakec/fallout2/soldier.qc b/quakec/fallout2/soldier.qc index 3ff3c20c1..f75cb6177 100644 --- a/quakec/fallout2/soldier.qc +++ b/quakec/fallout2/soldier.qc @@ -1477,24 +1477,22 @@ void () army_die = if (self.weapon == 1) DropFromChest(self, IID_WP_PIPERIFLE, 1); if (self.weapon == 2) - DropFromChest(self, IID_WP_USP, 6); + DropFromChest(self, IID_WP_GLOCK, 6); if (self.weapon == 3) DropFromChest(self, IID_WP_WINCHESTER, 1); if (self.weapon == 4) - DropFromChest(self, IID_WP_MP9, 15); + DropFromChest(self, IID_WP_GREASEGUN, 15); if (self.weapon == 5) DropFromChest(self, IID_WP_AK47, 12); if (self.weapon == 1) DropFromChest(self, IID_AM_44MAGNUM, 10); if (self.weapon == 2) - DropFromChest(self, IID_AM_45ACP, 12); + DropFromChest(self, IID_AM_10MM, 12); if (self.weapon == 3) DropFromChest(self, IID_AM_12GAUGESHELLS, 8); if (self.weapon == 4) - DropFromChest(self, IID_AM_10MM, 15); - if (self.weapon == 4) - DropFromChest(self, IID_AM_10MM, 30); + DropFromChest(self, IID_AM_45ACP, 30); if (self.weapon == 5) DropFromChest(self, IID_AM_5MMHIGHVEL, 24); @@ -1515,9 +1513,9 @@ void (vector jojo, entity friend) spawn_soldier = self.movetype = MOVETYPE_STEP; setmodel (self, "progs/soldier.mdl"); setsize (self, '-12 -12 -24', '12 12 28'); - self.health = 60+random()*30; self.netname = "raider"; - self.max_health = self.health; + self.max_health = 150; + self.health = self.max_health; self.armornoise = "misc/thud.wav"; self.th_stand = army_stand1; self.th_walk = army_walk1; @@ -1666,8 +1664,9 @@ void () monster_army = self.netname = "enforcer"; setsize (self, '-12 -12 -24', '12 12 28'); - self.health = 120; - self.islot3 = SlotVal(IID_ARM_COMBAT, 1); + self.max_health = 150; + self.health = self.max_health; + self.islot3 = SlotVal(IID_ARM_COMBAT, 1); self.armortype = 35; self.helmet = 1; self.th_stand = enf_stand1; @@ -1709,7 +1708,8 @@ void () monster_army = self.movetype = MOVETYPE_STEP; setmodel (self, "progs/soldier.mdl"); setsize (self, '-12 -12 -24', '12 12 28'); - self.health = 100; + self.max_health = 150; + self.health = self.max_health; self.team = 3; self.islot3 = SlotVal(IID_ARM_LEATHER, 1); self.armortype = 0.2; @@ -1904,7 +1904,8 @@ void () monster_commander = commanders = commanders + 1; setsize (self, '-12 -12 -24', '12 12 32'); - self.health = 300; + self.max_health =250; + self.health = self.max_health; self.islot3 = SlotVal(IID_ARM_COMBAT, 1); self.armortype = 0.5; self.helmet = 1; diff --git a/quakec/fallout2/weapons.qc b/quakec/fallout2/weapons.qc index 16aea9034..94660ae00 100644 --- a/quakec/fallout2/weapons.qc +++ b/quakec/fallout2/weapons.qc @@ -199,7 +199,7 @@ void(float damage, float dist, float rate) FireMelee = if (dot < 0.5 && trace_ent.takedamage) { - tdam = 10 + (15*self.skill_sneak); + tdam = 25 + (30*self.skill_sneak); if (getperk(7)) tdam = tdam * 2; @@ -1595,29 +1595,29 @@ void() W_Attack = else if (weap == IID_WP_DEAGLE_M) FirePistol(18, 9, "weapons/deagle.wav", 3000, 0.1); else if (weap == IID_WP_NEEDLER) - FirePistol(16, 2, "weapons/needler.wav", 2000, 0.1); + FirePistol(10+self.skill_science, 2, "weapons/needler.wav", 2000, 0.1); else if (weap == IID_WP_GLOCK) FirePistol(12, 6, "weapons/glock.wav", 2000, 0.1); else if (weap == IID_WP_GLOCK_S) FirePistol(10, 6, "weapons/smg_s.wav", 2000, 0.1); else if (weap == IID_WP_ALIENBLASTER) - FirePulseRifle(16, 0.1, 48, 2); + FirePulseRifle(16, 0.1, 10+self.skill_science*4, 2); else if (weap == IID_WP_PIPERIFLE) - FireAssaultRifle(20, 5, "weapons/rangem.wav", 5000, 0.1); + FireAssaultRifle(15+self.skill_science, 5, "weapons/rangem.wav", 5000, 0.1); else if (weap == IID_WP_PIPERIFLE_S) - FireAssaultRifle(20, 5, "weapons/needler.wav", 5000, 0.1); + FireAssaultRifle(15+self.skill_science, 5, "weapons/needler.wav", 5000, 0.1); else if (weap == IID_WP_PIPERIFLE_S_R) - FireAssaultRifle(20, 5, "weapons/needler.wav", 5000, 0.1); + FireAssaultRifle(15+self.skill_science, 5, "weapons/needler.wav", 5000, 0.1); else if (weap == IID_WP_PIPERIFLE_SCOPE_S_R) - FireAssaultRifle(20, 5, "weapons/needler.wav", 5000, 0.1); + FireAssaultRifle(15+self.skill_science, 5, "weapons/needler.wav", 5000, 0.1); else if (weap == IID_WP_PIPERIFLE_SCOPE_S) - FireAssaultRifle(20, 5, "weapons/needler.wav", 5000, 0.1); + FireAssaultRifle(15+self.skill_science, 5, "weapons/needler.wav", 5000, 0.1); else if (weap == IID_WP_PIPERIFLE_R) - FireAssaultRifle(20, 5, "weapons/rangem.wav", 5000, 0.1); + FireAssaultRifle(15+self.skill_science, 5, "weapons/rangem.wav", 5000, 0.1); else if (weap == IID_WP_PIPERIFLE_SCOPE) - FireAssaultRifle(20, 5, "weapons/rangem.wav", 5000, 0.1); + FireAssaultRifle(15+self.skill_science, 5, "weapons/rangem.wav", 5000, 0.1); else if (weap == IID_WP_PIPERIFLE_SCOPE_R) - FireAssaultRifle(20, 5, "weapons/rangem.wav", 5000, 0.1); + FireAssaultRifle(15+self.skill_science, 5, "weapons/rangem.wav", 5000, 0.1); else if (weap == IID_WP_DKS1_S) FireAssaultRifle(35, 3, "weapons/moonlight1.wav", 5000, 0.25); else if (weap == IID_WP_WINCHESTER) @@ -1627,9 +1627,9 @@ void() W_Attack = else if (weap == IID_WP_JACKHAMMER) W_FireShotgun (1, 5, 6, 30, 1750, 2, "weapons/citykiller.wav"); else if (weap == IID_WP_GREASEGUN) - FireSMG(14, 0, "weapons/mp7.wav", 1500, 0.10); + FireSMG(14, 0, "weapons/mp5.wav", 1500, 0.10); else if (weap == IID_WP_MP9) - FireSMG(12, 0, "weapons/mp5.wav", 1500, 0.08); + FireSMG(12, 0, "ogre/ak74.wav", 1500, 0.08); else if (weap == IID_WP_GREASEGUN_S) FireSMG(12, 0, "weapons/smg_s.wav", 1500, 0.10); else if (weap == IID_WP_MP9_S) @@ -1639,13 +1639,13 @@ void() W_Attack = else if (weap == IID_WP_AK112) FireAssaultRifle(16, 10, "weapons/ak112.wav", 4000, 0.095); else if (weap == IID_WP_AK112_M) - FireAssaultRifle(16, 10, "weapons/ak112.wav", 4000, 0.095); + FireAssaultRifle(16, 10, "weapons/lsw.wav", 5000, 0.10); else if (weap == IID_WP_ACR) - FireAssaultRifle(45, 7, "weapons/amr.wav", 9000, 0.1); + FireAssaultRifle(35, 7, "weapons/bozar.wav", 9000, 0.1); else if (weap == IID_WP_AK74) FireAssaultRifle(45, 12, "ogre/ak47.wav", 3500, 0.090); else if (weap == IID_WP_DKS1) - FireAssaultRifle(40, 3, "weapons/dks-1.wav", 8000, 0.2); + FireAssaultRifle(35, 3, "weapons/dks-1.wav", 8000, 0.2); else if (weap == IID_WP_MOONLIGHT && self.zoom == 0) FireAssaultRifle(16, 10, "weapons/m4-nw.wav", 4000, 0.09); else if (weap == IID_WP_MOONLIGHT && self.zoom == 1) @@ -1762,11 +1762,7 @@ void() CheatCommand = local float x; local string y; - self.islot17 = SlotVal(IID_MISC_CHEMICALS, 50); - self.islot18 = SlotVal(IID_MISC_NUKACOLA, 50); - self.islot19 = SlotVal(IID_MISC_AEROSOL, 50); - self.islot20 = SlotVal(IID_MISC_GUM, 50); - self.islot10 = SlotVal(IID_WP_ACR, 1); + self.ammo_shells = 900; }; /* @@ -3027,7 +3023,7 @@ void (float dam, float ap, string snd, float rng, float rate) FireSMG = if (self.velocity == '0 0 0') tmp = tmp + (15*self.recoil); else - tmp = tmp + (20*self.recoil); + tmp = tmp + (25*self.recoil); self.attack = self.attack + 1; self.recoil = self.recoil + 4; @@ -3293,17 +3289,17 @@ void (float dam, float accuracy, string snd, float rng, float rate) FireAssaultR } } - + if (weap == IID_WP_MOONLIGHT) + { + if (random()<0.5) + sound (self, CHAN_WEAPON, "weapons/moonlight-1.wav", 1, ATTN_NORM); + else + sound (self, CHAN_WEAPON, "weapons/moonlight-2.wav", 1, ATTN_NORM); + } else { - if (weap == IID_WP_MOONLIGHT) - { - if (random()<0.5) - sound (self, CHAN_WEAPON, "weapons/moonlight-1.wav", 1, ATTN_NORM); - else - sound (self, CHAN_WEAPON, "weapons/moonlight-2.wav", 1, ATTN_NORM); - } - else if (weap == IID_WP_DKS1_S) + + if (weap == IID_WP_DKS1_S) sound (self, CHAN_WEAPON, "ogre/ak74.wav", 1, ATTN_NORM); else sound (self, CHAN_WEAPON, snd, 1, ATTN_NORM); @@ -3356,8 +3352,7 @@ void (float dam, float accuracy, string snd, float rng, float rate) FireAssaultR DropAmmo (); makevectors (self.v_angle); - if (self.recoil >= 10) - self.recoil = 10; + if (self.attack == 0) { @@ -3381,6 +3376,7 @@ void (float dam, float accuracy, string snd, float rng, float rate) FireAssaultR tmp = accuracy * 10; xrecoil = dam / 2; + //for the snipers if (self.position == 2 && self.recoil == 0) tmp = tmp * 0.75; @@ -3390,6 +3386,8 @@ void (float dam, float accuracy, string snd, float rng, float rate) FireAssaultR self.attack = self.attack + 1; self.recoil = self.recoil + xrecoil; + if (self.recoil >= 10) + self.recoil = 10; if (self.zoom > 0 && weap == IID_WP_G11 && self.attack == 3) { @@ -3417,6 +3415,14 @@ void (float dam, float accuracy, string snd, float rng, float rate) FireAssaultR if (self.position == 1) y = y * 0.90; + if (self.position == 2 && weap == IID_WP_AK112_M) + { + if (self.recoil >= 7) + self.recoil = 7; + + y = y * 0.10; + tmp = tmp * 0.75; + } if (random()*3<=2) self.driftx = self.driftx + y; else @@ -3442,7 +3448,7 @@ void (float dam, float accuracy, string snd, float rng, float rate) FireAssaultR stuffcmd (self, "-attack\n"); if (weap == IID_WP_FNFAL && self.zoom == 1) stuffcmd (self, "-attack\n"); - if (self.zoom > 0 && weap != IID_WP_G11 && weap != IID_WP_MOONLIGHT) + if (self.zoom > 0 && weap != IID_WP_G11 && weap != IID_WP_MOONLIGHT && weap != IID_WP_AK112_M) stuffcmd (self, "-attack\n"); if (self.zoom > 0 && weap == IID_WP_G11 && self.attack >= 3 && weap != IID_WP_MOONLIGHT) stuffcmd (self, "-attack\n"); @@ -6020,10 +6026,10 @@ void (float rec, float number, float dam, float spread, float ran, float auto, s weap = ToIID(self.(SlotField(self.current_slot))); - var1 = ((random () * 16) * (self.recoil)); - var2 = ((random () * 16) * (self.recoil)); - var3 = ((random () * 16) * (self.recoil)); - var4 = ((random () * 16) * (self.recoil)); + var1 = ((random () * 12) * (self.recoil)); + var2 = ((random () * 12) * (self.recoil)); + var3 = ((random () * 12) * (self.recoil)); + var4 = ((random () * 12) * (self.recoil)); if (self.position == 0) player_single1 (); @@ -6214,6 +6220,8 @@ void (string color) ZoomInLarge = if (color == "red") stuffcmd (self, "v_cshift 100 0 0 50\n"); + if (color == "pink") + stuffcmd (self, "v_cshift 100 0 25 50\n"); if (color == "blue") stuffcmd (self, "v_cshift 0 0 100 75\n"); if (color == "green") @@ -6235,6 +6243,8 @@ void (string color) ZoomInSmall = if (color == "red") stuffcmd (self, "v_cshift 100 0 0 50\n"); + if (color == "pink") + stuffcmd (self, "v_cshift 100 0 25 50\n"); if (color == "blue") stuffcmd (self, "v_cshift 0 0 100 75\n"); if (color == "green") @@ -6269,6 +6279,8 @@ void () ZoomIn = ZoomInLarge("purple"); if (weap == IID_WP_ACR) ZoomInLarge("pink"); + if (weap == IID_WP_AK112_M) + ZoomInSmall("pink"); if (weap == IID_WP_DKS1_S) ZoomInLarge("purple"); if (weap == IID_WP_FNFAL) diff --git a/quakec/fallout2/world.qc b/quakec/fallout2/world.qc index ce670a4db..1cba13e7f 100644 --- a/quakec/fallout2/world.qc +++ b/quakec/fallout2/world.qc @@ -703,7 +703,7 @@ if (coop == 1) // Players vs Monsters sound (world, CHAN_BODY, "misc/menu3.wav", 1, ATTN_NONE); } - else if (hdead >= 2) //hostages killed + else if (hdead > hcount) //hostages killed { if (endgame_timer == 0) bprint(2, "^4** ^bTHE HOSTAGES WERE KILLED!!!^b **\n"); @@ -1954,6 +1954,7 @@ void() worldspawn = precache_model ("progs/v_rangem.mdl"); precache_model ("progs/v_pipe.mdl"); precache_model ("progs/v_bozar.mdl"); + precache_model ("progs/v_lsw.mdl"); precache_model ("progs/v_double.mdl"); precache_model ("progs/v_combat.mdl"); precache_model ("progs/v_mp9.mdl"); @@ -2084,6 +2085,7 @@ void() worldspawn = precache_sound ("weapons/smoke.wav"); precache_sound ("weapons/energy2.wav"); + precache_sound ("misc/hosdie1.wav"); precache_sound ("misc/hosdie2.wav"); precache_sound ("misc/hosdown.wav"); @@ -2137,6 +2139,7 @@ void() worldspawn = precache_sound ("weapons/moonlight-2.wav"); precache_sound ("weapons/needler.wav"); precache_sound ("weapons/bozar.wav"); + precache_sound ("weapons/lsw.wav"); precache_sound ("weapons/amr.wav"); precache_sound ("weapons/smg_s.wav"); precache_sound ("weapons/shotgun1.wav");