Allgemein
News
News-Archiv
Partner
Netzwerk
Banner
Header
Media
Downloads
Impressum

The Elder Scrolls
Arena
Daggerfall
Spin-offs
Romane
Jubiläum
Reviews
Welt von TES
Lore-Bibliothek
Namens-
generator

FRPGs

Elder Scrolls Online
Allgemein
Fraktionen
Charakter
Kargstein
Technik
Tamriel-
Manuskript

Media

Skyrim
Allgemein
Lösungen
Tipps & Tricks
Steam-Kniffe
Review
Media
Plugins & Mods

Oblivion
Allgemein
Lösungen
Tipps & Tricks
Technik
Charakter
Media
Plugins & Mods
Kompendium

Morrowind
Allgemein
Lösungen
Tipps & Tricks
Media
Plugins & Mods

Foren
The Elder Scrolls Online
Hilfe & Diskussion

Skyrim
Hilfe & Diskussion
Plugins & Mods

Ältere TES-Spiele
TES-Diskussion
Oblivion-Plugins
Morrowind-Plugins

Community
Taverne zum Shalk
Adventures of Vvardenfell
Tales of Tamriel
Ergebnis 1 bis 20 von 22

Thema: Was stimmt an diesem Script nicht?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    Was stimmt an diesem Script nicht?

    Siehe Titel :

    Zitat Zitat
    scn ZZZtestaddscript

    short button
    short weapon

    begin onequip player

    messagebox "Wie wollt ihr diese Waffe führen?""Einhändig""Zweihändig"

    Set weapon to GetButtonPressed

    If weapon == 0
    if (IsActionRef Player) && ( player.getitemcount ZZZakakata ==1 )
    player.removeitem ZZZakakata 1
    player.additem ZZZakakata 1
    player.equipitem ZZZakakata
    if (IsActionRef Player) && ( player.getitemcount ZZZakakatana2 ==1 )
    player.removeitem ZZZakakatana2 1

    If weapon == 1
    if (IsActionRef Player) && ( player.getitemcount ZZZakakatana2 ==1 )
    player.removeitem ZZZakakatana2 1
    player.additem ZZZakakatana2 1
    player.equipitem ZZZakakatana2
    if (IsActionRef Player) && ( player.getitemcount ZZZakakata ==1 )
    player.removeitem ZZZakakata 1

    end
    Es wird mir immer gesagt , es wäre nicht in einem Begin/end block aber ich sehe das nicht oO

  2. #2
    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.

  3. #3
    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:
    Code:
    Message " "
    Message " "
    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:
    Code:
    scn ZZZtestaddscript
    
    short weapon
    
    begin onequip player
     messagebox "Wie wollt ihr diese Waffe führen?""Einhändig""Zweihändig"
     Set weapon to GetButtonPressed + 1
    
    begin Menumode
     If weapon == 1
      if ( player.getitemcount ZZZakakata == 1 )
       Message " "
       Message " "
       player.equipitem ZZZakakata
      elseif  ( player.getitemcount ZZZakakatana2 == 1 )
       player.removeitem ZZZakakatana2 1
       player.additem ZZZakakata 1
       player.equipitem ZZZakakata
      endif
      set weapon to 0
     elseif weapon == 2
      if ( player.getitemcount ZZZakakatana2 == 1 )
       Message " "
       Message " "
       player.equipitem ZZZakakatana2
      elseif ( player.getitemcount ZZZakakata == 1 )
       Message " "
       Message " "
       player.removeitem ZZZakakata 1
       player.additem ZZZakakata 1
       player.equipitem ZZZakakata
      endif
      set weapon to 0
     endif
    end
    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.
    Geändert von Low Post (24.09.2007 um 22:42 Uhr)

  4. #4
    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

  5. #5
    Zitat Zitat von Lord Asgar Beitrag anzeigen
    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.
    Das heißt, daß du irgendwo ein endif / End vergessen hast.

    Im Falle des oben von Low Post geposteten Scripts übrigens ein End vor Begin MenuMode.


    Zitat Zitat
    und muss ich bei diesem
    Message " "
    Message " "
    Was zwischen den " " reinschreiben?oO
    Nein. Ziel ist ja, daß nichts angezeigt wird .

  6. #6
    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

  7. #7
    Zitat Zitat von Lord Asgar Beitrag anzeigen
    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
    Kein Wunder -> schau dir den Scriptteil an. Da wird das ganz normale Katana (ZZZakakata) statt das zweihändige (ZZZakakatana2) dem Spieler zugefügt und equipped .

  8. #8
    Zitat Zitat von bg2408 Beitrag anzeigen
    Kein Wunder -> schau dir den Scriptteil an. Da wird das ganz normale Katana (ZZZakakata) statt das zweihändige (ZZZakakatana2) dem Spieler zugefügt und equipped .
    Aha , aber irgendwie verstehe ich nicht welches Weapon jetzt für den ersten Button und welches für den zweiten steht , wie müsste das Script denn aussehen?

  9. #9
    Code:
    scn ZZZtestaddscript
    
    short weapon
    
    begin onequip player
     messagebox "Wie wollt ihr diese Waffe führen?""Einhändig""Zweihändig"
     Set weapon to GetButtonPressed + 1
    End
    
    begin Menumode
     If weapon == 1
    ;Knoepfli 1 - Einhaender;
      if ( player.getitemcount ZZZakakata == 1 )
    ;fuer den Fall, dass er das Katana schon hat;
       Message " "
       Message " "
    ;verhindert Nachrichtenspam für den Spieler;
       player.equipitem ZZZakakata
    ;ziemlich unsinnig imho. Das Script wird durch OnEquip gestartet. Doppelt gemoppelt?;
      elseif  ( player.getitemcount ZZZakakatana2 == 1 )
       player.removeitem ZZZakakatana2 1
       player.additem ZZZakakata 1
       player.equipitem ZZZakakata
    ;entfernt Zweihaender, gibt Einhaender und ruestet diesen aus;
      endif
      set weapon to 0
     elseif weapon == 2
    ;knoepfli 2 - Zweihaender;
      if ( player.getitemcount ZZZakakatana2 == 1 )
       Message " "
       Message " "
       player.equipitem ZZZakakatana2
      elseif ( player.getitemcount ZZZakakata == 1 )
       Message " "
       Message " "
       player.removeitem ZZZakakata 1
       player.additem ZZZakakata2 1
       player.equipitem ZZZakakata2
      endif
      set weapon to 0
     endif
    end
    Ü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.

  10. #10
    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? ^^

  11. #11
    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 .

  12. #12
    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^^

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •