←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

Problem z odrzucaniem kucnietego gracza, j...

  • +
  • -
Ossal's Photo Ossal 20.09.2015

Niezależnie od nadanego nowego velocity, a nawet od grawitacji gracz będący w kucnięciu na podłożu niemal nie zostanie odepchnięty, jak to naprawić? Żeby całkowicie zignorować kucanie przy odrzucie, czyli usunąć to dziwne przylepienie do ziemi.
Powiem też, że powiększanie velocity w pionie [2] to słaby pomysł, ma ktoś lepszy? Z góry dzięki, pozdrawiam ;)

Quote

  • +
  • -
Asiap's Photo Asiap 21.09.2015

przed ustawieniem velocity usun graczowi klawisz IN_DUCK a po ustawieniu ustaw mu z powrotem ten klawisz

Quote

  • +
  • -
Ossal's Photo Ossal 22.09.2015

Sprawdzakm to już, nawet onground usunąłem razem z duckiem i nic nie dało :/

Quote

  • +
  • -
Ossal's Photo Ossal 28.09.2015

@refresh
Co jest z wami ludzie, nikt nie patrzy tych tematów? :o 

Quote

  • +
  • -
StoDwaJeden's Photo StoDwaJeden 28.09.2015

Musisz gracza podrzucic i odrzucic go najlepiej pod katem takim zeby troche w gore lecial bo inaczej szoruje nogami po ziemi i to zmniejsza predkosc odrzucenia.
Edited by StoDwaJeden, 28.09.2015 21:13.
Quote

  • +
  • -
Ossal's Photo Ossal 28.09.2015


szoruje nogami po ziemi i to zmniejsza predkosc odrzucenia

Powiedz mi coś czego nie wiem :P


Musisz gracza podrzucic



Powiem też, że powiększanie velocity w pionie [2] to słaby pomysł, ma ktoś lepszy?

Quote

  • +
  • -
StoDwaJeden's Photo StoDwaJeden 28.09.2015

będę mial czas to sie pobawie z tym, bo nigdy nie sprawdzalem. Powiedz w jakim celu chcesz graczy rzucac i kiedy chcesz odrzucac, po dostaniu strzalu z broni czy jak?
Edited by StoDwaJeden, 28.09.2015 23:18.
Quote

  • +
  • -
Ossal's Photo Ossal 28.09.2015

tak, po trafieniu, pamiętaj, że dopiero od 200-300 (nie pamiętam ile dokładnie) velo w pionie [2] oderwie gracza od ziemi, stąd są problemy :/

Quote

  • +
  • -
Linux''s Photo Linux' 30.09.2015

register_event("Damage", "Damage", "b", "2!=0");
public Damage(id)
{
	new idattacker = get_user_attacker(id);
	if(!is_user_connected(idattacker))
		return PLUGIN_CONTINUE;

	if(get_user_team(id) != get_user_team(idattacker))
		set_pev(id, pev_velocity, Float:{0.0, 0.0, 260.0});

	return PLUGIN_CONTINUE;
}

Funkcja nie zadziala poprawnie, np w takedamage.

Quote

  • +
  • -
GwynBleidD's Photo GwynBleidD 01.10.2015

Możesz spróbować teleportować gracza o kilka unitów w górę - wtedy nie będzie już przyklejony do podłoża i będziesz mógł go odrzucić do tyłu. Pamiętaj jednak, że może w ten sposób utknąć gdy np znajduje się w tunelu wentylacyjnym i po podniesieniu go do góry jego głowa wejdzie w sufit.

Aby uniknąć tego, musisz przed teleportowaniem sprawdzić w jakiej odległości od głowy gracza znajdują się jakieś przeszkody.
Quote

  • +
  • -
Ossal's Photo Ossal 02.10.2015

Linux, Twoja funkcja zadziała gdziekolwiek, ale w sumie to żadna różnica, bo nie wnosi nic do tematu :P
Gwyn, ale przy teleportowaniu jest probem z rodzajem zmiennych originu, gdyż przez zaokrąglenie w set_user_origin czasem podniesienie gracza o dowolną liczbe unitów w pionie na nieograniczonym terenie w pionie równa się  stuck bo dosunie go do ściany :/
No chyba, że można teleportować używajć Floatu, dodam, że nadanie nowego peva (lub to samo w engine) nie przeniesie gracza :/
Dziwne, że gdy borykałem się z problemem teleportacji jakiś czas temu nie sprawdziłem entity_set_origin (lub engfunca), ta funkcja przeniesie gracza? Sprawdzę potem, ale może ktoś zdąrzy odpisać ;)
Sprawdzenie czy można tepnąć wystarczy tak?

stock bool:WScianie(const Float:origin[3]){
	if(engfunc( EngFunc_PointContents, origin) == CONTENTS_SOLID) return true
	return false
}

Ale jest jedno ale,  jaki jest dokładnie origin głowy gracza, no we float oczywiście, jak to ma się przy kucnięciu i w ogólę?

Quote

  • +
  • -
Linux''s Photo Linux' 02.10.2015

Linux, Twoja funkcja zadziała gdziekolwiek, ale w sumie to żadna różnica, bo nie wnosi nic do tematu :P
Gwyn, ale przy teleportowaniu jest probem z rodzajem zmiennych originu, gdyż przez zaokrąglenie w set_user_origin czasem podniesienie gracza o dowolną liczbe unitów w pionie na nieograniczonym terenie w pionie równa się  stuck bo dosunie go do ściany :/
No chyba, że można teleportować używajć Floatu, dodam, że nadanie nowego peva (lub to samo w engine) nie przeniesie gracza :/
Dziwne, że gdy borykałem się z problemem teleportacji jakiś czas temu nie sprawdziłem entity_set_origin (lub engfunca), ta funkcja przeniesie gracza? Sprawdzę potem, ale może ktoś zdąrzy odpisać ;)
Sprawdzenie czy można tepnąć wystarczy tak?

stock bool:WScianie(const Float:origin[3]){
	if(engfunc( EngFunc_PointContents, origin) == CONTENTS_SOLID) return true
	return false
}

Ale jest jedno ale,  jaki jest dokładnie origin głowy gracza, no we float oczywiście, jak to ma się przy kucnięciu i w ogólę?

 

Wytestuj, potem pisz. Po kodzie to tak wyglada, poniewaz skladna jest dosc banalna ale nie zadziala gdzie kolwiek. To co przedstawilem wyzej dziala poprawnie i odrzuca gracza gdy kuca wiec nie rozumiem w czym rzecz. Czego oczekujesz?

Quote

  • +
  • -
grankee's Photo grankee 10.11.2015

Można też nieoptymalnie kontrolować velocity co setną sekundy i "sztucznie" odrzucić gracza. Z taką częstotliwością narzucania mu velocity tylko ściana mu się oprze :)

Quote