Fixed weapon switching in reverse, fixed radius damages healing players on special occasions...
This commit is contained in:
parent
b105c9db47
commit
e58ddeb566
15 changed files with 78 additions and 17 deletions
|
@ -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 )
|
||||
|
|
|
@ -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 );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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" );
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -220,6 +220,7 @@ enum {
|
|||
EV_WEAPON_SECONDARYATTACK,
|
||||
EV_WEAPON_RELOAD,
|
||||
EV_IMPACT,
|
||||
EV_EXPLOSION,
|
||||
EV_MODELGIB,
|
||||
EV_CAMERATRIGGER,
|
||||
EV_RADIOMSG,
|
||||
|
|
|
@ -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 );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 ) {
|
||||
|
|
|
@ -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
0
freecs/csprogs.en_US.po → freecs/csprogs.en.po
Normal file → Executable 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"
|
||||
|
|
BIN
freecs/progs.dat
BIN
freecs/progs.dat
Binary file not shown.
Loading…
Reference in a new issue