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 256

Thema: Ein paar Fragen...

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Screen: lol

    Ein Item lässt sich schon selbst entfernen, aber mit einem anderen Befehl als sonst: RemoveMe

  2. #2
    Zitat Zitat von kenet_korva Beitrag anzeigen
    Ein Item lässt sich schon selbst entfernen, aber mit einem anderen Befehl als sonst: RemoveMe
    Aha, danke...hätte ich das nur von Anfang an gewusst, da hätte ich mir eine Menge sparen können. Ich habe es bisher so geregelt, dass das Item eine globale variable festlegt, diese wiederum wird von einem unsichtbaren Activator mit GameMode-Script abgefragt, der jedes mal in die Zelle des Spielers teleportiert werden muss, weil dieser GameMode-Script sonst nicht greift.

  3. #3
    Ähm,

    hier noch ein kleiner Hinweis für alle Lesenden. Meiner Erfahrung nach sollte man möglichst auf Globalen verzichten. Ich hatte bei beiden meiner Oblivion-Plugins große Probleme mit den Globalen, als ich sie aber rausgenommen habe, lief alles reibungsfrei. (z.B. die Sache mit der Ladereihenfolge bei der Verbesserten Magiergilde. Dabei crashte das Spiel immer beim Hochfahren noch vor dem Auswählen des Spielstandes.)
    Ich würde empfehlen, lieber Lokalen zu nutzen, die Du (meist) genauso abfragen kannst, wenn Du sie auf einen Activator legst.

  4. #4
    Also ich hatte noch keine Probleme mit Globals(in OWC gibt es ca 15 Stück), aber da ich ja jetzt weiß wie man Items entfernt kann ich ja zumindest in Ivellon darauf verzichten.

  5. #5
    Ich kann ebenfalls keine Probleme mit Globals bestätigen. OI verwendet auch ein paar und in manchen Fällen geht es schlicht nicht anders. Außerdem ist es natürlich abzuwägen, ob ich überhaupt lokale Variablen verwenden kann - das geht nicht immer wegen fehlendem Objekt (Activator) und ist manchmal auch schlicht einfach nur unpraktisch.

  6. #6
    Rung, hast du damals nicht geschrieben, dass die Probleme auftauchten, nachdem du die Globale durch ein Questscript abgefragt wurde? Aber Globalen sind auch eher unnötig. Man kann eigentlich immer auf QuestScript variables zurückgreifen, auch wenn Globalen sich durch kürzere Befehle abfragen lassen.

  7. #7
    In meinem Fall klappt das mit RemoveMe auch nicht.
    Zur Info, im Spiel gibt es ein Schwert, bei dem der Spieler entscheiden kann ob er es ein- oder zweihändig führen möchte. Sobald man es anlegt öffnet sich eine Messagebox mit Auswahlmenü.

    Bisher hatte ich es immer so geregelt, dass beim Anlegen eine Global auf 1 gesetzt und ein unsichtbarer Activator mit MenuMode-Script beim Spieler gespawnt wird. Der enthält den ganzen eigentlichen Krempel. Dabei wird das Schwert aus dem Inventar entfernt und ein neues hineingelegt und automatisch ausgerüstet, abhängig von der Wahl des Spielers ist es die ein- bzw zweihändige Variante.
    Hat bisher immer einwandfrei funktioniert, aber mit meinem jetzigen Script wird die neue, erhaltene Einhandvariante des Schwerts nur ins Inventar gelegt, aber eben nicht ausgerüstet; bei der Zweihandvariante stürzt das Spiel einfach mit 'Oblivion.exe hat einen Fehler festgestellt' ab. Hier mein Script, das auf dem Schwert liegt(unordentlich, ich weiß):

    PHP-Code:
    short item
    short bastardsword

    begin OnEquip 
         messagebox 
    "Möchtet Ihr dieses Schwert ein- oder zweihändig führen?" "Einhändig (Benötigt 70 Stärke)" "Zweihändig"
         
    set item to 1
    end

    begin menumode
    if item == 1
    set bastardsword to getbuttonpressed

    if bastardsword == 0
         
    if player.GetActorValue Strength >= 70
            player
    .additem IvellonBastardsword 1
            player
    .equipitem IvellonBastardsword
            set item to 0
            removeme
         
    else
            
    player.additem IvellonBastardsword2h 1
            player
    .equipitem IvellonBastardsword2h
            set item to 0
            messagebox 
    "Ihr seid nicht stark genug, um dieses Schwert einhändig führen zu können."
            
    removeme
         
    endif
         elseif 
    bastardsword == 1
                player
    .additem IvellonBastardsword2h 1
                player
    .equipitem IvellonBastardsword2h
                set item to 0
                removeme
    endif
    endif
    end 
    edit:
    Um auf das andere Schwert zurückzukommen, das von einem Gegner genutzt wird und gegen ein schwächeres ausgetauscht werden soll sobald es der Spieler einsammelt.
    Ich kann es zwar wunderbar per RemoveMe verschwinden lassen, aber wenn ich noch in einer zweiten Zeile dem Spieler das neue Schwert ins Inventar schieben will, stürzt das Spiel ab wenn diese Zeile vor RemoveMe steht, steht sie darunter, dann verschwindet das Schwert nur ohne ein neues zu erzeugen.
    Geändert von Lazarus (04.05.2007 um 16:47 Uhr)

  8. #8
    Meine Globals werden eigentlich alle durch ein Questscript gesetzt und auch abgefragt - soviel dazu Ich seh einfach den Punkt nicht, Sachen, die von mehreren Scripten benötigt werden, jedesmal zu referenzieren. Und beispielsweise ein Versioncheck mit einer lokalen Variable? Das muss ich nun wirklich nicht haben Bekanntlich führen aber viele Wege nach Rom, die einen machen es sich einfach, die anderen suchen sich eben andere Wege... solange alles funktioniert, ist es doch gut so... sicher könnte ich bei einigen Sachen auch auf lokale Variablen umsteigen. Aber warum sollte ich? Das bedeutet nur extra Arbeit, längere Scripte und 0 Nutzen

    @Lazarus: was spricht gegen ein globales Script (bzw. eine Quest) das kurz gestartet wird, sobald der Gegner tot ist und sich sofort beenden, wenn die Sache mit dem Schwert erledigt ist? Muss ja nicht die ganze Zeit laufen. Oder hab ich jetzt irgendwas nicht bedacht?! Dann hast du auch kein Problem mehr mit RemoveItem/AddItem... und da ich vermute, das Script am Schwert hängt, ist es ziemlich normal das ein AddItem danach (also nach dem Removeitem) nicht mehr funktioniert, denn das Script ist dann sofort hin, sobald das Item nicht mehr da ist und läuft IMO nicht weiter. Warum das Spiel crasht, wenn das AddItem vor dem Removeitem kommt, weiß ich allerdings auch nicht... hab mir das Script nicht wirklich angesehen... vielleicht würde eine Zeitschleife zwischen hinzufügen und entfernen von 3 Sekunden oder so helfen.
    Geändert von NewRaven (04.05.2007 um 17:01 Uhr)

  9. #9
    Der elseif Block der Bastardschwert2h abfrage befindet sich in dem if Block der Basardschwert == 0 abfragt das bedeutet ungefähr: If Bastardschwert == 0 && Bastardschwert == 1.
    Das könnte es sein.

  10. #10
    Zitat Zitat von kenet_korva Beitrag anzeigen
    Der elseif Block der Bastardschwert2h abfrage befindet sich in dem if Block der Basardschwert == 0 abfragt das bedeutet ungefähr: If Bastardschwert == 0 && Bastardschwert == 1.
    Das könnte es sein.
    Das sollte eigentlich funktionieren, habe das ganze ja aus dem Menu-Mode-Script vom unsichtbaren Activator kopiert.

  11. #11
    Echt? Genau so? Also dann bin ich im Moment auch überfragt.
    Tut mir leid. Aber im Fall des Falles würde ich dann auf die alte Variante zurückgreifen bevor wir hier lange herumspekulieren.

Berechtigungen

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