mirror of
https://github.com/ReactionQuake3/reaction.git
synced 2025-03-27 12:51:13 +00:00
no message
This commit is contained in:
parent
7d88ec6da0
commit
e238f1f794
8 changed files with 132 additions and 28 deletions
|
@ -1367,7 +1367,7 @@ void CG_EntityEvent( centity_t *cent, vec3_t position ) {
|
|||
|
||||
es = ¢->currentState;
|
||||
event = es->event & ~EV_EVENT_BITS;
|
||||
|
||||
|
||||
if ( cg_debugEvents.integer ) {
|
||||
CG_Printf( "ent:%3i event:%3i ", es->number, event );
|
||||
}
|
||||
|
@ -1426,7 +1426,19 @@ void CG_EntityEvent( centity_t *cent, vec3_t position ) {
|
|||
|
||||
case EV_FALL_SHORT:
|
||||
DEBUGNAME("EV_FALL_SHORT");
|
||||
|
||||
trap_S_StartSound (NULL, es->number, CHAN_AUTO, cgs.media.landSound );
|
||||
|
||||
|
||||
if ( clientNum == cg.predictedPlayerState.clientNum ) {
|
||||
// smooth landing z changes
|
||||
cg.landChange = -8;
|
||||
cg.landTime = cg.time;
|
||||
}
|
||||
break;
|
||||
case EV_FALL_SHORT_NOSOUND:
|
||||
DEBUGNAME("EV_FALL_SHORT_NOSOUND");
|
||||
|
||||
if ( clientNum == cg.predictedPlayerState.clientNum ) {
|
||||
// smooth landing z changes
|
||||
cg.landChange = -8;
|
||||
|
@ -1436,16 +1448,32 @@ void CG_EntityEvent( centity_t *cent, vec3_t position ) {
|
|||
case EV_FALL_MEDIUM:
|
||||
DEBUGNAME("EV_FALL_MEDIUM");
|
||||
// use normal pain sound
|
||||
|
||||
trap_S_StartSound( NULL, es->number, CHAN_VOICE, CG_CustomSound( es->number, "*pain100_1.wav" ) );
|
||||
|
||||
|
||||
if ( clientNum == cg.predictedPlayerState.clientNum ) {
|
||||
// smooth landing z changes
|
||||
cg.landChange = -16;
|
||||
cg.landTime = cg.time;
|
||||
}
|
||||
break;
|
||||
case EV_FALL_MEDIUM_NOSOUND:
|
||||
DEBUGNAME("EV_FALL_MEDIUM_NOSOUND");
|
||||
|
||||
if ( clientNum == cg.predictedPlayerState.clientNum ) {
|
||||
// smooth landing z changes
|
||||
cg.landChange = -16;
|
||||
cg.landTime = cg.time;
|
||||
}
|
||||
break;
|
||||
|
||||
case EV_FALL_FAR:
|
||||
DEBUGNAME("EV_FALL_FAR");
|
||||
|
||||
trap_S_StartSound (NULL, es->number, CHAN_AUTO, CG_CustomSound( es->number, "*fall1.wav" ) );
|
||||
|
||||
|
||||
cent->pe.painTime = cg.time; // don't play a pain sound right after this
|
||||
if ( clientNum == cg.predictedPlayerState.clientNum ) {
|
||||
// smooth landing z changes
|
||||
|
@ -1453,6 +1481,15 @@ void CG_EntityEvent( centity_t *cent, vec3_t position ) {
|
|||
cg.landTime = cg.time;
|
||||
}
|
||||
break;
|
||||
case EV_FALL_FAR_NOSOUND:
|
||||
DEBUGNAME("EV_FALL_FAR_NOSOUND");
|
||||
if ( clientNum == cg.predictedPlayerState.clientNum ) {
|
||||
// smooth landing z changes
|
||||
cg.landChange = -24;
|
||||
cg.landTime = cg.time;
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case EV_STEP_4:
|
||||
case EV_STEP_8:
|
||||
|
|
|
@ -2128,19 +2128,21 @@ void CG_FireWeapon( centity_t *cent ) {
|
|||
trap_S_StartSound (NULL, cent->currentState.number, CHAN_ITEM, cgs.media.quadSound );
|
||||
}
|
||||
|
||||
// play a sound
|
||||
for ( c = 0 ; c < 4 ; c++ ) {
|
||||
if ( !weap->flashSound[c] ) {
|
||||
break;
|
||||
if ent->client->ps.
|
||||
// play a sound
|
||||
for ( c = 0 ; c < 4 ; c++ ) {
|
||||
if ( !weap->flashSound[c] ) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( c > 0 ) {
|
||||
c = rand() % c;
|
||||
if ( weap->flashSound[c] )
|
||||
{
|
||||
trap_S_StartSound( NULL, ent->number, CHAN_WEAPON, weap->flashSound[c] );
|
||||
|
||||
if ( c > 0 ) {
|
||||
c = rand() % c;
|
||||
if ( weap->flashSound[c] )
|
||||
{
|
||||
trap_S_StartSound( NULL, ent->number, CHAN_WEAPON, weap->flashSound[c] );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// do brass ejection
|
||||
if ( weap->ejectBrassFunc && cg_brassTime.integer > 0 ) {
|
||||
|
|
|
@ -1263,8 +1263,11 @@ char *eventnames[] = {
|
|||
"EV_STEP_16",
|
||||
|
||||
"EV_FALL_SHORT",
|
||||
"EV_FALL_SHORT_NOSOUND",
|
||||
"EV_FALL_MEDIUM",
|
||||
"EV_FALL_MEDIUM_NOSOUND",
|
||||
"EV_FALL_FAR",
|
||||
"EV_FALL_FAR_NOSOUND",
|
||||
|
||||
"EV_JUMP_PAD", // boing sound at origin", jump sound on player
|
||||
|
||||
|
|
|
@ -1170,6 +1170,7 @@ static void PM_CrashLand( void ) {
|
|||
// SURF_NODAMAGE is used for bounce pads where you don't ever
|
||||
// want to take damage or play a crunch sound
|
||||
|
||||
|
||||
if (delta > 30)
|
||||
{
|
||||
|
||||
|
@ -1177,12 +1178,18 @@ static void PM_CrashLand( void ) {
|
|||
damage = (int)(((delta-30)/2));
|
||||
if (damage < 1) damage = 1;
|
||||
damage *= 10;
|
||||
|
||||
|
||||
|
||||
if ( !(pml.groundTrace.surfaceFlags & SURF_NODAMAGE) ) {
|
||||
//Blaze lots of changes to make it more like aq2
|
||||
// this is a pain grunt, so don't play it if dead
|
||||
if ( pm->ps->stats[STAT_HEALTH] > 0 && damage > 0) {
|
||||
PM_AddEvent( EV_FALL_FAR );
|
||||
if (bg_itemlist[pm->ps->stats[STAT_HOLDABLE_ITEM]].giTag == HI_SLIPPERS)
|
||||
PM_AddEvent( EV_FALL_FAR_NOSOUND );
|
||||
else
|
||||
PM_AddEvent( EV_FALL_FAR );
|
||||
|
||||
|
||||
pm->ps->stats[STAT_FALLDAMAGE] = damage;
|
||||
}
|
||||
else
|
||||
|
@ -1193,13 +1200,19 @@ static void PM_CrashLand( void ) {
|
|||
}
|
||||
}
|
||||
}
|
||||
else if (delta > 20)
|
||||
{
|
||||
PM_AddEvent( EV_FALL_SHORT );
|
||||
//Elder: added? useful?
|
||||
pm->ps->stats[STAT_FALLDAMAGE] = 0;
|
||||
else if (delta > 20)
|
||||
{ if (bg_itemlist[pm->ps->stats[STAT_HOLDABLE_ITEM]].giTag == HI_SLIPPERS)
|
||||
{ PM_AddEvent( EV_FALL_SHORT_NOSOUND );
|
||||
//Elder: added? useful?
|
||||
pm->ps->stats[STAT_FALLDAMAGE] = 0;
|
||||
}
|
||||
else
|
||||
{ PM_AddEvent( EV_FALL_SHORT );
|
||||
//Elder: added? useful?
|
||||
pm->ps->stats[STAT_FALLDAMAGE] = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
else if (!(bg_itemlist[pm->ps->stats[STAT_HOLDABLE_ITEM]].giTag == HI_SLIPPERS))
|
||||
{
|
||||
PM_AddEvent( PM_FootstepForSurface() );
|
||||
//Elder: added? useful?
|
||||
|
@ -1618,7 +1631,7 @@ static void PM_Footsteps( void ) {
|
|||
if ( pm->waterlevel == 0 ) {
|
||||
//Elder: we can check for slippers here!
|
||||
// on ground will only play sounds if running
|
||||
if ( footstep && !pm->noFootsteps ) {
|
||||
if (( footstep && !pm->noFootsteps ) && !(bg_itemlist[pm->ps->stats[STAT_HOLDABLE_ITEM]].giTag == HI_SLIPPERS)) {
|
||||
PM_AddEvent( PM_FootstepForSurface() );
|
||||
}
|
||||
} else if ( pm->waterlevel == 1 ) {
|
||||
|
|
|
@ -619,8 +619,11 @@ typedef enum {
|
|||
EV_STEP_16,
|
||||
|
||||
EV_FALL_SHORT,
|
||||
EV_FALL_SHORT_NOSOUND,
|
||||
EV_FALL_MEDIUM,
|
||||
EV_FALL_MEDIUM_NOSOUND,
|
||||
EV_FALL_FAR,
|
||||
EV_FALL_FAR_NOSOUND,
|
||||
|
||||
EV_JUMP_PAD, // boing sound at origin, jump sound on player
|
||||
|
||||
|
|
|
@ -667,6 +667,24 @@ void ClientEvents( gentity_t *ent, int oldEventSequence ) {
|
|||
|
||||
break;
|
||||
|
||||
case EV_FALL_FAR_NOSOUND:
|
||||
|
||||
if ( ent->s.eType != ET_PLAYER ) {
|
||||
break; // not in the player model
|
||||
}
|
||||
if ( g_dmflags.integer & DF_NO_FALLING ) {
|
||||
break;
|
||||
}
|
||||
|
||||
damage = ent->client->ps.stats[STAT_FALLDAMAGE];
|
||||
VectorSet (dir, 0, 0, 1);
|
||||
ent->pain_debounce_time = level.time + 200; // no normal pain sound
|
||||
//Elder: added so we can trigger AQ2 pain blends
|
||||
ent->client->ps.damageEvent++;
|
||||
G_Damage (ent, NULL, NULL, NULL, NULL, damage, 0, MOD_FALLING);
|
||||
|
||||
break;
|
||||
|
||||
case EV_FIRE_WEAPON:
|
||||
FireWeapon( ent );
|
||||
break;
|
||||
|
@ -1452,7 +1470,7 @@ void ClientEndFrame( gentity_t *ent ) {
|
|||
{
|
||||
G_Printf("Spawn an Item\n");
|
||||
//rq3_item = BG_FindItem( "Kevlar Vest" );
|
||||
rq3_item = BG_FindItemForHoldable( HI_KEVLAR );
|
||||
rq3_item = BG_FindItemForHoldable( HI_SLIPPERS );
|
||||
rq3_temp = SelectSpawnPoint(ent->client->ps.origin,spawn_origin, spawn_angles);
|
||||
Drop_Item (rq3_temp, rq3_item, 0);
|
||||
}
|
||||
|
|
|
@ -1652,10 +1652,31 @@ void G_Damage( gentity_t *targ, gentity_t *inflictor, gentity_t *attacker,
|
|||
}
|
||||
case (LOCATION_CHEST):
|
||||
{
|
||||
trap_SendServerCommand( attacker-g_entities, va("print \"You hit %s^7 in the chest.\n\"", targ->client->pers.netname));
|
||||
trap_SendServerCommand( targ-g_entities, va("print \"Chest Damage.\n\""));
|
||||
take *= 0.65;
|
||||
break;
|
||||
|
||||
if (bg_itemlist[targ->client->ps.stats[STAT_HOLDABLE_ITEM]].giTag == HI_KEVLAR)
|
||||
{
|
||||
|
||||
if ((attacker->client->ps.stats[STAT_WEAPONS] & (1 << WP_SSG3000)) == (1 << WP_SSG3000))
|
||||
{ trap_SendServerCommand(attacker-g_entities, va("print \"%s has a Kevlar Vest, too bad you have AP rounds...\n\"",targ->client->pers.netname));
|
||||
trap_SendServerCommand(targ-g_entities, va("print \"Kevlar Vest absorbed some of %s's AP sniper round\n\"",attacker->client->pers.netname));
|
||||
take = take * .325;
|
||||
|
||||
}
|
||||
else
|
||||
{ trap_SendServerCommand( attacker-g_entities, va("print \"%s^7 has a Kevlar Vest - AIM FOR THE HEAD!\n\"", targ->client->pers.netname));
|
||||
trap_SendServerCommand( targ-g_entities, va("print \"Kevlar Vest absorbed most of %s shot\n\"", attacker->client->pers.netname ));
|
||||
take = take/10;
|
||||
bleeding = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
trap_SendServerCommand( attacker-g_entities, va("print \"You hit %s^7 in the chest.\n\"", targ->client->pers.netname));
|
||||
trap_SendServerCommand( targ-g_entities, va("print \"Chest Damage.\n\""));
|
||||
take *= 0.65;
|
||||
break;
|
||||
}
|
||||
}
|
||||
case (LOCATION_STOMACH):
|
||||
{
|
||||
|
@ -1777,10 +1798,8 @@ void G_Damage( gentity_t *targ, gentity_t *inflictor, gentity_t *attacker,
|
|||
//}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
============
|
||||
CanDamage
|
||||
|
|
|
@ -27,6 +27,15 @@
|
|||
#define INVENTORY_SHOTGUNAMMO 20
|
||||
#define INVENTORY_AKIMBOAMMO 21
|
||||
#define INVENTORY_GRENADEAMMO 22
|
||||
|
||||
// Duffman: I stold the below numbers for RQ3 Items
|
||||
|
||||
#define INVENTORY_KEVLAR 23
|
||||
#define INVENTORY_LASER 24
|
||||
#define INVENTORY_SLIPPERS 25
|
||||
#define INVENTORY_SILENCER 26
|
||||
#define INVENTORY_BANDOLIER 27
|
||||
|
||||
/*
|
||||
#define INVENTORY_SHELLS 18
|
||||
#define INVENTORY_BULLETS 19
|
||||
|
|
Loading…
Reference in a new issue