@Bòógieman: Das Problem bei Deinem Skript ist, dass Du dem Programm den Befehl gibt's, dass er den Satz nicht mehr erwähnt, wenn der betreffende Gegenstand sich jetzt im Inventar befindet. Das Problem mag zwar nicht mehr auftreten, wenn man den entsprechenden Ort im späteren Verlauf nicht mehr besuchen kann, wo man den Gegenstand ursprünglich her hat. Wenn man allerdings immer noch genau an den Ort im Spiel zurückkehren kann und sich immer noch das Objekt dort befindet, wo man den Inventargegenstand her hatte, besteht die Gefahr, dass man trotz Deines Prinzips sich der Skript wiederholt, obwohl das nicht passieren soll.
Ich erkläre genauer, was ich meine:
Nehmen wir mal an, Du würdest von Britneys Schrank einen ihrer BHs stehlen wollen. (Geile Vorstellung!
)
Der entsprechende Wert des betreffenden Gegenstandes war vorher 0. Du sagst also dem Programm, dass er, wenn der Charakter den Gegenstand nimmt, der Wert auf 1 umspringen soll, wenn er den entsprechenden Inventargegenstand bei sich aufgenommen hat. Dadurch soll das Programm auch später die Erkenntnis gewinnen, dass, wenn der Wert auf 1 ist, der Charakter sagen soll "Ich kann KEIN BH mehr im Schrank finden!".
Bloß hat die Sache einen Haken: Wenn der entsprechende Gegenstand nun im Inventar verschwindet (ob nun durch eine Aktion oder sonst was), wird der Wert 1 automatisch wieder auf 0 gesetzt, da in dem Fall das Programm erkennt, dass der Item sich nicht mehr im Besitz des Charakteres befindet. Das bedeutet also, dass laut dem Skript sich der Gegenstand wieder im entsprechenden Objekt befindet, so dass der Skript wieder auf Anfang geht und man wieder ein BH bekommt, obwohl logischerweise sich kein BH mehr im Schrank befinden sollte!
Deswegen ist dieser Befehl, falls man am alten Ort zurück kehrt, ein wenig fahrlässig. Und dem Fall würde ich lieber auf die Globalints zurückgreifen, da man diese manuell ändern kann, ohne, dass das Programm dazwischen funkt.