r71 - trunk/basezym/progsqc
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Wed Aug 8 15:14:00 EDT 2007
Author: Vermeulen
Date: 2007-08-08 15:14:00 -0400 (Wed, 08 Aug 2007)
New Revision: 71
Modified:
trunk/basezym/progsqc/gamedefs.qc
trunk/basezym/progsqc/inventory.qc
trunk/basezym/progsqc/jumppads.qc
trunk/basezym/progsqc/mapentities.qc
trunk/basezym/progsqc/player.qc
trunk/basezym/progsqc/server.qc
Log:
Added some more weapon options
Corrected movement so it uses the player variables right
Modified: trunk/basezym/progsqc/gamedefs.qc
===================================================================
--- trunk/basezym/progsqc/gamedefs.qc 2007-07-26 01:01:22 UTC (rev 70)
+++ trunk/basezym/progsqc/gamedefs.qc 2007-08-08 19:14:00 UTC (rev 71)
@@ -3,7 +3,6 @@
.float ladder_time;
.entity ladder_entity;
-
.float jetpackfuel;
.float fade_time;
@@ -20,21 +19,19 @@
float fraglimit;
// SV_PlayerPhysics variables
-float sv_airmaxspeed, sv_maxspeed, sv_friction, sv_accelerate, sv_stopspeed, sv_gravity;
+float sv_maxairspeed, sv_maxspeed, sv_friction, sv_accelerate, sv_airaccelerate, sv_stopspeed, sv_gravity;
//float sv_edgefriction, cl_divspeed, cl_rollangle;
-vector PL_MIN = '-16 -16 -24';
-vector PL_MAX = '16 16 24';
-vector PL_VIEW_OFS = '0 0 22';
-vector PL_WEAPON_OFS = '0 4 16';
-float PL_JUMPSPEED = 175;
+// vector PL_MIN = stov(cvar_string("g_player_boxmin"));
+//vector PL_MAX = stov(cvar_string("g_player_boxmax"));
+//vector PL_VIEW_OFS = stov(cvar_string("g_player_viewofs"));
+//vector PL_WEAPON_OFS = stov(cvar_string("g_player_weaponofs"));
+//float PLAYER_HEALTH_START = cvar("g_player_healthstart");
+//float PLAYER_HEALTH_MAX = cvar("g_player_healthmax");
+//float PLAYER_SHIELD_START = cvar("g_player_shieldstart");
+//float PLAYER_SHIELD_MAX = cvar("g_player_shieldmax");
+//float PLAYER_SHIELD_REGENRATE = cvar("g_player_regenrate");
+//float PLAYER_SHIELD_REGENMAX = cvar("g_player_regenmax");
-float PLAYER_HEALTH_START = 100;
-float PLAYER_HEALTH_MAX = 200;
-float PLAYER_SHIELD_START = 200;
-float PLAYER_SHIELD_MAX = 600;
-float PLAYER_SHIELD_REGENRATE = 20;
-float PLAYER_SHIELD_REGENMAX = 200;
-
float PLAYER_FALLDAMAGE = 30;
Modified: trunk/basezym/progsqc/inventory.qc
===================================================================
--- trunk/basezym/progsqc/inventory.qc 2007-07-26 01:01:22 UTC (rev 70)
+++ trunk/basezym/progsqc/inventory.qc 2007-08-08 19:14:00 UTC (rev 71)
@@ -78,6 +78,7 @@
string iteminfo_ammo2firesound;
string iteminfo_model;
string iteminfo_pickupsound;
+string iteminfo_pickupmodel;
string iteminfo_name;
string iteminfo_pickupsprite;
float iteminfo_ammo1tracer;
@@ -139,6 +140,7 @@
iteminfo_model = "";
+ iteminfo_pickupmodel = "";
iteminfo_name = "unknown";
iteminfo_pickupsound = "";
iteminfo_quantitymax = 0;
@@ -216,6 +218,7 @@
iteminfo_model = cvar_string(wname,"_model");
iteminfo_pickupsprite = cvar_string(wname,"_pickupsprite");
iteminfo_weapon_viewmodel = cvar_string(wname,"_viewmodel");
+ iteminfo_pickupmodel = cvar_string(wname,"_pickupmodel");
iteminfo_ammo1damage = stov(cvar_string(wname,"_ammo1damage"));
iteminfo_ammo1speeds = stov(cvar_string(wname,"_ammo1speeds"));
@@ -550,25 +553,10 @@
newmis.touch = Item_Pickup;
newmis.noise = iteminfo_pickupsound;
setorigin(newmis, org);
- setmodel(newmis, iteminfo_model);
+ setmodel(newmis, iteminfo_pickupmodel);
setsize(newmis, '-4 -4 -4', '4 4 4');
Inventory_ModifyItem(newmis, itemtype, quantity, ammo1, ammo2);
// NOTE: should match viewweapon_animframefunc WS_TURNON code
-
- if (iteminfo_pickupsprite != "")
- {
- entity wsprite;
- wsprite = spawn();
- wsprite.classname = "item";
- wsprite.effects = EF_LOWPRECISION;
- wsprite.owner = own;
- wsprite.touch = SUB_Remove;
- wsprite.movetype = MOVETYPE_TOSS;
- wsprite.solid = SOLID_BBOX;
- setmodel(wsprite, iteminfo_pickupsprite);
- setsize(wsprite, '-4 -4 -4', '4 4 4');
- setorigin(wsprite, org);
- }
};
void() weapon_weap1 =
Modified: trunk/basezym/progsqc/jumppads.qc
===================================================================
--- trunk/basezym/progsqc/jumppads.qc 2007-07-26 01:01:22 UTC (rev 70)
+++ trunk/basezym/progsqc/jumppads.qc 2007-08-08 19:14:00 UTC (rev 71)
@@ -137,7 +137,7 @@
// first calculate a typical start point for the jump
org = (self.absmin + self.absmax) * 0.5;
- org_z = self.absmax_z - PL_MIN_z;
+ org_z = self.absmax_z - stov(cvar_string("g_player_boxmin"));
if (self.target)
{
Modified: trunk/basezym/progsqc/mapentities.qc
===================================================================
--- trunk/basezym/progsqc/mapentities.qc 2007-07-26 01:01:22 UTC (rev 70)
+++ trunk/basezym/progsqc/mapentities.qc 2007-08-08 19:14:00 UTC (rev 71)
@@ -27,6 +27,7 @@
};
+
void() func_ladder_touch =
{
if (other.classname != "player")
@@ -47,4 +48,3 @@
setmodel (self, self.model); // set size and link into world
self.touch = func_ladder_touch;
};
-
Modified: trunk/basezym/progsqc/player.qc
===================================================================
--- trunk/basezym/progsqc/player.qc 2007-07-26 01:01:22 UTC (rev 70)
+++ trunk/basezym/progsqc/player.qc 2007-08-08 19:14:00 UTC (rev 71)
@@ -43,19 +43,19 @@
pc = playerclass_spawn(ACTORTYPE_THEPLAYER, AITYPE_PLAYER, "models/players/spy", ".md3", "player");
- pc.health = PLAYER_HEALTH_START;
- pc.max_health = PLAYER_HEALTH_MAX;
- pc.armorvalue = PLAYER_SHIELD_START;
+ pc.health = cvar("g_player_healthstart");
+ pc.max_health = cvar("g_player_healthmax");
+ pc.armorvalue = cvar("g_player_shieldstart");
pc.armortype = 1;
- pc.armorregenrate = PLAYER_SHIELD_REGENRATE;
- pc.armorregenmax = PLAYER_SHIELD_START;
+ pc.armorregenrate = cvar("g_player_regenrate");
+ pc.armorregenmax = cvar("g_player_shieldmax");
pc.gibhealth = -100;
pc.paintake = 20;
pc.unlimitedinventory = FALSE;
pc.mass = 90;
- setsize(pc, PL_MIN, PL_MAX);
- pc.view_ofs = PL_VIEW_OFS;
- pc.weapon_ofs = PL_WEAPON_OFS;
+ setsize(pc, stov(cvar_string("g_player_boxmin")), stov(cvar_string("g_player_boxmax")));
+ pc.view_ofs = stov(cvar_string("g_player_viewofs"));
+ pc.weapon_ofs = stov(cvar_string("g_player_weaponofs"));
pc.jetpackfuel = 200;
pc.actoranim_BOTH_DEATH1 = '0 30 25';
pc.actoranim_BOTH_DEAD1 = '29 1 25';
@@ -101,9 +101,9 @@
pc.paintake = 20;
pc.unlimitedinventory = TRUE;
pc.mass = 90;
- setsize(pc, PL_MIN, PL_MAX);
- pc.view_ofs = PL_VIEW_OFS;
- pc.weapon_ofs = PL_WEAPON_OFS;
+ setsize(pc, stov(cvar_string("g_player_boxmin")), stov(cvar_string("g_player_boxmax")));
+ pc.view_ofs = stov(cvar_string("g_player_viewofs"));
+ pc.weapon_ofs = stov(cvar_string("g_player_weaponofs"));
pc.actoranim_BOTH_DEATH1 = '0 30 25';
pc.actoranim_BOTH_DEAD1 = '29 1 25';
pc.actoranim_BOTH_DEATH2 = '30 30 25';
@@ -136,19 +136,19 @@
Inventory_ModifyItem(pc, ITEMTYPE_WEAP2_AMMO, iteminfo_ammo1inventorymax * 2, 0, 0);
pc = playerclass_spawn(ACTORTYPE_HEAVYGUARD, AITYPE_SMARTFELLOW, "models/players/soldier", ".md3", "player");
- pc.health = PLAYER_HEALTH_START;
- pc.max_health = PLAYER_HEALTH_MAX;
- pc.armorvalue = PLAYER_SHIELD_START;
+ pc.health = cvar("g_player_healthstart");
+ pc.max_health = cvar("g_player_healthmax");
+ pc.armorvalue = cvar("g_player_shieldstart");
pc.armortype = 1;
- pc.armorregenrate = PLAYER_SHIELD_REGENRATE;
- pc.armorregenmax = PLAYER_SHIELD_START;
+ pc.armorregenrate = cvar("g_player_regenrate");
+ pc.armorregenmax = cvar("g_player_shieldmax");
pc.gibhealth = -100;
pc.paintake = 20;
pc.unlimitedinventory = TRUE;
pc.mass = 90;
- setsize(pc, PL_MIN, PL_MAX);
- pc.view_ofs = PL_VIEW_OFS;
- pc.weapon_ofs = PL_WEAPON_OFS;
+ setsize(pc, stov(cvar_string("g_player_boxmin")), stov(cvar_string("g_player_boxmax")));
+ pc.view_ofs = stov(cvar_string("g_player_viewofs"));
+ pc.weapon_ofs = stov(cvar_string("g_player_weaponofs"));
pc.actoranim_BOTH_DEATH1 = '0 30 25';
pc.actoranim_BOTH_DEAD1 = '29 1 25';
pc.actoranim_BOTH_DEATH2 = '30 30 25';
@@ -433,9 +433,9 @@
local float im;
if (self.flags & FL_CLIENT) // only real players can respawn, not NPCs
- if (self.jetpackfuel < 200 && (!(self.jetpackactive)))
+ if (self.jetpackfuel < cvar("g_player_jetpack_fuelmax") && (!(self.jetpackactive)))
{
- self.jetpackfuel = self.jetpackfuel + 0.1;
+ self.jetpackfuel = self.jetpackfuel + cvar("g_player_jetpack_fuelregenair");
}
if (self.deadflag)
@@ -455,9 +455,9 @@
if (!self.deadflag)
if (self.flags & FL_ONGROUND)
{
- if (self.jetpackfuel < 200 && (!(self.jetpackactive)))
+ if (self.jetpackfuel < cvar("g_player_jetpack_fuelmax") && (!(self.jetpackactive)))
{
- self.jetpackfuel = self.jetpackfuel + 0.2;
+ self.jetpackfuel = self.jetpackfuel + cvar("g_player_jetpack_fuelregenground");
}
if (self.jumpflag || self.oldvelocity_z < -200)
@@ -478,7 +478,7 @@
{
sound(self, CHAN_BODY, strcat(self.playerclass.sounddir, "/jump.wav"), 1, ATTN_NORM);
anim_start(self, self.playerclass.actoranim_LEGS_JUMP, ANIMTYPE_JUMP, anim_nullfunc);
- self.velocity_z = self.velocity_z + PL_JUMPSPEED;
+ self.velocity_z = self.velocity_z + cvar("g_player_jumpspeed");
self.flags = self.flags - self.flags & (FL_ONGROUND | FL_JUMPRELEASED);
self.jumpflag = TRUE;
}
@@ -487,7 +487,7 @@
{
if (self.button5)
{
- self.jetpackfuel = max(0, self.jetpackfuel - 80 * frametime);
+ self.jetpackfuel = max(0, self.jetpackfuel - cvar("g_player_jetpack_use") * frametime);
//self.armorregentime = max(self.armorregentime, time + ACTOR_SHIELD_REGENDELAY);
//self.armorregenplaysound = TRUE;
if (!self.jetpackactive)
@@ -585,15 +585,12 @@
float sv_airaccel_sideways_friction = 0.3;
-float sv_maxairspeed = 220;
float sv_airaccel_qw = 0.93;
-float sv_airaccelerate = 3;
void() SV_PlayerPhysics =
{
local vector wishvel, wishdir, v;
local float wishspeed, f;
- local float maxairspeed;
local float velo_z;
if (self.movetype == MOVETYPE_NONE)
@@ -682,23 +679,22 @@
}
else if (self.button5 && self.jetpackfuel > 5)
{
- maxairspeed = sv_maxairspeed;
makevectors(self.v_angle_y * '0 1 0');
wishvel = v_forward * self.movement_x + v_right * self.movement_y;
// acceleration
wishdir = normalize(wishvel);
wishspeed = vlen(wishvel);
- if (wishspeed > maxairspeed)
- wishspeed = maxairspeed;
+ if (wishspeed > sv_maxairspeed)
+ wishspeed = sv_maxairspeed;
if (wishvel_x > 0 || wishvel_y > 0)
{
- velo_z = sv_gravity * (self.jetpackacc + 3 * (1 - wishspeed / maxairspeed));
+ velo_z = sv_gravity * (self.jetpackacc + 3 * (1 - wishspeed / sv_maxairspeed));
}
else
{
self.jetpackacc = self.jetpackacc + 0.1;
- velo_z = sv_gravity * (self.jetpackacc + 3 * (1 - wishspeed / maxairspeed));
+ velo_z = sv_gravity * (self.jetpackacc + 3 * (1 - wishspeed / sv_maxairspeed));
}
if (time >= self.teleport_time)
@@ -706,23 +702,22 @@
}
else if (self.button6 && self.jetpackfuel > 5)
{
- maxairspeed = sv_maxairspeed;
makevectors(self.v_angle_y * '0 1 0');
wishvel = v_forward * self.movement_x + v_right * self.movement_y;
// acceleration
wishdir = normalize(wishvel);
wishspeed = vlen(wishvel);
- if (wishspeed > maxairspeed)
- wishspeed = maxairspeed;
+ if (wishspeed > sv_maxairspeed)
+ wishspeed = sv_maxairspeed;
if (wishvel_x > 0 || wishvel_y > 0)
{
- velo_z = sv_gravity * ((self.jetpackacc*1.5) + 3 * (1 - wishspeed / maxairspeed));
+ velo_z = sv_gravity * ((self.jetpackacc*1.5) + 3 * (1 - wishspeed / sv_maxairspeed));
}
else
{
self.jetpackacc = self.jetpackacc + 0.2;
- velo_z = sv_gravity * ((self.jetpackacc*1.5) + 3 * (1 - wishspeed / maxairspeed));
+ velo_z = sv_gravity * ((self.jetpackacc*1.5) + 3 * (1 - wishspeed / sv_maxairspeed));
}
velo_z = velo_z * -1;
@@ -1115,7 +1110,7 @@
void() player_regen =
{
- if (self.armorvalue < PLAYER_SHIELD_REGENMAX)
+ if (self.armorvalue < cvar("g_player_regenmax"))
if (time > self.armorregentime)
if (!self.deadflag)
{
Modified: trunk/basezym/progsqc/server.qc
===================================================================
--- trunk/basezym/progsqc/server.qc 2007-07-26 01:01:22 UTC (rev 70)
+++ trunk/basezym/progsqc/server.qc 2007-08-08 19:14:00 UTC (rev 71)
@@ -43,10 +43,11 @@
fraglimit = cvar("fraglimit");
// player physics variables
- sv_airmaxspeed = cvar("sv_airmaxspeed");
+ sv_maxairspeed = cvar("sv_maxairspeed");
sv_maxspeed = cvar("sv_maxspeed");
sv_friction = cvar("sv_friction");
sv_accelerate = cvar("sv_accelerate");
+ sv_airaccelerate = cvar("sv_airaccelerate");
sv_stopspeed = cvar("sv_stopspeed");
sv_gravity = cvar("sv_gravity");
More information about the zymotic-commits
mailing list