Sicher das der nichts wegen if-Blöcken will? Ich hab nähmlich kein einziges endif/elseif in deinem Script gefunden.
Außerdem ist die Variable button in deinem Skript etwas überflüssig, oder wird die noch durch ein anderes Skript verwendet?
Funktionieren Messageboxen überhaupt in einem OnEquip-Block (also die Reaktion darauf)?
Nur so als kleiner Tipp:vor so Sachen wie Player.additem blenden nervende Meldungen aus (Zeug hinzugefügt/ausgerüstet/etc.).
Ich würde bei Messageboxen immer den Befehl set Zeug to GetButtonPressed + 1 verwenden. Da Variablen normalerweise standartmäßig auf 0 stehen könnte es sonst vorkommen, dass die Reaktion auf Antwort 1 (GetButtonPressed == 0) einfach so ausgeführt wird.
Warum entfernst du dein Item (falls vorhanden) nur um es danach wieder hinzuzufügen?
Ein einfaches EquipItem reicht da auch.
Warum überprüfts du noch IsActonRef == Player?
Hast du doch schon mit dem OnEquip Player darauf beschränkt.
Und obwohl das jetzt recht viele Kritikpunkte sind, nicht abschrecken lassen, es ist gut, dass du es zuerst selbst versucht hast.
Außerdem waren die meisten Sachen die ich jetzt aufgezählt hab nur unnötig Absicherungen (bzw. Erfahrungswerte, aber da kommst du auch noch hin).
Und die richtigen Befehle hast du ja schon gefunden, das ist mehr als die meisten schaffen (zumindest von denen, die laut um Hilfe schreien).
Ich würde mal dieses Skript versuchen:
Skript liegt auf der Waffe, Waffe ist Unique (nur einmal vorhanden, auch nicht 1-Einhand und 1 Zweihand-Version gleichzeitig), dann sollte das ganze eigentlich beim Spieler funktioneren.
--
Ich kam, sah, und konnte meinen Augen nicht trauen