←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Step Sound na shift

Zablokowany

  • +
  • -
DarkGL - zdjęcie DarkGL 28.10.2010

chce aby słychać było normalnie kroki gdy gracz chodzi na shift bez zmiany jego prędkości
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie G[o]Q 28.10.2010

hmm czyli chcesz zeby po wcisnieciu shifta bylo slychac kroki ale zeby gosc nie zwalnial czy zeby zwalnial :?:
Odpowiedz

  • +
  • -
Ortega - zdjęcie Ortega 28.10.2010

Te dwie sygnatury sobie zrobisz mam nadzieję :D
#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;
}
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 28.10.2010

słychać kroki ale idzie tak jak normalnie na shifcie
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie G[o]Q 28.10.2010

emit_sound ??

pobierz sobie parametry krokow i tyle chyba najprostsze rozwiazanie aczkolwiek nie sprawdzalem
Odpowiedz

  • +
  • -
Owner123 - zdjęcie 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ć ;>
Odpowiedz

  • +
  • -
Ortega - zdjęcie 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 down
Czegoś 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.
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie 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 :D
Odpowiedz

  • +
  • -
DarkGL - zdjęcie 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
Odpowiedz

  • +
  • -
Owner123 - zdjęcie Owner123 31.10.2010

A mój kod próbowałeś?
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 31.10.2010

sprawdzałem in_run w własnym zakresie nie dawało efektu

#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 :D pozostały dwóch nie mogłem określić ;f
Odpowiedz

  • +
  • -
Owner123 - zdjęcie 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
Odpowiedz

  • +
  • -
Ortega - zdjęcie Ortega 31.10.2010

Napisałem to ;) A co do IN_RUN to w jest totalnie wycięty z HLSDK oprócz definicji.
Odpowiedz

  • +
  • -
DarkGL - zdjęcie 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
Odpowiedz

  • +
  • -
Ortega - zdjęcie 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ę.
Odpowiedz

  • +
  • -
DarkGL - zdjęcie 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
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 06.11.2010

nadal nie kapisz :)
Odpowiedz
Zablokowany