From fd0ebe901444c34d971f572a56a06ac0f7e3daca Mon Sep 17 00:00:00 2001 From: devbeni Date: Sat, 13 Dec 2025 14:35:45 +0100 Subject: [PATCH] yes --- README.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..cb0a8e8 --- /dev/null +++ b/README.md @@ -0,0 +1,52 @@ +# 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: + +- `NullReferenceException` a lobby player UI frissítésében (`PlayerEntryScript.SetValues`) +- duplikált SteamID miatti `ArgumentException: same key already added` a handshake során +- csomagkezelés közben `KeyNotFoundException` / `NullReferenceException` (hiányzó `clientId -> steamId` map, 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 + `clientSteamIds` beállítása +- Packet oldali player lookup biztonságossá tétele (ne dobjon kivételt hiányzó map esetén) +- `PlayerReady` packet: 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 `clientSteamIds` takarítása, hogy ne maradjanak “árva” bejegyzések + +Érintett fájlok (főbb pontok): + +- `ServerLobby/PlayerEntryScript.cs` +- `Packets/Network/ServerHandshake.cs` +- `Packets/Network/ClientConnected.cs` +- `Packets/Packet.cs` +- `Packets/Lobby/PlayerReady.cs` +- `Packets/Lobby/PlayerList.cs` +- `KCServer.cs` +- `Packets/Handlers/LobbyHandler.cs` +- `RiptideSteamTransport/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. + +1. Tedd a mod mappáját a játék `mods` könyvtárába (vagy használd Workshopból, de ott egy frissítés felülírhatja a javításokat). +2. Indítsd újra teljesen a játékot. +3. Hostolj/ csatlakozz, majd ellenőrizd, hogy a lobby és a szerver indítás stabil marad. + +## Hibaelhárítás + +Ha továbbra is hibát látsz: + +- Küldd el a `output.txt` relevá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 `.gitignore` kizárja a logokat (`output*.txt`) és tipikus IDE/build artifactokat, hogy ne kerüljenek fel GitHubra. +