MSCO 2.9.1: fixes without MSCLoader, admin teleport, MSCO branding
- Own JSON reader (MiniJson) instead of Newtonsoft.Json - the server browser failed with "Could not load System.Runtime.Serialization" once MSCLoader was gone - Mouse cursor visible in admin menu/chat/console (PlayerInMenu) - Intro "Press any key" screen replaced by an MSCO loading screen; hook PlayMakerFSM.Awake too - Join links while the game runs: picked up from MSCO\join.txt (written by the launcher) - Admin menu: TELEPORT tab (home, shop, repair shop, inspection, villages, events, Satsuma) - Window title/icon "MSCO - My Summer Car Online", MSCO logo in the main menu - In-game UI restyled like the keymaster website (rounded cards, pills, glow, slim scrollbars) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -455,6 +455,20 @@ namespace MSCO
|
||||
}
|
||||
|
||||
/// <summary>Admin: Satsuma neben sich holen (z.B. wenn er verschwunden oder im Boden ist).</summary>
|
||||
/// <summary>Admin: sich selbst zu einem Ort teleportieren (Haus, Laden ... siehe Cheats.Places).</summary>
|
||||
public void TeleportToPlace(string label, string objectName)
|
||||
{
|
||||
if (!CanCheat || localPlayer == null) return;
|
||||
Vector3 pos;
|
||||
if (!Cheats.FindPlace(objectName, out pos)) { overlays.Log(label + " not found (only works in the game)"); return; }
|
||||
passenger.Exit(localPlayer, playerCamera);
|
||||
if (Cheats.Teleport(localPlayer, pos))
|
||||
{
|
||||
overlays.Log("Teleported to " + label);
|
||||
AnnounceCheat("teleported to " + label);
|
||||
}
|
||||
}
|
||||
|
||||
public void BringCar()
|
||||
{
|
||||
if (!CanCheat || localPlayer == null) return;
|
||||
@@ -611,6 +625,18 @@ namespace MSCO
|
||||
if (host != null) JoinServer(host, port);
|
||||
}
|
||||
|
||||
/// <summary>JOIN-Link aus dem Browser, während das Spiel schon läuft (über den Launcher, siehe JoinLinks).</summary>
|
||||
void CheckJoinRequest()
|
||||
{
|
||||
string host;
|
||||
int port;
|
||||
if (!JoinLinks.TryTakeRequest(out host, out port)) return;
|
||||
PendingJoinHost = host;
|
||||
PendingJoinPort = port;
|
||||
if (IsInSession || !MenuHelper.InMenu)
|
||||
toasts.Add("Join link: " + host + ":" + port, "leave this game - then confirm JOIN in the main menu", UiTheme.Accent);
|
||||
}
|
||||
|
||||
public void CancelPendingJoin()
|
||||
{
|
||||
PendingJoinHost = null;
|
||||
@@ -974,6 +1000,7 @@ namespace MSCO
|
||||
void Update()
|
||||
{
|
||||
CheckHitch();
|
||||
CheckJoinRequest();
|
||||
MeasureFps();
|
||||
// Menü-Buttons des Spiels nicht durch unser Fenster hindurch auslösen (z.B. Changelog)
|
||||
// Solange das Multiplayer-Fenster offen ist, reagiert das Spielmenü (CONTINUE, QUIT ...) gar nicht;
|
||||
|
||||
Reference in New Issue
Block a user