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:
+39
-5
@@ -293,22 +293,56 @@ namespace MSCO
|
||||
|
||||
// Reiter
|
||||
GUILayout.BeginHorizontal();
|
||||
string[] tabs = { "PLAYERS", "ITEMS", "BANS" + (bannedIds != null && bannedIds.Count > 0 ? " (" + bannedIds.Count + ")" : ""), "WORLD" };
|
||||
string[] tabs = { "PLAYERS", "TELEPORT", "ITEMS", "BANS" + (bannedIds != null && bannedIds.Count > 0 ? " (" + bannedIds.Count + ")" : ""), "WORLD" };
|
||||
for (int i = 0; i < tabs.Length; i++)
|
||||
{
|
||||
if (GUILayout.Button(tabs[i], adminTab == i ? primary : secondary, GUILayout.Height(30), GUILayout.Width(130))) adminTab = i;
|
||||
if (GUILayout.Button(tabs[i], adminTab == i ? primary : secondary, GUILayout.Height(30), GUILayout.Width(120))) adminTab = i;
|
||||
GUILayout.Space(6);
|
||||
}
|
||||
GUILayout.EndHorizontal();
|
||||
GUILayout.Space(10);
|
||||
|
||||
if (adminTab == 1) DrawAdminItems(mp);
|
||||
else if (adminTab == 2) DrawAdminBans(mp);
|
||||
else if (adminTab == 3) DrawAdminWorld(mp);
|
||||
if (adminTab == 1) DrawAdminTeleport(mp);
|
||||
else if (adminTab == 2) DrawAdminItems(mp);
|
||||
else if (adminTab == 3) DrawAdminBans(mp);
|
||||
else if (adminTab == 4) DrawAdminWorld(mp);
|
||||
else DrawAdminPlayers(mp);
|
||||
GUILayout.EndArea();
|
||||
}
|
||||
|
||||
Vector2 teleportScroll;
|
||||
|
||||
void DrawAdminTeleport(MultiplayerManager mp)
|
||||
{
|
||||
if (!mp.CanCheat)
|
||||
{
|
||||
GUILayout.Label("Teleporting only works in the game.", small);
|
||||
return;
|
||||
}
|
||||
GUILayout.Label("Teleport yourself to a place. Players: use GOTO / BRING on the PLAYERS tab.", small);
|
||||
GUILayout.Space(8);
|
||||
teleportScroll = GUILayout.BeginScrollView(teleportScroll);
|
||||
const int columns = 3;
|
||||
for (int i = 0; i < Cheats.Places.Length; i += columns)
|
||||
{
|
||||
GUILayout.BeginHorizontal();
|
||||
for (int c = 0; c < columns; c++)
|
||||
{
|
||||
if (i + c < Cheats.Places.Length)
|
||||
{
|
||||
string[] place = Cheats.Places[i + c];
|
||||
if (GUILayout.Button(place[0].ToUpperInvariant(), secondary, GUILayout.Height(38)))
|
||||
mp.TeleportToPlace(place[0], place[1]);
|
||||
}
|
||||
else GUILayout.Label("", GUILayout.Height(38));
|
||||
if (c < columns - 1) GUILayout.Space(6);
|
||||
}
|
||||
GUILayout.EndHorizontal();
|
||||
GUILayout.Space(6);
|
||||
}
|
||||
GUILayout.EndScrollView();
|
||||
}
|
||||
|
||||
void DrawAdminPlayers(MultiplayerManager mp)
|
||||
{
|
||||
// Cheats für den eigenen Spieler (nur im Spiel)
|
||||
|
||||
Reference in New Issue
Block a user