0.4.0: Mitspieler in der Welt, BSO-Konto (Spiel-Ticket)

- Mitspieler als Bus/Spielfigur mit Namensschild, weich bewegt (RemotePlayers, Models)
- Ohne gueltiges Spiel-Ticket vom Launcher kein Multiplayer; Name kommt aus dem Konto
- Protokoll 2 (Hello mit Ticket), IPv6-Adressen
- Nach Szenenwechsel erst nach 3 s neu anlegen (Absturz im Test 0.3.0)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-28 18:10:48 +01:00
co-authored by Claude Opus 5.5
parent 35f2d1330d
commit 51c1ebc938
12 changed files with 397 additions and 10 deletions
+4
View File
@@ -107,8 +107,11 @@ namespace BSO
Bootstrap.Log(character != null ? $"Spieler = KeyControlledCharacter in Platz {character.Value.Slot}" : "Spielfigur weg - Spieler sitzt im Bus");
Character.Set(character);
Character.Refresh();
if (character != null) Models.RememberCharacter(character.Value.Ptr);
}
if (Models.Bus == null && nearestCar != null) Models.RememberFallbackVehicle(nearestCar.Value.Ptr);
// Bus nur festlegen, wenn man drinsitzt (keine Spielfigur), und nur wechseln, wenn der alte fehlt oder weit weg ist
bool driving = character == null;
bool keep = Bus.Valid && (!driving || (Bus.Pos - Camera).Length < RelockDistance);
@@ -116,6 +119,7 @@ namespace BSO
Bootstrap.Log($"Eigener Bus = CarVehicle in Platz {nearestCar.Value.Slot}, {bestDist / 100:0.0} m von der Kamera");
Bus.Set(nearestCar);
Bus.Refresh();
Models.RememberBus(nearestCar.Value.Ptr);
}
static void UpdateSpeed()