Skocz do zawartości

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.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

set_user_footsteps bez funa


  • Zamknięty Temat jest zamknięty
5 odpowiedzi w tym temacie

#1 ^Grzyboo

    Wszechobecny

  • Użytkownik

Reputacja: 246
Wszechwidzący

  • Postów:461
  • Imię:Grzyboo
  • Lokalizacja:Tak
Offline

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>?
  • +
  • -
  • 0

#2 Goliath

    Godlike

  • Przyjaciel

Reputacja: 1 237
Godlike

  • Postów:2 334
  • GG:
  • Steam:steam
  • Imię:Maciej
  • Lokalizacja:Mońki
Offline

Napisano 06.06.2011 18:29

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.
  • +
  • -
  • 1

#3 diablix

    emeryt

  • Przyjaciel

Reputacja: 507
Wszechwiedzący

  • Postów:663
  • GG:
  • Steam:steam
  • Imię:Daniel
  • Lokalizacja:Warszawa
Offline

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

  • +
  • -
  • 1

#4 sharkowy

    Lokalna anomalia sejsmiczna o nieustalonej genezie.

  • Przyjaciel

Reputacja: 113
Zaawansowany

  • Postów:1 981
Offline

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

  • +
  • -
  • 0

#5 Cypis'

    Master

  • Przyjaciel

Reputacja: 1 162
Super Hero

  • Postów:965
  • GG:
  • Steam:steam
  • Lokalizacja:polska
Offline

Napisano 06.06.2011 22:25

Shark, zapomniałeś jeszcze o xD :


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

  • +
  • -
  • 1

#6 sharkowy

    Lokalna anomalia sejsmiczna o nieustalonej genezie.

  • Przyjaciel

Reputacja: 113
Zaawansowany

  • Postów:1 981
Offline

Napisano 07.06.2011 11:41

Nie zapomniałem :D mu chodziło o sam stock :P
  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych