Compare commits
14 Commits
679c3c9a52
...
fd0ebe9014
| Author | SHA1 | Date | |
|---|---|---|---|
| fd0ebe9014 | |||
| 6117ac93f7 | |||
| 3d5ef1686a | |||
| e6208996f7 | |||
| 4ad7265875 | |||
| a88b3f155e | |||
| 1e49828385 | |||
| 7dd6fab39e | |||
| 6ce0df40ca | |||
| df3e319b62 | |||
| b934751afd | |||
| 13c6527215 | |||
| f199bbde65 | |||
| f3be3584db |
23
.gitignore
vendored
Normal file
23
.gitignore
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
# Logs / local debug output
|
||||
output*.txt
|
||||
*.log
|
||||
|
||||
# OS junk
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
Desktop.ini
|
||||
|
||||
# Editor / IDE
|
||||
.vs/
|
||||
*.suo
|
||||
*.user
|
||||
*.userosscache
|
||||
*.sln.docstates
|
||||
*.VC.db
|
||||
*.VC.VC.opendb
|
||||
|
||||
# Build artifacts (C#/Unity tooling)
|
||||
**/bin/
|
||||
**/obj/
|
||||
**/*.mdb
|
||||
**/*.pdb
|
||||
37
KCServer.cs
37
KCServer.cs
@@ -58,15 +58,40 @@ namespace KCM
|
||||
|
||||
server.ClientDisconnected += (obj, ev) =>
|
||||
{
|
||||
new ChatSystemMessage()
|
||||
try
|
||||
{
|
||||
Message = $"{Main.GetPlayerByClientID(ev.Client.Id).name} has left the server.",
|
||||
}.SendToAll();
|
||||
var playerName = $"Client {ev.Client.Id}";
|
||||
string steamId;
|
||||
if (Main.clientSteamIds.TryGetValue(ev.Client.Id, out steamId) && !string.IsNullOrEmpty(steamId))
|
||||
{
|
||||
KCPlayer player;
|
||||
if (Main.kCPlayers.TryGetValue(steamId, out player) && player != null && !string.IsNullOrEmpty(player.name))
|
||||
playerName = player.name;
|
||||
|
||||
Main.kCPlayers.Remove(Main.GetPlayerByClientID(ev.Client.Id).steamId);
|
||||
Destroy(LobbyHandler.playerEntries.Select(x => x.GetComponent<PlayerEntryScript>()).Where(x => x.Client == ev.Client.Id).FirstOrDefault().gameObject);
|
||||
Main.kCPlayers.Remove(steamId);
|
||||
}
|
||||
|
||||
Main.helper.Log($"Client disconnected. {ev.Reason}");
|
||||
Main.clientSteamIds.Remove(ev.Client.Id);
|
||||
|
||||
new ChatSystemMessage()
|
||||
{
|
||||
Message = $"{playerName} has left the server.",
|
||||
}.SendToAll();
|
||||
|
||||
var entry = LobbyHandler.playerEntries
|
||||
.Select(x => x != null ? x.GetComponent<PlayerEntryScript>() : null)
|
||||
.FirstOrDefault(x => x != null && x.Client == ev.Client.Id);
|
||||
|
||||
if (entry != null)
|
||||
Destroy(entry.gameObject);
|
||||
|
||||
Main.helper.Log($"Client disconnected. {ev.Reason}");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Main.helper.Log("Error handling client disconnect");
|
||||
Main.helper.Log(ex.ToString());
|
||||
}
|
||||
};
|
||||
|
||||
Main.helper.Log($"Listening on port 7777. Max {LobbyHandler.ServerSettings.MaxPlayers} clients.");
|
||||
|
||||
@@ -35,6 +35,7 @@ namespace KCM.Packets.Handlers
|
||||
if (!KCServer.IsRunning)
|
||||
{
|
||||
Main.kCPlayers.Clear();
|
||||
Main.clientSteamIds.Clear();
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
||||
@@ -35,13 +35,17 @@ namespace KCM.Packets.Lobby
|
||||
|
||||
Main.helper.Log("PlayerList: " + playersName[i] + " " + playersId[i] + " " + steamIds[i]);
|
||||
|
||||
Main.kCPlayers.Add(steamIds[i], new KCPlayer(playersName[i], playersId[i], steamIds[i])
|
||||
KCPlayer player;
|
||||
if (!Main.kCPlayers.TryGetValue(steamIds[i], out player) || player == null)
|
||||
{
|
||||
name = playersName[i],
|
||||
ready = playersReady[i],
|
||||
banner = playersBanner[i],
|
||||
kingdomName = playersKingdomName[i]
|
||||
});
|
||||
player = new KCPlayer(playersName[i], playersId[i], steamIds[i]);
|
||||
Main.kCPlayers[steamIds[i]] = player;
|
||||
}
|
||||
|
||||
player.name = playersName[i];
|
||||
player.ready = playersReady[i];
|
||||
player.banner = playersBanner[i];
|
||||
player.kingdomName = playersKingdomName[i];
|
||||
|
||||
|
||||
if (Main.clientSteamIds.ContainsKey(playersId[i]))
|
||||
@@ -49,7 +53,8 @@ namespace KCM.Packets.Lobby
|
||||
else
|
||||
Main.clientSteamIds.Add(playersId[i], steamIds[i]);
|
||||
|
||||
Main.kCPlayers[steamIds[i]].inst.PlayerLandmassOwner.SetBannerIdx(playersBanner[i]);
|
||||
if (player.inst != null && player.inst.PlayerLandmassOwner != null)
|
||||
player.inst.PlayerLandmassOwner.SetBannerIdx(playersBanner[i]);
|
||||
|
||||
LobbyHandler.AddPlayerEntry(playersId[i]);
|
||||
}
|
||||
|
||||
@@ -14,6 +14,8 @@ namespace KCM.Packets.Lobby
|
||||
|
||||
public override void HandlePacketServer()
|
||||
{
|
||||
if (player == null)
|
||||
return;
|
||||
IsReady = !player.ready;
|
||||
//SendToAll(KCClient.client.Id);
|
||||
|
||||
@@ -22,6 +24,8 @@ namespace KCM.Packets.Lobby
|
||||
|
||||
public override void HandlePacketClient()
|
||||
{
|
||||
if (player == null)
|
||||
return;
|
||||
player.ready = IsReady;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,6 +51,20 @@ namespace KCM.Packets.Network
|
||||
{
|
||||
Main.helper.Log("Server Player Connected: " + Name + " Id: " + clientId + " SteamID: " + SteamId);
|
||||
|
||||
KCPlayer player;
|
||||
if (Main.kCPlayers.TryGetValue(SteamId, out player))
|
||||
{
|
||||
player.id = clientId;
|
||||
player.name = Name;
|
||||
player.steamId = SteamId;
|
||||
}
|
||||
else
|
||||
{
|
||||
Main.kCPlayers[SteamId] = new KCPlayer(Name, clientId, SteamId);
|
||||
}
|
||||
|
||||
Main.clientSteamIds[clientId] = SteamId;
|
||||
|
||||
List<KCPlayer> list = Main.kCPlayers.Select(x => x.Value).OrderBy(x => x.id).ToList();
|
||||
|
||||
if (list.Count > 0)
|
||||
|
||||
@@ -38,7 +38,8 @@ namespace KCM.Packets.Network
|
||||
|
||||
Main.helper.Log("Sending client connected. Client ID is: " + clientId);
|
||||
|
||||
Main.kCPlayers.Add(Main.PlayerSteamID, new KCPlayer(KCClient.inst.Name, clientId, Main.PlayerSteamID));
|
||||
Main.kCPlayers[Main.PlayerSteamID] = new KCPlayer(KCClient.inst.Name, clientId, Main.PlayerSteamID);
|
||||
Main.clientSteamIds[clientId] = Main.PlayerSteamID;
|
||||
|
||||
Player.inst.PlayerLandmassOwner.teamId = clientId * 10 + 2;
|
||||
|
||||
|
||||
@@ -16,20 +16,15 @@ namespace KCM.Packets
|
||||
{
|
||||
get
|
||||
{
|
||||
KCPlayer p = null;
|
||||
|
||||
if (!Main.clientSteamIds.ContainsKey(clientId))
|
||||
string steamId;
|
||||
if (!Main.clientSteamIds.TryGetValue(clientId, out steamId) || string.IsNullOrEmpty(steamId))
|
||||
return null;
|
||||
|
||||
//Main.helper.Log($"SteamID: {Main.GetPlayerByClientID(clientId).steamId} for {clientId} ({Main.GetPlayerByClientID(clientId).id})");
|
||||
|
||||
if (Main.kCPlayers.TryGetValue(Main.GetPlayerByClientID(clientId).steamId, out p))
|
||||
return p;
|
||||
else
|
||||
{
|
||||
Main.helper.Log($"Error getting player from packet {packetId} {this.GetType().Name} from {clientId}");
|
||||
}
|
||||
KCPlayer player;
|
||||
if (Main.kCPlayers.TryGetValue(steamId, out player))
|
||||
return player;
|
||||
|
||||
Main.helper.Log($"Error getting player from packet {packetId} {GetType().Name} from {clientId}");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
52
README.md
Normal file
52
README.md
Normal file
@@ -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.
|
||||
|
||||
@@ -159,6 +159,7 @@ namespace Riptide.Demos.Steam.PlayerHosted
|
||||
|
||||
Main.helper.Log("clear players");
|
||||
Main.kCPlayers.Clear();
|
||||
Main.clientSteamIds.Clear();
|
||||
LobbyHandler.ClearPlayerList();
|
||||
LobbyHandler.ClearChatEntries();
|
||||
Main.helper.Log("end clear players");
|
||||
|
||||
@@ -51,12 +51,24 @@ namespace KCM.ServerLobby.LobbyChat
|
||||
{
|
||||
try
|
||||
{
|
||||
if (banner == null)
|
||||
return;
|
||||
|
||||
string steamId;
|
||||
if (!Main.clientSteamIds.TryGetValue(Client, out steamId))
|
||||
return;
|
||||
|
||||
KCPlayer player;
|
||||
Main.kCPlayers.TryGetValue(Main.GetPlayerByClientID(Client).steamId, out player);
|
||||
if (!Main.kCPlayers.TryGetValue(steamId, out player) || player == null)
|
||||
return;
|
||||
|
||||
var bannerTexture = World.inst.liverySets[player.banner].banners;
|
||||
if (World.inst == null || World.inst.liverySets == null)
|
||||
return;
|
||||
|
||||
banner.texture = bannerTexture;
|
||||
if (player.banner < 0 || player.banner >= World.inst.liverySets.Length)
|
||||
return;
|
||||
|
||||
banner.texture = World.inst.liverySets[player.banner].banners;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
@@ -21,15 +21,15 @@ namespace KCM.ServerLobby
|
||||
|
||||
public void Start()
|
||||
{
|
||||
banner = transform.Find("PlayerBanner").GetComponent<RawImage>();
|
||||
|
||||
SetValues();
|
||||
|
||||
InvokeRepeating("SetValues", 0, 0.25f);
|
||||
|
||||
banner = transform.Find("PlayerBanner").GetComponent<RawImage>();
|
||||
|
||||
transform.Find("PlayerBanner").GetComponent<Button>().onClick.AddListener(() =>
|
||||
{
|
||||
Main.TransitionTo(MenuState.NameAndBanner);//ChooseBannerUI Hooks required, as well as townnameui
|
||||
Main.TransitionTo(MenuState.NameAndBanner);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -37,14 +37,39 @@ namespace KCM.ServerLobby
|
||||
{
|
||||
try
|
||||
{
|
||||
if (banner == null)
|
||||
{
|
||||
var bannerTransform = transform.Find("PlayerBanner");
|
||||
if (bannerTransform == null)
|
||||
return;
|
||||
banner = bannerTransform.GetComponent<RawImage>();
|
||||
if (banner == null)
|
||||
return;
|
||||
}
|
||||
|
||||
string steamId;
|
||||
if (!Main.clientSteamIds.TryGetValue(Client, out steamId))
|
||||
return;
|
||||
|
||||
KCPlayer player;
|
||||
Main.kCPlayers.TryGetValue(Main.GetPlayerByClientID(Client).steamId, out player);
|
||||
transform.Find("PlayerName").GetComponent<TextMeshProUGUI>().text = player.name;
|
||||
transform.Find("Ready").gameObject.SetActive(player.ready);
|
||||
if (!Main.kCPlayers.TryGetValue(steamId, out player) || player == null)
|
||||
return;
|
||||
|
||||
var bannerTexture = World.inst.liverySets[player.banner].banners;
|
||||
var nameTransform = transform.Find("PlayerName");
|
||||
if (nameTransform != null)
|
||||
nameTransform.GetComponent<TextMeshProUGUI>().text = player.name ?? "";
|
||||
|
||||
banner.texture = bannerTexture;
|
||||
var readyTransform = transform.Find("Ready");
|
||||
if (readyTransform != null)
|
||||
readyTransform.gameObject.SetActive(player.ready);
|
||||
|
||||
if (World.inst == null || World.inst.liverySets == null)
|
||||
return;
|
||||
|
||||
if (player.banner < 0 || player.banner >= World.inst.liverySets.Length)
|
||||
return;
|
||||
|
||||
banner.texture = World.inst.liverySets[player.banner].banners;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
@@ -1,311 +0,0 @@
|
||||
2024-04-17T18:31:45:SENDING PLACE KEEP RANDOMLY FOR Shadowfita ON LANDMASS: 0
|
||||
2024-04-17T18:31:45:SENDING PLACE KEEP RANDOMLY FOR MUFFINMAN ON LANDMASS: 2
|
||||
2024-04-17T18:31:45:GameState (MainMenuMode)
|
||||
2024-04-17T18:31:45:True
|
||||
2024-04-17T18:31:45:Menu set to: 200
|
||||
2024-04-17T18:31:45:Exception has been thrown by the target of an invocation.
|
||||
2024-04-17T18:31:45:System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object
|
||||
at MainMenuMode.StartGame () [0x000ae] in <64d48a4605b74315afc90e0d3d75aed0>:0
|
||||
at (wrapper managed-to-native) System.Reflection.MonoMethod.InternalInvoke(System.Reflection.MonoMethod,object,object[],System.Exception&)
|
||||
at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00032] in <eae584ce26bc40229c1b1aa476bfa589>:0
|
||||
--- End of inner exception stack trace ---
|
||||
at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00048] in <eae584ce26bc40229c1b1aa476bfa589>:0
|
||||
at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <eae584ce26bc40229c1b1aa476bfa589>:0
|
||||
at KCM.Packets.Lobby.StartGame.Start () [0x00058] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
2024-04-17T18:31:45:Last 9 methods in call tree: Update -> HandleMessages -> Handle -> OnMessageReceived -> HandlePacket -> HandlePacketClient -> SendMessage -> SendMessage -> OnPlayerPlacement_Patch1
|
||||
2024-04-17T18:31:45:1
|
||||
2024-04-17T18:31:45:2
|
||||
2024-04-17T18:31:45:3
|
||||
2024-04-17T18:31:45:4
|
||||
2024-04-17T18:31:45:5
|
||||
2024-04-17T18:31:45:6
|
||||
2024-04-17T18:31:45:7
|
||||
2024-04-17T18:31:45:8
|
||||
2024-04-17T18:31:45:9
|
||||
2024-04-17T18:31:45:10
|
||||
2024-04-17T18:31:45:11
|
||||
2024-04-17T18:31:45:12
|
||||
2024-04-17T18:31:45:13
|
||||
2024-04-17T18:31:45:14
|
||||
2024-04-17T18:31:45:Called by: HandlePacketClient
|
||||
2024-04-17T18:31:45:1 Shadowfita - Sending building place packet for keep
|
||||
2024-04-17T18:31:45:Observer created for Building with 15 fields, 0 properties, and 0 non-primitive list variables
|
||||
2024-04-17T18:31:59:Overridden complete build
|
||||
2024-04-17T18:32:17:Received place building packet for keep from MUFFINMAN(2)
|
||||
2024-04-17T18:32:17:Building init
|
||||
2024-04-17T18:32:17:Building unpack
|
||||
2024-04-17T18:32:17:Client Player (2 MUFFINMAN) (Player)
|
||||
2024-04-17T18:32:17:False
|
||||
2024-04-17T18:32:17:2
|
||||
2024-04-17T18:32:17:Player add Building unpacked
|
||||
2024-04-17T18:32:17:1
|
||||
2024-04-17T18:32:17:2
|
||||
2024-04-17T18:32:17:3
|
||||
2024-04-17T18:32:17:4
|
||||
2024-04-17T18:32:17:5
|
||||
2024-04-17T18:32:17:6
|
||||
2024-04-17T18:32:17:7
|
||||
2024-04-17T18:32:17:8
|
||||
2024-04-17T18:32:17:9
|
||||
2024-04-17T18:32:17:10
|
||||
2024-04-17T18:32:17:11
|
||||
2024-04-17T18:32:17:12
|
||||
2024-04-17T18:32:17:13
|
||||
2024-04-17T18:32:17:14
|
||||
2024-04-17T18:32:17:Set keep True
|
||||
2024-04-17T18:32:17:Place from load
|
||||
2024-04-17T18:32:17:unpack stage 2
|
||||
2024-04-17T18:32:17:Landmass owner take ownership
|
||||
2024-04-17T18:32:17:2 (team 22) banner: -1 Placed building Keep(Clone) at (24.0, 0.0, 91.0)
|
||||
2024-04-17T18:32:17:Received add villager packet from MUFFINMAN(2)
|
||||
2024-04-17T18:32:17:Teleporting villager to (26.8, 0.0, 91.2)
|
||||
2024-04-17T18:32:17:Received add villager packet from MUFFINMAN(2)
|
||||
2024-04-17T18:32:17:Teleporting villager to (26.8, 0.0, 91.6)
|
||||
2024-04-17T18:32:17:Received add villager packet from MUFFINMAN(2)
|
||||
2024-04-17T18:32:17:Teleporting villager to (26.4, 0.0, 91.6)
|
||||
2024-04-17T18:32:17:Received add villager packet from MUFFINMAN(2)
|
||||
2024-04-17T18:32:17:Teleporting villager to (26.4, 0.0, 91.2)
|
||||
2024-04-17T18:32:17:Received add villager packet from MUFFINMAN(2)
|
||||
2024-04-17T18:32:17:Teleporting villager to (24.6, 0.0, 92.2)
|
||||
2024-04-17T18:32:28:Received place building packet for road from MUFFINMAN(2)
|
||||
2024-04-17T18:32:28:Building init
|
||||
2024-04-17T18:32:28:Error handling packet 71 WorldPlace from 2
|
||||
2024-04-17T18:32:28:----------------------- Main exception -----------------------
|
||||
2024-04-17T18:32:28:System.ArgumentNullException: Value cannot be null.
|
||||
Parameter name: source
|
||||
at (wrapper managed-to-native) UnityEngine.Material.CreateWithMaterial(UnityEngine.Material,UnityEngine.Material)
|
||||
at UnityEngine.Material..ctor (UnityEngine.Material source) [0x00008] in <85d1d3e7744a4a47b5f51883bf40bba2>:0
|
||||
at (wrapper dynamic-method) Building.Init_Patch0(object)
|
||||
at KCM.Packets.Game.GameWorld.WorldPlace.PlaceBuilding () [0x0018d] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
at KCM.Packets.Game.GameWorld.WorldPlace.HandlePacketClient () [0x00019] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
at KCM.Packets.Handlers.PacketHandler.HandlePacket (System.Object sender, Riptide.MessageReceivedEventArgs messageReceived) [0x00023] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
2024-04-17T18:32:28:----------------------- Main message -----------------------
|
||||
2024-04-17T18:32:28:Value cannot be null.
|
||||
Parameter name: source
|
||||
2024-04-17T18:32:28:----------------------- Main stacktrace -----------------------
|
||||
2024-04-17T18:32:28: at (wrapper managed-to-native) UnityEngine.Material.CreateWithMaterial(UnityEngine.Material,UnityEngine.Material)
|
||||
at UnityEngine.Material..ctor (UnityEngine.Material source) [0x00008] in <85d1d3e7744a4a47b5f51883bf40bba2>:0
|
||||
at (wrapper dynamic-method) Building.Init_Patch0(object)
|
||||
at KCM.Packets.Game.GameWorld.WorldPlace.PlaceBuilding () [0x0018d] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
at KCM.Packets.Game.GameWorld.WorldPlace.HandlePacketClient () [0x00019] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
at KCM.Packets.Handlers.PacketHandler.HandlePacket (System.Object sender, Riptide.MessageReceivedEventArgs messageReceived) [0x00023] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
2024-04-17T18:32:28:Received place building packet for road from MUFFINMAN(2)
|
||||
2024-04-17T18:32:28:Building init
|
||||
2024-04-17T18:32:28:Error handling packet 71 WorldPlace from 2
|
||||
2024-04-17T18:32:28:----------------------- Main exception -----------------------
|
||||
2024-04-17T18:32:28:System.ArgumentNullException: Value cannot be null.
|
||||
Parameter name: source
|
||||
at (wrapper managed-to-native) UnityEngine.Material.CreateWithMaterial(UnityEngine.Material,UnityEngine.Material)
|
||||
at UnityEngine.Material..ctor (UnityEngine.Material source) [0x00008] in <85d1d3e7744a4a47b5f51883bf40bba2>:0
|
||||
at (wrapper dynamic-method) Building.Init_Patch0(object)
|
||||
at KCM.Packets.Game.GameWorld.WorldPlace.PlaceBuilding () [0x0018d] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
at KCM.Packets.Game.GameWorld.WorldPlace.HandlePacketClient () [0x00019] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
at KCM.Packets.Handlers.PacketHandler.HandlePacket (System.Object sender, Riptide.MessageReceivedEventArgs messageReceived) [0x00023] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
2024-04-17T18:32:28:----------------------- Main message -----------------------
|
||||
2024-04-17T18:32:28:Value cannot be null.
|
||||
Parameter name: source
|
||||
2024-04-17T18:32:28:----------------------- Main stacktrace -----------------------
|
||||
2024-04-17T18:32:28: at (wrapper managed-to-native) UnityEngine.Material.CreateWithMaterial(UnityEngine.Material,UnityEngine.Material)
|
||||
at UnityEngine.Material..ctor (UnityEngine.Material source) [0x00008] in <85d1d3e7744a4a47b5f51883bf40bba2>:0
|
||||
at (wrapper dynamic-method) Building.Init_Patch0(object)
|
||||
at KCM.Packets.Game.GameWorld.WorldPlace.PlaceBuilding () [0x0018d] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
at KCM.Packets.Game.GameWorld.WorldPlace.HandlePacketClient () [0x00019] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
at KCM.Packets.Handlers.PacketHandler.HandlePacket (System.Object sender, Riptide.MessageReceivedEventArgs messageReceived) [0x00023] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
2024-04-17T18:32:28:Building not found.
|
||||
2024-04-17T18:32:28:Building not found.
|
||||
2024-04-17T18:32:29:Received place building packet for road from MUFFINMAN(2)
|
||||
2024-04-17T18:32:29:Building init
|
||||
2024-04-17T18:32:29:Error handling packet 71 WorldPlace from 2
|
||||
2024-04-17T18:32:29:----------------------- Main exception -----------------------
|
||||
2024-04-17T18:32:29:System.ArgumentNullException: Value cannot be null.
|
||||
Parameter name: source
|
||||
at (wrapper managed-to-native) UnityEngine.Material.CreateWithMaterial(UnityEngine.Material,UnityEngine.Material)
|
||||
at UnityEngine.Material..ctor (UnityEngine.Material source) [0x00008] in <85d1d3e7744a4a47b5f51883bf40bba2>:0
|
||||
at (wrapper dynamic-method) Building.Init_Patch0(object)
|
||||
at KCM.Packets.Game.GameWorld.WorldPlace.PlaceBuilding () [0x0018d] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
at KCM.Packets.Game.GameWorld.WorldPlace.HandlePacketClient () [0x00019] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
at KCM.Packets.Handlers.PacketHandler.HandlePacket (System.Object sender, Riptide.MessageReceivedEventArgs messageReceived) [0x00023] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
2024-04-17T18:32:29:----------------------- Main message -----------------------
|
||||
2024-04-17T18:32:29:Value cannot be null.
|
||||
Parameter name: source
|
||||
2024-04-17T18:32:29:----------------------- Main stacktrace -----------------------
|
||||
2024-04-17T18:32:29: at (wrapper managed-to-native) UnityEngine.Material.CreateWithMaterial(UnityEngine.Material,UnityEngine.Material)
|
||||
at UnityEngine.Material..ctor (UnityEngine.Material source) [0x00008] in <85d1d3e7744a4a47b5f51883bf40bba2>:0
|
||||
at (wrapper dynamic-method) Building.Init_Patch0(object)
|
||||
at KCM.Packets.Game.GameWorld.WorldPlace.PlaceBuilding () [0x0018d] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
at KCM.Packets.Game.GameWorld.WorldPlace.HandlePacketClient () [0x00019] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
at KCM.Packets.Handlers.PacketHandler.HandlePacket (System.Object sender, Riptide.MessageReceivedEventArgs messageReceived) [0x00023] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
2024-04-17T18:32:29:Building not found.
|
||||
2024-04-17T18:32:29:Received place building packet for road from MUFFINMAN(2)
|
||||
2024-04-17T18:32:29:Building init
|
||||
2024-04-17T18:32:29:Error handling packet 71 WorldPlace from 2
|
||||
2024-04-17T18:32:29:----------------------- Main exception -----------------------
|
||||
2024-04-17T18:32:29:System.ArgumentNullException: Value cannot be null.
|
||||
Parameter name: source
|
||||
at (wrapper managed-to-native) UnityEngine.Material.CreateWithMaterial(UnityEngine.Material,UnityEngine.Material)
|
||||
at UnityEngine.Material..ctor (UnityEngine.Material source) [0x00008] in <85d1d3e7744a4a47b5f51883bf40bba2>:0
|
||||
at (wrapper dynamic-method) Building.Init_Patch0(object)
|
||||
at KCM.Packets.Game.GameWorld.WorldPlace.PlaceBuilding () [0x0018d] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
at KCM.Packets.Game.GameWorld.WorldPlace.HandlePacketClient () [0x00019] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
at KCM.Packets.Handlers.PacketHandler.HandlePacket (System.Object sender, Riptide.MessageReceivedEventArgs messageReceived) [0x00023] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
2024-04-17T18:32:29:----------------------- Main message -----------------------
|
||||
2024-04-17T18:32:29:Value cannot be null.
|
||||
Parameter name: source
|
||||
2024-04-17T18:32:29:----------------------- Main stacktrace -----------------------
|
||||
2024-04-17T18:32:29: at (wrapper managed-to-native) UnityEngine.Material.CreateWithMaterial(UnityEngine.Material,UnityEngine.Material)
|
||||
at UnityEngine.Material..ctor (UnityEngine.Material source) [0x00008] in <85d1d3e7744a4a47b5f51883bf40bba2>:0
|
||||
at (wrapper dynamic-method) Building.Init_Patch0(object)
|
||||
at KCM.Packets.Game.GameWorld.WorldPlace.PlaceBuilding () [0x0018d] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
at KCM.Packets.Game.GameWorld.WorldPlace.HandlePacketClient () [0x00019] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
at KCM.Packets.Handlers.PacketHandler.HandlePacket (System.Object sender, Riptide.MessageReceivedEventArgs messageReceived) [0x00023] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
2024-04-17T18:32:30:Building not found.
|
||||
2024-04-17T18:32:30:Received place building packet for road from MUFFINMAN(2)
|
||||
2024-04-17T18:32:30:Building init
|
||||
2024-04-17T18:32:30:Error handling packet 71 WorldPlace from 2
|
||||
2024-04-17T18:32:30:----------------------- Main exception -----------------------
|
||||
2024-04-17T18:32:30:System.ArgumentNullException: Value cannot be null.
|
||||
Parameter name: source
|
||||
at (wrapper managed-to-native) UnityEngine.Material.CreateWithMaterial(UnityEngine.Material,UnityEngine.Material)
|
||||
at UnityEngine.Material..ctor (UnityEngine.Material source) [0x00008] in <85d1d3e7744a4a47b5f51883bf40bba2>:0
|
||||
at (wrapper dynamic-method) Building.Init_Patch0(object)
|
||||
at KCM.Packets.Game.GameWorld.WorldPlace.PlaceBuilding () [0x0018d] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
at KCM.Packets.Game.GameWorld.WorldPlace.HandlePacketClient () [0x00019] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
at KCM.Packets.Handlers.PacketHandler.HandlePacket (System.Object sender, Riptide.MessageReceivedEventArgs messageReceived) [0x00023] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
2024-04-17T18:32:30:----------------------- Main message -----------------------
|
||||
2024-04-17T18:32:30:Value cannot be null.
|
||||
Parameter name: source
|
||||
2024-04-17T18:32:30:----------------------- Main stacktrace -----------------------
|
||||
2024-04-17T18:32:30: at (wrapper managed-to-native) UnityEngine.Material.CreateWithMaterial(UnityEngine.Material,UnityEngine.Material)
|
||||
at UnityEngine.Material..ctor (UnityEngine.Material source) [0x00008] in <85d1d3e7744a4a47b5f51883bf40bba2>:0
|
||||
at (wrapper dynamic-method) Building.Init_Patch0(object)
|
||||
at KCM.Packets.Game.GameWorld.WorldPlace.PlaceBuilding () [0x0018d] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
at KCM.Packets.Game.GameWorld.WorldPlace.HandlePacketClient () [0x00019] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
at KCM.Packets.Handlers.PacketHandler.HandlePacket (System.Object sender, Riptide.MessageReceivedEventArgs messageReceived) [0x00023] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
2024-04-17T18:32:30:Overridden complete build
|
||||
2024-04-17T18:32:30:Building not found.
|
||||
2024-04-17T18:32:31:Received place building packet for road from MUFFINMAN(2)
|
||||
2024-04-17T18:32:31:Building init
|
||||
2024-04-17T18:32:31:Error handling packet 71 WorldPlace from 2
|
||||
2024-04-17T18:32:31:----------------------- Main exception -----------------------
|
||||
2024-04-17T18:32:31:System.ArgumentNullException: Value cannot be null.
|
||||
Parameter name: source
|
||||
at (wrapper managed-to-native) UnityEngine.Material.CreateWithMaterial(UnityEngine.Material,UnityEngine.Material)
|
||||
at UnityEngine.Material..ctor (UnityEngine.Material source) [0x00008] in <85d1d3e7744a4a47b5f51883bf40bba2>:0
|
||||
at (wrapper dynamic-method) Building.Init_Patch0(object)
|
||||
at KCM.Packets.Game.GameWorld.WorldPlace.PlaceBuilding () [0x0018d] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
at KCM.Packets.Game.GameWorld.WorldPlace.HandlePacketClient () [0x00019] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
at KCM.Packets.Handlers.PacketHandler.HandlePacket (System.Object sender, Riptide.MessageReceivedEventArgs messageReceived) [0x00023] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
2024-04-17T18:32:31:----------------------- Main message -----------------------
|
||||
2024-04-17T18:32:31:Value cannot be null.
|
||||
Parameter name: source
|
||||
2024-04-17T18:32:31:----------------------- Main stacktrace -----------------------
|
||||
2024-04-17T18:32:31: at (wrapper managed-to-native) UnityEngine.Material.CreateWithMaterial(UnityEngine.Material,UnityEngine.Material)
|
||||
at UnityEngine.Material..ctor (UnityEngine.Material source) [0x00008] in <85d1d3e7744a4a47b5f51883bf40bba2>:0
|
||||
at (wrapper dynamic-method) Building.Init_Patch0(object)
|
||||
at KCM.Packets.Game.GameWorld.WorldPlace.PlaceBuilding () [0x0018d] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
at KCM.Packets.Game.GameWorld.WorldPlace.HandlePacketClient () [0x00019] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
at KCM.Packets.Handlers.PacketHandler.HandlePacket (System.Object sender, Riptide.MessageReceivedEventArgs messageReceived) [0x00023] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
2024-04-17T18:32:32:Building not found.
|
||||
2024-04-17T18:32:32:Building not found.
|
||||
2024-04-17T18:32:33:Building not found.
|
||||
2024-04-17T18:32:33:Building not found.
|
||||
2024-04-17T18:32:33:Building not found.
|
||||
2024-04-17T18:32:33:Building not found.
|
||||
2024-04-17T18:32:34:Building not found.
|
||||
2024-04-17T18:32:34:Building not found.
|
||||
2024-04-17T18:32:34:Building not found.
|
||||
2024-04-17T18:32:34:Building not found.
|
||||
2024-04-17T18:32:34:Building not found.
|
||||
2024-04-17T18:32:34:Building not found.
|
||||
2024-04-17T18:32:35:Building not found.
|
||||
2024-04-17T18:32:35:Building not found.
|
||||
2024-04-17T18:32:35:Building not found.
|
||||
2024-04-17T18:32:35:Building not found.
|
||||
2024-04-17T18:32:35:Building not found.
|
||||
2024-04-17T18:32:36:Building not found.
|
||||
2024-04-17T18:32:36:Building not found.
|
||||
2024-04-17T18:32:36:Building not found.
|
||||
2024-04-17T18:32:36:Building not found.
|
||||
2024-04-17T18:32:36:Building not found.
|
||||
2024-04-17T18:32:37:Building not found.
|
||||
2024-04-17T18:32:37:Building not found.
|
||||
2024-04-17T18:32:37:Received place building packet for smallhouse from MUFFINMAN(2)
|
||||
2024-04-17T18:32:37:Building init
|
||||
2024-04-17T18:32:37:Error handling packet 71 WorldPlace from 2
|
||||
2024-04-17T18:32:37:----------------------- Main exception -----------------------
|
||||
2024-04-17T18:32:37:System.ArgumentNullException: Value cannot be null.
|
||||
Parameter name: source
|
||||
at (wrapper managed-to-native) UnityEngine.Material.CreateWithMaterial(UnityEngine.Material,UnityEngine.Material)
|
||||
at UnityEngine.Material..ctor (UnityEngine.Material source) [0x00008] in <85d1d3e7744a4a47b5f51883bf40bba2>:0
|
||||
at (wrapper dynamic-method) Building.Init_Patch0(object)
|
||||
at KCM.Packets.Game.GameWorld.WorldPlace.PlaceBuilding () [0x0018d] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
at KCM.Packets.Game.GameWorld.WorldPlace.HandlePacketClient () [0x00019] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
at KCM.Packets.Handlers.PacketHandler.HandlePacket (System.Object sender, Riptide.MessageReceivedEventArgs messageReceived) [0x00023] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
2024-04-17T18:32:37:----------------------- Main message -----------------------
|
||||
2024-04-17T18:32:37:Value cannot be null.
|
||||
Parameter name: source
|
||||
2024-04-17T18:32:37:----------------------- Main stacktrace -----------------------
|
||||
2024-04-17T18:32:37: at (wrapper managed-to-native) UnityEngine.Material.CreateWithMaterial(UnityEngine.Material,UnityEngine.Material)
|
||||
at UnityEngine.Material..ctor (UnityEngine.Material source) [0x00008] in <85d1d3e7744a4a47b5f51883bf40bba2>:0
|
||||
at (wrapper dynamic-method) Building.Init_Patch0(object)
|
||||
at KCM.Packets.Game.GameWorld.WorldPlace.PlaceBuilding () [0x0018d] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
at KCM.Packets.Game.GameWorld.WorldPlace.HandlePacketClient () [0x00019] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
at KCM.Packets.Handlers.PacketHandler.HandlePacket (System.Object sender, Riptide.MessageReceivedEventArgs messageReceived) [0x00023] in <9248c2b646c04c27b08155cb9b937ba4>:0
|
||||
2024-04-17T18:32:37:Building not found.
|
||||
2024-04-17T18:32:37:Building not found.
|
||||
2024-04-17T18:32:37:Building not found.
|
||||
2024-04-17T18:32:37:Building not found.
|
||||
2024-04-17T18:32:38:Building not found.
|
||||
2024-04-17T18:32:38:Building not found.
|
||||
2024-04-17T18:32:38:Building not found.
|
||||
2024-04-17T18:32:39:Building not found.
|
||||
2024-04-17T18:32:39:Building not found.
|
||||
2024-04-17T18:32:39:Building not found.
|
||||
2024-04-17T18:32:40:Building not found.
|
||||
2024-04-17T18:32:40:Building not found.
|
||||
2024-04-17T18:32:40:Building not found.
|
||||
2024-04-17T18:32:41:Building not found.
|
||||
2024-04-17T18:32:41:Building not found.
|
||||
2024-04-17T18:32:42:Building not found.
|
||||
2024-04-17T18:32:42:Building not found.
|
||||
2024-04-17T18:32:42:Building not found.
|
||||
2024-04-17T18:32:43:Building not found.
|
||||
2024-04-17T18:32:43:Building not found.
|
||||
2024-04-17T18:32:43:Building not found.
|
||||
2024-04-17T18:32:44:Building not found.
|
||||
2024-04-17T18:32:44:Building not found.
|
||||
2024-04-17T18:32:44:Building not found.
|
||||
2024-04-17T18:32:45:Building not found.
|
||||
2024-04-17T18:32:45:Building not found.
|
||||
2024-04-17T18:32:45:Building not found.
|
||||
2024-04-17T18:32:46:Building not found.
|
||||
2024-04-17T18:32:46:Building not found.
|
||||
2024-04-17T18:32:46:Building not found.
|
||||
2024-04-17T18:32:46:Building not found.
|
||||
2024-04-17T18:32:47:Building not found.
|
||||
2024-04-17T18:32:47:Building not found.
|
||||
2024-04-17T18:32:47:Building not found.
|
||||
2024-04-17T18:32:48:Building not found.
|
||||
2024-04-17T18:32:48:Building not found.
|
||||
2024-04-17T18:32:48:Building not found.
|
||||
2024-04-17T18:32:49:Building not found.
|
||||
2024-04-17T18:32:49:Building not found.
|
||||
2024-04-17T18:32:49:Building not found.
|
||||
2024-04-17T18:32:50:Building not found.
|
||||
2024-04-17T18:32:50:Building not found.
|
||||
2024-04-17T18:32:50:Building not found.
|
||||
2024-04-17T18:32:51:Building not found.
|
||||
2024-04-17T18:32:51:Building not found.
|
||||
2024-04-17T18:32:51:Building not found.
|
||||
2024-04-17T18:32:52:Building not found.
|
||||
2024-04-17T18:32:52:Building not found.
|
||||
2024-04-17T18:32:52:Building not found.
|
||||
2024-04-17T18:32:52:Building not found.
|
||||
2024-04-17T18:32:53:Building not found.
|
||||
2024-04-17T18:32:53:Building not found.
|
||||
2024-04-17T18:32:53:Building not found.
|
||||
2024-04-17T18:32:54:Building not found.
|
||||
2024-04-17T18:32:54:Building not found.
|
||||
2024-04-17T18:32:54:Building not found.
|
||||
2024-04-17T18:32:55:Building not found.
|
||||
2024-04-17T18:32:55:Building not found.
|
||||
File diff suppressed because it is too large
Load Diff
11992
output-attempt 3.txt
11992
output-attempt 3.txt
File diff suppressed because it is too large
Load Diff
683835
output.txt
683835
output.txt
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user