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
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 21 bis 40 von 256

Thema: Ein paar Fragen...

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    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.

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

  3. #3
    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)

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

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

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

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

  8. #8
    Ja, wäre wohl besser.
    Wegen dem zu starken Schwert...ich glaub' ich mache da eine kleine Mini-Quest draus...

    ...habe aber wieder eine neue Frage. Und zwar will ich dem Spieler per Skript eine bestimmte Menge an Mana bzw Leben abziehen. Wie geht das?

  9. #9
    Wenn du einen bestimmten Wert meinst, dann ist wohl ein per Script gecasteter spell die beste Lösung.
    Wenn du einen Anteil in Prozent meinst, müssen wir uns ein nettes Script überlegen. (Aber ch frag lieber nochmal genau nach, damit ich mir nicht umsonst soviel Arbeit mache )

  10. #10
    Sagen wir mal 20 Mana, kein prozentualer Wert.
    Habe übrigens wieder ein neues Problem. Ein Skript enabled einen Gegner, der allerdings brav stehen bleiben soll bis der Spieler in seine Nähe kommt und erst dann angreift. Das mit dem Angreifen funktioniert auch, aber anstatt stehen zu bleiben latscht der Gegner quer durch den Raum und bleibt erst an der gegenüberliegenden Wand stehen. Die Wander-Packages unter AI habe ich entfernt, das kann's also nicht sein...

  11. #11
    Überprüf mal die Pathgrids

  12. #12
    Direkt unter der Stelle, an der der Gegner enabled wird, habe ich extra einen ganzen Batzen an Pathgrids aufeinandergeklebt, aber es nützt nichts.

  13. #13
    Hat der Gegener vielleicht noch ein altes Script dranhängen?

  14. #14
    Nein, kein Script. Kein Script, keine AI, da ist eigentlich nichts was ihn dazu veranlassen könnte.
    Das kuriose ist, er latscht sogar unbeschwert durch den Raum wenn man ihn bei Movement auf 'None' gestellt hat.

  15. #15
    Humpf!... Das ist dann wohl ein AI-Fehler. Einer von der Sorte der durch irgendwas ausgelöst wird, mit dem man ihn niemals in Verbindung bringen würde.
    Um es mit den Worten von...irgendsoeinem Bethedamitarbeiter zu sagen:
    You move something here and it moves something over there.
    Ich weiß wirklich nicht weiter. meine Lösung für solche Probleme ist meist: nochmal machen. Also den Gegener, aber am besten mit einer anderen Basis sofern du einen alten kopiert hast.

  16. #16
    Okay, mal sehen, irgendwie wird's schon...kommen wir also mal zum 20-Mana-absaugen-Script zurück.^^

  17. #17
    Du brauchst einfach eine Eigenschaft mit Schaden Intelligenz oder Schaden: Magicka, die Du dem Spieler im richtigen Moment auf den Buckel hext.
    Mit Player.AddSpell "IDDerEigenschaft".

  18. #18
    Danke, funktioniert.

    Neues Problem: Nachdem ich dem Companion Items aus dem bzw ins Inventar gelegt habe, steht er ohne Waffe da und gedenkt auch im Kampf nicht, eine zu anzulegen, stattdessen stürmt er mit den Fäusten auf die Gegner los. Dabei sind die Items definitiv wieder in seinem Inventar angekommen.

    edit: ach ja, kann ich per Script die Aggresivität eines Gegners ändern?
    Geändert von Lazarus (15.07.2007 um 12:20 Uhr)

  19. #19

  20. #20
    Zitat Zitat von Rung Beitrag anzeigen
    Na was haben wir denn da - http://cs.elderscrolls.com/constwiki...php/ResistFire
    Hätte ich das früher gesehen, hätte ich mir den ganzen Firlefanz mit dem Marker, der Feuerimmunität auf den Player zaubert damit der nichts vom gescripteten Feuerball abbekommt, sparen können.

Berechtigungen

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