In diesem Skript wird ein Zähler beim Cart-Start hoch- und bei Stop runtergezählt. Ziel ist, zu prüfen, ob noch ein Player läuft. Funktioniert soweit gut. Jedoch: Wenn ich einen Cartplayer selektiere (der zuvor in Stop war und auch so bleibt), dann zählt es einen herunter. SELECT wirkt hier wie STOP. Ich wüßte jetzt nicht, wie ich das abfangen kann.
Das Problem ist noch größer: Auch DESELECT wirkt wie STOP, und es wird weiter heruntergezählt. Mein über Nacht ersonnener Workaround mit der Zeile
if Item.GetSelected then
Dec(CartState);
hilft nicht. Sobald SELECT ins Spiel kommt, funktioniert diese Mimik nicht mehr. Wenn es ums Zählen der Player geht, gibt es jedoch Abhilfe – siehe den ursprünglichen Thread.
Trotzdem fände ich es schön, wenn dieses verwirrende Verhalten mal geradegezogen werden könnte. Auch denkbar wären zum Beispiel zwei neue PlayerStates
psSelected
psUnselected
dann könnte man auch den Übergang vom einen in den anderen Status auswerten.