Mir ist nicht ganz klar, warum ein Stift, der mitgenommen werden kann, nicht als Objekt eingebunden werden soll. Egal.
Ich weiß nicht, mit welchem Starterpack oder welcher AGS-Version Du arbeitest; GlobalInts werden bei älteren Starterpacks verwendet, um den Status von Türen zu speichern, man sollte also pauschal keinesfalls die GlobalInts 1-100 verwenden.
Der Stift wird also erst beim zweiten Mal mitgenommen, richtig? Da gibt es die sehr praktische Funktion DoOnceOnly:
else if (UsedAction(eActPickUp)) {
if (Game.DoOnceOnly("Stift mitnehmen")) player.Say("Erstmal sehen, was draußen los ist.");
else {
player.Say("Her damit!");
oStift.Visible = false;
player.AddInventory(iStift);
}
}
Game.DoOnceOnly("beliebiger Text") ist beim ersten Mal wahr, danach immer falsch. Der Text muss aber einmalig sein, also am besten eine Beschreibung der Situation; theoretisch könnte man aber auch eine beliebige Zeichenfolge nehmen.
Der Code geht natürlich davon aus, dass man den Stift kein drittes Mal nehmen kann, logischerweise wird ja das Objekt nach dem zweiten Mal ausgeschaltet. Wenn Du das um jeden Preis doch als Hotspot einbauen willst, sag Bescheid.