r85 - trunk/basezym/progsqc
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Tue Nov 20 02:20:57 EST 2007
Author: vermeulen
Date: 2007-11-20 02:20:56 -0500 (Tue, 20 Nov 2007)
New Revision: 85
Modified:
trunk/basezym/progsqc/actor.qc
trunk/basezym/progsqc/dpextensions.qc
trunk/basezym/progsqc/gamedefs.qc
trunk/basezym/progsqc/inventory.qc
trunk/basezym/progsqc/player.qc
Log:
Added some unfinished item use code, needs switching between items
Added a trail and light to the user if using jetpack
Modified: trunk/basezym/progsqc/actor.qc
===================================================================
--- trunk/basezym/progsqc/actor.qc 2007-11-18 02:52:01 UTC (rev 84)
+++ trunk/basezym/progsqc/actor.qc 2007-11-20 07:20:56 UTC (rev 85)
@@ -7,6 +7,7 @@
.entity actorpart_weapon;
.entity actorpart_viewweapon;
.entity actorpart_hand;
+.entity actorpart_jetpacktrail;
float ACTORTYPE_INVALID = 0;
float ACTORTYPE_CLASS1 = 1;
@@ -120,8 +121,13 @@
self.actorpart_hand.classname = "actorpart_hand";
self.actorpart_hand.think = actor_part_hand_think;
self.actorpart_hand.nextthink = time;
+
+ self.actorpart_jetpacktrail = spawn();
}
-
+ setmodel(self.actorpart_jetpacktrail,"models/players/jetpack_tracer.mdl");
+ setattachment(self.actorpart_jetpacktrail, self.actorpart_torso, "tag_jetpack");
+ self.actorpart_jetpacktrail.effects = self.actorpart_jetpacktrail.effects | EF_NODRAW;
+
setmodel(self, strcat(self.playerclass.modeldir, "/lower", self.playerclass.modelext));
setmodel(self.actorpart_torso, strcat(self.playerclass.modeldir, "/upper", self.playerclass.modelext));
setmodel(self.actorpart_head, strcat(self.playerclass.modeldir, "/head", self.playerclass.modelext));
@@ -227,6 +233,7 @@
.float weapon_oldbutton0;
.float weapon_oldbutton3;
+.float weapon_oldbutton7;
.float lowerguntime;
void(float animdone) viewweapon_animframefunc =
{
@@ -301,9 +308,12 @@
weapon_state(WS_FIRE1);
else if (self.button3 && iteminfo_weapon_canfire2 && (!self.weapon_oldbutton3 || !(iteminfo_ammo2flags & PROJECTILEFLAG_SEMIAUTOMATIC)))
weapon_state(WS_FIRE2);
+ else if (self.button7 && iteminfo_weapon_canfire1 && (!self.weapon_oldbutton7))
+ weapon_state(WS_FIRE3);
}
self.weapon_oldbutton0 = self.button0;
self.weapon_oldbutton3 = self.button3;
+ self.weapon_oldbutton7 = self.button7;
self = oldself;
};
@@ -354,6 +364,12 @@
self.viewmodelchange = self.viewmodelchange + iteminfo_ammo2viewmodelpush;
weapon_fire(TRUE);
}
+ else if (newstate == WS_FIRE3)
+ {
+ Inventory_GetItemInfo(self, ITEMTYPE_ITEM1);
+ anim_start(self.actorpart_torso, self.playerclass.actoranim_TORSO_ATTACK, ANIMTYPE_IDLE, torso_animframefunc);
+ weapon_fire(FALSE);
+ }
else if (newstate == WS_RELOAD)
{
anim_start(self.actorpart_viewweapon, iteminfo_weapon_viewmodelanim_reload, ANIMTYPE_IDLE, viewweapon_animframefunc);
@@ -456,10 +472,9 @@
}
if (self.unlimitedinventory == 0)
- if (self.weaponitem >= ITEMTYPE_ITEM1)
+ if (iteminfo_ammotype < ITEMTYPE_AMMO1) // then it's an item
{
- Inventory_ModifyItem(self, self.weaponitem, 0 - mintofire, 0);
- Item_Spawn(self.weaponitem,1,0,self.origin,'300 0 0',0,1,world);
+ Inventory_ModifyItem(self, ITEMTYPE_ITEM1 + self.itemselected - 1, 0 - mintofire, 0);
}
else
{
Modified: trunk/basezym/progsqc/dpextensions.qc
===================================================================
--- trunk/basezym/progsqc/dpextensions.qc 2007-11-18 02:52:01 UTC (rev 84)
+++ trunk/basezym/progsqc/dpextensions.qc 2007-11-20 07:20:56 UTC (rev 85)
@@ -378,7 +378,7 @@
.float button4;
.float button5;
.float button6;
-//.float button7;
+.float button7;
//.float button8;
//description:
//set to the state of the +button3, +button4, +button5, +button6, +button7, and +button8 buttons from the client, this does not involve protocol changes (the extra 6 button bits were simply not used).
Modified: trunk/basezym/progsqc/gamedefs.qc
===================================================================
--- trunk/basezym/progsqc/gamedefs.qc 2007-11-18 02:52:01 UTC (rev 84)
+++ trunk/basezym/progsqc/gamedefs.qc 2007-11-20 07:20:56 UTC (rev 85)
@@ -7,6 +7,8 @@
.float itemitemtype;
+.float itemselected;
+
.vector viewmodelchange;
.vector viewmodeldiff;
Modified: trunk/basezym/progsqc/inventory.qc
===================================================================
--- trunk/basezym/progsqc/inventory.qc 2007-11-18 02:52:01 UTC (rev 84)
+++ trunk/basezym/progsqc/inventory.qc 2007-11-20 07:20:56 UTC (rev 85)
@@ -32,11 +32,12 @@
float WS_IDLE = 0;
float WS_FIRE1 = 1;
float WS_FIRE2 = 2;
-float WS_RELOAD = 3;
-float WS_LOWER = 4;
-float WS_RAISE = 5;
-float WS_TURNON = 6;
-float WS_TURNOFF = 7;
+float WS_FIRE3 = 4;
+float WS_RELOAD = 5;
+float WS_LOWER = 6;
+float WS_RAISE = 7;
+float WS_TURNON = 8;
+float WS_TURNOFF = 9;
.float weaponitem;
.float weaponstate;
@@ -210,7 +211,7 @@
iteminfo_weapon_rank = 0;
- if (itemtype < ITEMTYPE_ITEM1)
+ if (itemtype < ITEMTYPE_AMMO1)
{
// set the settings for all weapons
iteminfo_quantitymax = 1;
@@ -221,9 +222,21 @@
string wname;
if (itemtype < ITEMTYPE_AI_WEAP1)
+ {
wname = strcat("g_weap",ftos(itemtype + 1));
+ iteminfo_ammotype = cvar(wname,"_ammotype") + ITEMTYPE_AMMO1 - 1;
+ }
+ else if (itemtype < ITEMTYPE_ITEM1)
+ {
+ wname = strcat("g_ai_weap",ftos(itemtype - ITEMTYPE_AI_WEAP1 + 1));
+ iteminfo_ammotype = cvar(wname,"_ammotype") + ITEMTYPE_AMMO1 - 1;
+ }
else
- wname = strcat("g_ai_weap",ftos(itemtype - ITEMTYPE_AI_WEAP1 + 1));
+ {
+ wname = strcat("g_item",ftos(itemtype - ITEMTYPE_ITEM1 + 1));
+ iteminfo_quantitymax = cvar(wname,"_quantitymax");
+ iteminfo_ammotype = itemtype; // so the firing code knows it's a item
+ }
iteminfo_ammo1damagetype = DAMAGETYPE_WEAP1 + itemtype;
iteminfo_ammo2damagetype = DAMAGETYPE_WEAP1 + itemtype;
@@ -234,7 +247,6 @@
iteminfo_pickupmodel = cvar_string(wname,"_pickupmodel");
iteminfo_viewmodeloffset = stov(cvar_string(wname,"_viewmodeloffset"));
- iteminfo_ammotype = cvar(wname,"_ammotype") + ITEMTYPE_AMMO1 - 1;
iteminfo_ammomax = cvar(wname,"_ammomax");
iteminfo_ammoinventorymax = cvar(wname,"_ammoinventorymax");
@@ -242,7 +254,7 @@
iteminfo_ammo1speeds = stov(cvar_string(wname,"_ammo1speeds"));
iteminfo_ammo1model = cvar_string(wname,"_ammo1model");
iteminfo_ammo1firesound = cvar_string(wname,"_ammo1firesound");
- //iteminfo_ammo1explodesound = strzone(cvar_string(wname,"_ammo1explodesound")); // BAD
+ //iteminfo_ammo1explodesound = strzone(cvar_string(wname,"_ammo1explodesound"));
iteminfo_ammo1flags = cvar(wname,"_ammo1flags");
iteminfo_ammo1numberof = cvar(wname,"_ammo1numberof");
iteminfo_ammo1recoil = cvar(wname,"_ammo1recoil");
@@ -261,7 +273,7 @@
iteminfo_ammo2speeds = stov(cvar_string(wname,"_ammo2speeds"));
iteminfo_ammo2model = cvar_string(wname,"_ammo2model");
iteminfo_ammo2firesound = cvar_string(wname,"_ammo2firesound");
- //iteminfo_ammo2explodesound = strzone(cvar_string(wname,"_ammo2explodesound")); // BAD
+ //iteminfo_ammo2explodesound = strzone(cvar_string(wname,"_ammo2explodesound"));
iteminfo_ammo2flags = cvar(wname,"_ammo2flags");
iteminfo_ammo2numberof = cvar(wname,"_ammo2numberof");
iteminfo_ammo2recoil = cvar(wname,"_ammo2recoil");
@@ -276,20 +288,6 @@
iteminfo_ammo2viewmodelpush = stov(cvar_string(wname,"_ammo2viewmodelpush"));
iteminfo_weapon_viewmodelanim_fire2 = stov(cvar_string(wname,"_fire2"));
}
- else if (itemtype < ITEMTYPE_AMMO1)
- {
- wname = strcat("g_item",ftos(itemtype - ITEMTYPE_ITEM1 + 1));
-
- iteminfo_name = cvar_string(wname,"_name");
- iteminfo_model = cvar_string(wname,"_model");
- iteminfo_pickupsound = cvar_string(wname,"_pickupsound");
- iteminfo_ammo1firesound = cvar_string(wname,"_firesound");
- iteminfo_ammo1explodesound = cvar_string(wname,"_explodesound");
- iteminfo_ammo1bouncesound = cvar_string(wname,"_bouncesound");
- iteminfo_quantitymax = cvar(wname,"_quantitymax");
- iteminfo_ammo1speeds = stov(cvar_string(wname,"_speeds"));
- iteminfo_ammotype = itemtype;
- }
else if (itemtype < ITEMTYPE_TOTAL)
{
wname = strcat("g_ammo",ftos(itemtype - ITEMTYPE_AMMO1 + 1));
@@ -306,11 +304,8 @@
if (iteminfo_ammotype == itemtype)
{
// usable items such as flares
- iteminfo_ammo1flags = PROJECTILEFLAG_SEMIAUTOMATIC;
iteminfo_ammo1minimumtofire = 1;
- iteminfo_ammo1model = iteminfo_model;
iteminfo_ammomax = iteminfo_ammo1minimumtofire;
- iteminfo_ammoinventorymax = iteminfo_quantitymax - iteminfo_ammo1minimumtofire;
if (iteminfo_quantity >= iteminfo_ammo1minimumtofire)
{
iteminfo_ammo = iteminfo_ammo1minimumtofire;
@@ -380,6 +375,8 @@
if (iteminfo_model != "") precache_model(iteminfo_model);
if (iteminfo_ammo1model != "") precache_model(iteminfo_ammo1model);
if (iteminfo_ammo2model != "") precache_model(iteminfo_ammo2model);
+ if (iteminfo_ammo1tracermodel != "") precache_model(iteminfo_ammo1tracermodel);
+ if (iteminfo_ammo2tracermodel != "") precache_model(iteminfo_ammo2tracermodel);
if (iteminfo_pickupsound != "") precache_sound(iteminfo_pickupsound);
if (iteminfo_ammo1firesound != "") precache_sound(iteminfo_ammo1firesound);
if (iteminfo_ammo1explodesound != "") precache_sound(iteminfo_ammo1explodesound);
Modified: trunk/basezym/progsqc/player.qc
===================================================================
--- trunk/basezym/progsqc/player.qc 2007-11-18 02:52:01 UTC (rev 84)
+++ trunk/basezym/progsqc/player.qc 2007-11-20 07:20:56 UTC (rev 85)
@@ -188,6 +188,8 @@
Inventory_GetItemInfo(pc, startingweapon);
Inventory_ModifyItem(pc, startingweapon, 1, iteminfo_ammomax);
}
+ Inventory_GetItemInfo(pc, ITEMTYPE_ITEM1);
+ Inventory_ModifyItem(pc, ITEMTYPE_ITEM1, 10, 0);
}
};
@@ -266,6 +268,8 @@
self.jumpspeed = pc.jumpspeed;
self.speedratio = pc.speedratio;
+ self.itemselected = 1;
+
setsize (self, pc.mins, pc.maxs);
Inventory_CloneFromInventory(self, pc);
@@ -471,7 +475,7 @@
{
self.viewmodelchange_x = self.viewmodelchange_x - (self.movement_x / 1000);
self.viewmodelchange_y = self.viewmodelchange_y - (self.movement_y / 1000);
- self.viewmodelchange_z = self.viewmodelchange_z - (self.velocity_z / 1000);
+ self.viewmodelchange_z = self.viewmodelchange_z - (self.velocity_z / 2000);
Inventory_GetItemInfo(self, self.weaponitem);
self.viewmodeldiff = iteminfo_viewmodeloffset - self.viewmodelchange;
@@ -530,6 +534,11 @@
{
if (self.button5)
{
+ if ((self.jetpack_fuel > 50) && (self.actorpart_jetpacktrail.effects & EF_NODRAW))
+ self.actorpart_jetpacktrail.effects = self.actorpart_jetpacktrail.effects - EF_NODRAW;
+ else if (self.jetpack_fuel < 50)
+ self.actorpart_jetpacktrail.effects = self.actorpart_jetpacktrail.effects | EF_NODRAW;
+
self.jetpack_fuel = max(0, self.jetpack_fuel - self.jetpack_use * frametime);
if (!self.jetpackactive)
{
@@ -544,6 +553,7 @@
self.jetpackacc = self.jetpack_accbase;
sound(self, CHAN_BODY, strcat(self.playerclass.sounddir, "/jetpackstop.wav"), 1, ATTN_NORM);
self.jetpackactive = FALSE;
+ self.actorpart_jetpacktrail.effects = self.actorpart_jetpacktrail.effects | EF_NODRAW;
}
}
}
More information about the zymotic-commits
mailing list