Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Guest Message by DevFuse
set_user_footsteps bez funa
Temat rozp. ^Grzyboo, 06.06.2011 18:10
5 odpowiedzi w tym temacie
#1
Napisano 06.06.2011 18:10
Witam, potrzebuje jakiegoś naprowadzenia bądź funkcji, która wyciszy kroki gracza tak jak set_user_footsteps.
Dla jednej głupiej rzeczy, ustawiania kroków chyba nie warto includować do codmoda <fun>, lepiej stock z fakemety do fm_give_item. Niestety nie ma stocka, który by wyciszał kroki i nigdzie nie znalazłem. Czy istnieje możliwość zmiany tego bez <fun>?
Dla jednej głupiej rzeczy, ustawiania kroków chyba nie warto includować do codmoda <fun>, lepiej stock z fakemety do fm_give_item. Niestety nie ma stocka, który by wyciszał kroki i nigdzie nie znalazłem. Czy istnieje możliwość zmiany tego bez <fun>?
#2
Napisano 06.06.2011 18:29
Wgraj na serwer ten plugin.
Od teraz możesz używać natywów fm_set_user_footsteps i fm_get_user_footsteps. Kod z AlliedModders, do którego dorobiłem natywy.
#include <amxmodx>
#include <fakemeta>
#define STANDARDTIMESTEPSOUND 400
new bool:g_silent[33]
public SetFootsteps(index, set)
{
if (set)
{
set_pev(index, pev_flTimeStepSound, 999)
g_silent[index] = true
}
else
{
set_pev(index, pev_flTimeStepSound, STANDARDTIMESTEPSOUND)
g_silent[index] = false
}
return 1
}
public GetFootsteps(index)
{
return g_silent[index]
}
public forward_player_prethink(index)
{
if (g_silent[index])
set_pev(index, pev_flTimeStepSound, 999)
}
public client_disconnect(index)
{
g_silent[index] = false
}
public plugin_init()
register_forward(FM_PlayerPreThink, "forward_player_prethink")
public plugin_natives()
{
register_native("fm_set_user_footsteps", "SetFootsteps", 1)
register_native("fm_get_user_footsteps", "GetFootsteps", 1)
}
Od teraz możesz używać natywów fm_set_user_footsteps i fm_get_user_footsteps. Kod z AlliedModders, do którego dorobiłem natywy.
#3
Napisano 06.06.2011 21:03
Wgraj na serwer ten plugin.
#include <amxmodx>
#include <fakemeta>
#define STANDARDTIMESTEPSOUND 400
new bool:g_silent[33]
public SetFootsteps(index, set)
{
if (set)
{
set_pev(index, pev_flTimeStepSound, 999)
g_silent[index] = true
}
else
{
set_pev(index, pev_flTimeStepSound, STANDARDTIMESTEPSOUND)
g_silent[index] = false
}
return 1
}
public GetFootsteps(index)
{
return g_silent[index]
}
public forward_player_prethink(index)
{
if (g_silent[index])
set_pev(index, pev_flTimeStepSound, 999)
}
public client_disconnect(index)
{
g_silent[index] = false
}
public plugin_init()
register_forward(FM_PlayerPreThink, "forward_player_prethink")
public plugin_natives()
{
register_native("fm_set_user_footsteps", "SetFootsteps", 1)
register_native("fm_get_user_footsteps", "GetFootsteps", 1)
}
Od teraz możesz używać natywów fm_set_user_footsteps i fm_get_user_footsteps. Kod z AlliedModders, do którego dorobiłem natywy.
Prościej jest tak
public client_PreThink(id){
if(!fm_get_nofootsteps(id)) return 1;
fm_set_nofootsteps(id, 1)
return 0;
}
stock fm_get_nofootsteps(index)
return pev(index, pev_flTimeStepSound) == 999 ? true : false;
stock fm_set_nofootsteps(index, nofootsteps = 0)
set_pev(index, pev_flTimeStepSound, nofootsteps ? 999 : 400);
Lub jeżeli think za szybko sie wykonuje no to można już tą zmienną walnąć
Użytkownik diablix edytował ten post 06.06.2011 21:13
#4
Napisano 06.06.2011 21:08
Niestety nie ma stocka, który by wyciszał kroki
Czary mary.
stock fm_set_user_footsteps(index, set = 1)
{
if(set){
set_pev(index, pev_flTimeStepSound, 999);
bSilent[index] = true;
}else{
set_pev(index, pev_flTimeStepSound, 400);
bSilent[index] = false;
}
return 1;
}
Użytkownik RPK. Shark edytował ten post 06.06.2011 21:09
#5
Napisano 06.06.2011 22:25
Shark, zapomniałeś jeszcze o :
w ogóle ta metoda co diablix podał będzie dla ciebie najlepszym rozwiązaniem
register_forward(FM_PlayerPreThink,"fw_PreThink");
new bool:bSilent[33];
public fw_PreThink(id)
{
if(!is_user_alive(id))
return FMRES_IGNORED;
if(bSilent[id])
set_pev(id, pev_flTimeStepSound, 999);
return FMRES_IGNORED;
}
w ogóle ta metoda co diablix podał będzie dla ciebie najlepszym rozwiązaniem
Użytkownik Cypis' edytował ten post 06.06.2011 22:30
#6
Napisano 07.06.2011 11:41
Nie zapomniałem mu chodziło o sam stock
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych