Opublikowano 2 Października 20232 l Cześć W tym poradniku skupimy się na komendzie do_user_horse_ride. Omówimy, jak ją nieco zmodyfikować oraz dodamy zabezpieczenie antyspamowe, aby zapobiec spowolnieniom gry spowodowanym nadużywaniem tej funkcji. Problem: Gracze często wchodzą i schodzą z koni, co przy większej ilości osób wykonujących tę operację w nadmiernej ilości, powoduje lag dla innych graczy. Chcę, aby gra działała jak najpłynniej, stąd konieczność zabezpieczenia tej komendy przed nadużyciem. Prezentacja: Omówienie rozwiązania: Zobaczmy więc wspomnianą funkcję: Tylko zalogowani Zaloguj się, aby wyświetlić chronioną treść Ten post zawiera treści dostępne tylko dla członków. Zaloguj się lub utwórz konto, aby odblokować całą zawartość tego posta. Zaloguj się Utwórz konto Pierwszy rzut oka na funkcję ACMD(do_user_horse_ride) ukazuje warunki, które sprawdzają, czy postać jest w trybie obserwatora, czy jest martwa, czy ma nałożony stan paraliżu. Jeśli którykolwiek z tych warunków jest spełniony, funkcja jest przerywana. Możemy te warunki połączyć w 1 zapis w ten sposób: Teraz zastanówmy się, co możemy zrobić dalej. Optymalizacja kodu! Co możemy tu zrobić? Proponuję utworzenie nowych zmiennych na początku funkcji, które jasno określą, co sprawdzamy. Na przykład: I zastosujmy je w powyższej instrukcji warunkowej: Wygląda o wiele lepiej, co tu możemy jeszcze zrobić? Mamy dwa wywołania: A gdyby tak stworzyć funkcję, która inteligentnie przełącza stan jazdy na koniu? Tworzenie Nowej Funkcji: Utworzymy więc funkcję ToggleRiding(), która inteligentnie przełącza stan jazdy na koniu: A teraz użyjemy jej w naszej poprzedniej funkcji: Tak wygląda zaktualizowany kod: Dodanie Kontroli Antyspamowej: Na koniec dodamy kontrolę antyspamową. Stworzymy mechanizm, który zabezpieczy nas przed nadużywaniem tej funkcji, przechowując czas ostatniego wywołania i sprawdzając czy minęły już 3 sekundy od ostatniego wywołania. Implementacja: 📁 Lokalizacja pliku: 'game-> cmd_general.cpp' 🔍 Szukaj ♻️ Zamień: 📁 Lokalizacja pliku: 'game -> char_horse.cpp' 🔍 Szukaj ➕ Dodaj: 📁 Lokalizacja pliku: 'game -> char.h' 🔍 Szukaj ➕ Dodaj: 📁 Lokalizacja pliku: 'share -> locale - poland -> locale_string.txt' ➕ Dodaj:
Opublikowano 3 Listopada 20232 l Dzięki - wsumie to "psuje" starożytną taktyke gdy jeszcze marmury były nieznaną technologią. Konkretnie używając szybkiego wsiadania i zsiadania z konia "bugowalismy" animacje odlatującego bosa przez co cały czas mogliśmy zadawać mu obrażenia 😄
Opublikowano 8 Września 20241 r hej tutaj też wkradł się malutki błąd w HTMLKod został skopiowany"HORSE_ANTYSPAM_TIME_%d";"<System> Musisz odczekać jeszcze %d sekund(y), zanim będziesz mógł wykonać kolejną akcję z koniem."; zmień na: HTMLKod został skopiowany"HORSE_ANTYSPAM_TIME_%d]";"<System> Musisz odczekać jeszcze %d sekund(y), zanim będziesz mógł wykonać kolejną akcję z koniem."; ewentualnie zmień w kodzie bo wkradł się HTMLKod został skopiowany]
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto