Danke für deine Mühe, aber ich glaube nicht, dass es das ist.
Erst einmal: Das Script soll beim ersten Aktivieren *exakt* dasselbe machen wie beim zweiten Mal. Das war glaube ich ein einfaches Missverständnis, führt aber evtl zu falschen Schlüssen.
Im Grunde ist das hier nichts anderes als ein Activator, der jedes Mal beim Aktivieren die Nachricht "Hallo!" erscheinen lässt. Nur, dass er stattdessen eine Ability entfernen, und dann wieder hinzufügen soll.
Wegen den Stages:
Wie du siehst, habe ich in dem Script zwei Befehle, die mir einen Hinweis darauf geben sollen, dass das Script tatsächlich komplett durchlaufen wird. Beide PrintToConsole-Nachrichten erscheinen beim ersten Durchlauf, und sie erscheinen auch beim zweiten Durchlauf. Also alles so, wie es sein soll.
(Abgesehen davon habe ich die Stages ja erst eingefügt, als ich merkte, dass etwas nicht funktioniert. Vorher bestand das Script praktisch nur aus den beiden Befehlen RemoveSpell und AddSpell, und dazwischen waren keine Punkte, an denen das Script sich hätte entscheiden können, den Rest zu überspringen.)
Wenn ich also nicht gerade auf irgendeiner Leitung stehe, sollte das Script also richtig sein - nur, dass irgendwas in dieser Art zu scripten die beiden Befehle RemoveSpell und AddSpell davon abhält, richtig miteinander zu funktionieren.
So sieht das Script in seiner ursprünglichen, ganz simplen Form aus:
Und es funktioniert nicht. Beide Konsolen-Messages erscheinen.