101 lines
4.9 KiB
Markdown
101 lines
4.9 KiB
Markdown
# MSCO – My Summer Car Online
|
||
|
||
Multiplayer-Mod für **My Summer Car** (MSCLoader). Spiel mit bis zu 3 Spielern zusammen – per Steam-Einladung
|
||
(P2P) oder auf einem dedizierten Server aus dem Server-Browser.
|
||
|
||
- Mod: dieses Repository
|
||
- Dedizierter Server: [MSCO-Dedicated-Server](https://git.mbm.wtf/MrMaho/MSCO-Dedicated-Server)
|
||
- Keymaster & Serverliste: [MSCO-Keymaster](https://git.mbm.wtf/MrMaho/MSCO-Keymaster) – live unter https://msco.mbm.wtf
|
||
|
||
## Features
|
||
|
||
**Verbinden**
|
||
- Launcher im Hauptmenü im Stil von FiveM: P2P-Seite und Server-Browser
|
||
- **P2P über Steam:** HOST GAME, Freunde einladen, Beitritt über die Steam-Freundesliste (max. 3 Spieler)
|
||
- **Server-Browser:** Suche, Filter (Steam / Non-Steam / volle ausblenden), Ping, Server-Profil
|
||
(Besitzer, Version, Laufzeit, Spieler), lokale Server auf diesem PC werden automatisch gefunden
|
||
- **Direct Connect** per Adresse, JOIN-Links von der Website (`msco://`) starten das Spiel und verbinden direkt
|
||
- Server ohne Steam („Non-Steam“) werden unterstützt, andere Mod-Version = Warnung statt Sperre
|
||
- Der Host-Spielstand wird beim Start automatisch an alle übertragen; der eigene Spielstand wird vorher gesichert
|
||
und nach dem Spielen wiederhergestellt
|
||
|
||
**Synchronisiert**
|
||
- Spieler als Spielfigur (Modell aus den NPCs des Spiels) mit Blickrichtung, Ducken/Lehnen, Namensschild
|
||
- Items, lose Teile, Schrauben und Fahrzeuge (auch mit G geschoben) mit Besitzer-System – inkl. was jemand in der Hand hält
|
||
- Fahrzeuge: Position, Lichter, Motorgeräusch; als **Beifahrer** mitfahren (Taste P)
|
||
- **Fahrzeugzustand:** Tank, Öl, Kühlwasser, Bremsflüssigkeit, Batterie, Schrauben-Festigkeit, Schäden, Verschleiß,
|
||
Kilometerstand, Lack, Vergaser-/Zündungseinstellungen
|
||
- Anbauen/Abbauen von Teilen und Schrauben (PlayMaker-Events)
|
||
- Türen, Tore, Hauben (z.B. Garagentor), Geld, Uhrzeit und Wetter
|
||
|
||
**Im Spiel**
|
||
- **T** – Chat
|
||
- **F8** – MSCO-Konsole mit allen Befehlen
|
||
- **/admin** – Admin-Menü (Spieler kicken/bannen) für Server-Admins bzw. den P2P-Host
|
||
- **P** – als Beifahrer ein-/aussteigen
|
||
- Alle Tasten sind in den MSCLoader-Einstellungen der Mod änderbar
|
||
- Discord Rich Presence („In the Menus“, Server, Spielerzahl)
|
||
|
||
## Installation
|
||
|
||
1. [MSCLoader](https://github.com/piotrulos/MSCModLoader) installieren.
|
||
2. `MSCO.dll` in den Mods-Ordner kopieren (Standard: `Documents\MySummerCar\Mods`).
|
||
3. Spiel **über Steam** starten – ohne Steam gehen nur Non-Steam-Server.
|
||
|
||
## Befehle
|
||
|
||
In der F8-Konsole direkt, in der MSCLoader-Konsole mit `mp` davor (z.B. `mp connect ...`):
|
||
|
||
| Befehl | Beschreibung |
|
||
|---|---|
|
||
| `connect <host[:port]>` | mit einem dedizierten Server verbinden |
|
||
| `disconnect` | Server / Spiel verlassen |
|
||
| `host [port]` / `join <ip> [port]` | LAN-Testsitzung ohne Steam |
|
||
| `save` | Spiel speichern (Host / Einzelspieler) |
|
||
| `admin` bzw. `/admin` im Chat | Admin-Menü |
|
||
| `vehicles`, `rig` | Diagnose: Fahrzeuge / Spielermodelle |
|
||
| `debug` | Sync-Debugausgaben an/aus |
|
||
| `master [url]` | Adresse der Serverliste anzeigen/ändern |
|
||
| `clear` | Konsole leeren |
|
||
|
||
## Selbst bauen
|
||
|
||
- Visual Studio 2022 oder neuer, .NET Framework 3.5 (Unity 5.0 / Mono)
|
||
- Die Verweise in `MSCO.csproj` zeigen auf `F:\SteamLibrary\steamapps\common\My Summer Car\mysummercar_Data\Managed\`
|
||
(UnityEngine, PlayMaker, Assembly-CSharp, Assembly-CSharp-firstpass, MSCLoader, 0Harmony, Newtonsoft.Json, cInput) –
|
||
bei anderem Installationsort anpassen.
|
||
- Nach dem Build wird die DLL automatisch nach `Documents\MySummerCar\Mods` kopiert (`MSCMODSFOLDER` in der csproj).
|
||
|
||
```
|
||
msbuild MSCO.csproj -p:Configuration=Release
|
||
```
|
||
|
||
## Aufbau
|
||
|
||
| Datei | Aufgabe |
|
||
|---|---|
|
||
| `MSCO.cs` | Mod-Einstieg, Tastenbelegung |
|
||
| `MultiplayerManager.cs` | Sitzung, Nachrichten, Spielerliste, Spielstart, HUD |
|
||
| `NetSession.cs` | Netzwerk (TCP und Steam P2P), Protokoll |
|
||
| `LobbyUI.cs`, `Overlays.cs`, `UiTheme.cs` | Launcher, Konsole/Chat/Admin-Menü, gemeinsamer Stil |
|
||
| `ServerBrowser.cs`, `WinHttp.cs` | Serverliste (TLS 1.2 über WinHTTP), Server-Abfrage |
|
||
| `ObjectSync.cs` | Items/Teile/Fahrzeuge mit Besitzer-System |
|
||
| `VehicleStateSync.cs`, `VehicleFx.cs`, `Passenger.cs` | Fahrzeugzustand, Lichter/Sound, Beifahrer |
|
||
| `FsmSync.cs`, `DoorSync.cs`, `WorldSync.cs`, `MoneySync.cs` | Montage-Events, Türen, Zeit/Wetter, Geld |
|
||
| `RemotePlayer.cs`, `GameCharacter.cs` | Spielfiguren der Mitspieler |
|
||
| `SaveSync.cs`, `MenuHelper.cs` | Spielstand übertragen/sichern, Laden aus dem Menü |
|
||
| `SteamLobby.cs`, `JoinLinks.cs`, `DiscordPresence.cs` | Steam-Lobbys, `msco://`-Links, Discord |
|
||
| `SafetyPatches.cs`, `InputLock.cs`, `SceneCache.cs` | Absturzschutz, Eingabesperre, geteilte FSM-Suche |
|
||
|
||
## Bekannte Einschränkungen
|
||
|
||
- Teile, die nach dem Server-Spielstand montiert wurden, werden für neue Spieler nachgespielt – das klappt nicht immer
|
||
perfekt. `reset-world` auf dem Server setzt den Stand zurück.
|
||
- Maximal 3 Spieler.
|
||
|
||
## Lizenz
|
||
|
||
GNU AGPL-3.0 – siehe [LICENSE.txt](LICENSE.txt).
|
||
|
||
Made by **MBM** – [mbm.wtf](https://mbm.wtf)
|