KCM (Kingdoms and Castles Multiplayer) – javított verzió
Ez a repo egy Kingdoms and Castles multiplayer mod forrását tartalmazza, pár stabilitási/szinkron hibára célzott javításokkal.
Mi volt a gond?
A mellékelt log (output.txt) alapján több tipikus hiba okozta a szerver indításkori/ lobby-beli szétesést:
NullReferenceExceptiona lobby player UI frissítésében (PlayerEntryScript.SetValues)- duplikált SteamID miatti
ArgumentException: same key already addeda handshake során - csomagkezelés közben
KeyNotFoundException/NullReferenceException(hiányzóclientId -> steamIdmap, race/állapot problémák)
Mit javít ez a verzió?
- Lobby UI frissítés stabilizálása (null/állapot ellenőrzések, helyes inicializálási sorrend)
- Handshake alatt a player-regisztráció ütközésmentessé tétele +
clientSteamIdsbeállítása - Packet oldali player lookup biztonságossá tétele (ne dobjon kivételt hiányzó map esetén)
PlayerReadypacket: ha nincs player, ne crasheljen- Szerver oldalon a csatlakozáskor a játékos regisztráció/map frissítése
- Kilépés/clear esetén
clientSteamIdstakarítása, hogy ne maradjanak “árva” bejegyzések
Érintett fájlok (főbb pontok):
ServerLobby/PlayerEntryScript.csPackets/Network/ServerHandshake.csPackets/Network/ClientConnected.csPackets/Packet.csPackets/Lobby/PlayerReady.csPackets/Lobby/PlayerList.csKCServer.csPackets/Handlers/LobbyHandler.csRiptideSteamTransport/LobbyManager.cs
Telepítés / használat
Fontos: a hostnak és minden kliensnek ugyanaz a verzió kell, különben továbbra is lehetnek sync problémák.
Megjegyzés: a mod menüben a piros Restart to load üzenet azt jelenti, hogy a mod engedélyezése/letöltése közben változott valami, és teljes játék-újraindítás kell, hogy betöltődjön.
- Tedd a mod mappáját a játék
modskönyvtárába (vagy használd Workshopból, de ott egy frissítés felülírhatja a javításokat). - Indítsd újra teljesen a játékot.
- Hostolj/ csatlakozz, majd ellenőrizd, hogy a lobby és a szerver indítás stabil marad.
Workshop módosításokhoz ajánlott: másold ki a Workshop mappából egy külön névvel a ...\\KingdomsAndCastles_Data\\mods\\ alá, és a mod menüben kapcsold ki a Workshop verziót, hogy Steam frissítés ne írja felül.
Hibaelhárítás
Ha továbbra is hibát látsz:
- Küldd el a
output.txtreleváns részét (a hiba előtti/utáni stack trace-t), vagy írd le a pontos üzenetet. - Írd meg, hogy: hostoltál-e, hány kliens csatlakozott, és mindenkin ugyanaz a mod-verzió van-e.
Repo higiénia
- A
.gitignorekizárja a logokat (output*.txt) és tipikus IDE/build artifactokat, hogy ne kerüljenek fel GitHubra.