Fixed weapon switching in reverse, fixed radius damages healing players on special occasions...

This commit is contained in:
Marco Cawthorne 2017-06-21 21:07:23 +02:00
parent b105c9db47
commit e58ddeb566
15 changed files with 78 additions and 17 deletions

View file

@ -90,6 +90,7 @@ void View_PlayAnimation( int iSequence );
// This actually belongs in Builtins.h since its an undocumented global
vector pmove_vel;
.float weapon;
.float maxframe;
void Animation_ShootWeapon( void );
void Animation_ReloadWeapon( void )

View file

@ -467,6 +467,14 @@ void CSQC_Parse_Event( void ) {
vNormal_z = readcoord();
Effect_Impact( iType, vOrigin, vNormal );
} else if ( fHeader == EV_EXPLOSION ) {
vector vExploPos;
vExploPos_x = readcoord();
vExploPos_y = readcoord();
vExploPos_z = readcoord();
Effect_CreateExplosion( vExploPos );
}
}

View file

@ -196,10 +196,10 @@ float HUD_DrawWeaponSelect_PreviousItem( float fSlot ) {
return SLOT_GRENADE;
}
}
if ( getstatf( STAT_SLOT_PRIMARY ) ) {
return SLOT_PRIMARY;
if ( getstatf( STAT_SLOT_MELEE ) ) {
return SLOT_MELEE;
} else {
return HUD_DrawWeaponSelect_NextItem( SLOT_PRIMARY );
return HUD_DrawWeaponSelect_PreviousItem( SLOT_MELEE );
}
}
}

View file

@ -28,6 +28,7 @@ Comparable to worldspawn in SSQC in that it's mostly used for precaches
void CSQC_Init(float apilevel, string enginename, float engineversion) {
precache_model( HUD_NUMFILE );
precache_model( "sprites/fexplo.spr" );
precache_model( "sprites/muzzleflash1.spr" );
precache_model( "sprites/radar640.spr" );
precache_model( "sprites/640hud1.spr" );

View file

@ -114,14 +114,19 @@
</project>
<workspace version="Crimson Editor 3.60">
<localfile path="C:\Cygwin\home\eukara\Projects\FreeCS\freecs\csprogs.en.po" linenum="131" placement="0:1:-1:-1:-4:-23:132:132:980:602" />
<localfile path="C:\Cygwin\home\eukara\Projects\FreeCS\Source\Client\VGUIBuyMenu.c" linenum="24" placement="0:1:-1:-1:-4:-23:22:22:874:496" />
<localfile path="C:\Cygwin\home\eukara\Projects\FreeCS\Source\Client\VGUI.c" linenum="25" placement="0:1:-1:-1:-4:-23:44:44:896:518" />
<localfile path="C:\Cygwin\home\eukara\Projects\FreeCS\Source\Client\VGUIMOTD.c" linenum="38" placement="0:1:-1:-1:-4:-23:66:66:918:540" />
<localfile path="C:\Cygwin\home\eukara\Projects\FreeCS\Source\Client\VGUIRadio.c" linenum="113" placement="2:3:-1:-1:-4:-23:88:88:940:562" />
<localfile path="C:\Cygwin\home\eukara\Projects\FreeCS\Source\Client\VGUIScoreboard.c" linenum="22" placement="0:1:-1:-1:-4:-23:110:110:962:584" />
<localfile path="C:\Cygwin\home\eukara\Projects\FreeCS\Source\Client\VGUISpectator.c" linenum="60" placement="0:1:-1:-1:-4:-23:132:132:984:606" />
<localfile path="C:\Cygwin\home\eukara\Projects\FreeCS\Source\Client\VGUITeamSelect.c" linenum="24" placement="0:1:-1:-1:-4:-23:154:154:1006:628" />
<localfile path="C:\Cygwin\home\eukara\Projects\FreeCS\Source\Shared\Radio.c" linenum="118" placement="0:1:-1:-1:-4:-23:176:176:1028:650" />
<localfile path="C:\Cygwin\home\eukara\Projects\FreeCS\Source\Shared\WeaponHEGrenade.c" linenum="98" placement="0:1:-1:-1:-4:-23:44:44:892:514" />
<localfile path="C:\Cygwin\home\eukara\Projects\FreeCS\Source\Shared\WeaponC4Bomb.c" linenum="116" placement="0:1:-1:-1:-4:-23:66:66:918:540" />
<localfile path="C:\Cygwin\home\eukara\Projects\FreeCS\Source\Shared\WeaponFlashbang.c" linenum="109" placement="0:1:-1:-1:-4:-23:88:88:940:562" />
<localfile path="C:\Cygwin\home\eukara\Projects\FreeCS\Source\Shared\Effects.c" linenum="32" placement="0:1:-1:-1:-4:-23:132:132:984:606" />
<localfile path="C:\Cygwin\home\eukara\Projects\FreeCS\Source\Client\Defs.h" linenum="94" placement="0:1:-1:-1:-4:-23:154:154:1006:628" />
<localfile path="C:\Cygwin\home\eukara\Projects\FreeCS\Source\Globals.h" linenum="223" placement="0:1:-1:-1:-4:-23:176:176:1028:650" />
<localfile path="C:\Cygwin\home\eukara\Projects\FreeCS\Source\Client\Event.c" linenum="470" placement="0:1:-1:-1:-4:-23:198:198:1050:672" />
<localfile path="C:\Cygwin\home\eukara\Projects\FreeCS\Source\Client\Init.c" linenum="31" placement="0:1:-1:-1:-4:-23:220:220:1072:694" />
<localfile path="C:\Cygwin\home\eukara\Projects\FreeCS\Source\Server\Defs.h" linenum="151" placement="0:1:-1:-1:-4:-23:0:0:852:474" />
<localfile path="C:\Cygwin\home\eukara\Projects\FreeCS\Source\Builtins.h" linenum="860" placement="0:1:-1:-1:-4:-23:22:22:874:496" />
<localfile path="C:\Cygwin\home\eukara\Projects\FreeCS\Source\Client\HUDWeaponSelect.c" linenum="187" placement="0:1:-1:-1:-4:-23:44:44:896:518" />
<localfile path="C:\Cygwin\home\eukara\Projects\FreeCS\freecs\default.cfg" linenum="72" placement="2:3:-1:-1:-4:-23:66:66:918:540" />
<localfile path="C:\Cygwin\home\eukara\Projects\FreeCS\Source\Server\Damage.c" linenum="179" placement="0:1:-1:-1:-4:-23:88:88:940:562" />
<localfile path="C:\Cygwin\home\eukara\Projects\FreeCS\conhistory.txt" linenum="72" placement="0:1:-1:-1:-4:-23:110:110:962:584" />
</workspace>

View file

@ -220,6 +220,7 @@ enum {
EV_WEAPON_SECONDARYATTACK,
EV_WEAPON_RELOAD,
EV_IMPACT,
EV_EXPLOSION,
EV_MODELGIB,
EV_CAMERATRIGGER,
EV_RADIOMSG,

View file

@ -175,8 +175,8 @@ void Damage_Radius( vector vOrigin, entity eAttacker, float fDamage, float fRadi
fDiff = ( fRadius - fDiff ) / fRadius;
fDamage = fDamage * fDiff;
if ( fDiff > 0 ) {
if ( fDamage > 0 ) {
Damage_Apply( eDChain, eAttacker, fDamage, eDChain.origin );
}
}

View file

@ -159,6 +159,8 @@ void Animation_PlayerTop( float fFrame );
void Animation_PlayerTopTemp( float fFrame, float fTime );
void Footsteps_Update( void );
void Effect_CreateExplosion( vector vPos );
// WIP
string __fullspawndata;
hashtable hashMaterials;

View file

@ -17,11 +17,43 @@ You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
void Effect_CreateExplosion( vector vPos ) {
#ifdef SSQC
vPos_z += 48;
WriteByte( MSG_MULTICAST, SVC_CGAMEPACKET );
WriteByte( MSG_MULTICAST, EV_EXPLOSION );
WriteCoord( MSG_MULTICAST, vPos_x );
WriteCoord( MSG_MULTICAST, vPos_y );
WriteCoord( MSG_MULTICAST, vPos_z );
msg_entity = self;
multicast( vPos, MULTICAST_PVS );
#else
print( "Explosion\n" );
static void Effect_CreateExplosion_Animate( void ) {
if ( self.frame >= self.maxframe ) {
remove( self );
} else {
self.frame += 1;
}
self.nextthink = time + 0.05f;
}
entity eExplosion = spawn();
setorigin( eExplosion, vPos );
setmodel( eExplosion, "sprites/fexplo.spr" );
eExplosion.think = Effect_CreateExplosion_Animate;
eExplosion.nextthink = time + 0.05f;
eExplosion.effects = EF_ADDITIVE;
eExplosion.drawmask = MASK_ENGINE;
eExplosion.maxframe = modelframecount( eExplosion.modelindex );
#endif
}
#ifdef CSQC
.float framerate;
.float maxframe;
void Effect_AnimatedSprite( vector vPos, float fIndex, float fFPS, float fScale, float fAlpha, float fEffects ) {
static void Effect_AnimatedSprite_Animate( void ) {
if( self.frame >= self.maxframe ) {
self.frame = 0;

View file

@ -95,6 +95,11 @@ void WeaponFLASHBANG_PrimaryFire( void ) {
#ifdef SSQC
void WeaponFLASHBANG_Throw( void ) {
static void WeaponFLASHBANG_Explode( void ) {
if ( random() < 0.5 ) {
sound( self, CHAN_WEAPON, "weapons/flashbang-1.wav", 1, ATTN_NORM );
} else {
sound( self, CHAN_WEAPON, "weapons/flashbang-2.wav", 1, ATTN_NORM );
}
remove( self );
}
static void Weapon_FLASHBANG_Touch( void ) {

View file

@ -95,13 +95,16 @@ void WeaponHEGRENADE_PrimaryFire( void ) {
#ifdef SSQC
void WeaponHEGRENADE_Throw( void ) {
static void WeaponHEGRENADE_Explode( void ) {
Effect_CreateExplosion( self.origin );
Damage_Radius( self.origin, self, 100, 512 );
sound( self, CHAN_WEAPON, sprintf( "weapons/explode%d.wav", floor( random() * 3 ) + 3 ), 1, ATTN_NORM );
remove( self );
}
static void Weapon_HEGRENADE_Touch( void ) {
if ( other.classname == "func_breakable" ) {
Damage_Apply( other, self, 10, self.origin );
}
sound( self, CHAN_WEAPON, sprintf( "weapons/grenade_hit%d.wav", floor( random() * 3 ) + 1 ), 1, ATTN_NORM );
sound( self, CHAN_WEAPON, "weapons/he_bounce-1.wav", 1, ATTN_NORM );
}
makevectors( self.v_angle );

Binary file not shown.

0
freecs/csprogs.en_US.po → freecs/csprogs.en.po Normal file → Executable file
View file

View file

@ -67,3 +67,6 @@ seta r_fb_models 0
seta con_logcenterprint 0
seta v_contentblend 0
seta com_nogamedirnativecode 0
seta r_shadow_realtime_world_shadows "0"
seta r_shadow_realtime_dlight_shadows "0"

Binary file not shown.