Raised This Month: $ Target: $400
 0% 

Check if model sound is emit.


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Arkshine
AMX Mod X Plugin Approver
Join Date: Oct 2005
Old 12-08-2011 , 06:39   Re: Check if model sound is emit.
Reply With Quote #1

PHP Code:
void PM_PlayStepSoundint stepfloat fvol )
{
    static 
int iSkipStep 0;
    
int irand;
    
vec3_t hvel;

    
pmove->iStepLeft = !pmove->iStepLeft;

    if ( !
pmove->runfuncs )
    {
        return;
    }
    
    
irand pmove->RandomLong(0,1) + ( pmove->iStepLeft );

    
// FIXME mp_footsteps needs to be a movevar
    
if ( pmove->multiplayer && !pmove->movevars->footsteps )
        return;

    
// irand - 0,1 for right foot, 2,3 for left foot
    // used to alternate left and right foot
    // FIXME, move to player state

    
switch (step)
    {
    default:
    case 
STEP_CONCRETE// default step sound
        
switch (irand)
        {
        
// right foot
        
case 0:    pmove->PM_PlaySoundCHAN_BODY"player/pl_step1.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
1:    pmove->PM_PlaySoundCHAN_BODY"player/pl_step3.wav"fvolATTN_NORM0PITCH_NORM );    break;
        
// left foot
        
case 2:    pmove->PM_PlaySoundCHAN_BODY"player/pl_step2.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
3:    pmove->PM_PlaySoundCHAN_BODY"player/pl_step4.wav"fvolATTN_NORM0PITCH_NORM );    break;
        }
        break;
    case 
STEP_METAL// metal floor
        
switch(irand)
        {
        
// right foot
        
case 0:    pmove->PM_PlaySoundCHAN_BODY"player/pl_metal1.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
1:    pmove->PM_PlaySoundCHAN_BODY"player/pl_metal3.wav"fvolATTN_NORM0PITCH_NORM );    break;
        
// left foot
        
case 2:    pmove->PM_PlaySoundCHAN_BODY"player/pl_metal2.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
3:    pmove->PM_PlaySoundCHAN_BODY"player/pl_metal4.wav"fvolATTN_NORM0PITCH_NORM );    break;
        }
        break;
    case 
STEP_DIRT:
        switch(
irand)
        {
        
// right foot
        
case 0:    pmove->PM_PlaySoundCHAN_BODY"player/pl_dirt1.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
1:    pmove->PM_PlaySoundCHAN_BODY"player/pl_dirt3.wav"fvolATTN_NORM0PITCH_NORM );    break;
        
// left foot
        
case 2:    pmove->PM_PlaySoundCHAN_BODY"player/pl_dirt2.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
3:    pmove->PM_PlaySoundCHAN_BODY"player/pl_dirt4.wav"fvolATTN_NORM0PITCH_NORM );    break;
        }
        break;
    case 
STEP_VENT:
        switch(
irand)
        {
        
// right foot
        
case 0:    pmove->PM_PlaySoundCHAN_BODY"player/pl_duct1.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
1:    pmove->PM_PlaySoundCHAN_BODY"player/pl_duct3.wav"fvolATTN_NORM0PITCH_NORM );    break;
        
// left foot
        
case 2:    pmove->PM_PlaySoundCHAN_BODY"player/pl_duct2.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
3:    pmove->PM_PlaySoundCHAN_BODY"player/pl_duct4.wav"fvolATTN_NORM0PITCH_NORM );    break;
        }
        break;
    case 
STEP_GRATE:
        switch(
irand)
        {
        
// right foot
        
case 0:    pmove->PM_PlaySoundCHAN_BODY"player/pl_grate1.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
1:    pmove->PM_PlaySoundCHAN_BODY"player/pl_grate3.wav"fvolATTN_NORM0PITCH_NORM );    break;
        
// left foot
        
case 2:    pmove->PM_PlaySoundCHAN_BODY"player/pl_grate2.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
3:    pmove->PM_PlaySoundCHAN_BODY"player/pl_grate4.wav"fvolATTN_NORM0PITCH_NORM );    break;
        }
        break;
    case 
STEP_TILE:
        if ( !
pmove->RandomLong(0,4) )
            
irand 4;
        switch(
irand)
        {
        
// right foot
        
case 0:    pmove->PM_PlaySoundCHAN_BODY"player/pl_tile1.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
1:    pmove->PM_PlaySoundCHAN_BODY"player/pl_tile3.wav"fvolATTN_NORM0PITCH_NORM );    break;
        
// left foot
        
case 2:    pmove->PM_PlaySoundCHAN_BODY"player/pl_tile2.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
3:    pmove->PM_PlaySoundCHAN_BODY"player/pl_tile4.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
4pmove->PM_PlaySoundCHAN_BODY"player/pl_tile5.wav"fvolATTN_NORM0PITCH_NORM );    break;
        }
        break;
    case 
STEP_SLOSH:
        switch(
irand)
        {
        
// right foot
        
case 0:    pmove->PM_PlaySoundCHAN_BODY"player/pl_slosh1.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
1:    pmove->PM_PlaySoundCHAN_BODY"player/pl_slosh3.wav"fvolATTN_NORM0PITCH_NORM );    break;
        
// left foot
        
case 2:    pmove->PM_PlaySoundCHAN_BODY"player/pl_slosh2.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
3:    pmove->PM_PlaySoundCHAN_BODY"player/pl_slosh4.wav"fvolATTN_NORM0PITCH_NORM );    break;
        }
        break;
    case 
STEP_WADE:
        if ( 
iSkipStep == )
        {
            
iSkipStep++;
            break;
        }

        if ( 
iSkipStep++ == )
        {
            
iSkipStep 0;
        }

        switch (
irand)
        {
        
// right foot
        
case 0:    pmove->PM_PlaySoundCHAN_BODY"player/pl_wade1.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
1:    pmove->PM_PlaySoundCHAN_BODY"player/pl_wade2.wav"fvolATTN_NORM0PITCH_NORM );    break;
        
// left foot
        
case 2:    pmove->PM_PlaySoundCHAN_BODY"player/pl_wade3.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
3:    pmove->PM_PlaySoundCHAN_BODY"player/pl_wade4.wav"fvolATTN_NORM0PITCH_NORM );    break;
        }
        break;
    case 
STEP_LADDER:
        switch(
irand)
        {
        
// right foot
        
case 0:    pmove->PM_PlaySoundCHAN_BODY"player/pl_ladder1.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
1:    pmove->PM_PlaySoundCHAN_BODY"player/pl_ladder3.wav"fvolATTN_NORM0PITCH_NORM );    break;
        
// left foot
        
case 2:    pmove->PM_PlaySoundCHAN_BODY"player/pl_ladder2.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
3:    pmove->PM_PlaySoundCHAN_BODY"player/pl_ladder4.wav"fvolATTN_NORM0PITCH_NORM );    break;
        }
        break;
    }

PHP Code:
void PM_UpdateStepSoundvoid )
{
    
vec3_t knee;
    
vec3_t feet;
    
int height;
    
int isLadder;
    
int isDucking;
    
int step;
    
float vol;

    if( 
pmove->flTimeStepSound || pmove->flags FL_FROZEN )
        return;

    if( 
Lengthpmove->velocity ) <= 150 )
    {
        
pmove->flTimeStepSound 400;
        return;
    }
    
    
isLadder = ( pmove->movetype == MOVETYPE_FLY );
    
    if( 
isLadder || pmove->onground != -)
    {
        
PM_CatagorizeTextureType();
        
        
VectorCopypmove->originknee );
        
VectorCopypmove->originfeet );
        
        
height pmove->player_maxspmove->usehull ][ ] - pmove->player_minspmove->usehull ][ ];
        
        
knee[2] = pmove->origin[2] - 0.3 height;
        
feet[2] = pmove->origin[2] - 0.5 height;
    }
    
    if( 
isLadder )
    {
        
step STEP_LADDER;
        
vol 0.35;
        
pmove->flTimeStepSound 350;
    }
    else if( 
pmove->PM_PointContentskneeNULL ) == CONTENTS_WATER )
    {
        
step STEP_WADE;
        
vol 0.65;
        
pmove->flTimeStepSound 600;
    }
    else if( 
pmove->PM_PointContentsfeetNULL ) == CONTENTS_WATER )
    {
        
step STEP_SLOSH;
        
vol 0.5;
        
pmove->flTimeStepSound 300;
    }
    else
    {
        
step PM_MapTextureTypeStepTypepmove->chtexturetype );
        
        switch( 
pmove->chtexturetype )
        {
            case 
CHAR_TEX_DIRT vol 0.55;
            case 
CHAR_TEX_VENT vol 0.70;
            default            : 
vol 0.50;
        }
        
        
pmove->flTimeStepSound 300;
    }

    
isDucking pmove->flags FL_DUCKING;
    
    if( 
isDucking || isLadder )
    {
        
pmove->flTimeStepSound += 100;
        
        if( 
isDucking && pmove->flDuckTime 950 )
        {
            
vol *= 0.35;
        }
    }
    
    
PM_PlayStepSoundstepvol );

Quote:
But, noone has made that plugin
I remember seeing plugin hooking PM_PlayStepSound.
__________________
Arkshine is offline
.Dare Devil.
Veteran Member
Join Date: Sep 2010
Old 12-08-2011 , 06:55   Re: Check if model sound is emit.
Reply With Quote #2

Quote:
Originally Posted by Arkshine View Post
PHP Code:
void PM_PlayStepSoundint stepfloat fvol )
{
    static 
int iSkipStep 0;
    
int irand;
    
vec3_t hvel;
 
    
pmove->iStepLeft = !pmove->iStepLeft;
 
    if ( !
pmove->runfuncs )
    {
        return;
    }
 
    
irand pmove->RandomLong(0,1) + ( pmove->iStepLeft );
 
    
// FIXME mp_footsteps needs to be a movevar
    
if ( pmove->multiplayer && !pmove->movevars->footsteps )
        return;
 
    
// irand - 0,1 for right foot, 2,3 for left foot
    // used to alternate left and right foot
    // FIXME, move to player state
 
    
switch (step)
    {
    default:
    case 
STEP_CONCRETE// default step sound
        
switch (irand)
        {
        
// right foot
        
case 0:    pmove->PM_PlaySoundCHAN_BODY"player/pl_step1.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
1:    pmove->PM_PlaySoundCHAN_BODY"player/pl_step3.wav"fvolATTN_NORM0PITCH_NORM );    break;
        
// left foot
        
case 2:    pmove->PM_PlaySoundCHAN_BODY"player/pl_step2.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
3:    pmove->PM_PlaySoundCHAN_BODY"player/pl_step4.wav"fvolATTN_NORM0PITCH_NORM );    break;
        }
        break;
    case 
STEP_METAL// metal floor
        
switch(irand)
        {
        
// right foot
        
case 0:    pmove->PM_PlaySoundCHAN_BODY"player/pl_metal1.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
1:    pmove->PM_PlaySoundCHAN_BODY"player/pl_metal3.wav"fvolATTN_NORM0PITCH_NORM );    break;
        
// left foot
        
case 2:    pmove->PM_PlaySoundCHAN_BODY"player/pl_metal2.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
3:    pmove->PM_PlaySoundCHAN_BODY"player/pl_metal4.wav"fvolATTN_NORM0PITCH_NORM );    break;
        }
        break;
    case 
STEP_DIRT:
        switch(
irand)
        {
        
// right foot
        
case 0:    pmove->PM_PlaySoundCHAN_BODY"player/pl_dirt1.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
1:    pmove->PM_PlaySoundCHAN_BODY"player/pl_dirt3.wav"fvolATTN_NORM0PITCH_NORM );    break;
        
// left foot
        
case 2:    pmove->PM_PlaySoundCHAN_BODY"player/pl_dirt2.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
3:    pmove->PM_PlaySoundCHAN_BODY"player/pl_dirt4.wav"fvolATTN_NORM0PITCH_NORM );    break;
        }
        break;
    case 
STEP_VENT:
        switch(
irand)
        {
        
// right foot
        
case 0:    pmove->PM_PlaySoundCHAN_BODY"player/pl_duct1.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
1:    pmove->PM_PlaySoundCHAN_BODY"player/pl_duct3.wav"fvolATTN_NORM0PITCH_NORM );    break;
        
// left foot
        
case 2:    pmove->PM_PlaySoundCHAN_BODY"player/pl_duct2.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
3:    pmove->PM_PlaySoundCHAN_BODY"player/pl_duct4.wav"fvolATTN_NORM0PITCH_NORM );    break;
        }
        break;
    case 
STEP_GRATE:
        switch(
irand)
        {
        
// right foot
        
case 0:    pmove->PM_PlaySoundCHAN_BODY"player/pl_grate1.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
1:    pmove->PM_PlaySoundCHAN_BODY"player/pl_grate3.wav"fvolATTN_NORM0PITCH_NORM );    break;
        
// left foot
        
case 2:    pmove->PM_PlaySoundCHAN_BODY"player/pl_grate2.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
3:    pmove->PM_PlaySoundCHAN_BODY"player/pl_grate4.wav"fvolATTN_NORM0PITCH_NORM );    break;
        }
        break;
    case 
STEP_TILE:
        if ( !
pmove->RandomLong(0,4) )
            
irand 4;
        switch(
irand)
        {
        
// right foot
        
case 0:    pmove->PM_PlaySoundCHAN_BODY"player/pl_tile1.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
1:    pmove->PM_PlaySoundCHAN_BODY"player/pl_tile3.wav"fvolATTN_NORM0PITCH_NORM );    break;
        
// left foot
        
case 2:    pmove->PM_PlaySoundCHAN_BODY"player/pl_tile2.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
3:    pmove->PM_PlaySoundCHAN_BODY"player/pl_tile4.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
4pmove->PM_PlaySoundCHAN_BODY"player/pl_tile5.wav"fvolATTN_NORM0PITCH_NORM );    break;
        }
        break;
    case 
STEP_SLOSH:
        switch(
irand)
        {
        
// right foot
        
case 0:    pmove->PM_PlaySoundCHAN_BODY"player/pl_slosh1.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
1:    pmove->PM_PlaySoundCHAN_BODY"player/pl_slosh3.wav"fvolATTN_NORM0PITCH_NORM );    break;
        
// left foot
        
case 2:    pmove->PM_PlaySoundCHAN_BODY"player/pl_slosh2.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
3:    pmove->PM_PlaySoundCHAN_BODY"player/pl_slosh4.wav"fvolATTN_NORM0PITCH_NORM );    break;
        }
        break;
    case 
STEP_WADE:
        if ( 
iSkipStep == )
        {
            
iSkipStep++;
            break;
        }
 
        if ( 
iSkipStep++ == )
        {
            
iSkipStep 0;
        }
 
        switch (
irand)
        {
        
// right foot
        
case 0:    pmove->PM_PlaySoundCHAN_BODY"player/pl_wade1.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
1:    pmove->PM_PlaySoundCHAN_BODY"player/pl_wade2.wav"fvolATTN_NORM0PITCH_NORM );    break;
        
// left foot
        
case 2:    pmove->PM_PlaySoundCHAN_BODY"player/pl_wade3.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
3:    pmove->PM_PlaySoundCHAN_BODY"player/pl_wade4.wav"fvolATTN_NORM0PITCH_NORM );    break;
        }
        break;
    case 
STEP_LADDER:
        switch(
irand)
        {
        
// right foot
        
case 0:    pmove->PM_PlaySoundCHAN_BODY"player/pl_ladder1.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
1:    pmove->PM_PlaySoundCHAN_BODY"player/pl_ladder3.wav"fvolATTN_NORM0PITCH_NORM );    break;
        
// left foot
        
case 2:    pmove->PM_PlaySoundCHAN_BODY"player/pl_ladder2.wav"fvolATTN_NORM0PITCH_NORM );    break;
        case 
3:    pmove->PM_PlaySoundCHAN_BODY"player/pl_ladder4.wav"fvolATTN_NORM0PITCH_NORM );    break;
        }
        break;
    }

PHP Code:
void PM_UpdateStepSoundvoid )
{
    
vec3_t knee;
    
vec3_t feet;
    
int height;
    
int isLadder;
    
int isDucking;
    
int step;
    
float vol;
 
    if( 
pmove->flTimeStepSound || pmove->flags FL_FROZEN )
        return;
 
    if( 
Lengthpmove->velocity ) <= 150 )
    {
        
pmove->flTimeStepSound 400;
        return;
    }
 
    
isLadder = ( pmove->movetype == MOVETYPE_FLY );
 
    if( 
isLadder || pmove->onground != -)
    {
        
PM_CatagorizeTextureType();
 
        
VectorCopypmove->originknee );
        
VectorCopypmove->originfeet );
 
        
height pmove->player_maxspmove->usehull ][ ] - pmove->player_minspmove->usehull ][ ];
 
        
knee[2] = pmove->origin[2] - 0.3 height;
        
feet[2] = pmove->origin[2] - 0.5 height;
    }
 
    if( 
isLadder )
    {
        
step STEP_LADDER;
        
vol 0.35;
        
pmove->flTimeStepSound 350;
    }
    else if( 
pmove->PM_PointContentskneeNULL ) == CONTENTS_WATER )
    {
        
step STEP_WADE;
        
vol 0.65;
        
pmove->flTimeStepSound 600;
    }
    else if( 
pmove->PM_PointContentsfeetNULL ) == CONTENTS_WATER )
    {
        
step STEP_SLOSH;
        
vol 0.5;
        
pmove->flTimeStepSound 300;
    }
    else
    {
        
step PM_MapTextureTypeStepTypepmove->chtexturetype );
 
        switch( 
pmove->chtexturetype )
        {
            case 
CHAR_TEX_DIRT vol 0.55;
            case 
CHAR_TEX_VENT vol 0.70;
            default            : 
vol 0.50;
        }
 
        
pmove->flTimeStepSound 300;
    }
 
    
isDucking pmove->flags FL_DUCKING;
 
    if( 
isDucking || isLadder )
    {
        
pmove->flTimeStepSound += 100;
 
        if( 
isDucking && pmove->flDuckTime 950 )
        {
            
vol *= 0.35;
        }
    }
 
    
PM_PlayStepSoundstepvol );

Thanks, that help me alot.
I get the random fine now, and the step speed is now not unknow.
Its almost same like cs. ( need to setting things and try always. )


Quote:
I remember seeing plugin hooking PM_PlayStepSound.
I think that was jump sound block what you are thinking.

Last edited by .Dare Devil.; 12-08-2011 at 07:03.
.Dare Devil. is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 12:03.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode