[nexuiz-commits] r7677 - in trunk/data: . qcsrc/server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Mon Sep 7 01:34:16 EDT 2009
Author: div0
Date: 2009-09-07 01:34:15 -0400 (Mon, 07 Sep 2009)
New Revision: 7677
Modified:
trunk/data/qcsrc/server/cl_weaponsystem.qc
trunk/data/qcsrc/server/w_laser.qc
trunk/data/weapons.cfg
trunk/data/weapons25.cfg
trunk/data/weaponsHavoc.cfg
Log:
laser: add a cvar g_balance_laser_*_shotangle to change the angle of the laser shot.
Useful e.g. for making laser secondary shoot 90 degrees downwards compared to crosshair direction.
Modified: trunk/data/qcsrc/server/cl_weaponsystem.qc
===================================================================
--- trunk/data/qcsrc/server/cl_weaponsystem.qc 2009-09-06 21:46:39 UTC (rev 7676)
+++ trunk/data/qcsrc/server/cl_weaponsystem.qc 2009-09-07 05:34:15 UTC (rev 7677)
@@ -126,7 +126,7 @@
// this function calculates w_shotorg and w_shotdir based on the weapon model
// offset, trueaim and antilag, and won't put w_shotorg inside a wall.
// make sure you call makevectors first (FIXME?)
-void W_SetupShot_ProjectileSize(entity ent, vector mi, vector ma, float antilag, float recoil, string snd, float maxdamage)
+void W_SetupShot_Dir_ProjectileSize(entity ent, vector s_forward, vector mi, vector ma, float antilag, float recoil, string snd, float maxdamage)
{
float nudge = 1; // added to traceline target and subtracted from result
local vector trueaimpoint;
@@ -134,7 +134,7 @@
vector vecs, dv;
oldsolid = ent.dphitcontentsmask;
ent.dphitcontentsmask = DPCONTENTS_SOLID | DPCONTENTS_BODY | DPCONTENTS_CORPSE;
- traceline(ent.origin + ent.view_ofs, ent.origin + ent.view_ofs + v_forward * MAX_SHOT_DISTANCE, MOVE_NOMONSTERS, ent); // no antilag needed
+ traceline(ent.origin + ent.view_ofs, ent.origin + ent.view_ofs + s_forward * MAX_SHOT_DISTANCE, MOVE_NOMONSTERS, ent); // no antilag needed
trueaimpoint = trace_endpos;
// Track max damage and set the stat to be sent later in g_world.qc
@@ -301,10 +301,9 @@
sound (ent, CHAN_AUTO, "weapons/strength_fire.wav", VOL_BASE, ATTN_NORM);
};
-void W_SetupShot(entity ent, float antilag, float recoil, string snd, float maxdamage)
-{
- W_SetupShot_ProjectileSize(ent, '0 0 0', '0 0 0', antilag, recoil, snd, maxdamage);
-}
+#define W_SetupShot_ProjectileSize(ent,mi,ma,antilag,recoil,snd,maxdamage) W_SetupShot_Dir_ProjectileSize(ent, v_forward, mi, ma, antilag, recoil, snd, maxdamage)
+#define W_SetupShot_Dir(ent,s_forward,antilag,recoil,snd,maxdamage) W_SetupShot_Dir_ProjectileSize(ent, s_forward, '0 0 0', '0 0 0', antilag, recoil, snd, maxdamage)
+#define W_SetupShot(ent,antilag,recoil,snd,maxdamage) W_SetupShot_ProjectileSize(ent, '0 0 0', '0 0 0', antilag, recoil, snd, maxdamage)
void LaserTarget_Think()
{
Modified: trunk/data/qcsrc/server/w_laser.qc
===================================================================
--- trunk/data/qcsrc/server/w_laser.qc 2009-09-06 21:46:39 UTC (rev 7676)
+++ trunk/data/qcsrc/server/w_laser.qc 2009-09-07 05:34:15 UTC (rev 7677)
@@ -16,8 +16,19 @@
void W_Laser_Attack (float issecondary)
{
local entity missile;
+ vector s_forward;
+ float a;
- W_SetupShot (self, FALSE, 3, "weapons/lasergun_fire.wav", cvar("g_balance_laser_secondary_damage"));
+ if (issecondary)
+ a = cvar("g_balance_laser_secondary_shotangle");
+ else
+ a = cvar("g_balance_laser_primary_shotangle");
+ s_forward = v_forward * cos(a * DEG2RAD) + v_up * sin(a * DEG2RAD);
+
+ if(issecondary)
+ W_SetupShot_Dir (self, s_forward, FALSE, 3, "weapons/lasergun_fire.wav", cvar("g_balance_laser_secondary_damage"));
+ else
+ W_SetupShot_Dir (self, s_forward, FALSE, 3, "weapons/lasergun_fire.wav", cvar("g_balance_laser_primary_damage"));
pointparticles(particleeffectnum("laser_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
missile = spawn ();
Modified: trunk/data/weapons.cfg
===================================================================
--- trunk/data/weapons.cfg 2009-09-06 21:46:39 UTC (rev 7676)
+++ trunk/data/weapons.cfg 2009-09-07 05:34:15 UTC (rev 7677)
@@ -96,6 +96,7 @@
set g_balance_laser_primary_refire 0.3
set g_balance_laser_primary_animtime 0.3
set g_balance_laser_primary_lifetime 30
+set g_balance_laser_primary_shotangle 0
set g_balance_laser_secondary 1 // when 1, a secondary laser mode exists
set g_balance_laser_secondary_damage 45
set g_balance_laser_secondary_edgedamage 0
@@ -105,6 +106,7 @@
set g_balance_laser_secondary_refire 1
set g_balance_laser_secondary_animtime 0.3
set g_balance_laser_secondary_lifetime 30
+set g_balance_laser_secondary_shotangle 0
set g_balance_shotgun_primary_bullets 21
set g_balance_shotgun_primary_damage 5
Modified: trunk/data/weapons25.cfg
===================================================================
--- trunk/data/weapons25.cfg 2009-09-06 21:46:39 UTC (rev 7676)
+++ trunk/data/weapons25.cfg 2009-09-07 05:34:15 UTC (rev 7677)
@@ -96,6 +96,7 @@
set g_balance_laser_primary_refire 0.7
set g_balance_laser_primary_animtime 0.3
set g_balance_laser_primary_lifetime 30
+set g_balance_laser_primary_shotangle 0
set g_balance_laser_secondary 0 // when 1, a secondary laser mode exists
set g_balance_laser_secondary_damage 35
set g_balance_laser_secondary_edgedamage 10
@@ -105,6 +106,7 @@
set g_balance_laser_secondary_refire 0.7
set g_balance_laser_secondary_animtime 0.3
set g_balance_laser_secondary_lifetime 30
+set g_balance_laser_secondary_shotangle 0
set g_balance_shotgun_primary_bullets 6
set g_balance_shotgun_primary_damage 12
Modified: trunk/data/weaponsHavoc.cfg
===================================================================
--- trunk/data/weaponsHavoc.cfg 2009-09-06 21:46:39 UTC (rev 7676)
+++ trunk/data/weaponsHavoc.cfg 2009-09-07 05:34:15 UTC (rev 7677)
@@ -91,6 +91,7 @@
set g_balance_laser_primary_refire 0.3
set g_balance_laser_primary_animtime 0.3
set g_balance_laser_primary_lifetime 30
+set g_balance_laser_primary_shotangle 0
set g_balance_laser_secondary 1 // when 1, a secondary laser mode exists
set g_balance_laser_secondary_damage 45
set g_balance_laser_secondary_edgedamage 0
@@ -100,6 +101,7 @@
set g_balance_laser_secondary_refire 1
set g_balance_laser_secondary_animtime 0.3
set g_balance_laser_secondary_lifetime 30
+set g_balance_laser_secondary_shotangle 0
set g_balance_shotgun_primary_bullets 21
set g_balance_shotgun_primary_damage 6
More information about the nexuiz-commits
mailing list