From 66ccd6b57ffe7bb63de51f96421c2b345e7fe9a9 Mon Sep 17 00:00:00 2001 From: div0 Date: Fri, 6 Feb 2009 13:30:56 +0000 Subject: [PATCH] add laser pickup model; make laser optionally throwable To throw a laser, do: g_start_weapon_laser 0 sv_cheats 1 map basement impulse 99 impulse 1 impulse 17 git-svn-id: svn://svn.icculus.org/nexuiz/trunk@5780 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/models/weapons/g_laser.md3 | Bin 0 -> 28148 bytes data/qcsrc/server/cl_weapons.qc | 34 +++++++++++--------------------- data/qcsrc/server/w_laser.qc | 1 + data/scripts/entities.def | 18 ++++++++++++++++- 4 files changed, 29 insertions(+), 24 deletions(-) create mode 100644 data/models/weapons/g_laser.md3 diff --git a/data/models/weapons/g_laser.md3 b/data/models/weapons/g_laser.md3 new file mode 100644 index 0000000000000000000000000000000000000000..2ad2895b9aec83411b3b41e4c6785157c181947f GIT binary patch literal 28148 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 literal 0 HcmV?d00001 diff --git a/data/qcsrc/server/cl_weapons.qc b/data/qcsrc/server/cl_weapons.qc index 2be2bab33..4bfb86f24 100644 --- a/data/qcsrc/server/cl_weapons.qc +++ b/data/qcsrc/server/cl_weapons.qc @@ -232,8 +232,6 @@ void W_ThrowWeapon(vector velo, vector delta, float doreduce) w = self.weapon; if (w == 0) return; // just in case - if (w == WEP_LASER) - return; // just in case if (g_weaponarena) return; if (g_lms) @@ -255,6 +253,7 @@ void W_ThrowWeapon(vector velo, vector delta, float doreduce) return; if(wa != IT_SUPERWEAPON && start_items & IT_UNLIMITED_WEAPON_AMMO) return; + // start weapons that take no ammo can't be dropped (this prevents dropping the laser, as long as it continues to use no ammo) if(wa == 0) return; } @@ -379,30 +378,19 @@ float nixnex_nextweapon; void Nixnex_ChooseNextWeapon() { - float numberof, id; - numberof = WEP_LAST - WEP_FIRST; // all but the current one - if(g_nixnex_with_laser) - numberof = numberof - 1; - id = WEP_FIRST + floor(random() * numberof); - - if(g_nixnex_with_laser) // skip the laser if needed - id = id + 1; - - if(id >= nixnex_weapon) // skip the current weapon - id = id + 1; + float j; + entity e; - if(id < WEP_FIRST) // can't happen, but to be sure... + RandomSelection_Init(); + for(j = WEP_FIRST; j <= WEP_LAST; ++j) { - dprint("Won't happen (id < WEP_FIRST)\n"); - id = WEP_FIRST; + if(j == WEP_LASER && g_nixnex_with_laser) + continue; + if(!e.weapons) // skip dummies + continue; + RandomSelection_Add(world, j, 1, 0); } - if(id > WEP_LAST) // either - { - dprint("Won't happen (id > WEP_LAST)\n"); - id = WEP_LAST; - } - - nixnex_nextweapon = id; + nixnex_nextweapon = RandomSelection_chosen_float; } void Nixnex_GiveCurrentWeapon() diff --git a/data/qcsrc/server/w_laser.qc b/data/qcsrc/server/w_laser.qc index a2bd900d3..a3525270b 100644 --- a/data/qcsrc/server/w_laser.qc +++ b/data/qcsrc/server/w_laser.qc @@ -103,6 +103,7 @@ float w_laser(float req) } else if (req == WR_PRECACHE) { + precache_model ("models/weapons/g_laser.md3"); precache_model ("models/weapons/v_laser.md3"); precache_model ("models/weapons/w_laser.zym"); precache_sound ("weapons/lasergun_fire.wav"); diff --git a/data/scripts/entities.def b/data/scripts/entities.def index fb0f28c23..231130600 100644 --- a/data/scripts/entities.def +++ b/data/scripts/entities.def @@ -974,6 +974,20 @@ FLOATING: the item will float in air, instead of aligning to the floor by fallin model="models/weapons/g_hagar.md3" */ +/*QUAKED weapon_laser (1 0 .5) (-30 -30 0) (30 30 32) FLOATING +the Laser. Note that unless you use + settemp_for_type all g_start_weapon_laser 0 +in your mapinfo file, everyone will already spawn with one, making this pickup useless. +-------- KEYS -------- +respawntime: time till it respawns (default: 15) +team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot. +cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely. +-------- SPAWNFLAGS -------- +FLOATING: the item will float in air, instead of aligning to the floor by falling +-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- +model="models/weapons/g_laser.md3" +*/ + /*QUAKED weapon_nex (1 0 .5) (-30 -30 0) (30 30 32) FLOATING the Nex In Minstagib, this turns into an item_minst_cells if no explicit item_minst_cells have been placed. @@ -1003,7 +1017,9 @@ model="models/weapons/g_rl.md3" */ /*QUAKED weapon_shotgun (1 0 .5) (-30 -30 0) (30 30 32) FLOATING -the Shotgun +the Shotgun. Note that unless you use + settemp_for_type all g_start_weapon_shotgun 0 +in your mapinfo file, everyone will already spawn with one, making this pickup useless. -------- KEYS -------- ammo_shells: initial shells of the weapon (if unset, g_pickup_shells is used) respawntime: time till it respawns (default: 15) -- 2.39.2