diff --git a/quakec/fallout2/client.qc b/quakec/fallout2/client.qc index fd116ec8d..18bc8a92e 100644 --- a/quakec/fallout2/client.qc +++ b/quakec/fallout2/client.qc @@ -12,7 +12,7 @@ void(entity to, float iid, float amount) AddStackable; void(entity to, float iid, float amount) AddNonStackable; void() shop_face; -float modelindex_dead, modelindex_sneak, modelindex_prone, modelindex_eyes, modelindex_player, modelindex_gone, modelindex_melee; +float modelindex_dead, modelindex_sneak, modelindex_prone, modelindex_eyes, modelindex_player, modelindex_gone, modelindex_melee, modelindex_crawl; /* ============================================================================= @@ -676,6 +676,9 @@ void() PutClientInServer = setmodel (self, "progs/eyes.mdl"); modelindex_eyes = self.modelindex; + setmodel (self, "progs/prone.mdl"); + modelindex_crawl = self.modelindex; + setmodel (self, "progs/lay.mdl"); modelindex_prone = self.modelindex; @@ -1933,8 +1936,10 @@ void() CheckPowerups = if (self.position <= 1) self.modelindex = modelindex_player; - if (self.position == 2) + if (self.position == 2 && self.velocity == '0 0 0') self.modelindex = modelindex_prone; + if (self.position == 2 && self.velocity != '0 0 0') + self.modelindex = modelindex_crawl; if (self.sneak > 0 && coop == 0) self.modelindex = modelindex_gone; if (self.sneak > 0 && coop == 1) diff --git a/quakec/fallout2/inventory.qc b/quakec/fallout2/inventory.qc index 527bbe088..680af4f11 100644 --- a/quakec/fallout2/inventory.qc +++ b/quakec/fallout2/inventory.qc @@ -2567,7 +2567,7 @@ string (float slot, float int) PerkName = if (int == 1) return "Support Fire"; if (int == 2) - return "Duck And Cover"; + return "I Disappear"; if (int == 3) return "Puppet Master"; if (int == 4) @@ -2579,9 +2579,9 @@ string (float slot, float int) PerkName = if (int == 7) return "Narrow Escape"; if (int == 8) - return "Schizophrenia"; + return "Schizophrenia!"; if (int == 9) - return "Place Effect"; + return "Placebo Effect"; if (int == 10) return "Economic Moves"; if (int == 11) @@ -2591,27 +2591,27 @@ string (float slot, float int) PerkName = string (float slot, float int) PerkNameCentered = { if (int == 1) - return " Support Fire"; + return " Support Fire "; if (int == 2) - return " Duck And Cover"; + return " I Disappear "; if (int == 3) - return " Puppet Master "; + return " Puppet Master "; if (int == 4) - return " Stay Low"; + return " Stay Low "; if (int == 5) return "Surgical Precision"; if (int == 6) - return " Mutation"; + return " Mutation "; if (int == 7) - return " Narrow Escape"; + return " Narrow Escape "; if (int == 8) - return " Schizophrenia"; + return " Schizophrenia! "; if (int == 9) - return " Place Effect"; + return " Placebo Effect "; if (int == 10) - return " Economic Moves"; + return " Economic Moves "; if (int == 11) - return " Nuclear Man"; + return " Nuclear Man "; }; @@ -2620,7 +2620,7 @@ string(float int) GetPerkImage = if (int == 1) return "gui/perks/Support Fire.jpg"; else if (int == 2) - return "gui/perks/Duck And Cover.jpg"; + return "gui/perks/I Disappear.jpg"; else if (int == 3) return "gui/perks/Puppet Master.jpg"; else if (int == 4) @@ -2639,6 +2639,8 @@ string(float int) GetPerkImage = return "gui/perks/Economic Moves.jpg"; else if (int == 11) return "gui/perks/Nuclear Man.jpg"; + else if (int == 12) + return "gui/perks/Commander.jpg"; else return "gui/perks/none.jpg"; @@ -2652,13 +2654,13 @@ string(float int) GetPerkDesc = else if (int == 2) return "Being a hero is overrated! You try your best to not look"; else if (int == 3) - return "Your black heart has a weird effect over the denizens of"; + return "Your black heart has a strange effect on the denizens of"; else if (int == 4) return "You know how to take cover! While prone, any attack that"; else if (int == 5) return "You have gained in-depth knowledge of vital organs. Your"; else if (int == 6) - return "The radiation has mutated your body slightly. A critical"; + return "Exposure to the wasteland has caused your body to mutate"; else if (int == 7) return "For when your friend really, really needs that stimpack!"; else if (int == 8) @@ -2669,6 +2671,8 @@ string(float int) GetPerkDesc = return "You can move more effectively than most people. Movement"; else if (int == 11) return "Your body has adapted to radiation to the point that you"; + else if (int == 12) + return "Your supreme leadership affects all of those around you,"; else return ""; @@ -2679,129 +2683,163 @@ string(float int) GetPerkDesc2 = if (int == 1) return "will drastically reduce recoil while lying down."; else if (int == 2) - return "dangerous - making monsters attack your friends!"; + return "dangerous - making monsters forget about you!"; else if (int == 3) return "the wasteland - you can turn a few to your side!"; else if (int == 4) return "is non-aimed deals much less damage to you."; else if (int == 5) - return "aimed attacks get a damage bonus equal to Doctor skill."; + return "aimed attacks are boosted by your Doctor skill."; else if (int == 6) - return "hit no longer has quite the same sting it once had."; + return "and change, granting mysterious effects."; else if (int == 7) return "Provides you a few free seconds to escape danger."; else if (int == 8) return "sometimes takes over your body, boosting all skills."; else if (int == 9) - return "to believe your stimpak is much better than it is."; + return "to believe you are giving them a super stimpack."; else if (int == 10) return "actions suffer much less time-related penalties."; else if (int == 11) return "can absorb small amounts, healing you as well!"; + else if (int == 12) + return " inspiring allies and causing foes to tremble."; else return ""; }; +string(float int) GetPerkRequirements = +{ + if (int == 1) + return "Combat 5"; + else if (int == 2) + return "Sneak 5, Speech 5"; + else if (int == 3) + return "Speech 7, Science 5"; + else if (int == 4) + return "Combat 3"; + else if (int == 5) + return "Doctor 5, Sneak 3"; + else if (int == 6) + return "None"; + else if (int == 7) + return "Sneak: 7"; + else if (int == 8) + return "None"; + else if (int == 9) + return "Speech 5, Doctor 5"; + else if (int == 10) + return "Combat 5, Sneak 5"; + else if (int == 11) + return "None"; + else if (int == 12) + return "Combat 7, Speech 5"; + else if (int == 13) + return "Sneak 5, Science 5"; + else + return ""; + +}; float(float iid) GetItemThreatLevel = { if (iid == IID_NONE) return 0; if (iid == IID_WP_KNIFE) - return 1; + return 0; if (iid == IID_WP_SLEDGE) - return 1; + return 0; if (iid == IID_WP_SPEAR) - return 1; + return 0; if (iid == IID_WP_POWERAXE) - return 1; + return 0; if (iid == IID_WP_USP) - return 1; + return 0; if (iid == IID_WP_USP_S) - return 1; + return 0; if (iid == IID_WP_GLOCK) - return 1; + return 0; if (iid == IID_WP_GLOCK_S) - return 1; + return 0; if (iid == IID_WP_DEAGLE) - return 1; + return 0; if (iid == IID_WP_DEAGLE_M) - return 1; + return 0; if (iid == IID_WP_NEEDLER) - return 3; + return 2; if (iid == IID_WP_ALIENBLASTER) - return 3; + return 2; if (iid == IID_WP_PIPERIFLE) - return 1; + return 0; if (iid == IID_WP_WINCHESTER) - return 1; + return 0; if (iid == IID_WP_MOSSBERG) - return 3; + return 1; if (iid == IID_WP_JACKHAMMER) - return 5; + return 2; if (iid == IID_WP_GREASEGUN) - return 1; + return 0; if (iid == IID_WP_GREASEGUN_S) - return 1; + return 0; if (iid == IID_WP_MP9) - return 1; + return 0; if (iid == IID_WP_MP9_S) - return 1; + return 0; if (iid == IID_WP_RANGEMASTER) - return 1; + return 0; if (iid == IID_WP_RANGEMASTER_SCOPE) - return 1; + return 0; if (iid == IID_WP_AK112) - return 3; + return 1; if (iid == IID_WP_AK47) - return 3; + return 1; if (iid == IID_WP_AK112_M) - return 3; + return 1; if (iid == IID_WP_AK74) - return 5; + return 1; if (iid == IID_WP_ACR) - return 5; + return 2; if (iid == IID_WP_DKS1) - return 3; + return 1; if (iid == IID_WP_DKS1_S) - return 3; + return 1; if (iid == IID_WP_MOONLIGHT) - return 5; + return 2; if (iid == IID_WP_G11) - return 5; + return 2; if (iid == IID_WP_GAUSERIFLE) - return 7; + return 2; if (iid == IID_WP_PULSERIFLE) - return 7; + return 2; if (iid == IID_WP_TURBOPLASMA) - return 7; + return 2; if (iid == IID_WP_PLASMACARBINE) - return 7; + return 2; if (iid == IID_WP_FNFAL) - return 5; + return 2; if (iid == IID_WP_ROCKETLAUNCHER) - return 7; + return 2; if (iid == IID_WP_LASERGATLING) - return 7; + return 2; if (iid == IID_ARM_LEATHER) - return 1; + return 0; if (iid == IID_ARM_VANDAL) - return 1; + return 0; if (iid == IID_ARM_METAL) - return 1; + return 0; if (iid == IID_ARM_TESLA) return 1; if (iid == IID_ARM_COMBAT) - return 3; + return 1; if (iid == IID_ARM_SEVA) - return 3; + return 1; if (iid == IID_ARM_FORCE) - return 5; + return 2; if (iid == IID_ARM_LPOWER) - return 7; + return 2; diff --git a/quakec/fallout2/player.qc b/quakec/fallout2/player.qc index d086fa372..fae0a0317 100644 --- a/quakec/fallout2/player.qc +++ b/quakec/fallout2/player.qc @@ -98,8 +98,7 @@ void () CrawlSound = rand = random (); - if (self.sneak != 0) - return; + if (self.velocity == '0 0 0') { self.crawltime = 0; @@ -128,6 +127,14 @@ void () CrawlSound = void () player_lay = [ 45, player_run ] { + if (self.velocity != '0 0 0') + self.frame = 8 - self.crawltime; + else if (self.velocity == '0 0 0') + { + self.frame = 0; + return; + } + self.crawltime = self.crawltime - 1; if (self.crawltime <= 0) @@ -135,6 +142,8 @@ void () player_lay = [ 45, player_run ] CrawlSound(); self.crawltime = 8; } + + }; void () player_single_shot = [ 89, player_single_shot2 ]{}; diff --git a/quakec/fallout2/weapons.qc b/quakec/fallout2/weapons.qc index 899513969..cdde64983 100644 --- a/quakec/fallout2/weapons.qc +++ b/quakec/fallout2/weapons.qc @@ -488,8 +488,8 @@ void(float slotno) UsePerk = { if (te.classname == "monster") { - te.hold = 180; - spawn_stop(te, 10); + te.hold = 120; + spawn_stop(te, 8); mcount = mcount + 1; } te = te.chain; @@ -504,7 +504,7 @@ void(float slotno) UsePerk = sound (self, CHAN_BODY, "items/damage.wav", 1, ATTN_NORM); sprint(self, 2, "it is time...\n"); - self.supertime = 20; + self.supertime = 15; self.skill_combat = self.skill_combat + 20; self.skill_doctor = self.skill_doctor + 20; self.skill_sneak = self.skill_sneak + 20; @@ -777,6 +777,24 @@ void () player_single2_s = [ 183, player_run ] self.weaponframe = 2; }; + + + +void () player_fire_prone = +{ + + if (self.weaponframe == 0) + { + self.weaponframe = 1; + self.frame = 1; + } + else + { + self.weaponframe = 1; + self.frame = 1; + } +}; + //============================================================================ vector() wall_velocity = @@ -3231,7 +3249,7 @@ void (float dam, float ap, string snd, float rng, float rate) FirePistol = if (self.position == 1) player_single1_s(); if (self.position == 2) - player_single1_s(); + player_fire_prone(); if (self.position == 0) @@ -3715,7 +3733,7 @@ void (float dam, float accuracy, string snd, float rng, float rate) FireAssaultR if (self.position == 1) player_single1_s (); if (self.position == 2) - player_single1 (); + player_fire_prone (); } if (self.attack >= 1) { @@ -3724,7 +3742,7 @@ void (float dam, float accuracy, string snd, float rng, float rate) FireAssaultR if (self.position == 1) autofire_s (); if (self.position == 2) - player_single1 (); + player_fire_prone (); } tmp = accuracy * 10; @@ -6147,8 +6165,10 @@ void (float rec, float number, float dam, float spread, float ran, float auto, s if (self.position == 0) player_single1 (); - else + else if (self.position == 1) player_single1_s (); + else if (self.position == 2) + player_fire_prone(); if (self.steadyaim == 0) { @@ -6510,7 +6530,11 @@ void () HostageReport = void () clone_think = { - self.model = self.owner.model; + if (self.owner.velocity == '0 0 0') + setmodel(self, "progs/lay.mdl"); + else + setmodel(self, "progs/prone.mdl"); + self.frame = self.owner.frame; self.nextthink = time + 0.01; }; @@ -6520,7 +6544,11 @@ void () AddClone = local entity clone; clone = spawn (); - setmodel(clone, "progs/guy.mdl"); + + + setmodel(clone, "progs/prone.mdl"); + + clone.owner = self; clone.movetype = MOVETYPE_BOUNCE; clone.solid = SOLID_NOT; diff --git a/quakec/fallout2/world.qc b/quakec/fallout2/world.qc index 6c888c538..0f68107e5 100644 --- a/quakec/fallout2/world.qc +++ b/quakec/fallout2/world.qc @@ -129,8 +129,8 @@ void() get_difficulty = //challenge rating system // //0-24 level of difficulty - //0 = barely equipped players - //24 = using the best arms and equipment + //0 = barely equipped players + //6 = 1 player using best arms and armor challenge_rating = 0; @@ -326,13 +326,13 @@ void() map_startup = world.map_ent2_percent = t; world.map_ent3_percent = x; -if (challenge_rating < 4) +if (challenge_rating < 2) { world.map_ent1 = 2 + ceil(random()*6); world.map_ent2 = ceil(random()*8); world.map_ent3 = ceil(random()*8); } -else if (challenge_rating < 8) +else if (challenge_rating < 4) { world.map_ent1 = 2 + ceil(random()*8); world.map_ent2 = 4 + ceil(random()*6); @@ -1591,6 +1591,7 @@ void() worldspawn = precache_model ("progs/melee.mdl"); precache_model ("progs/guy.mdl"); precache_model ("progs/lay.mdl"); + precache_model ("progs/prone.mdl"); precache_model ("progs/eyes.mdl"); precache_model ("progs/h_player.mdl"); precache_model ("progs/gib1.mdl"); @@ -1786,11 +1787,8 @@ void() worldspawn = precache_sound ("ogre/ak47.wav"); precache_sound ("weapons/usp.wav"); precache_sound ("weapons/10mmpistol.wav"); - precache_sound ("weapons/auto2.wav"); precache_sound ("weapons/ak112.wav"); precache_sound ("weapons/amr.wav"); - precache_sound ("weapons/blowoff-1.wav"); - precache_sound ("weapons/blowoff-2.wav"); precache_sound ("misc/bounce_1.wav"); precache_sound ("misc/bounce_2.wav"); precache_sound ("misc/bounce_3.wav"); @@ -1798,13 +1796,11 @@ void() worldspawn = precache_sound ("weapons/click.wav"); precache_sound ("weapons/deagle.wav"); precache_sound ("weapons/dks-1.wav"); - precache_sound ("weapons/fnfal.wav"); precache_sound ("weapons/g11.wav"); precache_sound ("weapons/gauss.wav"); precache_sound ("weapons/gpull.wav"); precache_sound ("weapons/citykiller.wav"); precache_sound ("weapons/laser.wav"); - precache_sound ("weapons/laserburst1.wav"); precache_sound ("weapons/blaster.wav"); precache_sound ("weapons/moonlight-1.wav"); precache_sound ("weapons/moonlight-2.wav"); @@ -1812,20 +1808,13 @@ void() worldspawn = 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"); - precache_sound ("weapons/mp5.wav"); - precache_sound ("weapons/mp7.wav"); + precache_sound ("weapons/greasegun.wav"); + precache_sound ("weapons/mp9.wav"); precache_sound ("weapons/rangem.wav"); precache_sound ("weapons/tink1.wav"); - precache_sound ("weapons/shell.wav"); precache_sound ("weapons/reload.wav"); - precache_sound ("weapons/silenced.wav"); - precache_sound ("misc/greload.wav"); - precache_sound ("misc/build1.wav"); - precache_sound ("misc/build2.wav"); - precache_sound ("misc/build3.wav"); + precache_sound ("player/agdie1.wav"); precache_sound ("player/agdie2.wav"); precache_sound ("player/agdie3.wav"); @@ -1840,19 +1829,6 @@ void() worldspawn = precache_sound ("contact/armor2.wav"); precache_sound ("contact/armor3.wav"); - precache_sound ("contact/rico1.wav"); - precache_sound ("contact/rico2.wav"); - precache_sound ("contact/rico3.wav"); - precache_sound ("contact/rico4.wav"); - precache_sound ("contact/rico5.wav"); - precache_sound ("contact/rico6.wav"); - precache_sound ("contact/rico7.wav"); - precache_sound ("contact/rico8.wav"); - precache_sound ("contact/rico9.wav"); - precache_sound ("contact/rico10.wav"); - precache_sound ("contact/rico11.wav"); - precache_sound ("contact/rico12.wav"); - precache_sound ("player/paina.wav"); precache_sound ("player/painb.wav"); precache_sound ("player/yourturn.wav"); @@ -1860,20 +1836,14 @@ void() worldspawn = precache_model ("progs/bolt2.mdl"); // for lightning gun precache_model ("progs/bolt3.mdl"); // for boss shock precache_model ("progs/lavaball.mdl"); // for testing - - precache_model ("progs/bomb.mdl"); precache_model ("progs/missile.mdl"); precache_model ("progs/grenade.mdl"); precache_model ("progs/spike.mdl"); precache_model ("progs/s_spike.mdl"); - precache_model ("progs/backpack.mdl"); - precache_model ("progs/zom_gib.mdl"); - precache_model ("progs/v_light.mdl"); - precache_model ("maps/crate.bsp"); //