Zajawka
ale już nie pamiętam
A szkoda.
Wstęp :: Wyjaśnienie ogólne
Ham_Item_Deploy wykonuje się, gdy gracz wyciąga broń, zresztą zgodnie z dokumentacją kanapki.
Zmiana prędkości gracza następuje jedynie m.in. po zmianie broni.
Ham_Item_Deploy różni się od CurWeapon tym, że jest niezawodne i wykonuje się równo raz dla wyciągnięcia broni.
Jest to zdecydowanie lepsza metoda od CurWeapon, gdyż jest niezawodna; jednakże jest to tylko jeden z wielu przypadków, gdy następuje maksymalna zmiana prędkości gracza.
Innymi słowy, nie uwzględniłeś ŻADNEGO przypadku zmiany maksymalnej prędkości gracza poza tym jednym, jedynym, tj. po zmianie broni, co spowoduje, że Twoja metoda zadziała jedynie w nielicznych przypadkach.
Czarno na białym :: Logi
Ponieważ, pomimo przeczytania kilki artykułów na temat zmiany prędkości u gracza, dalej "nie pamiętasz", kiedy dokładnie ona zachodzi i, będąc członkiem Support Teamu AMXX.pl, piszesz takie brednie, mało tego, podając argumenty wyssane z palca (czyt. ŁŻESZ!), przedstawię czarno na białym, że się mylisz.
Wobec tego gwałtu na jakości i rzetelności Support Teamu, którego się dopuściłeś, po blisko pół roku, na nowo zainstalowałem starego, poczciwego CSa 1.6 i jakże kochanego HLDSa tylko po to, by pokazać, jak kłamliwym w swej "profesji" i niegodnym jakiegokolwiek zaufania w tej kwestii uzerem (przez "z" specjalnie) jesteś.
Stworzyłem prosty plugin, który będzie notował pewne eventy związane z tym tematem i linkowanym, plus kilka eventów jako punkt odniesienie (start i koniec rundy).
Dodatkowo, notowana będzie maksymalna prędkość gracza tuż po wystąpieniu eventu, oraz moje wypowiedzi, odpowiadające działaniom przeze mnie podejmowanym.
Plain SMA (myślę, że nie wymaga komentarza):
Plain log (cut to session, puste linie dodane przeze mnie w celu zwiększenia czytelności).
Notki odn. testów:
- sv_maxspeed na serwerze testowym wynosi 1000
- Dodałem się jako admina w postaci jednej linijki do users.ini
- Reszta bez zmian; czysta instalka:
- HLDS 48/1.1.2.7/Stdio 6027 secure (10)
- Metamod 1.21.1-am
- AMXX 1.8.3 3983 (base + cstrike); linux
Ham_Item_PreFrame
Ma tylko jedną wadę tzn. to jest think wykonuje się tyle samo ile gracz posiada fps. Zatem podczas 1 min gry może wykonać się 6000 razy nawet jeśli stoimy w miejscu i totalnie nic nie robimy Czegoś tak nie optymalnego nie chcemy. Dlatego ta opcja od razu odpada.
Patrzę na logi trwające 2 minuty i 17 sekund i nie widzę, by Ham_Item_PreFrame wykonał się (6000 / 10) × (2 × 60 + 17) = 100 × 137 = 13700 razy., a podpowiem, że miałem ok. 100 fpsów.
Ham_Item_PreFrame bowiem nie wykonuje się "tyle samo ile gracz posiada fps"; czyt. ŁŻESZ.
Ham_CS_Player_ResetMaxSpeed
Patrząc na to teoretycznie to ta funkcja nie posiada wad ale jednak w praktyce się znajdują. Tzn:
• wykonuje sie parę razy więcej niż powinna gdyż nasza prędkość jest resetowana także podczas freeze time'u, śmierci, spawn'u
- Bzdura. Ham_Item_Deploy nie wykonuje się ani razu z faktu wystąpienia freezetime, tak samo jak Ham_CS_Player_ResetMaxSpeed.
Logi po rozpoczęciu freezetime:L 07/17/2014 - 19:45:38: [test.amxx]L 07/17/2014 - 19:45:35: [test.amxx] logevent_round_start L 07/17/2014 - 19:45:36: [test.amxx] Benio: Dolaczenie
- Bzdura. Ham_Item_Deploy wykonuje się tyle razy samo, co Ham_CS_Player_ResetMaxSpeed po śmierci, dokładnie 1 raz.
Logi po śmierci:L 07/17/2014 - 19:47:23: [test.amxx] Benio: Kill L 07/17/2014 - 19:47:23: [test.amxx] MaxSpeed: 250 L 07/17/2014 - 19:47:24: [test.amxx] logevent_round_end L 07/17/2014 - 19:47:24: [test.amxx] Ham_Item_Deploy L 07/17/2014 - 19:47:24: [test.amxx] Ham_CS_Player_ResetMaxSpeed L 07/17/2014 - 19:47:24: [test.amxx] Ham_Item_PreFrame L 07/17/2014 - 19:47:24: [test.amxx] Ham_Killed
- Bzdura. Ham_CS_Player_ResetMaxSpeed ma się wykonywać podczas spawnu wielokrotnie (czyt. dla każdej broni).
Logi ze spawnu:L 07/17/2014 - 19:45:38: [test.amxx] Ham_CS_Player_ResetMaxSpeed L 07/17/2014 - 19:45:38: [test.amxx] Ham_Item_PreFrame L 07/17/2014 - 19:45:38: [test.amxx] Ham_Item_Deploy L 07/17/2014 - 19:45:38: [test.amxx] MaxSpeed: 1000 L 07/17/2014 - 19:45:38: [test.amxx] Ham_CS_Player_ResetMaxSpeed L 07/17/2014 - 19:45:38: [test.amxx] MaxSpeed: 250 L 07/17/2014 - 19:45:38: [test.amxx] Ham_Item_PreFrame L 07/17/2014 - 19:45:38: [test.amxx] MaxSpeed: 250 L 07/17/2014 - 19:45:38: [test.amxx] Ham_CS_Player_ResetMaxSpeed L 07/17/2014 - 19:45:38: [test.amxx] MaxSpeed: 250 L 07/17/2014 - 19:45:38: [test.amxx] Ham_Item_PreFrame L 07/17/2014 - 19:45:38: [test.amxx] MaxSpeed: 250
Jak widać w logach, po Ham_Item_Deploy prędkość wynosi tyle, co sv_maxspeed, a dopiero Ham_CS_Player_ResetMaxSpeed dla każdej kolejnej broni, ustawiają odpowiednią prędkość.
Konkluzja: Twoja pożal się "metoda" nie zadziała, gdyż zostanie nadpisana kolejnymi wystąpieniami Ham_CS_Player_ResetMaxSpeed po których Ham_Item_Deploy już nie występuje!
Innymi słowy, gracz nie uzyska zmiany prędkości dopóki po spawnie nie zmieni broni (tak samo, jak przy CurWeapon)! I tu JUŻ wychodzi Twoja ignorancja w kwestii 1."Nie pamiętam", 2. Braku jakiegokolwiek rzetelnego sprawdzenia tego, o czym piszesz.
W jakiś sposób trzeba rozróżnić wykonanie się tej funkcji w czasie freeze time'u i po nim
Bzdura. Zajmuje się tym Ham_CS_Player_ResetMaxSpeed, który i tak nadpisze zmiany dokonane w Ham_Item_Deploy podczas freezetime, o czym napisałem wyżej.
NAJWAŻNIEJSZE Ta funkcja jest dostepna dopiero w wersji 1.3 hamsandwich'a co jest jej największą wadą gdyż z wielu przyczyn nie każdy ma mozliwość jego aktualizacji
Bzdura. HamSandwich w wersji 1.3 jest domyślnym modułem AMXX od wersji 1.8.3, a więc NIE WYMAGA AKTUALIZACJI.
Przykład Twojej ignorancji i jej fatalne skutki, czyli Zoom.
L 07/17/2014 - 19:46:25: [test.amxx] Benio: Glock > AWP L 07/17/2014 - 19:46:25: [test.amxx] MaxSpeed: 250 L 07/17/2014 - 19:46:26: [test.amxx] Ham_Item_Deploy L 07/17/2014 - 19:46:26: [test.amxx] MaxSpeed: 250 L 07/17/2014 - 19:46:26: [test.amxx] Ham_CS_Player_ResetMaxSpeed L 07/17/2014 - 19:46:26: [test.amxx] MaxSpeed: 210 L 07/17/2014 - 19:46:26: [test.amxx] Ham_Item_PreFrame L 07/17/2014 - 19:46:26: [test.amxx] MaxSpeed: 210 L 07/17/2014 - 19:46:30: [test.amxx] Benio: Zoom L 07/17/2014 - 19:46:30: [test.amxx] MaxSpeed: 210 L 07/17/2014 - 19:46:32: [test.amxx] Ham_CS_Player_ResetMaxSpeed L 07/17/2014 - 19:46:32: [test.amxx] MaxSpeed: 150 L 07/17/2014 - 19:46:32: [test.amxx] Ham_Item_PreFrame L 07/17/2014 - 19:46:32: [test.amxx] MaxSpeed: 150 L 07/17/2014 - 19:46:36: [test.amxx] Benio: Zoom x2 L 07/17/2014 - 19:46:36: [test.amxx] MaxSpeed: 150 L 07/17/2014 - 19:46:36: [test.amxx] Ham_CS_Player_ResetMaxSpeed L 07/17/2014 - 19:46:36: [test.amxx] MaxSpeed: 150 L 07/17/2014 - 19:46:36: [test.amxx] Ham_Item_PreFrame L 07/17/2014 - 19:46:36: [test.amxx] MaxSpeed: 150 L 07/17/2014 - 19:46:40: [test.amxx] Benio: Zoom 0 L 07/17/2014 - 19:46:40: [test.amxx] MaxSpeed: 150 L 07/17/2014 - 19:46:40: [test.amxx] Ham_CS_Player_ResetMaxSpeed L 07/17/2014 - 19:46:40: [test.amxx] MaxSpeed: 210 L 07/17/2014 - 19:46:40: [test.amxx] Ham_Item_PreFrame L 07/17/2014 - 19:46:40: [test.amxx] MaxSpeed: 210
Po zmianie broni na AWP, Ham_Item_Deploy zmienia prędkość na 250, a następnie Ham_CS_Player_ResetMaxSpeed na 210, po czym Ham_Item_Deploy już nie występuje ponownie.
Innymi słowy, Ham_CS_Player_ResetMaxSpeed nadpisze zmianę dokonaną w Ham_Item_Deploy tym samym sprawiając, że, znowu, Twoją metodę można wysłać jedynie do /dev/null.
Co się stanie po Zoomie? To samo! Ham_Item_Deploy nie wystąpi podczas, gdy Ham_CS_Player_ResetMaxSpeed owszem, nadpisując ustawienia Twojej (tfu!) "metody".
Spawnem i Zoom to nie jedyne eventy, których nie uwzględniłeś, a jeśli do Ham_Item_Deploy dodasz je, oraz wszystkie pozostałe eventy, podczas których zmienia się prędkość broni, ale nie ma ich w załączonych logach ze względów ograniczonej długości posta, uzyskałbyś dokładnie event Ham_CS_Player_ResetMaxSpeed, który to przecież pochodzi wprost z silnika gry i dlatego jest najoptymalniej zmieniać prędkość właśnie tam.
Jakiekolwiek rzadsze podmiany wartości zawsze zostaną nadpisane poprzez niekryte wystąpienia Ham_CS_Player_ResetMaxSpeed, a częstsze będą mniej optymalne.
TL;DR
27920 wykazał się, jako członek Support Teamu AMXX.pl, niekompetencją i totalną ignorancją, przedstawiając nieprzetestowany i niedziałający, zupełnie błędny sposób, który wyłoży się już przy, chociażby, wyciągnięciu AWP (sprawdź sam!), mało tego, bezczelnie nazywając tę "metodę" "lepszym sposobem zmiany prędkości gracza" (sic!), pokazując, msz, że nie jest godny rangi Support Teamu, gdyż nawet nie przetestował tego jakże błędnego sposobu, do tego okłamując czytelników, podając fałszywe argumenty "za" swoją niedziałającą metodą.
PS
Ode mnie, oczywiście, soczysty, czerwony minus i wniosek o zmianę rangi.