Siehe Titel :
Es wird mir immer gesagt , es wäre nicht in einem Begin/end block aber ich sehe das nicht oOZitat
Siehe Titel :
Es wird mir immer gesagt , es wäre nicht in einem Begin/end block aber ich sehe das nicht oOZitat
Hallo,
Du musst jedes if, das Du aufmachst auch wieder mit einem endif zumachen. Es muss also genausviele endifs geben wie es ifs gibt.
Außerdem solltest Du nach der MessageBox eine Variable setzen, damit der Teil dahinter nicht andauernd durchläuft. Des weiteren, würde ich nur die Messagebox in den OnEquip-Block werfen, den Rest in einen MenuMode-Block.![]()
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.
Das CS sagt mir , wenn ich speichern will dass es ein Problem in Zeile 9 gibt , "Nested begin/end blocks are not allowed". oO Das sagt mir irgendwie gar nix.
und muss ich bei diesem
Message " "
Message " "
Was zwischen den " " reinschreiben?oO
Gewisses End eingefügt , gespeichert und Script auf die beiden Katanas gelegt , Katana plaziert. Nur seltsamerweise legt er bei zweihändig den zweihänder nicht an oO
Übrigens eine gute Idee ist es, Scripte zu kommentieren. Wie das geht habe ich mal vorgemacht. Ohne blickt man durch wochen- oder monatealte Scripts nur schwer durch.
--Wie die Zeit verfliegt...
Sehr seltsam , mit dem neuen Script funktioniert die Zweihänder-Sache immer noch nicht oO
Liegt nicht daran , dass mein Test-Schwert der Einhänder ist oder? ^^
Es kann auch daran liegen, daß es generell nciht funktionierne kann, und du statt MenuMode GameMode nehmen mußt... manche Befehle funktionieren im MenuMode nicht. Also mal GameMode ausprobieren.
--Wie die Zeit verfliegt...
Ich hab mittlerweile durch nen anderen Thread erfahren , dass ein Item sich nicht selbst entfernen kann , also hänge ich das Script besser an eine Art Wechsler-Item statt an das eigentliche Schwert^^
Gamemode probier ich auch mal^^
Ein Item kann sich mit dem Befehl RemoveMe selbst entfernen.
Und zu Deinem Problem: Einhandschwerter können nicht einfach als Zweihänder umgestellt werden, indem man im Attributes-Window von BladeOneHand zu BladeTwoHand wechselt. Dazu gehören außerdem Änderungen im NIF. Sonst wird das Schwert nicht angezeigt, wenn Du es ziehst.
Das mit Removeme war mir aus dem WoP-Thread bekannt aber da hies es , dass bei dem Befehl keine darauffolgenden Scriptbefehle mehr ausgeführt werden und das ist ja dann auch nicht der Sinn der Sache.
Und es gibt zwei völlig unterschiedliche Schwerter für Einhand und Zweihand , ich hab nicht einfach den Weapontype geändert^^
Nur bringt das gar nichts, da das ganze nicht funktioniert, habe es damals selbst ausprobiert als ich mein Bastardschwert-Script gebastelt habe. Die beste(und afaik einzige funktionierende Lösung) ist, das ganze über einen GameMode-Activator zu regeln.
...wie wärs wenn wir die Aktivitäten auf einen Thread beschränken?![]()
Dann machen wir einfach in diesem Thread weiter^^
Also ich habe mir mal auf Lazarus' Rat hin sein Ivellon-Activatorscript angesehen und entsprechend angepasst :
Aktivator erstellt und mit dem Script belegt. Dann das Schwert-Script erstellt :Zitat
aber das lässt er mich nicht speichern , er sagt dass ZZZactivatorRef nicht geht. Weiss jemand warum? oOZitat
Du musst eine neue Zelle erstellen, deinen Activator da reinsetzen, bei dessen Eigenschaften 'Persistent Reference' anhäkeln und eine ID angeben. Dann kannst du den Befehl
im Schwert-Script verwenden.
Und gib deinen Scripten gescheite Namen. Oder hast du nur je einen Script für ein Schwert und einen Activator.
Juhu , endlich geht es.Danke an alle , die mir geholfen haben![]()
Nur noch eine Frage : Wie krieg ich den Activator unsichtbar , wenn ich keine Textur angebe ist er ein riesiges gelbes Fragezeichen oO
Du brauchst eine Nif-Datei mit leerer NiNode. habe mal eine hochgeladen, bitteschön.
Edit: wieso bekomme ich eigentlich die Meldung, meine 266 Byte große Datei wäre zu groß zum Anhängen?
Geändert von Lazarus (25.09.2007 um 13:24 Uhr)