←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

[Problem] CoD MoD, gdy sięskradamy słychać...

Zablokowany

  • +
  • -
hubert4444 - zdjęcie hubert4444 15.05.2010

Witam.

Gdy skradam się Komendosem to słychać tak jakbym normalnie biegł :/ i tak się dzieje w każdej klasie gdy dodaję punkty do kondycji ( polepsza prędkość ).

Jak temu zapobiec :/ !?
Odpowiedz

  • +
  • -
R3X - zdjęcie R3X 15.05.2010

To silnik gry wysyła sygnał do odtwarzania dźwięku kroków i robi to automatycznie od pewnej szybkości. Można się o tym przekonać wyłączając mod i kombinować z cvarami gracza cl_*, dokładnej nazwy w tej chwili nie pamiętam, ale mniejsza o to.

Jedyne rozwiązanie przychodzące mi do głowy do ustawienie nowej granicy dla ludzi z odpowiednim atrybutem. I nie ma na to cvara, więc wykazać się musi plugin.
Odpowiedz

  • +
  • -
hubert4444 - zdjęcie hubert4444 15.05.2010

a więc co zmienić w tym pluginie ;> ?

Zobacz, plugin od Peyote.
Jak możesz, pobierz i poszperaj :)
Odpowiedz

  • +
  • -
R3X - zdjęcie R3X 15.05.2010

Najłatwiejsza opcja dla programisty to w prethinku sprawdzać szybkość i dawać/zabierać ciche chodzenie. Sry, ale ja chcę brać na siebie takiej podmiany. Brzmi jak duży mod, a ja nie mam gdzie tego porządnie przetestować i może wyjść bubel.
Odpowiedz

  • +
  • -
Vertricus - zdjęcie Vertricus 16.05.2010

Idąc za słowami R3X'a kod z diablo oparty o fakemeta'e.
do init
register_forward(FM_PlayerPreThink, "Forward_FM_PlayerPreThink")

na koniec sma
public Forward_FM_PlayerPreThink(id) 
{
if(is_user_alive(id))
{
new Float:fVector[3];
pev(id, pev_velocity, fVector)
new Float: fSpeed = floatsqroot(fVector[0]*fVector[0]+fVector[1]*fVector[1]+fVector[2]*fVector[2])
if((fm_get_user_maxspeed(id) * 5) > (fSpeed*9))
set_pev(id, pev_flTimeStepSound, 300)
}
}
Odpowiedz

  • +
  • -
Change - zdjęcie Change 16.05.2010

@up
Przy kompilacji
Error: Undefined symbol "fm_get_user_maxspeed" on line 1703
Odpowiedz

  • +
  • -
Lukasz5 - zdjęcie Lukasz5 16.05.2010

Zapdoaj .sma może... :)
Odpowiedz

  • +
  • -
Change - zdjęcie Change 16.05.2010

Nieedytowane.. weź z tematu z codmodem. Standardowe + ta zmiana.
Odpowiedz

  • +
  • -
Vertricus - zdjęcie Vertricus 16.05.2010

na koniec wklej:
stock Float:fm_get_user_maxspeed(index) {
new Float:speed;
pev(index, pev_maxspeed, speed);

return speed;
}
Odpowiedz

  • +
  • -
QTM. Peyote - zdjęcie QTM. Peyote 17.05.2010

W CmdStart dodaj:
new Float: velocity[3];
entity_get_vector(id, EV_VEC_velocity, velocity);
new Float: speed = floatsqroot(velocity[0]*velocity[0]+velocity[1]*velocity[1]+velocity[2]*velocity[2]);
if(szybkosc_gracza[id] > speed*1.8)
entity_set_int(id, EV_INT_flTimeStepSound, 300);
Odpowiedz

  • +
  • -
Arkovsky - zdjęcie Arkovsky 20.05.2010

Jak dodaje to mi wysypuje błędami...

Sorry, działa już.

Trzeba dodać:

{
	
	new Float: velocity[3];
        entity_get_vector(id, EV_VEC_velocity, velocity);
        new Float: speed = floatsqroot(velocity[0]*velocity[0]+velocity[1]*velocity[1]+velocity[2]*velocity[2]);
        if(szybkosc_gracza[id] > speed*1.8)
                entity_set_int(id, EV_INT_flTimeStepSound, 300);
	
	}

Przed Returnem a dokładnie przed:
return FMRES_IGNORED;

Użytkownik arkovsky edytował ten post 20.05.2010 22:48
Odpowiedz

PEREF - zdjęcie PEREF 01.06.2010

rozumiem, że bug eliminuje w/w kod podany przez autora, plugin sie kompiluje ale wywala 1 błąd:

/home/groups/amxmodx/tmp3/php7flnHh.sma(302) : warning 225: unreachable code

co jest nie tak? kod dodałem wg tego co napisał kolega wyżej...

public CmdStart(id, uc_handle)
{
	if(!is_user_alive(id))
	{
	
	new Float: velocity[3];
        entity_get_vector(id, EV_VEC_velocity, velocity);
        new Float: speed = floatsqroot(velocity[0]*velocity[0]+velocity[1]*velocity[1]+velocity[2]*velocity[2]);
        if(szybkosc_gracza[id] > speed*1.8)
                entity_set_int(id, EV_INT_flTimeStepSound, 300);

	
	}


	return FMRES_IGNORED;
Odpowiedz
Zablokowany