Step Sound na shift
DarkGL
28.10.2010
chce aby słychać było normalnie kroki gdy gracz chodzi na shift bez zmiany jego prędkości
G[o]Q
28.10.2010
hmm czyli chcesz zeby po wcisnieciu shifta bylo slychac kroki ale zeby gosc nie zwalnial czy zeby zwalnial

Ortega
28.10.2010
Te dwie sygnatury sobie zrobisz mam nadzieję 

#include < amxmodx >
#include < orpheu >
#include < orpheu_advanced >
#include < orpheu_memory >
#include < orpheu_stocks >
new iPlayer;
new OrpheuFunction:fn_PlayStepSound;
public plugin_init( ) {
register_plugin( "Orpheu Walk Sound", "1.0", "Ortega" );
OrpheuRegisterHook( OrpheuGetDLLFunction( "pfnPM_Move","PM_Move" ), "OnPM_Move" );
OrpheuRegisterHook( OrpheuGetEngineFunction( "pfnWalkMove", "SigpfnWalkMove" ), "OnpfnWalkMove", OrpheuHookPre );
fn_PlayStepSound = OrpheuGetFunction( "PM_PlayStepSound" );// thx arkshine
}
public OrpheuHookReturn:OnPM_Move( OrpheuStruct:ppmove, server ) {
iPlayer = OrpheuGetStructMember( ppmove, "player_index" ) + 1;
return OrpheuIgnored;
}
public OrpheuHookReturn:OnpfnWalkMove( ent, Float:yaw, Float:dist, iMode ) {
if( is_user_alive( iPlayer ) )
{
OrpheuCall( fn_PlayStepSound, 1, 80 );//przejrzyj hlsdk i zobacz parametry
}
return OrpheuIgnored;
}
G[o]Q
28.10.2010
emit_sound ??
pobierz sobie parametry krokow i tyle chyba najprostsze rozwiazanie aczkolwiek nie sprawdzalem
pobierz sobie parametry krokow i tyle chyba najprostsze rozwiazanie aczkolwiek nie sprawdzalem
Owner123
30.10.2010
#include <amxmodx>
#include <fakemeta>
public plugin_init()
{
register_plugin("New Plugin", "1.0.0", "Owner")
register_forward(FM_CmdStart, "fwCmdStart");
}
public fwCmdStart(id, uc_handle, seed)
{
if(!is_user_alive(id))
return FMRES_IGNORED;
new button = get_uc(uc_handle, UC_Buttons);
if(button & IN_RUN)
{
set_uc(uc_handle, UC_Buttons, button & ~IN_RUN);
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
Nie jestem tylko pewien czy dobry klawisz chce przechwycić

Ortega
30.10.2010
#define IN_ATTACK (1 << 0) #define IN_JUMP (1 << 1) #define IN_DUCK (1 << 2) #define IN_FORWARD (1 << 3) #define IN_BACK (1 << 4) #define IN_USE (1 << 5) #define IN_CANCEL (1 << 6) #define IN_LEFT (1 << 7) #define IN_RIGHT (1 << 8) #define IN_MOVELEFT (1 << 9) #define IN_MOVERIGHT (1 << 10) #define IN_ATTACK2 (1 << 11) #define IN_RUN (1 << 12) #define IN_RELOAD (1 << 13) #define IN_ALT1 (1 << 14) #define IN_SCORE (1 << 15) // Used by client.dll for when scoreboard is held downCzegoś już nie rozumiem. Chcesz, żeby szedł na shifcie i słychać było kroki( to powyższy kod jest nie na miejscu ), czy może chcesz, żeby trzymając shift biegł ? Jak drugi to zrób po prostu dla walk OrpheuSupercede.
G[o]Q
30.10.2010
IN_RUN z tego co wiem to nie dziala ta stala i wystarczy w kodzie ownera dodac emit_Sound krokow i usunac pev

DarkGL
31.10.2010
jeszcze żeby twój kod ortega działał :F
najlepiej by bło zablokować w ogóle shifta
ale jeśli się nie da
to żeby było słychać kroki
najlepiej by bło zablokować w ogóle shifta
ale jeśli się nie da
to żeby było słychać kroki
DarkGL
31.10.2010
sprawdzałem in_run w własnym zakresie nie dawało efektu
pozostały dwóch nie mogłem określić ;f
#pragma semicolon 0 #include < amxmodx > #include <engine> public plugin_init( ) { register_plugin( "Orpheu Walk Sound", "1.0", "Ortega" ); } public client_PreThink(id){ if(get_user_button(id)& IN_FORWARD){ client_print(id,print_chat,"1") } if(get_user_button(id)& IN_RUN){ client_print(id,print_chat,"2") } if(get_user_button(id)& IN_ALT1){ client_print(id,print_chat,"3") } }udało mi się tylko wyświetlić 1

Owner123
31.10.2010
W takim razie do kodu Ortegi z Orpheu można dodać set_user_maxspeed i powinno działać ;O
Edit.
Albo, jeśli się nie myle zamiast wywoływać pfnPlayStepSound zwrócić OrpheuSupercede ;o
Użytkownik Owner123 edytował ten post 31.10.2010 19:37
Edit.
Albo, jeśli się nie myle zamiast wywoływać pfnPlayStepSound zwrócić OrpheuSupercede ;o
Użytkownik Owner123 edytował ten post 31.10.2010 19:37
Ortega
31.10.2010
Napisałem to
A co do IN_RUN to w jest totalnie wycięty z HLSDK oprócz definicji.

DarkGL
31.10.2010
napisz jeszcze raz kod ortegi nie działa jest błąd w
OrpheuRegisterHook( OrpheuGetDLLFunction( "pfnPM_Move","PM_Move" ), "OnPM_Move" );
przynajmniej według amxx'a treści nie podam bo nie pamiętam ;F
OrpheuRegisterHook( OrpheuGetDLLFunction( "pfnPM_Move","PM_Move" ), "OnPM_Move" );
przynajmniej według amxx'a treści nie podam bo nie pamiętam ;F
Ortega
31.10.2010
Podaj tą treść, bo jeśli ją pisałem to poprawię
Ten kod musi działać poprawnie, pytałem się kiedyś Arkshine'a.
Z resztą ten hook działa idealnie w pluginie Custom Ladder Move.
A tutaj wystarczy zamiast Call dać return OrpheuSupercede; tj. całą funkcję.

Z resztą ten hook działa idealnie w pluginie Custom Ladder Move.
A tutaj wystarczy zamiast Call dać return OrpheuSupercede; tj. całą funkcję.
DarkGL
31.10.2010
z jedną sygnaturą sobie poradziłem 

{ "name" : "PM_Move", "library" : "mod", "arguments" : [ { "type" : "playermove_s *" }, { "type" : "qboolean" } ], "identifiers" : [ { "os" : "windows", "mod" : "cstrike", "value" : 0xbffc0 }, { "os" : "linux", "mod" : "cstrike", "value" : "PM_Move" } ] }trzeba drugą naprawić
{ "name" : "SigpfnWalkMove", "library" : "engine", "arguments" : [ { "type" : "edict_t *" }, { "type" : "float" }, { "type" : "float" }, { "type" : "int" } ] }
pheu functions search started. Parsing functions started. Parsing file "PM_Move" started Function is updated Parsing file "PM_Move" ended Parsing file "SigpfnWalkMove" started Argument has invalid type "edict_t *" FAILED Parsing file "SigpfnWalkMove" ended Parsing functions ended L 10/31/2010 - 21:55:58: [ORPHEU] Invalid function structure "SigpfnWalkMove" L 10/31/2010 - 21:55:58: [AMXX] Displaying debug trace (plugin "new_2.amxx") L 10/31/2010 - 21:55:58: [AMXX] Run time error 10: native error (native "OrpheuCreateFunction") L 10/31/2010 - 21:55:58: [AMXX] [0] orpheu_stocks.inc::OrpheuGetEngineFunction (line 34) L 10/31/2010 - 21:55:58: [AMXX] [1] new_2.sma::plugin_init (lin