Own main menu (game's Continue/New Game/Credits/Changelog/Quit hidden, QUIT in the launcher); new server profile layout; admin items: ratchet set, battery, shop items; session shows server player limit
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+18
-1
@@ -344,6 +344,13 @@ namespace MSCO
|
||||
public void SpawnItem(string item)
|
||||
{
|
||||
if (!CanCheat || localPlayer == null) return;
|
||||
if (item == ItemSpawner.RatchetSet)
|
||||
{
|
||||
// Werkzeug, kein Gegenstand: nur für einen selbst freischalten
|
||||
overlays.Log(ItemSpawner.GiveRatchetSet() ? "You now have the ratchet set" : "Ratchet set not found (only works in the game)");
|
||||
AnnounceCheat("gave themselves the ratchet set");
|
||||
return;
|
||||
}
|
||||
Transform head = playerCamera != null ? playerCamera.transform : localPlayer;
|
||||
Vector3 forward = new Vector3(head.forward.x, 0f, head.forward.z).normalized;
|
||||
if (forward.sqrMagnitude < 0.01f) forward = localPlayer.forward;
|
||||
@@ -366,7 +373,7 @@ namespace MSCO
|
||||
string item = r.ReadString();
|
||||
var pos = new Vector3(r.ReadSingle(), r.ReadSingle(), r.ReadSingle());
|
||||
var rot = new Quaternion(r.ReadSingle(), r.ReadSingle(), r.ReadSingle(), r.ReadSingle());
|
||||
if (System.Array.IndexOf(ItemSpawner.Items, item) < 0) return false; // nur bekannte Items
|
||||
if (!ItemSpawner.IsKnown(item) || item == ItemSpawner.RatchetSet) return false; // nur bekannte Gegenstände
|
||||
return ItemSpawner.Spawn(item, pos, rot);
|
||||
}
|
||||
|
||||
@@ -740,6 +747,12 @@ namespace MSCO
|
||||
// Solange das Multiplayer-Fenster offen ist, reagiert das Spielmenü (CONTINUE, QUIT ...) gar nicht;
|
||||
// erst nach MINIMIZE wieder. Über der eingeklappten Leiste ebenfalls nicht (sonst öffnet sich z.B. der Changelog).
|
||||
MenuInputBlocker.SetBlocked(MenuHelper.InMenu && (lobby.IsOpen || lobby.ContainsMouse() || overlays.AnyOpen));
|
||||
// Eigenes Hauptmenü: Singleplayer-Knöpfe des Spiels ausblenden (einmal pro Menü-Besuch, sobald sie da sind)
|
||||
if (MenuHelper.InMenu && !menuButtonsHidden && Time.realtimeSinceStartup >= nextMenuButtonCheck)
|
||||
{
|
||||
nextMenuButtonCheck = Time.realtimeSinceStartup + 0.5f;
|
||||
menuButtonsHidden = MenuHelper.HideGameMenuButtons() > 0;
|
||||
}
|
||||
UpdateOverlayKeys();
|
||||
MscoLog.Drain(overlays.Log); // alle Mod-Meldungen in die MSCO-Konsole (F7)
|
||||
UpdatePresence();
|
||||
@@ -1232,8 +1245,12 @@ namespace MSCO
|
||||
MscoLog.Info("[MSCO] Sent save (" + files.Count + " files) to " + targets.Count + " player(s)");
|
||||
}
|
||||
|
||||
bool menuButtonsHidden;
|
||||
float nextMenuButtonCheck;
|
||||
|
||||
void OnLevelWasLoaded(int level)
|
||||
{
|
||||
menuButtonsHidden = false; // neues Hauptmenü: Knöpfe wieder ausblenden
|
||||
nextPresenceUpdate = 0f; // Discord gleich nach dem Szenenwechsel aktualisieren
|
||||
if (MenuHelper.InGame)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user