Skocz do zawartości
Weak.

[Rozwiązane] Anti Rush zmniejszenie wybicia gracza

Rekomendowane odpowiedzi

case 2:
{
	new Float:fVelocity[3];
	fVelocity[0] = GetEntPropFloat(activator, Prop_Send, "m_vecVelocity[0]"); 
	fVelocity[1] = GetEntPropFloat(activator, Prop_Send, "m_vecVelocity[1]"); 
	fVelocity[2] = GetEntPropFloat(activator, Prop_Send, "m_vecVelocity[2]");
			
	fVelocity[0] *= -10.0;
	fVelocity[1] *= -10.0;
	// Always bounce back with at least 10 velocity
	if(fVelocity[1] > 0.0 && fVelocity[1] < 10.0)
		fVelocity[1] = 10.0;
	else if(fVelocity[1] < 0.0 && fVelocity[1] > -10.0)
		fVelocity[1] = -10.0;
	// Never push the player up.
	if(fVelocity[2] > 0.0)
		fVelocity[2] *= -1.0;

	TeleportEntity(activator, NULL_VECTOR, NULL_VECTOR, fVelocity);
}

Można w tym jakoś zablokować te wybicie gracza jak skoczy na linie rushu? Owa funkcja niestety wybija graczy na koniec mapy, a inne opcje mnie niż ta nie interesuje.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
case 2:
{
	new Float:fVelocity[3];
	fVelocity[0] = GetEntPropFloat(activator, Prop_Send, "m_vecVelocity[0]"); 
	fVelocity[1] = GetEntPropFloat(activator, Prop_Send, "m_vecVelocity[1]"); 
			
	fVelocity[0] *= -10.0;
	fVelocity[1] *= -10.0;
	// Always bounce back with at least 10 velocity
	if(fVelocity[1] > 0.0 && fVelocity[1] < 10.0)
		fVelocity[1] = 10.0;
	else if(fVelocity[1] < 0.0 && fVelocity[1] > -10.0)
		fVelocity[1] = -10.0;


}

 Spróbuj tego 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

@Yamakashi

 to juz lepiej usunac ten case, bedzie to wydajniejsze ?
fVelocity [0] *= -10.0;
fVelocity[1] *= -10. 0;
zmniejsz (matematycznie bardziej bedzie okreslenie zwieksz) sobie te wartosci, aby zmniejszyc odrzut.
nie wiem czy czasami wyl odrzutu nie spowoduje tego ze plugin bedzie bezuzyteczny
 
 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
30 minut temu, plx211 napisał:

@Yamakashi

 to juz lepiej usunac ten case, bedzie to wydajniejsze ?
fVelocity [0] *= -10.0;
fVelocity[1] *= -10. 0;
zmniejsz (matematycznie bardziej bedzie okreslenie zwieksz) sobie te wartosci, aby zmniejszyc odrzut.
nie wiem czy czasami wyl odrzutu nie spowoduje tego ze plugin bedzie bezuzyteczny
 
 

Nie ma znaczenia, czy zmienię tego wartość lub nie. Nadal jak gracz skoczy na rush to go wybija na koniec mapy.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
fVelocity[0] *= -10.0;
fVelocity[1] *= -10.0;

Chodzi o to, że to działanie sprawia, że odwracamy wektor przemieszczenia gracza i wzmacniamy go dodatkowo 10-cio krotnie. To tak jakbyś jechał samochodem w pewnym kierunku z prędkością 10 km/h i nagle wyrzuciło Cię w przeciwnym kierunku z prędkością 100km/h. Aby zmniejszyć efekt odskoku, zamień obie -10.0 na -2.0 załóżmy. Poeksperymentuj z wartościami z przedziału -5.0 do -1.0.

Natomiast jeśli to nic nie zmienia, to możliwe że nie chodzi nam o tego case'a który przedstawiłeś w temacie. Nie wiem, bo całego kodu nie widziałem ^^

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wiadomość wygenerowana automatycznie

 

Problem został rozwiązany

Jeżeli się z tym nie zgadzasz, raportuj ten post

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

×
×
  • Dodaj nową pozycję...