Dzisiaj, po zgłoszeniu przez @WhiteBambo88, odkryliśmy poważny błąd. który dotyczy nie tylko EntryCore, ale wszystkich źródeł. Do tej pory nie wydano publicznie poprawki. Podczas usuwania postaci, rekord dotyczący członków gildii są czyszczone jedynie w bazie danych, bez przesyłania odpowiednich informacji do serwera i klienta gry. W rezultacie gracz pozostaje w gildii aż do restartu serwera, a jego komentarze nigdy nie zostają usunięte.
Przyczyna problemu
Podczas usuwania postaci nie jest przesyłany odpowiedni pakiet do serwera gry, który powinien informować o konieczności usunięcia komentarzy gildii powiązanych z tą postacią. W efekcie zmiany są wprowadzane tylko w bazie danych, co prowadzi do niespójności danych między serwerem gry a bazą danych.
Dziękuję @WhiteBambo88 za zgłoszenie i pomoc w odkryciu tego problemu. 🙏
Aktualizacja
Rozwiązano problem z usuwaniem wszystkim komentarzy zamiast tylko postaci, która została usunięta,
Wdrożono automatyczne odświeżanie komentarzy po usunięciu postaci,
Nowa funkcja pobierająca nazwą gracza przez id 'GetCharacterName',
Teraz usuwanie w kliencie gry będzie wysyłać zmiany do wszystkich gracz gildii.,
Dodawanie komentarza jest wysyłane do wszystkich aktywnych członków gildii,
Cześć,✋
Opis problemu
Dzisiaj, po zgłoszeniu przez @WhiteBambo88, odkryliśmy poważny błąd. który dotyczy nie tylko EntryCore, ale wszystkich źródeł. Do tej pory nie wydano publicznie poprawki. Podczas usuwania postaci, rekord dotyczący członków gildii są czyszczone jedynie w bazie danych, bez przesyłania odpowiednich informacji do serwera i klienta gry. W rezultacie gracz pozostaje w gildii aż do restartu serwera, a jego komentarze nigdy nie zostają usunięte.
Przyczyna problemu
Podczas usuwania postaci nie jest przesyłany odpowiedni pakiet do serwera gry, który powinien informować o konieczności usunięcia komentarzy gildii powiązanych z tą postacią. W efekcie zmiany są wprowadzane tylko w bazie danych, co prowadzi do niespójności danych między serwerem gry a bazą danych.
Dziękuję @WhiteBambo88 za zgłoszenie i pomoc w odkryciu tego problemu. 🙏
Aktualizacja
Prezentacja błędu
Prezentacja rozwiązania
Aktualizacja
Implementacja
📂Lokalizacja pliku: 'common -> tables.h'
🔍Szukaj
➕Dodaj
🔍Szukaj
➕Dodaj
📂Lokalizacja pliku: 'db -> ClientManagerGuild.cpp'
🔍Szukaj
➕Dodaj
📂Lokalizacja pliku: 'db -> ClientManager.h'
🔍Szukaj
➕Dodaj
📂Lokalizacja pliku: 'db -> ClientManagerPlayer.cpp'
🔍Szukaj
➕Dodaj
📂Lokalizacja pliku: 'game -> input_db.cpp'
🔍Szukaj
➕Dodaj
🔍Szukaj
➕Dodaj
📂Lokalizacja pliku: 'game -> input.h'
🔍Szukaj
➕Dodaj
📂Lokalizacja pliku: 'game -> guild.cpp'
🔍Szukaj
♻️Zamień
🔍Szukaj
➕Dodaj
🔍Szukaj
♻️Zamień
Wersja dla EntryCore
🔍Szukaj
♻️Zamień
📂Lokalizacja pliku: 'game -> guild.h'
🔍Szukaj
➕Dodaj
📂Lokalizacja pliku: 'UserInterface -> PythonNetworkStreamPhaseGame.cpp'
🔍Szukaj
➕Dodaj
📂Lokalizacja pliku: 'root -> game.py'
🔍Szukaj
➕Dodaj
📂Lokalizacja pliku: 'root -> interfacemodule.py'
🔍Szukaj
➕Dodaj
Enjoy 😉