Problem z odrzucaniem kucnietego gracza, j...
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
Asiap
21.09.2015
przed ustawieniem velocity usun graczowi klawisz IN_DUCK a po ustawieniu ustaw mu z powrotem ten klawisz
StoDwaJeden
28.09.2015
Edited by StoDwaJeden, 28.09.2015 21:13.
Ossal
28.09.2015
szoruje nogami po ziemi i to zmniejsza predkosc odrzucenia
Powiedz mi coś czego nie wiem
Musisz gracza podrzucic
Powiem też, że powiększanie velocity w pionie [2] to słaby pomysł, ma ktoś lepszy?
StoDwaJeden
28.09.2015
Edited by StoDwaJeden, 28.09.2015 23:18.
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
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.
GwynBleidD
01.10.2015
Aby uniknąć tego, musisz przed teleportowaniem sprawdzić w jakiej odległości od głowy gracza znajdują się jakieś przeszkody.
Ossal
02.10.2015
Linux, Twoja funkcja zadziała gdziekolwiek, ale w sumie to żadna różnica, bo nie wnosi nic do tematu
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ę?
Linux'
02.10.2015
Linux, Twoja funkcja zadziała gdziekolwiek, ale w sumie to żadna różnica, bo nie wnosi nic do tematu
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?
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