Files
MSCO/CHANGELOG.md
T

7.1 KiB
Raw Blame History

Changelog

2.8

Server und Mod müssen beide 2.8 sein (Server: git pull && docker compose up -d --build).

Mehr Sync

  • Einkäufe: gekaufte/ausgepackte Items tauchen bei allen auf (auch bei später Beitretenden)
  • Verbrauchte Items: Gegessenes, Getrunkenes und Verbrauchtes verschwindet bei allen
  • Räder drehen sich bei Autos, die ein anderer Spieler fährt
  • Unfallschäden: verbeulte Karosserie wird an alle übertragen
  • Jobs, Aufträge und Laden: Fortschritt (Auftrag angenommen, erledigt, bestellt ...) wird synchronisiert
  • Zündung, Motor, Licht, Choke, Blinker, Wischer: die Schalterstellungen werden übertragen – beim anderen laufen Motor und Scheinwerfer dadurch wirklich (nicht nur das Geräusch)
  • Autotüren, Motorhaube, Kofferraum: stehen bei allen im selben Winkel offen
  • Verkehr: NPC-Autos fahren bei allen an derselben Stelle (der erste Spieler simuliert, die anderen folgen)
  • vehicles in der F7-Konsole zeigt, wie viele Karosserie-Meshes, Job-Werte und Verkehrsautos synchronisiert werden

Admin: Welt verwalten (neuer Reiter WORLD im Admin-Menü)

  • RESET WORLD: Weltzustand zurücksetzen, alle verbinden automatisch neu
  • BACKUP NOW: aktuellen Server-Spielstand sichern (Server-Befehl: backup)
  • Backups mit Datum/Uhrzeit, RESTORE holt einen älteren Stand zurück (der aktuelle wird vorher gesichert)
  • Jede Aktion mit Sicherheitsabfrage; nur für Admins (vom Server geprüft)

Hinweise

  • Kleine Benachrichtigung oben rechts, wenn jemand beitritt oder das Spiel verlässt

Trennen & Neu-Verbinden

  • Gekickt, gebannt, Server beendet, Verbindung verloren: eigenes Fenster in der Bildmitte mit Grund und OK (im Spiel wird der Grund vorher 2,5 s groß angezeigt)
  • reset-world / reload-save / Server-Neustart (z.B. Update per docker compose up) / Verbindung verloren: Fenster „Reconnecting“ – verbindet automatisch neu, bis zu 10 Versuche (ca. 1 Minute), mit CANCEL-Knopf. Nach Kick, Ban oder eigenem Trennen wird nicht neu verbunden

Behoben

  • Absturz („NaN … collider“) und abfallende Teile am Satsuma: Türen/Haube/Kofferraum wurden gegen das Scharnier an ihre Position teleportiert – das erzeugte riesige Kräfte. Jetzt zieht die Feder des Scharniers sie sanft auf den Winkel
  • Beim anderen Spieler „orgelte“ der Anlasser endlos: erzwungene Geräusche/Lichter werden losgelassen, sobald keine Daten mehr vom Fahrer kommen
  • Beim Neuladen der Welt wurden herumliegende Objekte als „verbraucht“ gemeldet und bei allen gelöscht. Jetzt werden nur einzelne echte Items gemeldet, Fahrzeuge/Teile nie gelöscht, und der Server nimmt höchstens 20 pro Minute an

Leistung

  • Mod: herumliegende Objekte werden nur noch jedes 4. Frame geprüft (eigene/gehaltene/gefahrene weiterhin jedes Frame), weniger Speicher-Allokationen pro Frame, Gelenke fremd gefahrener Autos seltener geprüft
  • Server: Nachrichten an alle werden nur einmal verpackt; der Server wartet auf eingehende Daten statt fest zu schlafen (geringere Verzögerung, fast keine CPU-Last im Leerlauf)

2.7

Server und Mod müssen beide 2.7 sein (Server: git pull && docker compose up -d --build).

Neu

  • Eigene Spielerfigur im MSC-Stil (Karohemd, Jeans, Arbeitsschuhe, Schnurrbart, Kappe oder Haare, je Spieler etwas anders) statt kopierter NPCs – keine liegenden/verbuggten Figuren mehr
  • Ping-Anzeige oben rechts: ping in der F7-Konsole (grün/gelb/rot)
  • MSCO-Konsole jetzt auf F7 (F8 öffnet im Pausenmenü ein Test-Menü des Spiels)
  • Admin-Menü: Cheats (+1.000 / +10.000 MK, Bedürfnisse auffüllen, Satsuma zu sich holen), GOTO / BRING (teleportieren)
  • Fahrzeugzustand-Sync: Tank, Öl, Kühlwasser, Bremsflüssigkeit, Batterie, Schäden, Verschleiß, Kilometerstand, Lack
  • vehicles in der Konsole zeigt die Position jedes Fahrzeugs
  • Admin-Menü mit Reitern: PLAYERS (Kick/Ban/GOTO/BRING, Cheats), ITEMS (Items spawnen – alle sehen sie, auf dem Server gespeichert), BANS (Sperren aufheben); Server-Befehle bans / unban
  • Tacho, Drehzahlmesser, Tank-/Temperaturanzeige und Lenkrad werden beim Beifahrer mitbewegt
  • Flüssigerer Sync: Position wird aus der Geschwindigkeit vorausberechnet, 30 Updates/s
  • Letzte Position wird zuverlässig gespeichert (nicht mehr immer an der Toilette spawnen)
  • Server-Browser: Klick auf den Server öffnet das Profil (JOIN-Knopf in der Liste entfernt)
  • Alle Mod-Meldungen nur noch in der MSCO-Konsole (F7)
  • Eigenes Hauptmenü: Continue, New Game, Credits, Changelog und Quit des Spiels sind ausgeblendet, der MSCO-Launcher ist das Hauptmenü (mit eigenem QUIT)
  • Server-Profil neu: JOIN oben, Spielerliste rechts, Namensfeld ohne Steam in eigenem Kasten
  • Admin-ITEMS: Werkzeuge und Laden-Artikel (Ratschenkasten, Batterie, Motoröl, Kühlmittel, Bremsflüssigkeit ...)
  • Nach dem Trennen (Kick, Ban, Shutdown, Timeout ...) zeigt das Hauptmenü den Grund
  • reset-world / reload-save auf dem Server: alle Spieler bekommen eine Meldung und verbinden sich automatisch neu
  • Server holt sich den aktuellen Spielstand vom Spiel (beim Beitreten und alle 5 Minuten): neue Spieler bekommen exakt die aktuelle Welt – Schrauben fest, Teile dran – statt nachgespielter Aktionen; Backups der letzten 5 Stände
  • Feuer, Rauch, Dampf und Funken an Fahrzeugen werden synchronisiert, auch bei geparkten Autos
  • Kick-, Ban-, Reset- und Shutdown-Meldungen kommen zuverlässig an (Server trennt sauber)
  • Status-Punkt gelb, bis man wirklich verbunden ist

Behoben

  • Auto fiel beim Fahren eines anderen Spielers auseinander (angebaute Teile rissen an ihren Gelenken ab)
  • Auto kippte mit dem Kopf des Fahrers mit und zitterte (Fahrzeug wurde als „in der Hand gehalten“ erkannt)
  • Satsuma wurde weggeschleudert und war „verschwunden“ – ungültige/im Boden liegende Positionen werden jetzt verworfen bzw. angehoben, weggeschleuderte Objekte sofort gestoppt
  • Items und Autos zitterten nach dem Loslassen (Ownership-Pingpong)
  • Absturz beim Beitreten durch einen Kreis in der Objekt-Hierarchie (nachgespielte Montage-Aktion)
  • Tippen im Chat/in der Konsole löste Spieltasten aus (Benutzen, Beifahrer-Taste P …)
  • Maus sprang bei offenem Admin-Menü/Chat immer in die Bildmitte
  • Ein Fehler in einem Sync-Teil legt nicht mehr den ganzen Sync lahm
  • Freie Fahrzeuge: nur noch deutliche Wertänderungen werden abgeglichen (kein gegenseitiges Überschreiben)

Sicherheit (Server)

  • Admin-Rechte nur noch für von Steam bestätigte SteamIDs – der Server braucht dafür einen SteamWebApiKey (sonst könnte sich jeder als Admin ausgeben). Unbestätigte SteamIDs können niemanden mehr vom Server drängen.
  • Ungültige Positionen werden nicht gespeichert, Paketgröße und Weltzustand sind begrenzt

Server & Keymaster

  • Master-Adresse fest (msco.mbm.wtf), nicht mehr änderbar
  • Docker läuft als dein Linux-Benutzer (kein „Permission denied“ in data/ mehr), klare Meldungen statt Absturz
  • docker exec msco-server msco <befehl> für Server-Befehle
  • Keymaster: Rate-Limits, Security-Header, Healthcheck, Docs-Seite
  • Automatische Tests: Server dotnet run --project Tests (30 Checks), Keymaster npm run smoke (24 Checks)