AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Footsteps doesn't play. (https://forums.alliedmods.net/showthread.php?t=144122)

Excalibur.007 11-29-2010 06:27

Footsteps doesn't play.
 
FULL CODE:
PHP Code:

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <orpheu>
#include <orpheu_stocks>

new const VERSION[] = "1.0"

new const footsteps_sound_snow[][] =
{
    
"player/pl_snow1.wav",
    
"player/pl_snow2.wav",
    
"player/pl_snow3.wav",
    
"player/pl_snow4.wav",
    
"player/pl_snow5.wav",
    
"player/pl_snow6.wav"
}

new 
bool:IsUserAlive[33]

new 
OrpheuHook:PM_PlaySoundHook
new OrpheuStruct:g_ppmove

public plugin_init()
{
    
RegisterHam(Ham_Spawn"player""fw_PlayerSpawnKilled"1)
    
RegisterHam(Ham_Killed"player""fw_PlayerSpawnKilled"1)
    
    
OrpheuRegisterHook(OrpheuGetDLLFunction("pfnPM_Move""PM_Move"), "OnPM_Move")
    
    new 
OrpheuFunction:PM_PlayStepSound OrpheuGetFunction("PM_PlayStepSound")
    
OrpheuRegisterHook(PM_PlayStepSound"OnPM_PlayStepSound")
    
OrpheuRegisterHook(PM_PlayStepSound"OnPM_PlayStepSoundPost"OrpheuHookPost)
}

public 
plugin_precache()
{
    
register_plugin("Snow"VERSION"eXcalibur.007")
    
    
engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"env_snow"))
    
    
server_cmd("sv_skyname snow")
    
    for(new 
sizeof footsteps_sound_snowi++)
        
precache_sound(footsteps_sound_snow[i])
}

public 
client_putinserver(id)
{
    
client_cmd(id"cl_weather 1")
}

public 
client_disconnect(id)
{
    
IsUserAlive[id] = false
}

public 
fw_PlayerSpawnKilled(id)
{
    
IsUserAlive[id] = bool:is_user_alive(id)
}

public 
OnPM_Move(OrpheuStruct:ppmoveserver)
{
    
g_ppmove ppmove
}

public 
OnPM_PlayStepSound(stepFloat:vol)
{
    new 
PM_PlaySoundAddress OrpheuGetParamStructMember(1"PM_PlaySound")
    
    new 
OrpheuFunction:PM_PlaySound OrpheuCreateFunction(PM_PlaySoundAddress"PM_PlaySound")
    
    
PM_PlaySoundHook OrpheuRegisterHook(PM_PlaySound"OnPM_PlaySoundHook")
}

public 
OnPM_PlaySoundHook(channelsample[], Float:volumeFloat:attenuationflagspitch)
{
    new 
id OrpheuGetStructMember(g_ppmove"player_index") + 1
    
    
if(is_user_outside(id))
    {
        
OrpheuSetParam(2footsteps_sound_snow[random(sizeof footsteps_sound_snow)])
    }
}

public 
OnPM_PlayStepSoundPost(stepFloat:vol)
{
    
OrpheuUnregisterHook(PM_PlaySoundHook)
}

stock Float:is_user_outside(id)
{
    new 
Float:origin[3], Float:fDist
    pev
(idpev_originorigin)
    
    
fDist origin[2]
    
    while(
engfunc(EngFunc_PointContentsorigin) == CONTENTS_EMPTY)
    {
        
origin[2] += 5.0
    
}
    
    if(
engfunc(EngFunc_PointContentsorigin) == CONTENTS_SKY)
    {
        return(
origin[2] - fDist)
    }
    
    return 
0.0


Not original sounds the snow footsteps sound doesn't play.

EDIT: After some searching in the forums, I see a probability of disappointment :(. Some posts has replies that sounds cannot be blocked(Footsteps).
If this is true, please close this thread.

Hawk552 11-29-2010 11:06

Re: Footsteps doesn't play.
 
Try passing 400.0 in the first block of code instead of 400.

K.K.Lv 11-29-2010 12:11

Re: Footsteps doesn't play.
 
Oh long time not see Hawk552 !

meTaLiCroSS 11-29-2010 13:10

Re: Footsteps doesn't play.
 
Quote:

Originally Posted by K.K.Lv (Post 1359618)
Oh long time not see Hawk552 !

Oh stop spamming and at least say something to help excalibur's problem.

ConnorMcLeod 11-29-2010 13:19

Re: Footsteps doesn't play.
 
Search for joaquimandrade post on how to hook PM_PlaySound, hook it and do what you need to do.
Or hook PM_PlayStepSound if it better fits your needs.

Excalibur.007 11-29-2010 18:16

Re: Footsteps doesn't play.
 
I'll try everything useful in here. Then i'll edit this post :)

EDIT:
@ Hawk
Tried it, didn't work.

@Connor
Umm? How do we do that? I'm new to orpheu

Exolent[jNr] 11-29-2010 21:58

Re: Footsteps doesn't play.
 
Quote:

Originally Posted by Excalibur.007 (Post 1359845)
@Connor
Umm? How do we do that? I'm new to orpheu

Something like this (most of the code taken from joaquim's Orpheu thread's first post):
Code:
#include <amxmodx> #include <fakemeta> #include <orpheu> #include <orpheu_stocks> new const footsteps_sound_snow[][] = {     "player/pl_snow1.wav",     "player/pl_snow2.wav",     "player/pl_snow3.wav",     "player/pl_snow4.wav",     "player/pl_snow5.wav",     "player/pl_snow6.wav" } new OrpheuHook:PM_PlaySoundHook new OrpheuStruct:g_ppmove public plugin_init() {     OrpheuRegisterHook(OrpheuGetDLLFunction("pfnPM_Move", "PM_Move"), "OnPM_Move")         new OrpheuFunction:PM_PlayStepSound = OrpheuGetFunction("PM_PlayStepSound")     OrpheuRegisterHook(PM_PlayStepSound, "OnPM_PlayStepSound")     OrpheuRegisterHook(PM_PlayStepSound, "OnPM_PlayStepSoundPost", OrpheuHookPost) } public OnPM_Move(OrpheuStruct:ppmove,server) {     g_ppmove = ppmove } public OnPM_PlayStepSound(step, Float:vol) {     new PM_PlaySoundAddress = OrpheuGetParamStructMember(1, "PM_PlaySound")         new OrpheuFunction:PM_PlaySound = OrpheuCreateFunction(PM_PlaySoundAddress, "PM_PlaySound")         PM_PlaySoundHook = OrpheuRegisterHook(PM_PlaySound, "OnPM_PlaySoundHook") } public OnPM_PlaySoundHook(channel, sample[], Float:volume, Float:attenuation, flags, pitch) {     new id = OrpheuGetStructMember(g_ppmove, "player_index") + 1         if(is_user_outside(id))     {         OrpheuSetParam(2, footsteps_sound_snow[random(sizeof(footsteps_sound_snow))])     } } public OnPM_PlayStepSoundPost(step, Float:vol) {     OrpheuUnregisterHook(PM_PlaySoundHook) } stock Float:is_user_outside(id) {     new Float:origin[3], Float:fDist     pev(id, pev_origin, origin)         fDist = origin[2]         while(engfunc(EngFunc_PointContents, origin) == CONTENTS_EMPTY)     {         origin[2] += 5.0     }         if(engfunc(EngFunc_PointContents, origin) == CONTENTS_SKY)     {         return(origin[2] - fDist)     }         return 0.0 }

Excalibur.007 11-30-2010 21:48

Re: Footsteps doesn't play.
 
Thanks. I'll try it.

EDIT: Tag mismatch

PHP Code:

new OrpheuStruct:g_ppmove

g_ppmove 
ppmove 


Exolent[jNr] 11-30-2010 22:07

Re: Footsteps doesn't play.
 
Quote:

Originally Posted by Excalibur.007 (Post 1360565)
Thanks. I'll try it.

EDIT: Tag mismatch

PHP Code:

new OrpheuStruct:g_ppmove

g_ppmove 
ppmove 


Fixed.

Excalibur.007 11-30-2010 22:18

Re: Footsteps doesn't play.
 
Uhh do I need to use any prethinks on the main post? It seems to compile but doesn't work.
EDIT: Full code added on main post.


All times are GMT -4. The time now is 11:18.

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