From d73f56e8d0a6a953b7beac0e9f7210d23a7eb461 Mon Sep 17 00:00:00 2001 From: Mario Date: Thu, 29 Aug 2013 21:33:27 +1000 Subject: [PATCH] Remove W_SetupShot from monster code & fix minibosses flying --- qcsrc/common/monsters/lib/monsters.qc | 1 - qcsrc/common/monsters/monster/brute.qc | 15 ++++++++------- qcsrc/common/monsters/monster/knight.qc | 2 +- qcsrc/common/monsters/monster/mage.qc | 7 ++----- qcsrc/common/monsters/monster/spider.qc | 13 ++++++------- qcsrc/server/cl_weaponsystem.qc | 5 ++--- qcsrc/server/mutators/gamemode_ctf.qc | 2 +- 7 files changed, 20 insertions(+), 25 deletions(-) diff --git a/qcsrc/common/monsters/lib/monsters.qc b/qcsrc/common/monsters/lib/monsters.qc index 4abf318dc..e423b55ed 100644 --- a/qcsrc/common/monsters/lib/monsters.qc +++ b/qcsrc/common/monsters/lib/monsters.qc @@ -212,7 +212,6 @@ void Monster_CheckMinibossFlag () if ((self.spawnflags & MONSTERFLAG_MINIBOSS) || (chance < autocvar_g_monsters_miniboss_chance)) { self.health += autocvar_g_monsters_miniboss_healthboost; - self.flags |= MONSTERFLAG_MINIBOSS; if not(self.weapon) self.weapon = WEP_NEX; } diff --git a/qcsrc/common/monsters/monster/brute.qc b/qcsrc/common/monsters/monster/brute.qc index f0268b728..3f50e5d2d 100644 --- a/qcsrc/common/monsters/monster/brute.qc +++ b/qcsrc/common/monsters/monster/brute.qc @@ -57,8 +57,8 @@ void brute_uzi() monster_makevectors(self.enemy); - W_SetupShot (self, autocvar_g_antilag_bullets && 18000 >= autocvar_g_antilag_bullets, 0, "weapons/uzi_fire.wav", CH_WEAPON_A, MON_CVAR(brute, attack_uzi_damage)); - fireBallisticBullet(w_shotorg, w_shotdir, 0.02, 18000, 5, MON_CVAR(brute, attack_uzi_damage), MON_CVAR(brute, attack_uzi_force), DEATH_MONSTER_BRUTE_UZI, 0, 1, 115); + sound(self, CH_WEAPON_A, "weapons/uzi_fire.wav", VOL_BASE, ATTN_NORM); + fireBallisticBullet(CENTER_OR_VIEWOFS(self), v_forward, 0.02, 18000, 5, MON_CVAR(brute, attack_uzi_damage), MON_CVAR(brute, attack_uzi_force), DEATH_MONSTER_BRUTE_UZI, 0, 1, 115); endFireBallisticBullet(); if(self.brute_cycles <= MON_CVAR(brute, attack_uzi_bullets)) @@ -116,9 +116,10 @@ void brute_grenade_think() void brute_grenade() { entity gren; - - W_SetupShot_ProjectileSize (self, '-3 -3 -3', '3 3 3', FALSE, 4, "weapons/grenade_fire.wav", CH_WEAPON_A, MON_CVAR(brute, attack_grenade_damage)); - w_shotdir = v_forward; // no TrueAim for grenades please + + monster_makevectors(self.enemy); + + sound(self, CH_WEAPON_A, "weapons/grenade_fire.wav", VOL_BASE, ATTN_NORM); gren = spawn (); gren.owner = gren.realowner = self; @@ -128,7 +129,7 @@ void brute_grenade() gren.movetype = MOVETYPE_BOUNCE; PROJECTILE_MAKETRIGGER(gren); gren.projectiledeathtype = DEATH_MONSTER_BRUTE_GRENADE; - setorigin(gren, w_shotorg); + setorigin(gren, CENTER_OR_VIEWOFS(self)); setsize(gren, '-3 -3 -3', '3 3 3'); gren.cnt = time + 5; @@ -143,7 +144,7 @@ void brute_grenade() gren.event_damage = brute_grenade_damage; gren.damagedbycontents = TRUE; gren.missile_flags = MIF_SPLASH | MIF_ARC; - W_SetupProjectileVelocityEx(gren, w_shotdir, v_up, MON_CVAR(brute, attack_grenade_speed), MON_CVAR(brute, attack_grenade_speed_up), 0, 0, FALSE); + W_SetupProjectileVelocityEx(gren, v_forward, v_up, MON_CVAR(brute, attack_grenade_speed), MON_CVAR(brute, attack_grenade_speed_up), 0, 0, FALSE); gren.angles = vectoangles (gren.velocity); gren.flags = FL_PROJECTILE; diff --git a/qcsrc/common/monsters/monster/knight.qc b/qcsrc/common/monsters/monster/knight.qc index f87ca0091..c41c18b9d 100644 --- a/qcsrc/common/monsters/monster/knight.qc +++ b/qcsrc/common/monsters/monster/knight.qc @@ -285,7 +285,7 @@ float m_knight(float req) { float chance = random(); monsters_setframe((random() > 0.5) ? knight_anim_death1 : knight_anim_death2); - if(chance < 0.10 || self.flags & MONSTERFLAG_MINIBOSS) + if(chance < 0.10 || self.spawnflags & MONSTERFLAG_MINIBOSS) if(self.candrop) { self.superweapons_finished = time + autocvar_g_balance_superweapons_time + 5; // give the player a few seconds to find the weapon diff --git a/qcsrc/common/monsters/monster/mage.qc b/qcsrc/common/monsters/monster/mage.qc index 67a3fac95..19d7b116d 100644 --- a/qcsrc/common/monsters/monster/mage.qc +++ b/qcsrc/common/monsters/monster/mage.qc @@ -127,10 +127,7 @@ void mage_grenade_touch() void mage_throw_itemgrenade() { makevectors(self.angles); - - W_SetupShot_ProjectileSize (self, '-64 -64 -64', '64 64 64', FALSE, 4, "", CH_WEAPON_A, MON_CVAR(mage, attack_grenade_damage)); - w_shotdir = v_forward; // no TrueAim for grenades please - + entity gren = spawn (); gren.owner = gren.realowner = self; gren.classname = "grenade"; @@ -147,7 +144,7 @@ void mage_throw_itemgrenade() gren.touch = mage_grenade_touch; gren.missile_flags = MIF_SPLASH | MIF_ARC; - W_SetupProjectileVelocityEx(gren, w_shotdir, v_up, MON_CVAR(mage, attack_grenade_speed), MON_CVAR(mage, attack_grenade_speed_up), 0, 0, FALSE); + W_SetupProjectileVelocityEx(gren, v_forward, v_up, MON_CVAR(mage, attack_grenade_speed), MON_CVAR(mage, attack_grenade_speed_up), 0, 0, FALSE); gren.flags = FL_PROJECTILE; diff --git a/qcsrc/common/monsters/monster/spider.qc b/qcsrc/common/monsters/monster/spider.qc index 8888faa05..c88ca98a1 100644 --- a/qcsrc/common/monsters/monster/spider.qc +++ b/qcsrc/common/monsters/monster/spider.qc @@ -99,10 +99,10 @@ void spider_shootweb(float ptype) } vector fmins = '-4 -4 -4', fmaxs = '4 4 4'; - - W_SetupShot_ProjectileSize(self, fmins, fmaxs, FALSE, 2, snd, CH_WEAPON_A, 0); - - w_shotdir = v_forward; // no TrueAim for grenades please + + monster_makevectors(self.enemy); + + sound(self, CH_SHOTS, snd, VOL_BASE, ATTN_NORM); entity proj = spawn (); proj.classname = "plasma"; @@ -114,12 +114,12 @@ void spider_shootweb(float ptype) proj.nextthink = time + 5; PROJECTILE_MAKETRIGGER(proj); proj.projectiledeathtype = DEATH_MONSTER_SPIDER_FIRE; - setorigin(proj, w_shotorg); + setorigin(proj, CENTER_OR_VIEWOFS(self)); //proj.glow_size = 50; //proj.glow_color = 45; proj.movetype = MOVETYPE_BOUNCE; - W_SetupProjectileVelocityEx(proj, w_shotdir, v_up, MON_CVAR(spider, attack_web_speed), MON_CVAR(spider, attack_web_speed_up), 0, 0, FALSE); + W_SetupProjectileVelocityEx(proj, v_forward, v_up, MON_CVAR(spider, attack_web_speed), MON_CVAR(spider, attack_web_speed_up), 0, 0, FALSE); proj.touch = spider_web_touch; setsize(proj, fmins, fmaxs); proj.takedamage = DAMAGE_NO; @@ -155,7 +155,6 @@ float spider_attack(float attack_type) monsters_setframe(spider_anim_attack2); self.attack_finished_single = time + MON_CVAR(spider, attack_web_delay); - monster_makevectors(self.enemy); spider_shootweb(self.spider_type); return TRUE; diff --git a/qcsrc/server/cl_weaponsystem.qc b/qcsrc/server/cl_weaponsystem.qc index 131c54378..134007cc9 100644 --- a/qcsrc/server/cl_weaponsystem.qc +++ b/qcsrc/server/cl_weaponsystem.qc @@ -163,9 +163,8 @@ void W_SetupShot_Dir_ProjectileSize_Range(entity ent, vector s_forward, vector m // track max damage if(accuracy_canbegooddamage(ent)) accuracy_add(ent, ent.weapon, maxdamage, 0); - - if not(ent.flags & FL_MONSTER) - W_HitPlotAnalysis(ent, v_forward, v_right, v_up); + + W_HitPlotAnalysis(ent, v_forward, v_right, v_up); if(ent.weaponentity.movedir_x > 0) vecs = ent.weaponentity.movedir; diff --git a/qcsrc/server/mutators/gamemode_ctf.qc b/qcsrc/server/mutators/gamemode_ctf.qc index f4d1c31cf..988462940 100644 --- a/qcsrc/server/mutators/gamemode_ctf.qc +++ b/qcsrc/server/mutators/gamemode_ctf.qc @@ -454,7 +454,7 @@ void ctf_Handle_Return(entity flag, entity player) if(IS_PLAYER(player)) Send_Notification(NOTIF_ONE, player, MSG_CENTER, APP_TEAM_ENT_2(flag, CENTER_CTF_RETURN_)); - Send_Notification(NOTIF_ALL, world, MSG_INFO, APP_TEAM_ENT_2(flag, INFO_CTF_RETURN_), player.netname); + Send_Notification(NOTIF_ALL, world, MSG_INFO, APP_TEAM_ENT_2(flag, INFO_CTF_RETURN_), (player.flags & FL_MONSTER) ? player.monster_name : player.netname); sound(player, CH_TRIGGER, flag.snd_flag_returned, VOL_BASE, ATTN_NONE); ctf_EventLog("return", flag.team, player); -- 2.39.2