Simplify prediction code with the help from upstream SDK changes.
This commit is contained in:
parent
73c834c3eb
commit
133bf4fec2
38 changed files with 605 additions and 935 deletions
|
@ -77,10 +77,10 @@ switch (fHeader) {
|
|||
FX_BreakModel(count, vecPos, vSize, [0,0,0], fStyle);
|
||||
break;
|
||||
case EV_IMPACT:
|
||||
int iType;
|
||||
impactType_t iType;
|
||||
vector vOrigin, vNormal;
|
||||
|
||||
iType = (int)readbyte();
|
||||
iType = (impactType_t)readbyte();
|
||||
vOrigin[0] = readcoord();
|
||||
vOrigin[1] = readcoord();
|
||||
vOrigin[2] = readcoord();
|
||||
|
|
|
@ -18,56 +18,56 @@ static CUIWindow winChooseTeam;
|
|||
static CUIWindow winCTTeam;
|
||||
static CUIWindow winTTeam;
|
||||
|
||||
void
|
||||
void
|
||||
T_Skin1(void)
|
||||
{
|
||||
sendevent("GamePlayerSpawn", "f", 1);
|
||||
winTTeam.Hide();
|
||||
}
|
||||
void
|
||||
void
|
||||
T_Skin2(void)
|
||||
{
|
||||
sendevent("GamePlayerSpawn", "f", 2);
|
||||
winTTeam.Hide();
|
||||
}
|
||||
void
|
||||
void
|
||||
T_Skin3(void)
|
||||
{
|
||||
sendevent("GamePlayerSpawn", "f", 3);
|
||||
winTTeam.Hide();
|
||||
}
|
||||
void
|
||||
void
|
||||
T_Skin4(void)
|
||||
{
|
||||
sendevent("GamePlayerSpawn", "f", 4);
|
||||
winTTeam.Hide();
|
||||
}
|
||||
|
||||
void
|
||||
void
|
||||
CT_Skin1(void)
|
||||
{
|
||||
sendevent("GamePlayerSpawn", "f", 5);
|
||||
winCTTeam.Hide();
|
||||
}
|
||||
void
|
||||
void
|
||||
CT_Skin2(void)
|
||||
{
|
||||
sendevent("GamePlayerSpawn", "f", 6);
|
||||
winCTTeam.Hide();
|
||||
}
|
||||
void
|
||||
void
|
||||
CT_Skin3(void)
|
||||
{
|
||||
sendevent("GamePlayerSpawn", "f", 7);
|
||||
winCTTeam.Hide();
|
||||
}
|
||||
void
|
||||
void
|
||||
CT_Skin4(void)
|
||||
{
|
||||
sendevent("GamePlayerSpawn", "f", 8);
|
||||
winCTTeam.Hide();
|
||||
}
|
||||
void
|
||||
void
|
||||
VGUI_GoSpectator(void)
|
||||
{
|
||||
sendevent("GamePlayerSpawn", "f", 0);
|
||||
|
|
|
@ -936,7 +936,8 @@ CSEv_JoinTeam_f
|
|||
Event Handling, called by the Client codebase via 'sendevent'
|
||||
=================
|
||||
*/
|
||||
void CSEv_JoinTeam_f(float flChar)
|
||||
void
|
||||
CSEv_JoinTeam_f(float flChar)
|
||||
{
|
||||
CSMultiplayerRules rules = (CSMultiplayerRules)g_grMode;
|
||||
player pl = (player)self;
|
||||
|
@ -1004,7 +1005,8 @@ void CSEv_JoinTeam_f(float flChar)
|
|||
}
|
||||
}
|
||||
|
||||
void CSEv_JoinAuto(void)
|
||||
void
|
||||
CSEv_JoinAuto(void)
|
||||
{
|
||||
int ct_count = 0;
|
||||
int t_count = 1;
|
||||
|
|
|
@ -159,7 +159,7 @@ hostage_entity::Pain(void)
|
|||
Money_AddMoney((base_player)g_dmg_eAttacker, -(g_dmg_iDamage * 25));
|
||||
}
|
||||
|
||||
void
|
||||
void
|
||||
hostage_entity::Death(void)
|
||||
{
|
||||
WarnAllies();
|
||||
|
|
|
@ -22,7 +22,8 @@ class item_suit:CBaseTrigger
|
|||
virtual void(void) Respawn;
|
||||
};
|
||||
|
||||
void item_suit::touch(void)
|
||||
void
|
||||
item_suit::touch(void)
|
||||
{
|
||||
player pl = (player)other;
|
||||
|
||||
|
@ -48,7 +49,8 @@ void item_suit::touch(void)
|
|||
}
|
||||
}
|
||||
|
||||
void item_suit::Respawn(void)
|
||||
void
|
||||
item_suit::Respawn(void)
|
||||
{
|
||||
SetSolid(SOLID_TRIGGER);
|
||||
SetMovetype(MOVETYPE_TOSS);
|
||||
|
@ -60,7 +62,8 @@ void item_suit::Respawn(void)
|
|||
nextthink = -1;
|
||||
}
|
||||
|
||||
void item_suit::item_suit(void)
|
||||
void
|
||||
item_suit::item_suit(void)
|
||||
{
|
||||
model = "models/w_kevlar.mdl";
|
||||
precache_sound("items/tr_kevlar.wav");
|
||||
|
|
|
@ -19,7 +19,8 @@
|
|||
UseWorkaround
|
||||
====================
|
||||
*/
|
||||
void UseWorkaround(entity eTarget)
|
||||
void
|
||||
UseWorkaround(entity eTarget)
|
||||
{
|
||||
eActivator = self;
|
||||
entity eOldSelf = self;
|
||||
|
@ -33,7 +34,8 @@ void UseWorkaround(entity eTarget)
|
|||
Player_UseDown
|
||||
====================
|
||||
*/
|
||||
void Player_UseDown(void)
|
||||
void
|
||||
Player_UseDown(void)
|
||||
{
|
||||
if (self.health <= 0) {
|
||||
return;
|
||||
|
@ -67,14 +69,18 @@ void Player_UseDown(void)
|
|||
Player_UseUp
|
||||
====================
|
||||
*/
|
||||
void Player_UseUp(void) {
|
||||
void
|
||||
Player_UseUp(void)
|
||||
{
|
||||
if (!(self.flags & FL_USE_RELEASED)) {
|
||||
self.flags |= FL_USE_RELEASED;
|
||||
}
|
||||
}
|
||||
|
||||
void Weapons_Draw(void);
|
||||
void CSEv_PlayerSwitchWeapon_i(int w)
|
||||
|
||||
void
|
||||
CSEv_PlayerSwitchWeapon_i(int w)
|
||||
{
|
||||
player pl = (player)self;
|
||||
pl.activeweapon = w;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
void Radio_BroadcastMessage(float fMessage)
|
||||
void Radio_TeamMessage(float fMessage, float fTeam)
|
||||
float Radio_DefaultStart(void)
|
||||
void Radio_StartMessage(void)
|
||||
void Radio_BroadcastMessage(float fMessage);
|
||||
void Radio_TeamMessage(float fMessage, float fTeam);
|
||||
float Radio_DefaultStart(void);
|
||||
void Radio_StartMessage(void);
|
||||
|
|
|
@ -24,7 +24,8 @@ Game_InitRules(void)
|
|||
}
|
||||
}
|
||||
|
||||
void Game_Worldspawn(void)
|
||||
void
|
||||
Game_Worldspawn(void)
|
||||
{
|
||||
precache_model("models/player/arctic/arctic.mdl");
|
||||
precache_model("models/player/gign/gign.mdl");
|
||||
|
|
|
@ -21,7 +21,8 @@ info_player_start
|
|||
Counter-Terrorist Spawnpoints
|
||||
=================
|
||||
*/
|
||||
void info_player_start(void)
|
||||
void
|
||||
info_player_start(void)
|
||||
{
|
||||
if (autocvar_fcs_swapteams == TRUE) {
|
||||
self.classname = "info_player_deathmatch";
|
||||
|
@ -36,7 +37,8 @@ info_player_deathmatch
|
|||
Terrorist Spawnpoints
|
||||
=================
|
||||
*/
|
||||
void info_player_deathmatch(void)
|
||||
void
|
||||
info_player_deathmatch(void)
|
||||
{
|
||||
if (autocvar_fcs_swapteams == TRUE) {
|
||||
self.classname = "info_player_start";
|
||||
|
@ -45,14 +47,16 @@ void info_player_deathmatch(void)
|
|||
}
|
||||
|
||||
/* Counter-Strike: Source compat */
|
||||
void info_player_counterterrorist(void)
|
||||
void
|
||||
info_player_counterterrorist(void)
|
||||
{
|
||||
setorigin(self, self.origin + [0,0,32]);
|
||||
self.classname = "info_player_start";
|
||||
info_player_start();
|
||||
}
|
||||
|
||||
void info_player_terrorist(void)
|
||||
void
|
||||
info_player_terrorist(void)
|
||||
{
|
||||
setorigin(self, self.origin + [0,0,32]);
|
||||
self.classname = "info_player_deathmatch";
|
||||
|
@ -64,6 +68,7 @@ void info_player_terrorist(void)
|
|||
info_vip_start
|
||||
=================
|
||||
*/
|
||||
void info_vip_start(void)
|
||||
void
|
||||
info_vip_start(void)
|
||||
{
|
||||
}
|
||||
|
|
|
@ -15,7 +15,8 @@
|
|||
*/
|
||||
|
||||
#ifdef SERVER
|
||||
void CSEv_PlayerBuyEquipment_f(float fID) {
|
||||
void
|
||||
CSEv_PlayerBuyEquipment_f(float fID) {
|
||||
/* if (Rules_BuyingPossible() == FALSE) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -42,7 +42,7 @@ FX_Impact_Init(void)
|
|||
#endif
|
||||
|
||||
void
|
||||
FX_Impact(int iType, vector vecPos, vector vNormal)
|
||||
FX_Impact(impactType_t iType, vector vecPos, vector vNormal)
|
||||
{
|
||||
#ifdef SERVER
|
||||
WriteByte(MSG_MULTICAST, SVC_CGAMEPACKET);
|
||||
|
|
|
@ -41,154 +41,61 @@ enumflags
|
|||
PLAYER_CSSHOTTIME
|
||||
};
|
||||
|
||||
enumflags
|
||||
{
|
||||
AMMO1_USP45,
|
||||
AMMO1_GLOCK18,
|
||||
AMMO1_DEAGLE,
|
||||
AMMO1_P228,
|
||||
AMMO1_ELITES,
|
||||
AMMO1_FIVESEVEN,
|
||||
AMMO1_M3,
|
||||
AMMO1_XM1014,
|
||||
AMMO1_MP5,
|
||||
AMMO1_P90,
|
||||
AMMO1_UMP45,
|
||||
AMMO1_MAC10,
|
||||
AMMO1_TMP,
|
||||
AMMO1_AK47,
|
||||
AMMO1_SG552,
|
||||
AMMO1_M4A1,
|
||||
AMMO1_AUG,
|
||||
AMMO1_SCOUT,
|
||||
AMMO1_AWP,
|
||||
AMMO1_G3SG1,
|
||||
AMMO1_SG550,
|
||||
AMMO1_PARA,
|
||||
};
|
||||
|
||||
enumflags
|
||||
{
|
||||
AMMO2_50AE,
|
||||
AMMO2_762MM,
|
||||
AMMO2_556MM,
|
||||
AMMO2_556MMBOX,
|
||||
AMMO2_338MAG,
|
||||
AMMO2_9MM,
|
||||
AMMO2_BUCKSHOT,
|
||||
AMMO2_45ACP,
|
||||
AMMO2_357SIG,
|
||||
AMMO2_57MM,
|
||||
AMMO2_HEGRENADE,
|
||||
AMMO2_FBGRENADE,
|
||||
AMMO2_SMOKEGRENADE,
|
||||
};
|
||||
|
||||
enumflags
|
||||
{
|
||||
AMMO3_MODE_USP45,
|
||||
AMMO3_MODE_M4A1,
|
||||
AMMO3_MODE_GLOCK18,
|
||||
};
|
||||
|
||||
noref int input_sequence;
|
||||
class player:base_player
|
||||
{
|
||||
int ingame;
|
||||
|
||||
int ammo_50ae;
|
||||
int ammo_50ae_net;
|
||||
int ammo_762mm;
|
||||
int ammo_762mm_net;
|
||||
int ammo_556mm;
|
||||
int ammo_556mm_net;
|
||||
int ammo_556mmbox;
|
||||
int ammo_556mmbox_net;
|
||||
int ammo_338mag;
|
||||
int ammo_338mag_net;
|
||||
int ammo_9mm;
|
||||
int ammo_9mm_net;
|
||||
int ammo_buckshot;
|
||||
int ammo_buckshot_net;
|
||||
int ammo_45acp;
|
||||
int ammo_45acp_net;
|
||||
int ammo_357sig;
|
||||
int ammo_357sig_net;
|
||||
int ammo_57mm;
|
||||
int ammo_57mm_net;
|
||||
int ammo_hegrenade;
|
||||
int ammo_hegrenade_net;
|
||||
int ammo_fbgrenade;
|
||||
int ammo_fbgrenade_net;
|
||||
int ammo_smokegrenade;
|
||||
int ammo_smokegrenade_net;
|
||||
PREDICTED_INT(usp45_mag);
|
||||
PREDICTED_INT(glock18_mag);
|
||||
PREDICTED_INT(deagle_mag);
|
||||
PREDICTED_INT(p228_mag);
|
||||
PREDICTED_INT(elites_mag);
|
||||
PREDICTED_INT(fiveseven_mag);
|
||||
PREDICTED_INT(m3_mag);
|
||||
PREDICTED_INT(xm1014_mag);
|
||||
PREDICTED_INT(mp5_mag);
|
||||
PREDICTED_INT(p90_mag);
|
||||
PREDICTED_INT(ump45_mag);
|
||||
PREDICTED_INT(mac10_mag);
|
||||
PREDICTED_INT(tmp_mag);
|
||||
PREDICTED_INT(ak47_mag);
|
||||
PREDICTED_INT(sg552_mag);
|
||||
PREDICTED_INT(m4a1_mag);
|
||||
PREDICTED_INT(aug_mag);
|
||||
PREDICTED_INT(scout_mag);
|
||||
PREDICTED_INT(awp_mag);
|
||||
PREDICTED_INT(g3sg1_mag);
|
||||
PREDICTED_INT(sg550_mag);
|
||||
PREDICTED_INT(para_mag);
|
||||
|
||||
/* Weapon specific */
|
||||
int usp45_mag;
|
||||
int usp45_mag_net;
|
||||
int glock18_mag;
|
||||
int glock18_mag_net;
|
||||
int deagle_mag;
|
||||
int deagle_mag_net;
|
||||
int p228_mag;
|
||||
int p228_mag_net;
|
||||
int elites_mag;
|
||||
int elites_mag_net;
|
||||
int fiveseven_mag;
|
||||
int fiveseven_mag_net;
|
||||
int m3_mag;
|
||||
int m3_mag_net;
|
||||
int xm1014_mag;
|
||||
int xm1014_mag_net;
|
||||
int mp5_mag;
|
||||
int mp5_mag_net;
|
||||
int p90_mag;
|
||||
int p90_mag_net;
|
||||
int ump45_mag;
|
||||
int ump45_mag_net;
|
||||
int mac10_mag;
|
||||
int mac10_mag_net;
|
||||
int tmp_mag;
|
||||
int tmp_mag_net;
|
||||
int ak47_mag;
|
||||
int ak47_mag_net;
|
||||
int sg552_mag;
|
||||
int sg552_mag_net;
|
||||
int m4a1_mag;
|
||||
int m4a1_mag_net;
|
||||
int aug_mag;
|
||||
int aug_mag_net;
|
||||
int scout_mag;
|
||||
int scout_mag_net;
|
||||
int awp_mag;
|
||||
int awp_mag_net;
|
||||
int g3sg1_mag;
|
||||
int g3sg1_mag_net;
|
||||
int sg550_mag;
|
||||
int sg550_mag_net;
|
||||
int para_mag;
|
||||
int para_mag_net;
|
||||
PREDICTED_INT(ammo_50ae);
|
||||
PREDICTED_INT(ammo_762mm);
|
||||
PREDICTED_INT(ammo_556mm);
|
||||
PREDICTED_INT(ammo_556mmbox);
|
||||
PREDICTED_INT(ammo_338mag);
|
||||
PREDICTED_INT(ammo_9mm);
|
||||
PREDICTED_INT(ammo_buckshot);
|
||||
PREDICTED_INT(ammo_45acp);
|
||||
PREDICTED_INT(ammo_357sig);
|
||||
PREDICTED_INT(ammo_57mm);
|
||||
PREDICTED_INT(ammo_hegrenade);
|
||||
PREDICTED_INT(ammo_fbgrenade);
|
||||
PREDICTED_INT(ammo_smokegrenade);
|
||||
|
||||
int mode_usp45;
|
||||
int mode_usp45_net;
|
||||
int mode_m4a1;
|
||||
int mode_m4a1_net;
|
||||
int mode_glock18;
|
||||
int mode_glock18_net;
|
||||
PREDICTED_INT(mode_usp45);
|
||||
PREDICTED_INT(mode_m4a1);
|
||||
PREDICTED_INT(mode_glock18);
|
||||
PREDICTED_INT(mode_temp);
|
||||
|
||||
int mode_temp;
|
||||
int mode_temp_net;
|
||||
PREDICTED_INT(cs_shotmultiplier);
|
||||
PREDICTED_FLOAT(cs_shottime);
|
||||
|
||||
int cs_shotmultiplier;
|
||||
int cs_shotmultiplier_net;
|
||||
float cs_shottime;
|
||||
float cs_shottime_net;
|
||||
|
||||
float anim_top; float anim_top_net;
|
||||
float anim_top_time; float anim_top_time_net;
|
||||
float anim_top_delay; float anim_top_delay_net;
|
||||
float anim_bottom; float anim_bottom_net;
|
||||
float anim_bottom_time; float anim_bottom_time_net;
|
||||
PREDICTED_FLOAT(anim_top);
|
||||
PREDICTED_FLOAT(anim_top_time);
|
||||
PREDICTED_FLOAT(anim_top_delay);
|
||||
PREDICTED_FLOAT(anim_bottom);
|
||||
PREDICTED_FLOAT(anim_bottom_time);
|
||||
|
||||
#ifdef CLIENT
|
||||
/* External model */
|
||||
|
@ -205,7 +112,7 @@ class player:base_player
|
|||
virtual void(void) draw;
|
||||
virtual float() predraw;
|
||||
virtual void(void) postdraw;
|
||||
virtual void(float) ReceiveEntity;
|
||||
virtual void(float, float) ReceiveEntity;
|
||||
virtual void(void) PredictPreFrame;
|
||||
virtual void(void) PredictPostFrame;
|
||||
#else
|
||||
|
@ -227,65 +134,9 @@ player::ReceiveEntity
|
|||
=================
|
||||
*/
|
||||
void
|
||||
player::ReceiveEntity(float new)
|
||||
player::ReceiveEntity(float new, float fl)
|
||||
{
|
||||
float fl;
|
||||
|
||||
/* seed for our prediction table */
|
||||
sequence = servercommandframe;
|
||||
|
||||
fl = readfloat();
|
||||
|
||||
/* HACK: we need to make this more reliable */
|
||||
if (fl == UPDATE_ALL) {
|
||||
/* we respawned */
|
||||
gravity = __NULL__;
|
||||
}
|
||||
|
||||
if (fl & PLAYER_MODELINDEX)
|
||||
modelindex = readshort();
|
||||
|
||||
if (fl & PLAYER_ORIGIN) {
|
||||
origin[0] = readcoord();
|
||||
origin[1] = readcoord();
|
||||
}
|
||||
|
||||
if (fl & PLAYER_ORIGIN_Z)
|
||||
origin[2] = readcoord();
|
||||
if (fl & PLAYER_ANGLES_X)
|
||||
v_angle[0] = pitch = readfloat();
|
||||
if (fl & PLAYER_ANGLES_Y) {
|
||||
angles[1] = readfloat();
|
||||
v_angle[1] = readfloat();
|
||||
}
|
||||
if (fl & PLAYER_ANGLES_Z) {
|
||||
angles[2] = readfloat();
|
||||
v_angle[1] = readfloat();
|
||||
}
|
||||
|
||||
if (fl & PLAYER_VELOCITY) {
|
||||
velocity[0] = readcoord();
|
||||
velocity[1] = readcoord();
|
||||
}
|
||||
|
||||
if (fl & PLAYER_VELOCITY_Z)
|
||||
velocity[2] = readcoord();
|
||||
if (fl & PLAYER_FLAGS) {
|
||||
flags = readfloat();
|
||||
gflags = readfloat();
|
||||
}
|
||||
if (fl & PLAYER_WEAPON)
|
||||
activeweapon = readbyte();
|
||||
if (fl & PLAYER_ITEMS)
|
||||
g_items = (__variant)readfloat();
|
||||
if (fl & PLAYER_HEALTH)
|
||||
health = readbyte();
|
||||
if (fl & PLAYER_ARMOR)
|
||||
armor = readbyte();
|
||||
if (fl & PLAYER_MOVETYPE)
|
||||
movetype = readbyte();
|
||||
if (fl & PLAYER_VIEWOFS)
|
||||
view_ofs[2] = readfloat();
|
||||
base_player::ReceiveEntity(new, fl);
|
||||
|
||||
/* animation */
|
||||
if (fl & PLAYER_TOPFRAME) {
|
||||
|
@ -370,56 +221,58 @@ so we can roll them back later.
|
|||
void
|
||||
player::PredictPreFrame(void)
|
||||
{
|
||||
usp45_mag_net = usp45_mag;
|
||||
glock18_mag_net = glock18_mag;
|
||||
deagle_mag_net = deagle_mag;
|
||||
p228_mag_net = p228_mag;
|
||||
elites_mag_net = elites_mag;
|
||||
fiveseven_mag_net = fiveseven_mag;
|
||||
m3_mag_net = m3_mag;
|
||||
xm1014_mag_net = xm1014_mag;
|
||||
mp5_mag_net = mp5_mag;
|
||||
p90_mag_net = p90_mag;
|
||||
ump45_mag_net = ump45_mag;
|
||||
mac10_mag_net = mac10_mag;
|
||||
tmp_mag_net = tmp_mag;
|
||||
ak47_mag_net = ak47_mag;
|
||||
sg552_mag_net = sg552_mag;
|
||||
m4a1_mag_net = m4a1_mag;
|
||||
aug_mag_net = aug_mag;
|
||||
scout_mag_net = scout_mag;
|
||||
awp_mag_net = awp_mag;
|
||||
g3sg1_mag_net = g3sg1_mag;
|
||||
sg550_mag_net = sg550_mag;
|
||||
para_mag_net = para_mag;
|
||||
base_player::PredictPreFrame();
|
||||
|
||||
ammo_50ae_net = ammo_50ae;
|
||||
ammo_762mm_net = ammo_762mm;
|
||||
ammo_556mm_net = ammo_556mm;
|
||||
ammo_556mmbox_net = ammo_556mmbox;
|
||||
ammo_338mag_net = ammo_338mag;
|
||||
ammo_9mm_net = ammo_9mm;
|
||||
ammo_buckshot_net = ammo_buckshot;
|
||||
ammo_45acp_net = ammo_45acp;
|
||||
ammo_357sig_net = ammo_357sig;
|
||||
ammo_57mm_net = ammo_57mm;
|
||||
ammo_hegrenade_net = ammo_hegrenade;
|
||||
ammo_fbgrenade_net = ammo_fbgrenade;
|
||||
ammo_smokegrenade_net = ammo_smokegrenade;
|
||||
SAVE_STATE(usp45_mag);
|
||||
SAVE_STATE(glock18_mag);
|
||||
SAVE_STATE(deagle_mag);
|
||||
SAVE_STATE(p228_mag);
|
||||
SAVE_STATE(elites_mag);
|
||||
SAVE_STATE(fiveseven_mag);
|
||||
SAVE_STATE(m3_mag);
|
||||
SAVE_STATE(xm1014_mag);
|
||||
SAVE_STATE(mp5_mag);
|
||||
SAVE_STATE(p90_mag);
|
||||
SAVE_STATE(ump45_mag);
|
||||
SAVE_STATE(mac10_mag);
|
||||
SAVE_STATE(tmp_mag);
|
||||
SAVE_STATE(ak47_mag);
|
||||
SAVE_STATE(sg552_mag);
|
||||
SAVE_STATE(m4a1_mag);
|
||||
SAVE_STATE(aug_mag);
|
||||
SAVE_STATE(scout_mag);
|
||||
SAVE_STATE(awp_mag);
|
||||
SAVE_STATE(g3sg1_mag);
|
||||
SAVE_STATE(sg550_mag);
|
||||
SAVE_STATE(para_mag);
|
||||
|
||||
mode_usp45_net = mode_usp45;
|
||||
mode_m4a1_net = mode_m4a1;
|
||||
mode_glock18_net = mode_glock18;
|
||||
mode_temp_net = mode_temp;
|
||||
SAVE_STATE(ammo_50ae);
|
||||
SAVE_STATE(ammo_762mm);
|
||||
SAVE_STATE(ammo_556mm);
|
||||
SAVE_STATE(ammo_556mmbox);
|
||||
SAVE_STATE(ammo_338mag);
|
||||
SAVE_STATE(ammo_9mm);
|
||||
SAVE_STATE(ammo_buckshot);
|
||||
SAVE_STATE(ammo_45acp);
|
||||
SAVE_STATE(ammo_357sig);
|
||||
SAVE_STATE(ammo_57mm);
|
||||
SAVE_STATE(ammo_hegrenade);
|
||||
SAVE_STATE(ammo_fbgrenade);
|
||||
SAVE_STATE(ammo_smokegrenade);
|
||||
|
||||
cs_shotmultiplier_net = cs_shotmultiplier;
|
||||
cs_shottime_net = cs_shottime;
|
||||
SAVE_STATE(mode_usp45);
|
||||
SAVE_STATE(mode_m4a1);
|
||||
SAVE_STATE(mode_glock18);
|
||||
SAVE_STATE(mode_temp);
|
||||
|
||||
anim_top_net = anim_top;
|
||||
anim_top_delay_net = anim_top_delay;
|
||||
anim_top_time_net = anim_top_time;
|
||||
anim_bottom_net = anim_bottom;
|
||||
anim_bottom_time_net = anim_bottom_time;
|
||||
SAVE_STATE(cs_shotmultiplier);
|
||||
SAVE_STATE(cs_shottime);
|
||||
|
||||
SAVE_STATE(anim_top);
|
||||
SAVE_STATE(anim_top_time);
|
||||
SAVE_STATE(anim_top_delay);
|
||||
SAVE_STATE(anim_bottom);
|
||||
SAVE_STATE(anim_bottom_time);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -432,117 +285,65 @@ Where we roll back our values to the ones last sent/verified by the server.
|
|||
void
|
||||
player::PredictPostFrame(void)
|
||||
{
|
||||
usp45_mag = usp45_mag_net;
|
||||
glock18_mag = glock18_mag_net;
|
||||
deagle_mag = deagle_mag_net;
|
||||
p228_mag = p228_mag_net;
|
||||
elites_mag = elites_mag_net;
|
||||
fiveseven_mag = fiveseven_mag_net;
|
||||
m3_mag = m3_mag_net;
|
||||
xm1014_mag = xm1014_mag_net;
|
||||
mp5_mag = mp5_mag_net;
|
||||
p90_mag = p90_mag_net;
|
||||
ump45_mag = ump45_mag_net;
|
||||
mac10_mag = mac10_mag_net;
|
||||
tmp_mag = tmp_mag_net;
|
||||
ak47_mag = ak47_mag_net;
|
||||
sg552_mag = sg552_mag_net;
|
||||
m4a1_mag = m4a1_mag_net;
|
||||
aug_mag = aug_mag_net;
|
||||
scout_mag = scout_mag_net;
|
||||
awp_mag = awp_mag_net;
|
||||
g3sg1_mag = g3sg1_mag_net;
|
||||
sg550_mag = sg550_mag_net;
|
||||
para_mag = para_mag_net;
|
||||
base_player::PredictPostFrame();
|
||||
|
||||
ammo_50ae = ammo_50ae_net;
|
||||
ammo_762mm = ammo_762mm_net;
|
||||
ammo_556mm = ammo_556mm_net;
|
||||
ammo_556mmbox = ammo_556mmbox_net;
|
||||
ammo_338mag = ammo_338mag_net;
|
||||
ammo_9mm = ammo_9mm_net;
|
||||
ammo_buckshot = ammo_buckshot_net;
|
||||
ammo_45acp = ammo_45acp_net;
|
||||
ammo_357sig = ammo_357sig_net;
|
||||
ammo_57mm = ammo_57mm_net;
|
||||
ammo_hegrenade = ammo_hegrenade_net;
|
||||
ammo_fbgrenade = ammo_fbgrenade_net;
|
||||
ammo_smokegrenade = ammo_smokegrenade_net;
|
||||
ROLL_BACK(usp45_mag);
|
||||
ROLL_BACK(glock18_mag);
|
||||
ROLL_BACK(deagle_mag);
|
||||
ROLL_BACK(p228_mag);
|
||||
ROLL_BACK(elites_mag);
|
||||
ROLL_BACK(fiveseven_mag);
|
||||
ROLL_BACK(m3_mag);
|
||||
ROLL_BACK(xm1014_mag);
|
||||
ROLL_BACK(mp5_mag);
|
||||
ROLL_BACK(p90_mag);
|
||||
ROLL_BACK(ump45_mag);
|
||||
ROLL_BACK(mac10_mag);
|
||||
ROLL_BACK(tmp_mag);
|
||||
ROLL_BACK(ak47_mag);
|
||||
ROLL_BACK(sg552_mag);
|
||||
ROLL_BACK(m4a1_mag);
|
||||
ROLL_BACK(aug_mag);
|
||||
ROLL_BACK(scout_mag);
|
||||
ROLL_BACK(awp_mag);
|
||||
ROLL_BACK(g3sg1_mag);
|
||||
ROLL_BACK(sg550_mag);
|
||||
ROLL_BACK(para_mag);
|
||||
|
||||
mode_usp45 = mode_usp45_net;
|
||||
mode_m4a1 = mode_m4a1_net;
|
||||
mode_glock18 = mode_glock18_net;
|
||||
mode_temp = mode_temp_net;
|
||||
ROLL_BACK(ammo_50ae);
|
||||
ROLL_BACK(ammo_762mm);
|
||||
ROLL_BACK(ammo_556mm);
|
||||
ROLL_BACK(ammo_556mmbox);
|
||||
ROLL_BACK(ammo_338mag);
|
||||
ROLL_BACK(ammo_9mm);
|
||||
ROLL_BACK(ammo_buckshot);
|
||||
ROLL_BACK(ammo_45acp);
|
||||
ROLL_BACK(ammo_357sig);
|
||||
ROLL_BACK(ammo_57mm);
|
||||
ROLL_BACK(ammo_hegrenade);
|
||||
ROLL_BACK(ammo_fbgrenade);
|
||||
ROLL_BACK(ammo_smokegrenade);
|
||||
|
||||
cs_shotmultiplier = cs_shotmultiplier_net;
|
||||
cs_shottime = cs_shottime_net;
|
||||
ROLL_BACK(mode_usp45);
|
||||
ROLL_BACK(mode_m4a1);
|
||||
ROLL_BACK(mode_glock18);
|
||||
ROLL_BACK(mode_temp);
|
||||
|
||||
anim_top = anim_top_net;
|
||||
anim_top_delay = anim_top_delay_net;
|
||||
anim_top_time = anim_top_time_net;
|
||||
anim_bottom = anim_bottom_net;
|
||||
anim_bottom_time = anim_bottom_time_net;
|
||||
ROLL_BACK(cs_shotmultiplier);
|
||||
ROLL_BACK(cs_shottime);
|
||||
|
||||
ROLL_BACK(anim_top);
|
||||
ROLL_BACK(anim_top_time);
|
||||
ROLL_BACK(anim_top_delay);
|
||||
ROLL_BACK(anim_bottom);
|
||||
ROLL_BACK(anim_bottom_time);
|
||||
}
|
||||
|
||||
#else
|
||||
void
|
||||
player::EvaluateEntity(void)
|
||||
{
|
||||
SendFlags |= PLAYER_KEEPALIVE;
|
||||
|
||||
if (old_modelindex != modelindex)
|
||||
SendFlags |= PLAYER_MODELINDEX;
|
||||
|
||||
if (old_origin[0] != origin[0])
|
||||
SendFlags |= PLAYER_ORIGIN;
|
||||
|
||||
if (old_origin[1] != origin[1])
|
||||
SendFlags |= PLAYER_ORIGIN;
|
||||
|
||||
if (old_origin[2] != origin[2])
|
||||
SendFlags |= PLAYER_ORIGIN_Z;
|
||||
|
||||
if (old_angles[0] != v_angle[0])
|
||||
SendFlags |= PLAYER_ANGLES_X;
|
||||
|
||||
if (old_angles[1] != angles[1])
|
||||
SendFlags |= PLAYER_ANGLES_Y;
|
||||
|
||||
if (old_angles[2] != angles[2])
|
||||
SendFlags |= PLAYER_ANGLES_Z;
|
||||
|
||||
if (old_velocity[0] != velocity[0])
|
||||
SendFlags |= PLAYER_VELOCITY;
|
||||
|
||||
if (old_velocity[1] != velocity[1])
|
||||
SendFlags |= PLAYER_VELOCITY;
|
||||
|
||||
if (old_velocity[2] != velocity[2])
|
||||
SendFlags |= PLAYER_VELOCITY_Z;
|
||||
|
||||
if (old_flags != flags)
|
||||
SendFlags |= PLAYER_FLAGS;
|
||||
|
||||
if (old_gflags != gflags)
|
||||
SendFlags |= PLAYER_FLAGS;
|
||||
|
||||
if (old_activeweapon != activeweapon)
|
||||
SendFlags |= PLAYER_WEAPON;
|
||||
|
||||
if (old_items != g_items)
|
||||
SendFlags |= PLAYER_ITEMS;
|
||||
|
||||
if (old_health != health)
|
||||
SendFlags |= PLAYER_HEALTH;
|
||||
|
||||
if (old_armor != armor)
|
||||
SendFlags |= PLAYER_ARMOR;
|
||||
|
||||
if (old_movetype != movetype)
|
||||
SendFlags |= PLAYER_MOVETYPE;
|
||||
|
||||
if (old_viewofs != view_ofs[2])
|
||||
SendFlags |= PLAYER_VIEWOFS;
|
||||
base_player::EvaluateEntity();
|
||||
|
||||
/* animation */
|
||||
if (anim_bottom_net != anim_bottom || anim_bottom_time != anim_bottom_time_net)
|
||||
|
@ -551,160 +352,144 @@ player::EvaluateEntity(void)
|
|||
SendFlags |= PLAYER_TOPFRAME;
|
||||
|
||||
/* ammo 1 type updates */
|
||||
if (glock18_mag_net != glock18_mag)
|
||||
if (ATTR_CHANGED(glock18_mag))
|
||||
SendFlags |= PLAYER_AMMO1;
|
||||
if (usp45_mag_net != usp45_mag)
|
||||
else if (ATTR_CHANGED(usp45_mag))
|
||||
SendFlags |= PLAYER_AMMO1;
|
||||
if (glock18_mag_net != glock18_mag)
|
||||
else if (ATTR_CHANGED(glock18_mag))
|
||||
SendFlags |= PLAYER_AMMO1;
|
||||
if (deagle_mag_net != deagle_mag)
|
||||
else if (ATTR_CHANGED(deagle_mag))
|
||||
SendFlags |= PLAYER_AMMO1;
|
||||
if (p228_mag_net != p228_mag)
|
||||
else if (ATTR_CHANGED(p228_mag))
|
||||
SendFlags |= PLAYER_AMMO1;
|
||||
if (elites_mag_net != elites_mag)
|
||||
else if (ATTR_CHANGED(elites_mag))
|
||||
SendFlags |= PLAYER_AMMO1;
|
||||
if (fiveseven_mag_net != fiveseven_mag)
|
||||
else if (ATTR_CHANGED(fiveseven_mag))
|
||||
SendFlags |= PLAYER_AMMO1;
|
||||
if (m3_mag_net != m3_mag)
|
||||
else if (ATTR_CHANGED(m3_mag))
|
||||
SendFlags |= PLAYER_AMMO1;
|
||||
if (xm1014_mag_net != xm1014_mag)
|
||||
else if (ATTR_CHANGED(xm1014_mag))
|
||||
SendFlags |= PLAYER_AMMO1;
|
||||
if (mp5_mag_net != mp5_mag)
|
||||
else if (ATTR_CHANGED(mp5_mag))
|
||||
SendFlags |= PLAYER_AMMO1;
|
||||
if (p90_mag_net != p90_mag)
|
||||
else if (ATTR_CHANGED(p90_mag))
|
||||
SendFlags |= PLAYER_AMMO1;
|
||||
if (ump45_mag_net != ump45_mag)
|
||||
else if (ATTR_CHANGED(ump45_mag))
|
||||
SendFlags |= PLAYER_AMMO1;
|
||||
if (mac10_mag_net != mac10_mag)
|
||||
else if (ATTR_CHANGED(mac10_mag))
|
||||
SendFlags |= PLAYER_AMMO1;
|
||||
if (tmp_mag_net != tmp_mag)
|
||||
else if (ATTR_CHANGED(tmp_mag))
|
||||
SendFlags |= PLAYER_AMMO1;
|
||||
if (ak47_mag_net != ak47_mag)
|
||||
else if (ATTR_CHANGED(ak47_mag))
|
||||
SendFlags |= PLAYER_AMMO1;
|
||||
if (sg552_mag_net != sg552_mag)
|
||||
else if (ATTR_CHANGED(sg552_mag))
|
||||
SendFlags |= PLAYER_AMMO1;
|
||||
if (m4a1_mag_net != m4a1_mag)
|
||||
else if (ATTR_CHANGED(m4a1_mag))
|
||||
SendFlags |= PLAYER_AMMO1;
|
||||
if (aug_mag_net != aug_mag)
|
||||
else if (ATTR_CHANGED(aug_mag))
|
||||
SendFlags |= PLAYER_AMMO1;
|
||||
if (scout_mag_net != scout_mag)
|
||||
else if (ATTR_CHANGED(scout_mag))
|
||||
SendFlags |= PLAYER_AMMO1;
|
||||
if (awp_mag_net != awp_mag)
|
||||
else if (ATTR_CHANGED(awp_mag))
|
||||
SendFlags |= PLAYER_AMMO1;
|
||||
if (g3sg1_mag_net != g3sg1_mag)
|
||||
else if (ATTR_CHANGED(g3sg1_mag))
|
||||
SendFlags |= PLAYER_AMMO1;
|
||||
if (sg550_mag_net != sg550_mag)
|
||||
else if (ATTR_CHANGED(sg550_mag))
|
||||
SendFlags |= PLAYER_AMMO1;
|
||||
if (para_mag_net != para_mag)
|
||||
else if (ATTR_CHANGED(para_mag))
|
||||
SendFlags |= PLAYER_AMMO1;
|
||||
|
||||
if (ammo_50ae_net != ammo_50ae)
|
||||
if (ATTR_CHANGED(ammo_50ae))
|
||||
SendFlags |= PLAYER_AMMO2;
|
||||
if (ammo_762mm_net != ammo_762mm)
|
||||
else if (ATTR_CHANGED(ammo_762mm))
|
||||
SendFlags |= PLAYER_AMMO2;
|
||||
if (ammo_556mm_net != ammo_556mm)
|
||||
else if (ATTR_CHANGED(ammo_556mm))
|
||||
SendFlags |= PLAYER_AMMO2;
|
||||
if (ammo_556mmbox_net != ammo_556mmbox)
|
||||
else if (ATTR_CHANGED(ammo_556mmbox))
|
||||
SendFlags |= PLAYER_AMMO2;
|
||||
if (ammo_338mag_net != ammo_338mag)
|
||||
else if (ATTR_CHANGED(ammo_338mag))
|
||||
SendFlags |= PLAYER_AMMO2;
|
||||
if (ammo_9mm_net != ammo_9mm)
|
||||
else if (ATTR_CHANGED(ammo_9mm))
|
||||
SendFlags |= PLAYER_AMMO2;
|
||||
if (ammo_buckshot_net != ammo_buckshot)
|
||||
else if (ATTR_CHANGED(ammo_buckshot))
|
||||
SendFlags |= PLAYER_AMMO2;
|
||||
if (ammo_45acp_net != ammo_45acp)
|
||||
else if (ATTR_CHANGED(ammo_45acp))
|
||||
SendFlags |= PLAYER_AMMO2;
|
||||
if (ammo_357sig_net != ammo_357sig)
|
||||
else if (ATTR_CHANGED(ammo_357sig))
|
||||
SendFlags |= PLAYER_AMMO2;
|
||||
if (ammo_57mm_net != ammo_57mm)
|
||||
else if (ATTR_CHANGED(ammo_57mm))
|
||||
SendFlags |= PLAYER_AMMO2;
|
||||
if (ammo_hegrenade_net != ammo_hegrenade)
|
||||
else if (ATTR_CHANGED(ammo_hegrenade))
|
||||
SendFlags |= PLAYER_AMMO2;
|
||||
if (ammo_fbgrenade_net != ammo_fbgrenade)
|
||||
else if (ATTR_CHANGED(ammo_fbgrenade))
|
||||
SendFlags |= PLAYER_AMMO2;
|
||||
if (ammo_smokegrenade_net != ammo_smokegrenade)
|
||||
else if (ATTR_CHANGED(ammo_smokegrenade))
|
||||
SendFlags |= PLAYER_AMMO2;
|
||||
|
||||
if (mode_usp45_net != mode_usp45)
|
||||
if (ATTR_CHANGED(mode_usp45))
|
||||
SendFlags |= PLAYER_AMMO3;
|
||||
if (mode_m4a1_net != mode_m4a1)
|
||||
else if (ATTR_CHANGED(mode_m4a1))
|
||||
SendFlags |= PLAYER_AMMO3;
|
||||
if (mode_glock18_net != mode_glock18)
|
||||
else if (ATTR_CHANGED(mode_glock18))
|
||||
SendFlags |= PLAYER_AMMO3;
|
||||
if (mode_temp_net != mode_temp)
|
||||
else if (ATTR_CHANGED(mode_temp))
|
||||
SendFlags |= PLAYER_AMMO3;
|
||||
if (cs_shotmultiplier != cs_shotmultiplier_net)
|
||||
|
||||
if (ATTR_CHANGED(cs_shotmultiplier))
|
||||
SendFlags |= PLAYER_CSSHOT;
|
||||
if (cs_shottime != cs_shottime_net)
|
||||
if (ATTR_CHANGED(cs_shottime))
|
||||
SendFlags |= PLAYER_CSSHOTTIME;
|
||||
|
||||
old_modelindex = modelindex;
|
||||
old_origin = origin;
|
||||
old_angles = angles;
|
||||
old_angles[0] = v_angle[0];
|
||||
old_velocity = velocity;
|
||||
old_flags = flags;
|
||||
old_gflags = gflags;
|
||||
old_activeweapon = activeweapon;
|
||||
old_items = g_items;
|
||||
old_health = health;
|
||||
old_armor = armor;
|
||||
old_movetype = movetype;
|
||||
old_viewofs = view_ofs[2];
|
||||
old_baseframe = baseframe;
|
||||
old_frame = frame;
|
||||
SAVE_STATE(usp45_mag);
|
||||
SAVE_STATE(glock18_mag);
|
||||
SAVE_STATE(deagle_mag);
|
||||
SAVE_STATE(p228_mag);
|
||||
SAVE_STATE(elites_mag);
|
||||
SAVE_STATE(fiveseven_mag);
|
||||
SAVE_STATE(m3_mag);
|
||||
SAVE_STATE(xm1014_mag);
|
||||
SAVE_STATE(mp5_mag);
|
||||
SAVE_STATE(p90_mag);
|
||||
SAVE_STATE(ump45_mag);
|
||||
SAVE_STATE(mac10_mag);
|
||||
SAVE_STATE(tmp_mag);
|
||||
SAVE_STATE(ak47_mag);
|
||||
SAVE_STATE(sg552_mag);
|
||||
SAVE_STATE(m4a1_mag);
|
||||
SAVE_STATE(aug_mag);
|
||||
SAVE_STATE(scout_mag);
|
||||
SAVE_STATE(awp_mag);
|
||||
SAVE_STATE(g3sg1_mag);
|
||||
SAVE_STATE(sg550_mag);
|
||||
SAVE_STATE(para_mag);
|
||||
|
||||
glock18_mag_net = glock18_mag;
|
||||
usp45_mag_net = usp45_mag;
|
||||
glock18_mag_net = glock18_mag;
|
||||
deagle_mag_net = deagle_mag;
|
||||
p228_mag_net = p228_mag;
|
||||
elites_mag_net = elites_mag;
|
||||
fiveseven_mag_net = fiveseven_mag;
|
||||
m3_mag_net = m3_mag;
|
||||
xm1014_mag_net = xm1014_mag;
|
||||
mp5_mag_net = mp5_mag;
|
||||
p90_mag_net = p90_mag;
|
||||
ump45_mag_net = ump45_mag;
|
||||
mac10_mag_net = mac10_mag;
|
||||
tmp_mag_net = tmp_mag;
|
||||
ak47_mag_net = ak47_mag;
|
||||
sg552_mag_net = sg552_mag;
|
||||
m4a1_mag_net = m4a1_mag;
|
||||
aug_mag_net = aug_mag;
|
||||
scout_mag_net = scout_mag;
|
||||
awp_mag_net = awp_mag;
|
||||
g3sg1_mag_net = g3sg1_mag;
|
||||
sg550_mag_net = sg550_mag;
|
||||
para_mag_net = para_mag;
|
||||
SAVE_STATE(ammo_50ae);
|
||||
SAVE_STATE(ammo_762mm);
|
||||
SAVE_STATE(ammo_556mm);
|
||||
SAVE_STATE(ammo_556mmbox);
|
||||
SAVE_STATE(ammo_338mag);
|
||||
SAVE_STATE(ammo_9mm);
|
||||
SAVE_STATE(ammo_buckshot);
|
||||
SAVE_STATE(ammo_45acp);
|
||||
SAVE_STATE(ammo_357sig);
|
||||
SAVE_STATE(ammo_57mm);
|
||||
SAVE_STATE(ammo_hegrenade);
|
||||
SAVE_STATE(ammo_fbgrenade);
|
||||
SAVE_STATE(ammo_smokegrenade);
|
||||
|
||||
ammo_50ae_net = ammo_50ae;
|
||||
ammo_762mm_net = ammo_762mm;
|
||||
ammo_556mm_net = ammo_556mm;
|
||||
ammo_556mmbox_net = ammo_556mmbox;
|
||||
ammo_338mag_net = ammo_338mag;
|
||||
ammo_9mm_net = ammo_9mm;
|
||||
ammo_buckshot_net = ammo_buckshot;
|
||||
ammo_45acp_net = ammo_45acp;
|
||||
ammo_357sig_net = ammo_357sig;
|
||||
ammo_57mm_net = ammo_57mm;
|
||||
ammo_hegrenade_net = ammo_hegrenade;
|
||||
ammo_fbgrenade_net = ammo_fbgrenade;
|
||||
ammo_smokegrenade_net = ammo_smokegrenade;
|
||||
SAVE_STATE(mode_usp45);
|
||||
SAVE_STATE(mode_m4a1);
|
||||
SAVE_STATE(mode_glock18);
|
||||
SAVE_STATE(mode_temp);
|
||||
|
||||
mode_usp45_net = mode_usp45;
|
||||
mode_m4a1_net = mode_m4a1;
|
||||
mode_glock18_net = mode_glock18;
|
||||
mode_temp_net = mode_temp;
|
||||
SAVE_STATE(cs_shotmultiplier);
|
||||
SAVE_STATE(cs_shottime);
|
||||
|
||||
cs_shotmultiplier_net = cs_shotmultiplier;
|
||||
cs_shottime_net = cs_shottime;
|
||||
|
||||
anim_top_net = anim_top;
|
||||
anim_top_delay_net = anim_top_delay;
|
||||
anim_top_time_net = anim_top_time;
|
||||
anim_bottom_net = anim_bottom;
|
||||
anim_bottom_time_net = anim_bottom_time;
|
||||
SAVE_STATE(anim_top);
|
||||
SAVE_STATE(anim_top_time);
|
||||
SAVE_STATE(anim_top_delay);
|
||||
SAVE_STATE(anim_bottom);
|
||||
SAVE_STATE(anim_bottom_time);
|
||||
|
||||
if (g_cs_gamestate != GAME_FREEZE) {
|
||||
if (progress <= 0.0f) {
|
||||
|
@ -743,47 +528,7 @@ player::SendEntity(entity ePEnt, float fChanged)
|
|||
WriteByte(MSG_ENTITY, ENT_PLAYER);
|
||||
WriteFloat(MSG_ENTITY, fChanged);
|
||||
|
||||
/* really trying to get our moneys worth with 23 bits of mantissa */
|
||||
if (fChanged & PLAYER_MODELINDEX)
|
||||
WriteShort(MSG_ENTITY, modelindex);
|
||||
if (fChanged & PLAYER_ORIGIN) {
|
||||
WriteCoord(MSG_ENTITY, origin[0]);
|
||||
WriteCoord(MSG_ENTITY, origin[1]);
|
||||
}
|
||||
if (fChanged & PLAYER_ORIGIN_Z)
|
||||
WriteCoord(MSG_ENTITY, origin[2]);
|
||||
if (fChanged & PLAYER_ANGLES_X)
|
||||
WriteFloat(MSG_ENTITY, v_angle[0]);
|
||||
if (fChanged & PLAYER_ANGLES_Y) {
|
||||
WriteFloat(MSG_ENTITY, angles[1]);
|
||||
WriteFloat(MSG_ENTITY, v_angle[1]);
|
||||
}
|
||||
if (fChanged & PLAYER_ANGLES_Z) {
|
||||
WriteFloat(MSG_ENTITY, angles[2]);
|
||||
WriteFloat(MSG_ENTITY, v_angle[2]);
|
||||
}
|
||||
if (fChanged & PLAYER_VELOCITY) {
|
||||
WriteCoord(MSG_ENTITY, velocity[0]);
|
||||
WriteCoord(MSG_ENTITY, velocity[1]);
|
||||
}
|
||||
if (fChanged & PLAYER_VELOCITY_Z)
|
||||
WriteCoord(MSG_ENTITY, velocity[2]);
|
||||
if (fChanged & PLAYER_FLAGS) {
|
||||
WriteFloat(MSG_ENTITY, flags);
|
||||
WriteFloat(MSG_ENTITY, gflags);
|
||||
}
|
||||
if (fChanged & PLAYER_WEAPON)
|
||||
WriteByte(MSG_ENTITY, activeweapon);
|
||||
if (fChanged & PLAYER_ITEMS)
|
||||
WriteFloat(MSG_ENTITY, (__variant)g_items);
|
||||
if (fChanged & PLAYER_HEALTH)
|
||||
WriteByte(MSG_ENTITY, bound(0, health, 255));
|
||||
if (fChanged & PLAYER_ARMOR)
|
||||
WriteByte(MSG_ENTITY, armor);
|
||||
if (fChanged & PLAYER_MOVETYPE)
|
||||
WriteByte(MSG_ENTITY, movetype);
|
||||
if (fChanged & PLAYER_VIEWOFS)
|
||||
WriteFloat(MSG_ENTITY, view_ofs[2]);
|
||||
base_player::SendEntity(ePEnt, fChanged);
|
||||
|
||||
if (fChanged & PLAYER_TOPFRAME) {
|
||||
WriteByte(MSG_ENTITY, anim_top);
|
||||
|
|
|
@ -28,7 +28,8 @@ Terrorists only weapon
|
|||
*/
|
||||
|
||||
#ifdef CLIENT
|
||||
void w_rifle_ejectshell(void)
|
||||
void
|
||||
w_rifle_ejectshell(void)
|
||||
{
|
||||
static void w_rifle_ejectshell_death(void) {
|
||||
remove(self);
|
||||
|
@ -157,9 +158,6 @@ w_ak47_primary(void)
|
|||
float accuracy = Cstrike_CalculateAccuracy(pl, 200);
|
||||
pl.ak47_mag--;
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
|
||||
int r = (float)input_sequence % 3;
|
||||
switch (r) {
|
||||
case 0:
|
||||
|
@ -172,16 +170,18 @@ w_ak47_primary(void)
|
|||
Weapons_ViewAnimation(AK47_SHOOT3);
|
||||
break;
|
||||
}
|
||||
View_AddEvent(w_rifle_ejectshell, 0.0f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(1);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 36, [accuracy,accuracy], WEAPON_AK47);
|
||||
|
||||
if (self.flags & FL_CROUCHING)
|
||||
Animation_PlayerTop(pl, ANIM_SHOOT_AK47, 0.45f);
|
||||
else
|
||||
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_AK47, 0.45f);
|
||||
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
View_AddEvent(w_rifle_ejectshell, 0.0f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(1);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 36, [accuracy,accuracy], WEAPON_AK47);
|
||||
Sound_Play(pl, CHAN_WEAPON, "weapon_ak47.fire");
|
||||
#endif
|
||||
|
||||
|
@ -204,9 +204,9 @@ w_ak47_reload(void)
|
|||
return;
|
||||
}
|
||||
|
||||
#ifdef CLIENT
|
||||
Weapons_ViewAnimation(AK47_RELOAD);
|
||||
#else
|
||||
|
||||
#ifdef SERVER
|
||||
Weapons_ReloadWeapon(pl, player::ak47_mag, player::ammo_762mm, 30);
|
||||
#endif
|
||||
|
||||
|
|
|
@ -124,9 +124,6 @@ w_aug_primary(void)
|
|||
float accuracy = Cstrike_CalculateAccuracy(pl, 215);
|
||||
pl.aug_mag--;
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
|
||||
int r = (float)input_sequence % 3;
|
||||
switch (r) {
|
||||
case 0:
|
||||
|
@ -139,16 +136,18 @@ w_aug_primary(void)
|
|||
Weapons_ViewAnimation(AUG_SHOOT3);
|
||||
break;
|
||||
}
|
||||
View_AddEvent(w_rifle_ejectshell, 0.0f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(1);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 32, [accuracy,accuracy], WEAPON_AUG);
|
||||
|
||||
if (self.flags & FL_CROUCHING)
|
||||
Animation_PlayerTop(pl, ANIM_SHOOT_RIFLE, 0.45f);
|
||||
else
|
||||
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_RIFLE, 0.45f);
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
View_AddEvent(w_rifle_ejectshell, 0.0f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(1);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 32, [accuracy,accuracy], WEAPON_AUG);
|
||||
Sound_Play(pl, CHAN_WEAPON, "weapon_aug.fire");
|
||||
#endif
|
||||
|
||||
|
@ -190,10 +189,9 @@ w_aug_reload(void)
|
|||
if (!pl.ammo_762mm) {
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef CLIENT
|
||||
Weapons_ViewAnimation(AUG_RELOAD);
|
||||
#else
|
||||
|
||||
#ifdef SERVER
|
||||
Weapons_ReloadWeapon(pl, player::aug_mag, player::ammo_762mm, 30);
|
||||
#endif
|
||||
|
||||
|
|
|
@ -27,7 +27,8 @@ Price: $4750
|
|||
*/
|
||||
|
||||
#ifdef CLIENT
|
||||
void w_sniper_ejectshell(void)
|
||||
void
|
||||
w_sniper_ejectshell(void)
|
||||
{
|
||||
static void w_sniper_ejectshelldeath(void) {
|
||||
remove(self);
|
||||
|
@ -212,9 +213,6 @@ w_awp_primary(void)
|
|||
float accuracy = Cstrike_CalculateAccuracy(pl, -1);
|
||||
pl.awp_mag--;
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
|
||||
int r = (float)input_sequence % 3;
|
||||
switch (r) {
|
||||
case 0:
|
||||
|
@ -227,16 +225,19 @@ w_awp_primary(void)
|
|||
Weapons_ViewAnimation(AWP_SHOOT3);
|
||||
break;
|
||||
}
|
||||
View_AddEvent(w_sniper_ejectshell, 0.9f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(2);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 115, [accuracy,accuracy], WEAPON_AWP);
|
||||
|
||||
if (self.flags & FL_CROUCHING)
|
||||
Animation_PlayerTop(pl, ANIM_SHOOT_RIFLE, 0.45f);
|
||||
else
|
||||
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_RIFLE, 0.45f);
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
View_AddEvent(w_sniper_ejectshell, 0.9f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(2);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 115, [accuracy,accuracy], WEAPON_AWP);
|
||||
|
||||
Sound_Play(pl, CHAN_WEAPON, "weapon_awp.fire");
|
||||
#endif
|
||||
|
||||
|
@ -249,19 +250,16 @@ w_awp_reload(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
|
||||
if (pl.w_attack_next > 0.0) {
|
||||
if (pl.w_attack_next > 0.0)
|
||||
return;
|
||||
}
|
||||
if (pl.awp_mag >= 10) {
|
||||
if (pl.awp_mag >= 10)
|
||||
return;
|
||||
}
|
||||
if (!pl.ammo_338mag) {
|
||||
if (!pl.ammo_338mag)
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef CLIENT
|
||||
Weapons_ViewAnimation(AWP_RELOAD);
|
||||
#else
|
||||
|
||||
#ifdef SERVER
|
||||
Weapons_ReloadWeapon(pl, player::awp_mag, player::ammo_338mag, 10);
|
||||
#endif
|
||||
|
||||
|
|
|
@ -27,7 +27,8 @@ Price: $650
|
|||
*/
|
||||
|
||||
#ifdef CLIENT
|
||||
void w_pistol_ejectshell(void)
|
||||
void
|
||||
w_pistol_ejectshell(void)
|
||||
{
|
||||
static void w_pistol_ejectshell_death(void) {
|
||||
remove(self);
|
||||
|
@ -144,24 +145,17 @@ w_deagle_primary(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
|
||||
if (pl.w_attack_next > 0.0) {
|
||||
if (pl.w_attack_next > 0.0)
|
||||
return;
|
||||
}
|
||||
|
||||
if (pl.gflags & GF_SEMI_TOGGLED) {
|
||||
if (pl.gflags & GF_SEMI_TOGGLED)
|
||||
return;
|
||||
}
|
||||
if (!pl.deagle_mag) {
|
||||
if (!pl.deagle_mag)
|
||||
return;
|
||||
}
|
||||
|
||||
Cstrike_ShotMultiplierAdd(pl, 1);
|
||||
float accuracy = Cstrike_CalculateAccuracy(pl, 200);
|
||||
pl.deagle_mag--;
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
|
||||
if (pl.deagle_mag <= 0) {
|
||||
Weapons_ViewAnimation(DEAGLE_SHOOT_EMPTY);
|
||||
} else {
|
||||
|
@ -175,16 +169,18 @@ w_deagle_primary(void)
|
|||
break;
|
||||
}
|
||||
}
|
||||
View_AddEvent(w_pistol_ejectshell, 0.0f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(1);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 54, [accuracy,accuracy], WEAPON_DEAGLE);
|
||||
|
||||
if (self.flags & FL_CROUCHING)
|
||||
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_ONEHAND, 0.45f);
|
||||
else
|
||||
Animation_PlayerTop(pl, ANIM_SHOOT_ONEHAND, 0.45f);
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
View_AddEvent(w_pistol_ejectshell, 0.0f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(1);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 54, [accuracy,accuracy], WEAPON_DEAGLE);
|
||||
Sound_Play(pl, CHAN_WEAPON, "weapon_deagle.fire");
|
||||
#endif
|
||||
|
||||
|
@ -207,10 +203,9 @@ w_deagle_reload(void)
|
|||
if (!pl.ammo_50ae) {
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef CLIENT
|
||||
Weapons_ViewAnimation(DEAGLE_RELOAD);
|
||||
#else
|
||||
|
||||
#ifdef SERVER
|
||||
Weapons_ReloadWeapon(pl, player::deagle_mag, player::ammo_50ae, 7);
|
||||
#endif
|
||||
|
||||
|
|
|
@ -27,7 +27,8 @@ Price: $1000
|
|||
*/
|
||||
|
||||
#ifdef CLIENT
|
||||
void w_elites_ejectshell(int side)
|
||||
void
|
||||
w_elites_ejectshell(int side)
|
||||
{
|
||||
static void w_elites_ejectshell_death(void) {
|
||||
remove(self);
|
||||
|
@ -57,12 +58,14 @@ void w_elites_ejectshell(int side)
|
|||
setorigin(eShell, gettaginfo(pSeat->m_eViewModel, pSeat->m_iVMBones + 1 + side));
|
||||
}
|
||||
|
||||
void w_pistol_ejectshell_left(void)
|
||||
void
|
||||
w_pistol_ejectshell_left(void)
|
||||
{
|
||||
w_elites_ejectshell(1);
|
||||
}
|
||||
|
||||
void w_pistol_ejectshell_right(void)
|
||||
void
|
||||
w_pistol_ejectshell_right(void)
|
||||
{
|
||||
w_elites_ejectshell(0);
|
||||
}
|
||||
|
@ -181,9 +184,6 @@ w_elites_primary(void)
|
|||
float accuracy = Cstrike_CalculateAccuracy(pl, 200);
|
||||
pl.elites_mag--;
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
|
||||
int r = (float)input_sequence % 5;
|
||||
if (pl.mode_temp) {
|
||||
if (pl.elites_mag <= 0) {
|
||||
|
@ -207,7 +207,6 @@ w_elites_primary(void)
|
|||
break;
|
||||
}
|
||||
}
|
||||
View_AddEvent(w_pistol_ejectshell_left, 0.0f);
|
||||
} else {
|
||||
if (pl.elites_mag <= 0) {
|
||||
Weapons_ViewAnimation(ELITES_SHOOT_RIGHTLAST);
|
||||
|
@ -230,11 +229,7 @@ w_elites_primary(void)
|
|||
break;
|
||||
}
|
||||
}
|
||||
View_AddEvent(w_pistol_ejectshell_right, 0.0f);
|
||||
}
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(0);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 45, [accuracy,accuracy], WEAPON_ELITES);
|
||||
|
||||
if (self.flags & FL_CROUCHING) {
|
||||
if (pl.mode_temp)
|
||||
|
@ -248,6 +243,16 @@ w_elites_primary(void)
|
|||
Animation_PlayerTop(pl, ANIM_SHOOT_DUALPISTOLS, 0.45f);
|
||||
}
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
|
||||
if (pl.mode_temp)
|
||||
View_AddEvent(w_pistol_ejectshell_left, 0.0f);
|
||||
else
|
||||
View_AddEvent(w_pistol_ejectshell_right, 0.0f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(0);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 45, [accuracy,accuracy], WEAPON_ELITES);
|
||||
Sound_Play(pl, CHAN_WEAPON, "weapon_elites.fire");
|
||||
#endif
|
||||
|
||||
|
@ -261,19 +266,16 @@ w_elites_reload(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
|
||||
if (pl.w_attack_next > 0.0) {
|
||||
if (pl.w_attack_next > 0.0)
|
||||
return;
|
||||
}
|
||||
if (pl.elites_mag >= 30) {
|
||||
if (pl.elites_mag >= 30)
|
||||
return;
|
||||
}
|
||||
if (!pl.ammo_9mm) {
|
||||
if (!pl.ammo_9mm)
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef CLIENT
|
||||
Weapons_ViewAnimation(ELITES_RELOAD);
|
||||
#else
|
||||
|
||||
#ifdef SERVER
|
||||
Weapons_ReloadWeapon(pl, player::elites_mag, player::ammo_9mm, 30);
|
||||
#endif
|
||||
|
||||
|
|
|
@ -127,9 +127,6 @@ w_fiveseven_primary(void)
|
|||
float accuracy = Cstrike_CalculateAccuracy(pl, 200);
|
||||
pl.fiveseven_mag--;
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
|
||||
if (pl.fiveseven_mag <= 0) {
|
||||
Weapons_ViewAnimation(FIVESEVEN_SHOOT_EMPTY);
|
||||
} else {
|
||||
|
@ -143,16 +140,18 @@ w_fiveseven_primary(void)
|
|||
break;
|
||||
}
|
||||
}
|
||||
View_AddEvent(w_pistol_ejectshell, 0.0f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(0);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 25, [accuracy,accuracy], WEAPON_FIVESEVEN);
|
||||
|
||||
if (self.flags & FL_CROUCHING)
|
||||
Animation_PlayerTop(pl, ANIM_SHOOT_ONEHAND, 0.45f);
|
||||
else
|
||||
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_ONEHAND, 0.45f);
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
View_AddEvent(w_pistol_ejectshell, 0.0f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(0);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 25, [accuracy,accuracy], WEAPON_FIVESEVEN);
|
||||
Sound_Play(pl, CHAN_WEAPON, "weapon_fiveseven.fire");
|
||||
#endif
|
||||
|
||||
|
@ -166,19 +165,16 @@ w_fiveseven_reload(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
|
||||
if (pl.w_attack_next > 0.0) {
|
||||
if (pl.w_attack_next > 0.0)
|
||||
return;
|
||||
}
|
||||
if (pl.fiveseven_mag >= 20) {
|
||||
if (pl.fiveseven_mag >= 20)
|
||||
return;
|
||||
}
|
||||
if (!pl.ammo_57mm) {
|
||||
if (!pl.ammo_57mm)
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef CLIENT
|
||||
Weapons_ViewAnimation(FIVESEVEN_RELOAD);
|
||||
#else
|
||||
|
||||
#ifdef SERVER
|
||||
Weapons_ReloadWeapon(pl, player::fiveseven_mag, player::ammo_57mm, 20);
|
||||
#endif
|
||||
|
||||
|
|
|
@ -98,7 +98,8 @@ w_flashbang_draw(void)
|
|||
}
|
||||
|
||||
#ifdef SERVER
|
||||
void w_flashbang_throw(void)
|
||||
void
|
||||
w_flashbang_throw(void)
|
||||
{
|
||||
static void flashbang_explode(void)
|
||||
{
|
||||
|
|
|
@ -122,9 +122,6 @@ w_g3sg1_primary(void)
|
|||
float accuracy = Cstrike_CalculateAccuracy(pl, 200);
|
||||
pl.g3sg1_mag--;
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
|
||||
int r = (float)input_sequence % 2;
|
||||
switch (r) {
|
||||
case 0:
|
||||
|
@ -134,16 +131,18 @@ w_g3sg1_primary(void)
|
|||
Weapons_ViewAnimation(SCOUT_SHOOT2);
|
||||
break;
|
||||
}
|
||||
View_AddEvent(w_rifle_ejectshell, 0.0f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(2);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 80, [accuracy,accuracy], WEAPON_G3SG1);
|
||||
|
||||
if (self.flags & FL_CROUCHING)
|
||||
Animation_PlayerTop(pl, ANIM_SHOOT_RIFLE, 0.45f);
|
||||
else
|
||||
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_RIFLE, 0.45f);
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
View_AddEvent(w_rifle_ejectshell, 0.0f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(2);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 80, [accuracy,accuracy], WEAPON_G3SG1);
|
||||
Sound_Play(pl, CHAN_WEAPON, "weapon_g3sg1.fire");
|
||||
#endif
|
||||
|
||||
|
@ -174,19 +173,16 @@ w_g3sg1_reload(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
|
||||
if (pl.w_attack_next > 0.0) {
|
||||
if (pl.w_attack_next > 0.0)
|
||||
return;
|
||||
}
|
||||
if (pl.g3sg1_mag >= 20) {
|
||||
if (pl.g3sg1_mag >= 20)
|
||||
return;
|
||||
}
|
||||
if (!pl.ammo_762mm) {
|
||||
if (!pl.ammo_762mm)
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef CLIENT
|
||||
Weapons_ViewAnimation(G3SG1_RELOAD);
|
||||
#else
|
||||
|
||||
#ifdef SERVER
|
||||
Weapons_ReloadWeapon(pl, player::g3sg1_mag, player::ammo_762mm, 20);
|
||||
Weapons_UpdateAmmo(pl, pl.g3sg1_mag, pl.ammo_762mm, -1);
|
||||
#endif
|
||||
|
|
|
@ -109,6 +109,7 @@ w_glock18_draw(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
Weapons_SetModel("models/v_glock18.mdl");
|
||||
|
||||
int r = (float)input_sequence % 2;
|
||||
switch (r) {
|
||||
case 0:
|
||||
|
@ -130,16 +131,12 @@ w_glock18_primary(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
|
||||
if (pl.w_attack_next > 0.0) {
|
||||
if (pl.w_attack_next > 0.0)
|
||||
return;
|
||||
}
|
||||
|
||||
if (pl.gflags & GF_SEMI_TOGGLED) {
|
||||
if (pl.gflags & GF_SEMI_TOGGLED)
|
||||
return;
|
||||
}
|
||||
if (!pl.glock18_mag) {
|
||||
if (!pl.glock18_mag)
|
||||
return;
|
||||
}
|
||||
|
||||
int shotcount = (pl.mode_glock18) ? 3 : 1;
|
||||
|
||||
|
@ -177,15 +174,15 @@ w_glock18_primary(void)
|
|||
pl.w_attack_next = 0.15f;
|
||||
}
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
View_AddEvent(w_pistol_ejectshell, 0.0f);
|
||||
#else
|
||||
if (pl.flags & FL_CROUCHING)
|
||||
Animation_PlayerTop(pl, ANIM_SHOOT_ONEHAND, 0.45f);
|
||||
else
|
||||
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_ONEHAND, 0.45f);
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
View_AddEvent(w_pistol_ejectshell, 0.0f);
|
||||
#else
|
||||
if (pl.mode_glock18) {
|
||||
Sound_Play(pl, CHAN_WEAPON, "weapon_glock18.burstfire");
|
||||
} else {
|
||||
|
@ -226,17 +223,13 @@ w_glock18_reload(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
|
||||
if (pl.w_attack_next > 0.0) {
|
||||
if (pl.w_attack_next > 0.0)
|
||||
return;
|
||||
}
|
||||
if (pl.glock18_mag >= 20) {
|
||||
if (pl.glock18_mag >= 20)
|
||||
return;
|
||||
}
|
||||
if (!pl.ammo_9mm) {
|
||||
if (!pl.ammo_9mm)
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef CLIENT
|
||||
int r = (float)input_sequence % 2;
|
||||
switch (r) {
|
||||
case 0:
|
||||
|
@ -246,8 +239,8 @@ w_glock18_reload(void)
|
|||
Weapons_ViewAnimation(GLOCK_RELOAD2);
|
||||
break;
|
||||
}
|
||||
#else
|
||||
|
||||
#ifdef SERVER
|
||||
Weapons_ReloadWeapon(pl, player::glock18_mag, player::ammo_9mm, 20);
|
||||
Weapons_UpdateAmmo(pl, pl.glock18_mag, pl.ammo_9mm, -1);
|
||||
#endif
|
||||
|
|
|
@ -98,7 +98,8 @@ w_hegrenade_draw(void)
|
|||
}
|
||||
|
||||
#ifdef SERVER
|
||||
void w_hegrenade_throw(void)
|
||||
void
|
||||
w_hegrenade_throw(void)
|
||||
{
|
||||
static void hegrenade_explode(void)
|
||||
{
|
||||
|
|
|
@ -79,10 +79,8 @@ w_knife_deathmsg(void)
|
|||
void
|
||||
w_knife_draw(void)
|
||||
{
|
||||
#ifdef CLIENT
|
||||
Weapons_SetModel("models/v_knife.mdl");
|
||||
Weapons_ViewAnimation(KNIFE_DRAW);
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -95,7 +93,6 @@ w_knife_primary(void)
|
|||
}
|
||||
pl.w_attack_next = 0.7f;
|
||||
|
||||
#ifdef CLIENT
|
||||
int r = (float)input_sequence % 2;
|
||||
switch (r) {
|
||||
case 0:
|
||||
|
@ -105,7 +102,13 @@ w_knife_primary(void)
|
|||
Weapons_ViewAnimation(KNIFE_SLASH2);
|
||||
break;
|
||||
}
|
||||
#else
|
||||
|
||||
if (self.flags & FL_CROUCHING)
|
||||
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_KNIFE, 1.33f);
|
||||
else
|
||||
Animation_PlayerTop(pl, ANIM_SHOOT_KNIFE, 1.33f);
|
||||
|
||||
#ifdef SERVER
|
||||
vector src;
|
||||
Weapons_MakeVectors();
|
||||
src = pl.origin + pl.view_ofs;
|
||||
|
@ -113,11 +116,6 @@ w_knife_primary(void)
|
|||
|
||||
Sound_Play(pl, CHAN_WEAPON, "weapon_knife.miss");
|
||||
|
||||
if (self.flags & FL_CROUCHING)
|
||||
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_KNIFE, 1.33f);
|
||||
else
|
||||
Animation_PlayerTop(pl, ANIM_SHOOT_KNIFE, 1.33f);
|
||||
|
||||
if (trace_fraction >= 1.0) {
|
||||
return;
|
||||
}
|
||||
|
@ -145,10 +143,15 @@ w_knife_secondary(void)
|
|||
}
|
||||
pl.w_attack_next = 1.2f;
|
||||
|
||||
#ifdef CLIENT
|
||||
|
||||
Weapons_ViewAnimation(KNIFE_STAB);
|
||||
#else
|
||||
|
||||
|
||||
if (self.flags & FL_CROUCHING)
|
||||
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_KNIFE, 1.33f);
|
||||
else
|
||||
Animation_PlayerTop(pl, ANIM_SHOOT_KNIFE, 1.33f);
|
||||
|
||||
#ifdef SERVER
|
||||
vector src;
|
||||
Weapons_MakeVectors();
|
||||
src = pl.origin + pl.view_ofs;
|
||||
|
|
|
@ -27,7 +27,8 @@ Price: $1700
|
|||
*/
|
||||
|
||||
#ifdef CLIENT
|
||||
void w_m3_ejectshell(void)
|
||||
void
|
||||
w_m3_ejectshell(void)
|
||||
{
|
||||
static void w_m3_ejectshell_death(void) {
|
||||
remove(self);
|
||||
|
@ -243,9 +244,6 @@ w_m3_release(void)
|
|||
pl.m3_mag++;
|
||||
pl.ammo_buckshot--;
|
||||
w_m3_updateammo(pl);
|
||||
#ifdef SERVER
|
||||
//Sound_Play(pl, CHAN_WEAPON, "weapon_m3.insertshell");
|
||||
#endif
|
||||
if (pl.ammo_buckshot <= 0 || pl.m3_mag >= 8) {
|
||||
pl.mode_temp = M3S_RELOAD_END;
|
||||
}
|
||||
|
|
|
@ -139,15 +139,6 @@ w_m4a1_primary(void)
|
|||
float accuracy = Cstrike_CalculateAccuracy(pl, 220);
|
||||
pl.m4a1_mag--;
|
||||
|
||||
/* actual firing */
|
||||
#ifdef CLIENT
|
||||
if (pl.mode_m4a1 == 1) {
|
||||
View_SetMuzzleflash(0);
|
||||
} else {
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
}
|
||||
|
||||
/* this stuff is predicted */
|
||||
int r = (float)input_sequence % 3;
|
||||
if (pl.mode_m4a1 == 1) {
|
||||
switch (r) {
|
||||
|
@ -174,6 +165,19 @@ w_m4a1_primary(void)
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (self.flags & FL_CROUCHING)
|
||||
Animation_PlayerTop(pl, ANIM_SHOOT_RIFLE, 0.45f);
|
||||
else
|
||||
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_RIFLE, 0.45f);
|
||||
|
||||
/* actual firing */
|
||||
#ifdef CLIENT
|
||||
if (pl.mode_m4a1 == 1) {
|
||||
View_SetMuzzleflash(0);
|
||||
} else {
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
}
|
||||
View_AddEvent(w_rifle_ejectshell, 0.0f);
|
||||
#else
|
||||
/* Different sounds without silencer */
|
||||
|
@ -185,11 +189,6 @@ w_m4a1_primary(void)
|
|||
|
||||
TraceAttack_SetPenetrationPower(1);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 33, [accuracy,accuracy], WEAPON_M4A1);
|
||||
|
||||
if (self.flags & FL_CROUCHING)
|
||||
Animation_PlayerTop(pl, ANIM_SHOOT_RIFLE, 0.45f);
|
||||
else
|
||||
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_RIFLE, 0.45f);
|
||||
#endif
|
||||
|
||||
pl.w_attack_next = 0.0875f;
|
||||
|
@ -224,23 +223,19 @@ w_m4a1_reload(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
|
||||
if (pl.w_attack_next > 0.0) {
|
||||
if (pl.w_attack_next > 0.0)
|
||||
return;
|
||||
}
|
||||
if (pl.m4a1_mag >= 30) {
|
||||
if (pl.m4a1_mag >= 30)
|
||||
return;
|
||||
}
|
||||
if (!pl.ammo_556mm) {
|
||||
if (!pl.ammo_556mm)
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef CLIENT
|
||||
if (pl.mode_m4a1 == 1) {
|
||||
if (pl.mode_m4a1 == 1)
|
||||
Weapons_ViewAnimation(M4A1_RELOAD);
|
||||
} else {
|
||||
else
|
||||
Weapons_ViewAnimation(M4A1_RELOADUNSIL);
|
||||
}
|
||||
#else
|
||||
|
||||
#ifdef SERVER
|
||||
Weapons_ReloadWeapon(pl, player::m4a1_mag, player::ammo_556mm, 30);
|
||||
#endif
|
||||
|
||||
|
|
|
@ -123,9 +123,6 @@ w_mac10_primary(void)
|
|||
float accuracy = Cstrike_CalculateAccuracy(pl, 200);
|
||||
pl.mac10_mag--;
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
|
||||
int r = (float)input_sequence % 3;
|
||||
switch (r) {
|
||||
case 0:
|
||||
|
@ -138,16 +135,18 @@ w_mac10_primary(void)
|
|||
Weapons_ViewAnimation(MAC10_SHOOT3);
|
||||
break;
|
||||
}
|
||||
View_AddEvent(w_pistol_ejectshell, 0.0f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(0);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 29, [accuracy,accuracy], WEAPON_MAC10);
|
||||
|
||||
if (self.flags & FL_CROUCHING)
|
||||
Animation_PlayerTop(pl, ANIM_SHOOT_MP5, 0.45f);
|
||||
else
|
||||
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_MP5, 0.45f);
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
View_AddEvent(w_pistol_ejectshell, 0.0f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(0);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 29, [accuracy,accuracy], WEAPON_MAC10);
|
||||
Sound_Play(pl, CHAN_WEAPON, "weapon_mac10.fire");
|
||||
#endif
|
||||
|
||||
|
@ -160,19 +159,16 @@ w_mac10_reload(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
|
||||
if (pl.w_attack_next > 0.0) {
|
||||
if (pl.w_attack_next > 0.0)
|
||||
return;
|
||||
}
|
||||
if (pl.mac10_mag >= 30) {
|
||||
if (pl.mac10_mag >= 30)
|
||||
return;
|
||||
}
|
||||
if (!pl.ammo_45acp) {
|
||||
if (!pl.ammo_45acp)
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef CLIENT
|
||||
Weapons_ViewAnimation(MAC10_RELOAD);
|
||||
#else
|
||||
|
||||
#ifdef SERVER
|
||||
Weapons_ReloadWeapon(pl, player::mac10_mag, player::ammo_45acp, 30);
|
||||
Weapons_UpdateAmmo(pl, pl.mac10_mag, pl.ammo_45acp, -1);
|
||||
#endif
|
||||
|
|
|
@ -112,20 +112,15 @@ w_mp5_primary(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
|
||||
if (pl.w_attack_next > 0.0) {
|
||||
if (pl.w_attack_next > 0.0)
|
||||
return;
|
||||
}
|
||||
if (!pl.mp5_mag) {
|
||||
if (!pl.mp5_mag)
|
||||
return;
|
||||
}
|
||||
|
||||
Cstrike_ShotMultiplierAdd(pl, 1);
|
||||
float accuracy = Cstrike_CalculateAccuracy(pl, 220);
|
||||
pl.mp5_mag--;
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
|
||||
int r = (float)input_sequence % 3;
|
||||
switch (r) {
|
||||
case 0:
|
||||
|
@ -138,16 +133,18 @@ w_mp5_primary(void)
|
|||
Weapons_ViewAnimation(MP5_SHOOT3);
|
||||
break;
|
||||
}
|
||||
View_AddEvent(w_pistol_ejectshell, 0.0f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(0);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 26, [accuracy,accuracy], WEAPON_MP5);
|
||||
|
||||
if (self.flags & FL_CROUCHING)
|
||||
Animation_PlayerTop(pl, ANIM_SHOOT_MP5, 0.45f);
|
||||
else
|
||||
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_MP5, 0.45f);
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
View_AddEvent(w_pistol_ejectshell, 0.0f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(0);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 26, [accuracy,accuracy], WEAPON_MP5);
|
||||
Sound_Play(pl, CHAN_WEAPON, "weapon_mp5.fire");
|
||||
#endif
|
||||
|
||||
|
@ -160,19 +157,16 @@ w_mp5_reload(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
|
||||
if (pl.w_attack_next > 0.0) {
|
||||
if (pl.w_attack_next > 0.0)
|
||||
return;
|
||||
}
|
||||
if (pl.mp5_mag >= 30) {
|
||||
if (pl.mp5_mag >= 30)
|
||||
return;
|
||||
}
|
||||
if (!pl.ammo_9mm) {
|
||||
if (!pl.ammo_9mm)
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef CLIENT
|
||||
Weapons_ViewAnimation(MP5_RELOAD);
|
||||
#else
|
||||
|
||||
#ifdef SERVER
|
||||
Weapons_ReloadWeapon(pl, player::mp5_mag, player::ammo_9mm, 30);
|
||||
Weapons_UpdateAmmo(pl, pl.mp5_mag, pl.ammo_9mm, -1);
|
||||
#endif
|
||||
|
|
|
@ -113,23 +113,17 @@ w_p228_primary(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
|
||||
if (pl.w_attack_next > 0.0) {
|
||||
if (pl.w_attack_next > 0.0)
|
||||
return;
|
||||
}
|
||||
if (pl.gflags & GF_SEMI_TOGGLED) {
|
||||
if (pl.gflags & GF_SEMI_TOGGLED)
|
||||
return;
|
||||
}
|
||||
if (!pl.p228_mag) {
|
||||
if (!pl.p228_mag)
|
||||
return;
|
||||
}
|
||||
|
||||
Cstrike_ShotMultiplierAdd(pl, 1);
|
||||
float accuracy = Cstrike_CalculateAccuracy(pl, 200);
|
||||
pl.p228_mag--;
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
|
||||
if (pl.p228_mag <= 0) {
|
||||
Weapons_ViewAnimation(P228_SHOOT_EMPTY);
|
||||
} else {
|
||||
|
@ -146,16 +140,18 @@ w_p228_primary(void)
|
|||
break;
|
||||
}
|
||||
}
|
||||
View_AddEvent(w_pistol_ejectshell, 0.0f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(0);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 40, [accuracy,accuracy], WEAPON_P228);
|
||||
|
||||
if (self.flags & FL_CROUCHING)
|
||||
Animation_PlayerTop(pl, ANIM_SHOOT_ONEHAND, 0.45f);
|
||||
else
|
||||
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_ONEHAND, 0.45f);
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
View_AddEvent(w_pistol_ejectshell, 0.0f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(0);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 40, [accuracy,accuracy], WEAPON_P228);
|
||||
Sound_Play(pl, CHAN_WEAPON, "weapon_p228.fire");
|
||||
#endif
|
||||
|
||||
|
@ -169,19 +165,16 @@ w_p228_reload(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
|
||||
if (pl.w_attack_next > 0.0) {
|
||||
if (pl.w_attack_next > 0.0)
|
||||
return;
|
||||
}
|
||||
if (pl.p228_mag >= 30) {
|
||||
if (pl.p228_mag >= 30)
|
||||
return;
|
||||
}
|
||||
if (!pl.ammo_357sig) {
|
||||
if (!pl.ammo_357sig)
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef CLIENT
|
||||
Weapons_ViewAnimation(P228_RELOAD);
|
||||
#else
|
||||
|
||||
#ifdef SERVER
|
||||
Weapons_ReloadWeapon(pl, player::p228_mag, player::ammo_357sig, 13);
|
||||
Weapons_UpdateAmmo(pl, pl.p228_mag, pl.ammo_357sig, -1);
|
||||
#endif
|
||||
|
|
|
@ -112,20 +112,15 @@ w_p90_primary(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
|
||||
if (pl.w_attack_next > 0.0) {
|
||||
if (pl.w_attack_next > 0.0)
|
||||
return;
|
||||
}
|
||||
if (!pl.p90_mag) {
|
||||
if (!pl.p90_mag)
|
||||
return;
|
||||
}
|
||||
|
||||
Cstrike_ShotMultiplierAdd(pl, 1);
|
||||
float accuracy = Cstrike_CalculateAccuracy(pl, 175);
|
||||
pl.p90_mag--;
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
|
||||
int r = (float)input_sequence % 3;
|
||||
switch (r) {
|
||||
case 0:
|
||||
|
@ -138,16 +133,18 @@ w_p90_primary(void)
|
|||
Weapons_ViewAnimation(P90_SHOOT3);
|
||||
break;
|
||||
}
|
||||
View_AddEvent(w_pistol_ejectshell, 0.0f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(0);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 26, [accuracy,accuracy], WEAPON_P90);
|
||||
|
||||
if (self.flags & FL_CROUCHING)
|
||||
Animation_PlayerTop(pl, ANIM_SHOOT_MP5, 0.45f);
|
||||
else
|
||||
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_MP5, 0.45f);
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
View_AddEvent(w_pistol_ejectshell, 0.0f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(0);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 26, [accuracy,accuracy], WEAPON_P90);
|
||||
Sound_Play(pl, CHAN_WEAPON, "weapon_p90.fire");
|
||||
#endif
|
||||
|
||||
|
@ -160,19 +157,16 @@ w_p90_reload(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
|
||||
if (pl.w_attack_next > 0.0) {
|
||||
if (pl.w_attack_next > 0.0)
|
||||
return;
|
||||
}
|
||||
if (pl.p90_mag >= 50) {
|
||||
if (pl.p90_mag >= 50)
|
||||
return;
|
||||
}
|
||||
if (!pl.ammo_57mm) {
|
||||
if (!pl.ammo_57mm)
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef CLIENT
|
||||
Weapons_ViewAnimation(P90_RELOAD);
|
||||
#else
|
||||
|
||||
#ifdef SERVER
|
||||
Weapons_ReloadWeapon(pl, player::p90_mag, player::ammo_57mm, 50);
|
||||
Weapons_UpdateAmmo(pl, pl.p90_mag, pl.ammo_57mm, -1);
|
||||
#endif
|
||||
|
|
|
@ -111,20 +111,15 @@ w_para_primary(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
|
||||
if (pl.w_attack_next > 0.0) {
|
||||
if (pl.w_attack_next > 0.0)
|
||||
return;
|
||||
}
|
||||
if (!pl.para_mag) {
|
||||
if (!pl.para_mag)
|
||||
return;
|
||||
}
|
||||
|
||||
Cstrike_ShotMultiplierAdd(pl, 1);
|
||||
float accuracy = Cstrike_CalculateAccuracy(pl, 175);
|
||||
pl.para_mag--;
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
|
||||
int r = (float)input_sequence % 2;
|
||||
switch (r) {
|
||||
case 0:
|
||||
|
@ -134,16 +129,18 @@ w_para_primary(void)
|
|||
Weapons_ViewAnimation(SCOUT_SHOOT2);
|
||||
break;
|
||||
}
|
||||
View_AddEvent(w_rifle_ejectshell, 0.0f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(1);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 35, [accuracy,accuracy], WEAPON_PARA);
|
||||
|
||||
if (self.flags & FL_CROUCHING)
|
||||
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_PARA, 0.45f);
|
||||
else
|
||||
Animation_PlayerTop(pl, ANIM_SHOOT_PARA, 0.45f);
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
View_AddEvent(w_rifle_ejectshell, 0.0f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(1);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 35, [accuracy,accuracy], WEAPON_PARA);
|
||||
Sound_Play(pl, CHAN_WEAPON, "weapon_para.fire");
|
||||
#endif
|
||||
|
||||
|
@ -156,19 +153,16 @@ w_para_reload(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
|
||||
if (pl.w_attack_next > 0.0) {
|
||||
if (pl.w_attack_next > 0.0)
|
||||
return;
|
||||
}
|
||||
if (pl.para_mag >= 100) {
|
||||
if (pl.para_mag >= 100)
|
||||
return;
|
||||
}
|
||||
if (!pl.ammo_556mmbox) {
|
||||
if (!pl.ammo_556mmbox)
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef CLIENT
|
||||
Weapons_ViewAnimation(PARA_RELOAD);
|
||||
#else
|
||||
|
||||
#ifdef SERVER
|
||||
Weapons_ReloadWeapon(pl, player::para_mag, player::ammo_556mmbox, 100);
|
||||
Weapons_UpdateAmmo(pl, pl.para_mag, pl.ammo_556mmbox, -1);
|
||||
#endif
|
||||
|
|
|
@ -140,22 +140,21 @@ void
|
|||
w_scout_secondary(void)
|
||||
{
|
||||
player pl = (player)self;
|
||||
if (pl.w_attack_next) {
|
||||
|
||||
if (pl.w_attack_next)
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef SSQC
|
||||
Sound_Play(pl, CHAN_WEAPON, "weapon_awp.zoom");
|
||||
#endif
|
||||
|
||||
/* Simple toggle of fovs */
|
||||
if (pl.mode_temp == 1) {
|
||||
if (pl.mode_temp == 1)
|
||||
pl.mode_temp = 2;
|
||||
} else if (pl.mode_temp == 2) {
|
||||
else if (pl.mode_temp == 2)
|
||||
pl.mode_temp = 0;
|
||||
} else {
|
||||
else
|
||||
pl.mode_temp = 1;
|
||||
}
|
||||
|
||||
pl.w_attack_next = 0.3f;
|
||||
pl.w_idle_next = 0.0f;
|
||||
|
@ -179,9 +178,6 @@ w_scout_primary(void)
|
|||
float accuracy = Cstrike_CalculateAccuracy(pl, 200);
|
||||
pl.scout_mag--;
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
|
||||
int r = (float)input_sequence % 2;
|
||||
switch (r) {
|
||||
case 0:
|
||||
|
@ -191,16 +187,19 @@ w_scout_primary(void)
|
|||
Weapons_ViewAnimation(SCOUT_SHOOT2);
|
||||
break;
|
||||
}
|
||||
View_AddEvent(w_rifle_ejectshell, 0.5f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(2);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 75, [accuracy,accuracy], WEAPON_SCOUT);
|
||||
|
||||
if (self.flags & FL_CROUCHING)
|
||||
Animation_PlayerTop(pl, ANIM_SHOOT_RIFLE, 0.45f);
|
||||
else
|
||||
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_RIFLE, 0.45f);
|
||||
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
View_AddEvent(w_rifle_ejectshell, 0.5f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(2);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 75, [accuracy,accuracy], WEAPON_SCOUT);
|
||||
Sound_Play(pl, CHAN_WEAPON, "weapon_scout.fire");
|
||||
#endif
|
||||
|
||||
|
@ -213,19 +212,16 @@ w_scout_reload(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
|
||||
if (pl.w_attack_next > 0.0) {
|
||||
if (pl.w_attack_next > 0.0)
|
||||
return;
|
||||
}
|
||||
if (pl.scout_mag >= 10) {
|
||||
if (pl.scout_mag >= 10)
|
||||
return;
|
||||
}
|
||||
if (!pl.ammo_762mm) {
|
||||
if (!pl.ammo_762mm)
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef CLIENT
|
||||
Weapons_ViewAnimation(SCOUT_RELOAD);
|
||||
#else
|
||||
|
||||
#ifdef SERVER
|
||||
Weapons_ReloadWeapon(pl, player::scout_mag, player::ammo_762mm, 10);
|
||||
Weapons_UpdateAmmo(pl, pl.scout_mag, pl.ammo_762mm, -1);
|
||||
#endif
|
||||
|
|
|
@ -111,20 +111,15 @@ w_sg550_primary(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
|
||||
if (pl.w_attack_next > 0.0) {
|
||||
if (pl.w_attack_next > 0.0)
|
||||
return;
|
||||
}
|
||||
if (!pl.sg550_mag) {
|
||||
if (!pl.sg550_mag)
|
||||
return;
|
||||
}
|
||||
|
||||
Cstrike_ShotMultiplierAdd(pl, 1);
|
||||
float accuracy = Cstrike_CalculateAccuracy(pl, 200);
|
||||
pl.sg550_mag--;
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
|
||||
int r = (float)input_sequence % 2;
|
||||
switch (r) {
|
||||
case 0:
|
||||
|
@ -134,16 +129,19 @@ w_sg550_primary(void)
|
|||
Weapons_ViewAnimation(SCOUT_SHOOT2);
|
||||
break;
|
||||
}
|
||||
View_AddEvent(w_rifle_ejectshell, 0.0f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(1);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 70, [accuracy,accuracy], WEAPON_SG550);
|
||||
|
||||
if (self.flags & FL_CROUCHING)
|
||||
Animation_PlayerTop(pl, ANIM_SHOOT_RIFLE, 0.45f);
|
||||
else
|
||||
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_RIFLE, 0.45f);
|
||||
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
View_AddEvent(w_rifle_ejectshell, 0.0f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(1);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 70, [accuracy,accuracy], WEAPON_SG550);
|
||||
Sound_Play(pl, CHAN_WEAPON, "weapon_sg550.fire");
|
||||
#endif
|
||||
|
||||
|
@ -155,17 +153,18 @@ void
|
|||
w_sg550_secondary(void)
|
||||
{
|
||||
player pl = (player)self;
|
||||
if (pl.w_attack_next) {
|
||||
|
||||
if (pl.w_attack_next)
|
||||
return;
|
||||
}
|
||||
|
||||
/* Simple toggle of fovs */
|
||||
if (pl.viewzoom == 1.0f) {
|
||||
if (pl.viewzoom == 1.0f)
|
||||
pl.viewzoom = 0.45f;
|
||||
} else if (pl.viewzoom == 0.45f) {
|
||||
else if (pl.viewzoom == 0.45f)
|
||||
pl.viewzoom = 0.1f;
|
||||
} else {
|
||||
else
|
||||
pl.viewzoom = 1.0f;
|
||||
}
|
||||
|
||||
pl.w_attack_next = 0.5f;
|
||||
}
|
||||
|
||||
|
@ -174,19 +173,16 @@ w_sg550_reload(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
|
||||
if (pl.w_attack_next > 0.0) {
|
||||
if (pl.w_attack_next > 0.0)
|
||||
return;
|
||||
}
|
||||
if (pl.sg550_mag >= 30) {
|
||||
if (pl.sg550_mag >= 30)
|
||||
return;
|
||||
}
|
||||
if (!pl.ammo_556mm) {
|
||||
if (!pl.ammo_556mm)
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef CLIENT
|
||||
Weapons_ViewAnimation(SG550_RELOAD);
|
||||
#else
|
||||
|
||||
#ifdef SERVER
|
||||
Weapons_ReloadWeapon(pl, player::sg550_mag, player::ammo_556mm, 30);
|
||||
Weapons_UpdateAmmo(pl, pl.sg550_mag, pl.ammo_556mm, -1);
|
||||
#endif
|
||||
|
|
|
@ -112,20 +112,15 @@ w_sg552_primary(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
|
||||
if (pl.w_attack_next > 0.0) {
|
||||
if (pl.w_attack_next > 0.0)
|
||||
return;
|
||||
}
|
||||
if (!pl.sg552_mag) {
|
||||
if (!pl.sg552_mag)
|
||||
return;
|
||||
}
|
||||
|
||||
Cstrike_ShotMultiplierAdd(pl, 1);
|
||||
float accuracy = Cstrike_CalculateAccuracy(pl, 220);
|
||||
pl.sg552_mag--;
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
|
||||
int r = (float)input_sequence % 3;
|
||||
switch (r) {
|
||||
case 0:
|
||||
|
@ -138,24 +133,26 @@ w_sg552_primary(void)
|
|||
Weapons_ViewAnimation(SG552_SHOOT3);
|
||||
break;
|
||||
}
|
||||
View_AddEvent(w_rifle_ejectshell, 0.0f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(1);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 33, [accuracy,accuracy], WEAPON_SG552);
|
||||
|
||||
if (self.flags & FL_CROUCHING)
|
||||
Animation_PlayerTop(pl, ANIM_SHOOT_RIFLE, 0.45f);
|
||||
else
|
||||
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_RIFLE, 0.45f);
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
View_AddEvent(w_rifle_ejectshell, 0.0f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(1);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 33, [accuracy,accuracy], WEAPON_SG552);
|
||||
Sound_Play(pl, CHAN_WEAPON, "weapon_sg552.fire");
|
||||
#endif
|
||||
|
||||
if (pl.viewzoom == 1.0f) {
|
||||
if (pl.viewzoom == 1.0f)
|
||||
pl.w_attack_next = 0.0825f;
|
||||
} else {
|
||||
else
|
||||
pl.w_attack_next = 0.15f;
|
||||
}
|
||||
|
||||
pl.w_idle_next = pl.w_attack_next;
|
||||
}
|
||||
|
||||
|
@ -163,15 +160,16 @@ void
|
|||
w_sg552_secondary(void)
|
||||
{
|
||||
player pl = (player)self;
|
||||
if (pl.w_attack_next) {
|
||||
|
||||
if (pl.w_attack_next)
|
||||
return;
|
||||
}
|
||||
|
||||
/* Simple toggle of fovs */
|
||||
if (pl.viewzoom == 1.0f) {
|
||||
if (pl.viewzoom == 1.0f)
|
||||
pl.viewzoom = 0.2f;
|
||||
} else {
|
||||
else
|
||||
pl.viewzoom = 1.0f;
|
||||
}
|
||||
|
||||
pl.w_attack_next = 0.5f;
|
||||
}
|
||||
|
||||
|
@ -180,19 +178,16 @@ w_sg552_reload(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
|
||||
if (pl.w_attack_next > 0.0) {
|
||||
if (pl.w_attack_next > 0.0)
|
||||
return;
|
||||
}
|
||||
if (pl.sg552_mag >= 30) {
|
||||
if (pl.sg552_mag >= 30)
|
||||
return;
|
||||
}
|
||||
if (!pl.ammo_556mm) {
|
||||
if (!pl.ammo_556mm)
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef CLIENT
|
||||
Weapons_ViewAnimation(SG552_RELOAD);
|
||||
#else
|
||||
|
||||
#ifdef SERVER
|
||||
Weapons_ReloadWeapon(pl, player::sg552_mag, player::ammo_556mm, 30);
|
||||
Weapons_UpdateAmmo(pl, pl.sg552_mag, pl.ammo_556mm, -1);
|
||||
#endif
|
||||
|
|
|
@ -98,7 +98,8 @@ w_smokegrenade_draw(void)
|
|||
}
|
||||
|
||||
#ifdef SERVER
|
||||
void w_smokegrenade_throw(void)
|
||||
void
|
||||
w_smokegrenade_throw(void)
|
||||
{
|
||||
static void smokegrenade_explode(void)
|
||||
{
|
||||
|
|
|
@ -112,22 +112,15 @@ w_tmp_primary(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
|
||||
if (pl.w_attack_next > 0.0) {
|
||||
if (pl.w_attack_next > 0.0)
|
||||
return;
|
||||
}
|
||||
|
||||
/* ammo check */
|
||||
if (!pl.tmp_mag) {
|
||||
if (!pl.tmp_mag)
|
||||
return;
|
||||
}
|
||||
|
||||
Cstrike_ShotMultiplierAdd(pl, 1);
|
||||
float accuracy = Cstrike_CalculateAccuracy(pl, 200);
|
||||
pl.tmp_mag--;
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
|
||||
int r = (float)input_sequence % 3;
|
||||
switch (r) {
|
||||
case 0:
|
||||
|
@ -140,16 +133,18 @@ w_tmp_primary(void)
|
|||
Weapons_ViewAnimation(TMP_SHOOT3);
|
||||
break;
|
||||
}
|
||||
View_AddEvent(w_pistol_ejectshell, 0.0f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(0);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 26, [accuracy,accuracy], WEAPON_TMP);
|
||||
|
||||
if (self.flags & FL_CROUCHING)
|
||||
Animation_PlayerTop(pl, ANIM_SHOOT_MP5, 0.45f);
|
||||
else
|
||||
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_MP5, 0.45f);
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
View_AddEvent(w_pistol_ejectshell, 0.0f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(0);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 26, [accuracy,accuracy], WEAPON_TMP);
|
||||
Sound_Play(pl, CHAN_WEAPON, "weapon_tmp.fire");
|
||||
#endif
|
||||
|
||||
|
@ -162,19 +157,16 @@ w_tmp_reload(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
|
||||
if (pl.w_attack_next > 0.0) {
|
||||
if (pl.w_attack_next > 0.0)
|
||||
return;
|
||||
}
|
||||
if (pl.tmp_mag >= 30) {
|
||||
if (pl.tmp_mag >= 30)
|
||||
return;
|
||||
}
|
||||
if (!pl.ammo_9mm) {
|
||||
if (!pl.ammo_9mm)
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef CLIENT
|
||||
Weapons_ViewAnimation(TMP_RELOAD);
|
||||
#else
|
||||
|
||||
#ifdef SERVER
|
||||
Weapons_ReloadWeapon(pl, player::tmp_mag, player::ammo_9mm, 30);
|
||||
Weapons_UpdateAmmo(pl, pl.tmp_mag, pl.ammo_9mm, -1);
|
||||
#endif
|
||||
|
|
|
@ -112,14 +112,10 @@ w_ump45_primary(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
|
||||
if (pl.w_attack_next > 0.0) {
|
||||
if (pl.w_attack_next > 0.0)
|
||||
return;
|
||||
}
|
||||
|
||||
/* ammo check */
|
||||
if (!pl.ump45_mag) {
|
||||
if (!pl.ump45_mag)
|
||||
return;
|
||||
}
|
||||
|
||||
Cstrike_ShotMultiplierAdd(pl, 1);
|
||||
float accuracy = Cstrike_CalculateAccuracy(pl, 210);
|
||||
|
@ -138,18 +134,17 @@ w_ump45_primary(void)
|
|||
break;
|
||||
}
|
||||
|
||||
if (self.flags & FL_CROUCHING)
|
||||
Animation_PlayerTop(pl, ANIM_SHOOT_MP5, 0.45f);
|
||||
else
|
||||
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_MP5, 0.45f);
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
View_AddEvent(w_pistol_ejectshell, 0.0f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(0);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 30, [accuracy,accuracy], WEAPON_UMP45);
|
||||
|
||||
if (self.flags & FL_CROUCHING)
|
||||
Animation_PlayerTop(pl, ANIM_SHOOT_MP5, 0.45f);
|
||||
else
|
||||
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_MP5, 0.45f);
|
||||
|
||||
Sound_Play(pl, CHAN_WEAPON, "weapon_ump45.fire");
|
||||
#endif
|
||||
|
||||
|
@ -162,19 +157,16 @@ w_ump45_reload(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
|
||||
if (pl.w_attack_next > 0.0) {
|
||||
if (pl.w_attack_next > 0.0)
|
||||
return;
|
||||
}
|
||||
if (pl.ump45_mag >= 25) {
|
||||
if (pl.ump45_mag >= 25)
|
||||
return;
|
||||
}
|
||||
if (!pl.ammo_45acp) {
|
||||
if (!pl.ammo_45acp)
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef CLIENT
|
||||
Weapons_ViewAnimation(UMP45_RELOAD);
|
||||
#else
|
||||
|
||||
#ifdef SERVER
|
||||
Weapons_ReloadWeapon(pl, player::ump45_mag, player::ammo_45acp, 25);
|
||||
Weapons_UpdateAmmo(pl, pl.ump45_mag, pl.ammo_45acp, -1);
|
||||
#endif
|
||||
|
|
|
@ -130,18 +130,12 @@ w_usp45_primary(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
|
||||
if (pl.w_attack_next > 0.0) {
|
||||
if (pl.w_attack_next > 0.0)
|
||||
return;
|
||||
}
|
||||
|
||||
if (pl.gflags & GF_SEMI_TOGGLED) {
|
||||
if (pl.gflags & GF_SEMI_TOGGLED)
|
||||
return;
|
||||
}
|
||||
|
||||
/* ammo check */
|
||||
if (!pl.usp45_mag) {
|
||||
if (!pl.usp45_mag)
|
||||
return;
|
||||
}
|
||||
|
||||
Cstrike_ShotMultiplierAdd(pl, 1);
|
||||
float accuracy = Cstrike_CalculateAccuracy(pl, 200);
|
||||
|
@ -183,6 +177,11 @@ w_usp45_primary(void)
|
|||
}
|
||||
}
|
||||
|
||||
if (self.flags & FL_CROUCHING)
|
||||
Animation_PlayerTop(pl, ANIM_SHOOT_ONEHAND, 0.45f);
|
||||
else
|
||||
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_ONEHAND, 0.45f);
|
||||
|
||||
#ifdef CLIENT
|
||||
if (pl.mode_usp45 == 1) {
|
||||
View_SetMuzzleflash(0);
|
||||
|
@ -202,11 +201,6 @@ w_usp45_primary(void)
|
|||
/* actual firing */
|
||||
TraceAttack_SetPenetrationPower(0);
|
||||
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 33, [accuracy,accuracy], WEAPON_USP45);
|
||||
|
||||
if (self.flags & FL_CROUCHING)
|
||||
Animation_PlayerTop(pl, ANIM_SHOOT_ONEHAND, 0.45f);
|
||||
else
|
||||
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_ONEHAND, 0.45f);
|
||||
#endif
|
||||
|
||||
pl.gflags |= GF_SEMI_TOGGLED;
|
||||
|
@ -219,19 +213,17 @@ w_usp45_secondary(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
|
||||
if (pl.w_attack_next > 0) {
|
||||
if (pl.w_attack_next > 0)
|
||||
return;
|
||||
}
|
||||
|
||||
/* toggle silencer */
|
||||
pl.mode_usp45 = 1 - pl.mode_usp45;
|
||||
|
||||
/* play the animation */
|
||||
if (pl.mode_usp45) {
|
||||
if (pl.mode_usp45)
|
||||
Weapons_ViewAnimation(USP45_ADDSIL);
|
||||
} else {
|
||||
else
|
||||
Weapons_ViewAnimation(USP45_DETACHSIL);
|
||||
}
|
||||
|
||||
pl.w_attack_next = 3.1f;
|
||||
pl.w_idle_next = pl.w_attack_next;
|
||||
|
@ -242,23 +234,19 @@ w_usp45_reload(void)
|
|||
{
|
||||
player pl = (player)self;
|
||||
|
||||
if (pl.w_attack_next > 0.0) {
|
||||
if (pl.w_attack_next > 0.0)
|
||||
return;
|
||||
}
|
||||
if (pl.usp45_mag >= 12) {
|
||||
if (pl.usp45_mag >= 12)
|
||||
return;
|
||||
}
|
||||
if (!pl.ammo_45acp) {
|
||||
if (!pl.ammo_45acp)
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef CLIENT
|
||||
if (pl.mode_usp45 == 1) {
|
||||
if (pl.mode_usp45 == 1)
|
||||
Weapons_ViewAnimation(USP45_RELOAD);
|
||||
} else {
|
||||
else
|
||||
Weapons_ViewAnimation(USP45_RELOADUNSIL);
|
||||
}
|
||||
#else
|
||||
|
||||
#ifdef SERVER
|
||||
Weapons_ReloadWeapon(pl, player::usp45_mag, player::ammo_45acp, 12);
|
||||
#endif
|
||||
|
||||
|
|
|
@ -27,7 +27,8 @@ Price: $3000
|
|||
*/
|
||||
|
||||
#ifdef CLIENT
|
||||
void w_xm1014_ejectshell(void)
|
||||
void
|
||||
w_xm1014_ejectshell(void)
|
||||
{
|
||||
static void w_xm1014_ejectshell_death(void) {
|
||||
remove(self);
|
||||
|
@ -178,18 +179,17 @@ w_xm1014_primary(void)
|
|||
break;
|
||||
}
|
||||
|
||||
if (self.flags & FL_CROUCHING)
|
||||
Animation_PlayerTop(pl, ANIM_SHOOT_SHOTGUN, 0.45f);
|
||||
else
|
||||
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_SHOTGUN, 0.45f);
|
||||
|
||||
#ifdef CLIENT
|
||||
View_SetMuzzleflash(MUZZLE_RIFLE);
|
||||
View_AddEvent(w_xm1014_ejectshell, 0.0f);
|
||||
#else
|
||||
TraceAttack_SetPenetrationPower(0);
|
||||
TraceAttack_FireBullets(6, pl.origin + pl.view_ofs, 22, [accuracy,accuracy], WEAPON_XM1014);
|
||||
|
||||
if (self.flags & FL_CROUCHING)
|
||||
Animation_PlayerTop(pl, ANIM_SHOOT_SHOTGUN, 0.45f);
|
||||
else
|
||||
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_SHOTGUN, 0.45f);
|
||||
|
||||
Sound_Play(pl, CHAN_WEAPON, "weapon_xm1014.fire");
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in a new issue