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

Footsteps BF2


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
4 odpowiedzi w tym temacie

#1 Niquit

    Zaawansowany

  • Użytkownik

Reputacja: 4
Nowy

  • Postów:114
  • Lokalizacja:Szczecin
Offline

Napisano 20.11.2013 00:15

Witam,

do BF2 dodałem, że na nożu ma się ciche kroki. Działa to, jednak jeśli gracz zacznie spamować "q" to zmiany broni, to nie będzie słychać kroków.

 

Jak napisać, aby to miało ręce i nogi?

 

Tak wygląda event:

public Event_CurWeapon(id)
{
if ( !is_user_alive(id) || !get_pcvar_num(gPcvarBF2Active) )
return;

if ( !get_pcvar_num(gPcvarBadgePowers) )
return;

new weapon_id = read_data(2);

if ( g_lastwpn[id] != weapon_id )
{
set_speed(id);
}

g_lastwpn[id] = weapon_id;
}
 
A tak set_speed:
public set_speed(id)
{
if ( !get_pcvar_num(gPcvarBadgesActive) || !get_pcvar_num(gPcvarBadgePowers) ) return;
if ( !is_user_alive(id) || freezetime ) return;

new Float:speed;

if ( g_imobile[id] )
{
speed = 100.0;
}
else
{
if ( fm_get_user_vip(id) )
{
//VIPs only have 1 speed no matter the weapon
speed = 227.0;
}
else
{
new weapon = get_user_weapon(id);

speed = gCSWeaponSpeed[weapon];

if ( gCurrentFOV[id] <= 45 )
{
switch(weapon)
{
case CSW_SCOUT: speed = 220.0;
case CSW_SG550, CSW_AWP, CSW_G3SG1: speed = 150.0;
}
}
}

new smglevel = g_PlayerBadges[id][BADGE_SMG];
if ( smglevel )
{
speed += (smglevel * 15.0);
}
new knifelevel = g_PlayerBadges[id][BADGE_KNIFE];
if ( knifelevel == 1 && get_user_weapon(id) == CSW_KNIFE)
{
speed -= 150;
set_user_footsteps(id, 1);

}
else if ( knifelevel == 2 && get_user_weapon(id) == CSW_KNIFE)
{
speed -= 100;
set_user_footsteps(id, 1);

}
else if ( knifelevel == 3 && get_user_weapon(id) == CSW_KNIFE)
{
speed -= 50;
set_user_footsteps(id, 1);
}
else
{
set_user_footsteps(id, 0);
}

}

if ( speed != fm_get_user_maxspeed(id) )
{
fm_set_user_maxspeed(id, speed);
}
}
 
Co bym nie szukał, set_user_footsteps(id, 1) - wycisza kroki. Tak jest napisane na oficjalnej stronie amxx, i tak działa.
 
Działa poprawnie, szybkość i ciche kroki na nożu, ale podczas szybkiej zmiany dowolnej broni(nawet jak nie ma się odznaki) nie słychać kroków.
 
Prosiłbym o pomoc.
 
Pozdrawiam,
Niquit.

 


  • +
  • -
  • 0

#2 Misiaczek ;c

    /dev/null

  • Moderator

Reputacja: 1 678
Godlike

  • Postów:2 496
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Halemba
Offline

Napisano 20.11.2013 06:52

bf2rank.sma
Znajdź


	gPlayerName = get_xvar_id("PlayerName");
}

Zamień na

	gPlayerName = get_xvar_id("PlayerName");
	register_forward(FM_PlayerPreThink, "Bug_Ciche_Chodzenie");
}

public Bug_Ciche_Chodzenie(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, 999)
	}
}

  • +
  • -
  • 0

#3 Niquit

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 4
Nowy

  • Postów:114
  • Lokalizacja:Szczecin
Offline

Napisano 20.11.2013 09:07

 

bf2rank.sma
Znajdź


	gPlayerName = get_xvar_id("PlayerName");
}

Zamień na

	gPlayerName = get_xvar_id("PlayerName");
	register_forward(FM_PlayerPreThink, "Bug_Ciche_Chodzenie");
}

public Bug_Ciche_Chodzenie(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, 999)
	}
}

Plugin jest przerabiany z Twojej wersji 1.1.0. Wszystko co tam jest zostało, jedynie zmiany w odznakach. 

 

Wstawiałem warunki o wyciszaniu krokach w set_invs i bezpośrednio do CurWeapon, jednakże nie znam się co i jak powinno być.

 

Dla mnie na logikę powinno uruchamiać ciche chodzenie dopiero jak będzie miał nóż w ręce, a nie po zmianie broni(gdzie plugin wie, że broń została zmieniona, ale nie wie na jaką).


  • +
  • -
  • 0

#4 Niquit

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 4
Nowy

  • Postów:114
  • Lokalizacja:Szczecin
Offline

Napisano 20.11.2013 10:16

Domyślam się, że trzeba użyć odpowiednio kanapki czytając ten temat: http://amxx.pl/topic...ędkości-gracza/


  • +
  • -
  • 0

#5 Niquit

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 4
Nowy

  • Postów:114
  • Lokalizacja:Szczecin
Offline

Napisano 30.11.2013 12:07

Jest ktoś wstanie pomóc?


  • +
  • -
  • 0




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

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