Opublikowano 22 Sierpnia 20231 r Cześć, W tym poradniku pokażę, jak dodać dodatkowy parametr do pliku CONFIG, który pozwoli Ci na dynamiczne zarządzanie globalnym chatem. Ale to nie wszystko! Przeprowadziłem również przegląd kodu odpowiedzialnego za tę funkcję, zoptymalizowałem go i przedstawiam swoje spostrzeżenia. Dzięki temu zyskasz nie tylko możliwość kontroli nad globalnym chatem, ale także zrozumiesz jak działa ta część kodu. W sieci jest wiele poradników na ten temat jednak w tym jako bonus zoptymalizujemy struct FuncShout. Bez przedłużania, zaczynajmy. Kontekst: Oryginalnie chat w grze jest podzielony pomiędzy królestwami. Na przykład, jeśli piszesz wiadomość w królestwie Jinno, gracz w królestwie Shinsoo nie zobaczy tego, co napisałeś. W sytuacji, gdy masz włączony tryb testowy i jesteś traktowany jako GM, widzisz oba chaty. Cel zmian: Chcemy dodać możliwość określenia, czy chcemy włączyć globalny chat dla wszystkich graczy, nie tylko dla GM. To pozwoli na lepszą kontrolę nad komunikacją w grze. Zaczynajmy... Dodawanie nowej zmiennej do pliku konfiguracyjnego 'config.h' Otwórz plik 'config.h' i na samym końcu dodaj nową zmienną, która będzie reprezentować stan globalnego chatu, najlepiej aby nazwa zmiennej oddawała jej przeznaczenie. 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się Kolejnym krokiem jest zainicjowanie zmiennej i dodanie nowego parametru, który będzie obsługiwał odczytanie nowego ustawienia w pliku konfiguracyjnym. Na początku pliku zainicjuj zmienną, którą dodałeś wcześniej w pliku 'config.h'. 📁 Pracujemy w pliku: 'config.cpp' 🔍 Pod zmienną: 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ➕ Dodajemy naszą zmienną odpowiedzialną za globalny chat: 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się Teraz pora na obsługę odczytywania nowego parametru. Szukamy miejsca w kodzie, gdzie obsługiwany jest parametr, pod którym wcześniej zainicjowaliśmy zmienną. Następnie dodajemy obsługę parametru globalnego chatu: 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ➕ Dodajemy poniżej: 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się Dobrze, część kodu odpowiadająca za nowy parametr w CONFIG jest już gotowa. Pamiętaj, że musisz dostosować tabulacje i estetykę kodu w swoim projekcie, aby zachować jego czytelność. Teraz przejdźmy do kluczowego elementu kodu, który zarządza globalnym chatem: 📂 Będziemy pracować w pliku 'input_p2p.cpp' 🔍 Szukamy: 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się Domyślnie ta struktura wygląda dokładnie tak, jak przedstawiono powyżej. Przyjrzymy się jej dokładniej i nieco zoptymalizujemy, dodając obsługę globalnego chatu. 🛠️ Przedstawię teraz zoptymalizowaną wersję i postaram się omówić zmiany, które wprowadziłem. 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się Zmiany które wprowadziłem: Pierwszy blok sprawdza, czy postać istnieje, a drugi blok sprawdza, czy globalny chat jest włączony oraz czy postać nie jest GM w innym królestwie. Wprowadziłem kontrolę globalnego chatu za pomocą zmiennej isGlobalChatEnabled. Jest to zmienna z pliku config, która pozwala na dynamiczne włączanie i wyłączanie globalnego chatu. Dodałem zmienną character, która przechowuje wskaźnik na postać gracza. Dzięki temu uniknąłem wielokrotnego wywołania d->GetCharacter(). Usunąłem niepotrzebne spacje i dostosowałem styl kodowania, aby był bardziej zgodny z C++. Zostało nam wyłączenie szyfrowania wiadomości prywatnych z przeciwnego królestwa. 📁 Lokalizacja pliku: 'game -> empire_text_convert.cpp' 🔍 Szukamy: 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się Na samym początku funkcji dodajemy warunek: 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się Na samym końcu nie pozostaje nam nick innego jak dodać do pliku CONFIG (w kanałach gry) nowo utworzonego parametru: 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się Stan: 0/1 - włącz/wyłącz. Jeśli nie chcesz dodawać nowego parametru do konfiguracji, a globalny chat ma być domyślnie dostępny dla każdego bez możliwości włączenia lub wyłączenia. Zostaw tylko ten warunek który kończy wykonywanie jeśli nie jesteś postacią. 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się Drugą instrukcję warunkowo usuń: 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.