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 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 20 von 22

Thema: Frage zum Skripten

  1. #1

    Frage zum Skripten

    Kurze Frage zum Skript.

    Und zwar stellte ich eben fest, dass ein Skript nur maximal 1042 Zeilen haben darf.

    Nun erstelle ich aber ein Objekt, ein grosses Multifunktionswerkzueg, dass allerhand Sachen kann.
    Momentan habe ich nur mal die Hälfte aller Funktionen drin.
    Nun die Frage:
    Ist es möglich Skripts miteinander zu verbinden, also durch eine Funktion von einem Skript in das nächste zu wechseln ?
    Weil anderfalls müsste ich mehrere Werkzeuge modden um alle Funktionen hinzubekommen.

  2. #2
    Man könnte theoretisch in einem Script zB schreiben
    objektxyz.activate objektxyz

    und dieses Objekt hat dann einen Skript der mit
    onActivate anfängt. So könnte man den Skript weiterführen, oder besser gesagt, das ist die beste Möglichkeit die mir als noch recht unerfahrener TES-Modder gerade einfällt

  3. #3
    Kann man das auch per Button Press machen ?
    Laso wenn man im Menü ein gewisses Feld klickt, dass dann ein anderes Skript aktiviert wird ?

  4. #4
    Sicher, ich weiß zwar nicht wie das mit diesen Menüs genau gemacht wird, aber im Prinzip kann man das so überall einsetzen.

  5. #5
    ich weiß nicht ob ich das richtig verstanden habe... der geschriebene script ist zu lang als dass er in einmal platz hat... also brauchst du mehrere?

    dann solltest du es mal mit startscript xyz versuchen (ging jedenfalls in morrowind so)

    weiß auch nicht ob das stimmt was ich sage...

  6. #6
    eine möglichkeit wäre, dem spieler heimlich items hinzuzufügen. diese tragen dann teile des scripts und werden durch globale variablen freigeschaltet.

    d.h. im hauptscript steht z.b.

    set scriptVar1 to 1

    und in einem nebenscript steht dann ganz am anfang des codes

    if ( scriptVar1 == 0 )
    return
    endif

    dann wird sich die wirkung des scripts erst entfallten, wenn er durch den hauptscript und die globale variable das "go" bekommt.
    die items, auf denen die scripts sind, müssten dann quest-items sein, damit man sie nicht ablegen kann...

    gäbe es noch globale scripts wie in morrowind, die unabhängig von objects oder quests laufen könnten, ginge das ganze soooooo einfach von statten und man könnte das script sauber splitten ohne irgendwelche "schmutzigen tricks". aber na ja, verstehe einer bethsoft...

    edit:
    Zitat Zitat
    dann solltest du es mal mit startscript xyz versuchen
    ich glaube, dir schon mal erzählt zu haben, das genau DAS nicht mehr möglich ist. siehe letzter absatz

  7. #7
    ICh glaube jetzt muss ich mal die Katze aus dem Sack lassen.

    Ich arbeite gerade an einer Werkbank, mit der man Waffen und Rüssis schmieden kann.
    Anfangen möchte ich mit Pfeilen.
    Man braucht für alles was damit hergestellt werden kann Rezepte. Diese Rezepte benötigen eine Menge Zeilen.
    Das ist das Problem.

    Kann man das Hauptmenü so gestalten, dass wenn man etwas auswählt ein anderes Skript geschaltet wird ?

    Beispiel:
    Ich aktiviere die Werkbank. Dann soll ein Menü erscheinen:
    "Was möchten Sie tun ?"
    - Beenden
    - Pfeilschäfte herstellen
    - Pfeilspitze herstellen
    - Pfeilespitzen modifizieren
    - Pfeile herstellen

    Alleine Pfeilspitzen herstellen benötigen über 1000 Zeilen.
    Ist es möglich jede dieser Optionen mit einem neuen Skript zu belegen ?
    Mit der Activate Funktion vielleicht ? und wenn ja wie ?

  8. #8
    Zitat Zitat von The Flo
    gäbe es noch globale scripts wie in morrowind, die unabhängig von objects oder quests laufen könnten, ginge das ganze soooooo einfach von statten und man könnte das script sauber splitten ohne irgendwelche "schmutzigen tricks". aber na ja, verstehe einer bethsoft...
    Verstehe einer die Modder... ob ich nun StartScript/Stopscript nutze oder in einer "Pseudo-Quest" das Script starte, macht ja nun keinen Unterschied. Doch, mach es... nämlich das es deutlich übersichtlicher ist, ich Dialoge integrieren kann u.s.w. und alles sofort im Blick habe und nicht so ein wüstes Chaos wie in Morrowind... aber Hauptsache erstmal gemeckert...

    Zum Problem: du setzt einfach für jede Option ein Queststage mit dem du dann das jeweilige Script bzw. wiederum ein "Pseudo-Quest" startest... Beenden ist dann eben 10 - da passiert nix... Pfeilschäfte herstellen ist 20 - und du startest Pseudo-Quest 1, Pfeilspitze herstellen ist 30 und startet Pseudo-Quest 2 u.s.w. - du darfst halt nur nicht vergessen, die Queststage des "Initialisierungsquests" wieder am Ende eines jeden Scriptes zurückzusetzen und die anderen Scripte/Quests immer vernünftig zu beenden, wenn sie abgearbeitet wurden.

  9. #9
    Kann man es folgendermassen anlegen:

    Begin MenuMode
    if DoOnce == 1
    Messagebox "Was möchten Sie herstellen ?","Beenden","Schäfte","Spitzen"
    set DoOnce to 12
    endif

    if DoOnce == 12
    set Button to GetButtonPressed
    if Button > -1
    if Button <= 0
    set DoOnce to 0
    elseif Button == 1
    SetStage to xyz1 10
    elseif Button == 2
    SetStage to xyz2 20
    endif
    endif
    endif


    Und wie beginn ich dann die anderen Questskripts ?

  10. #10
    Machs dir doch einfach einfach... hab ich mir grad überlegt
    anstatt

    SetStage to xyz1 10
    elseif Button == 2
    SetStage to xyz2 20

    einfach

    StartQuest Irgendwas1
    elseif Button == 2
    Startquest Irgendwas2

    Die jeweiligen Scripte definierst du einfach direkt in der Questerstellung (Questdate -> Scripts), somit entfällt der Teil mit den Stages völlig. Ist zwar etwas unübersichtlicher, aber speicherschonender. Und nicht vergessen, den Kram dann mittels StopQuest wieder zu beenden

  11. #11
    Interessant, das könnte funktionieren.
    Ich werd es morgen mal testen.

    Herzlichen Dank

  12. #12
    Zitat Zitat
    Verstehe einer die Modder... ob ich nun StartScript/Stopscript nutze oder in einer "Pseudo-Quest" das Script starte, macht ja nun keinen Unterschied. Doch, mach es... nämlich das es deutlich übersichtlicher ist, ich Dialoge integrieren kann u.s.w. und alles sofort im Blick habe und nicht so ein wüstes Chaos wie in Morrowind... aber Hauptsache erstmal gemeckert...
    na ja, aber dort habe ich dann das problem, dass ich den neuen tagebucheintrag, der bei questbegin eintritt und nicht zu übersehen ist, immer rechtfertigen muss. ich werde also zu einer "pseudo-quest" gezwungen, auch wenn dann im tagebucheintrag nur etwas banales steht wie "ich habe so eben ein seltsames gerät gefunden ... bla bla blubb"

    oder verstehe ich da etwas falsch? kann ich das aufscheinen eines neuen tagebucheintrags in irgendeiner weise verhindern? für den spieler also quasi unsichtbar machen?

  13. #13
    Öhm... nee? Wenn du das Textfeld komplett leer läßt (bzw. das ;empty als Kommentar wie bei den CharGen-Scripts einfügst), gibt es auch keinen Tagebucheintrag... das wäre bei meinem Oblivion Improved Initialisierungsscript ja eine Katastrophe...

    Also nein, es gibt nur Tagebucheinträge bei den Queststages, wenn du es auch willst. Sieh dir als Beispiel mal die ganze Charaktergenerierung an... da kommt nur bei jedem 3 oder 4 Schritt/Stage mal ein Eintrag, alles andere wird nur genutzt, um Scriptbefehle auszuführen, Variablen zu setzen u.s.w. Ganz ohne Tagebucheinträge stellt ebenfalls kein Problem dar

  14. #14
    Ganz nebenbei habe ich eine überraschende Entdeckung gemacht (wenn sie nicht schon entdeckt wurde).
    Nähmlich man kann statische Gegenstände aktivieren.
    Einfach ein neuer Gegenstand unter Misc. Items generieren, diesen mit einer Nif belgen, die normalerweise statisch ist (z. B. Möbel: Tisch, oder Regal., oder Schmiede).
    Dann ein entsprechendes Skript zuweisen und schon hat man eine Werkbank
    Wenn man sie aktiviert passiert noch nichts. Erst wenn man ins Invetarmenü geht, dann erscheint das Dialogmenü.
    Das ist eigentlich genau das was ich wollte.
    Eine Werkstatt, die man nicht mitnehmen kann, also erst zuhause in aller Ruhe seine Sachen reparieren, oder neue Sachen schmieden, schneidern, zubereiten kann.
    Mir hat es nie gefallen, dass man mitten im Kampf sich schnell mal 20 Heiltränke brauen kann usw.

    Ich habs sogar als Einrichtung ausgelagt. Also dass man es als Mobilar kaufen muss.

    Jetzt muss nur noch das skripten klappen.

  15. #15
    das mit den stages funkrioniert nicht... das musste ich schon vor langer zeit feststellen als ich das assassin's light armor extended 0.5 pi gemacht hab... konnte alles auf ne globale variable umschreiben...(hat fast genauso lang gedauert wie die vorherige arbeit). Afaik das problem: man kann in den queststages nicht zurückgehn.. d.h. nicht von 20 auf 10 sondern nur 20 auf 20 oder höher. Damit fällt der Queststage weg... zum Thema Pfeile erstellen: mit retros Fletching Mod gibt es da schon ein sehr ausgereiftes plugin auch für die deutsche version.Das soll dich jetzt nicht von deinem Projekt abhalten sondern lediglich als info dienen... er hat das script erst auf mehrere gegenstände aufgeteilt.

    einfacher geht es natürlich das ganze im dialog zu machen, aber ich fürchte das kommt bei dir nicht in frage...

    @newraven: wenn man stop Quest benutzt kann man die quest wieder von vorne benutzen?

    MfG Fetter Hobbit

  16. #16
    Zitat Zitat von Fetter Hobbit
    mit retros Fletching Mod gibt es da schon ein sehr ausgereiftes plugin auch für die deutsche version.Das soll dich jetzt nicht von deinem Projekt abhalten sondern lediglich als info dienen
    Das weiss ich.
    Und eigentlich wollte ich meine Arbeit erst hier vorstellen wenn sie fertig ist.
    Retros PI hat den Nachteil, dass man quasi während des Kampfes sich schnell mal Pfeile machen kann, so wie die Tränke.
    Ausserdem ist es mehr ein Cheat als eine ernste Mod.
    Das Prinzip aus 2 mach etwas besseres mochte iich schon in Diablo 2 nicht.

    Mein PI soll sehr realistisch sein.
    Man muss erst mal Schäfte und Spitzen herstellen um dann funktionsfähige Pfeile machen zu können und ausserdem kann man das nur zuhause.
    Ausserdem sollen die Pfeile und Bögen nur mal der Anfang sein.
    Meine Idde reicht noch viel weiter, nähmlich in eigene Waffen und Rüstungsproduktion, eigene Schneiderei, eigene Schmuckschmiede,, Magische Aufladestation ect, ect...

  17. #17
    @Fetter Hobbit

    Nein, soviel ich weiß, stopt StopQuest die Quest nur (sie wird also nicht weiter abgearbeitet, zugeordnete Dialoge verschwinden, noch laufende Scripts werden gestopt) aber der Queststage wird nicht zurückgesetzt... ich bin mir sicher, das das irgendwie gehen muss...

  18. #18
    ich glaube oblivion sperrt sich generell dagegen rückwärts zu stagen daher bleibt nur der griff zur globalen variable

    MfG Fetter Hobbit

  19. #19
    ha! es ist scheinbar doch nicht so ohne, ein quest-script als globales script zu missbrauchen.
    grund: es wird nur alle paar frames ausgeführt. in manchen fällen kann das ziemlich problematisch sein, besonders wenn man timer einsetzen muss.

  20. #20
    Du hast mittels der verschiedenen diversen "Begin" - Statements ausreichend Möglichkeiten, das Script anzupassen... für den Rest gibt es Bedingungen, Timer u.s.w. - was glaubst du, wie ein globales Script in Morrowind ausgeführt wurde? Natürlich in den selben Abständen... Und da hatte man diese Einflussmöglichkeiten in dem Umfang nicht...

Berechtigungen

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