17.10.2016, 13:07 (Dieser Beitrag wurde zuletzt bearbeitet: 17.10.2016, 13:09 von Huhn123.)
Da den Savegame Editor ich benutzen, kein Gift zur Auswahl steht, dass den Gegner vergiftet unter Effects, hatte ich mal nachgeguckt und folgendes gefunden: on:Hit:weapon_on_scripts.xml_poison_wundbrand_100
Jetzt ist meine Frage ob und wie man das auf anderen Waffen einfügt, so das die genau diesen Effeckt haben. Ich denke die 100 steht für die Dauer? Jedenfalls wäre ich sehr dankbar auf eine Antwort. Müsste ich dafür nur on:Hit:weapon_on_scripts.xml_poison_wundbrand_100 in das Feld von ScriptOverride kopieren damit es den Effekt hat, oder habe ich dann die Waffe geschrottet? o.O
Ja, genau. Einfach in das Feld ScriptOverride einfügen. Dann sollte die Waffe ebenfalls eine Vergiftung erzeugen. Ob die 100 für die Dauer steht, kann ich dir allerdings nicht sagen.
Also sollte ich lieber nicht herum experimentieren mit der Zahl?(Also auf zb. 50 ändern oder so)
Weil ich gerade sehe das zb. beim magischen Zweihänder gar keine Zahl steht, sondern nur: on:Hit:weapon_on_scripts.xml_sword_2h_magisch
Ansonsten hätte ich nur noch eine Frage: Kann man mehrere Effekte gleichzeitig eintragen in ScriptOverride von einer Waffe? Wenn ja wie müssen die getrennt werden? Mit einen Komma?
Du darfst auf gar keinen Fall den Namen des Scrips ändern. Wenn du das auf Verdacht machst, wird dir das Spiel beim ersten Treffer mit der Waffe mit der Fehlermeldung dass das Script nicht existiert abstürzen. Die Zahl ist vollkommen unwichtig. Da musst du den Entwickler fragen, warum er ausgerechnet diesen Namen vergeben hat. Wenn du eigene Effekte erzeugst, kannst du den Scriptnamen frei bestimmen.
Ob mehrere Scripte funktionieren weiß ich nicht. Musst du einfach ausprobieren. Trennzeichen ist entweder Komma oder Semikolon. Im Spiel kommt an unterschiedlichen Stellen beides vor. Musst du auch ausprobieren. Mehr als abstürzen kann das Spiel nicht.
17.10.2016, 15:22 (Dieser Beitrag wurde zuletzt bearbeitet: 17.10.2016, 17:17 von Huhn123.)
Gibt es wo einen Ordner oder so wo alle Scriptnamen von den Effekten aufgelistet sind?
Edit: Bzw. der Scriptname vom schweren Wundbrand würde mir reichen.
Nein, dafür gibt es keinen Ordner. GAnz so einfach ist das nicht. Das Spiel unterscheidet nicht zwischen Effektscripten und anderen. Es gibt nur Scripte und die sind alle in der static.db4 bzw statica1.db4 in der Tabelle _Scripts_ActionScripts, etwa 8.000 Stück. Die Kurzfassung, für ein ausführliches Tutorial fehlt mir die Zeit. Ein Effektscript ruft ein Statement auf, dass den entsprechenden Effekt anwendet. Dieser Effekt (in der Tabelle _Scripts_StatusEffectScripts) ruft wiederrum zwei Statements auf die die Wirkung und die Dauer des Effekt beschreiben. Außerdem gehört noch ein Eintrag in der Tabelle _Template_Statuseffects dazu. Manchmal ist der Effekt auch noch von einer Bedingung abhängig.
Schwerer Wundbrand ist nicht einfach ein Script, das aufgerufen wird. In diesem Fall handelt es sich um eine Spezialattacke von Gruftasseln bzw Papa Ratzi. Ein passendes Script. dass den Effekt auf eine Waffe packt, musst du dir selbst schreiben.
Ausnahmsweise und nur weil es schnell ging. Für mehr musst du dich selbst in Drakensang Modding einarbeiten. Ich hatte auch mal null Ahnung. Außerdem bin ich mit unserem aktuellen Moddingprojekt mehr als ausgeleistet um noch zusätzliche Auftragsarbeiten durchzuführen.
Den Code mittels SQLite Browser in der static.db4 bzw statica1.db4, wenn du mit PG spielst, ausführen. Dann noch im Savegame bei der Waffe in das Feld ScriptOverride on:Hit:set_poison_wound_hard.xml eintragen.
Du musst den Dateityp auf All Files stellen. Dann auf den Reiter SQL ausführen klicken, den Code aus der Textdatei einfügen und auf die Schaltfläche SQL ausführen klicken.
18.10.2016, 12:19 (Dieser Beitrag wurde zuletzt bearbeitet: 18.10.2016, 13:06 von Huhn123.)
Jetzt öffnet sich da was mit 112 Tabellen und rechts steht da nur was von Datenbankzelle bearbeiten. Soll ich dort den Code eingeben? Da steht da aber Übernehmen. o.O
Edit: Habs gefunden. Also in SQL1 das rein schreiben dann auf SQL ausführen klicken? Dann steht da unter folgendes: not an Error
Edit2: War wohl einmal Leerzeichen zu viel drinne. Hat jetzt geklappt. Muss das noch irgendwie abgespeichert werden?
Edit3: Es funktioniert leider nicht. Kommt auch keine Fehler Meldung sondern der Gegner wird gar nicht vergiftet.
Gespeichert wird's, wenn du die Datenbank schließt oder SQLite ganz beendest. Einen gesonderten "Speichern unter"-Befehl gibt's nicht.
"Not an error" besagt, dass die Befehlskette schlüssig war und ausgeführt werden konnte. Also alles in Ordnung, wenn diese Meldung ausgegeben wird.
(18.10.2016, 13:02)Crystal schrieb: Gespeichert wird's, wenn du die Datenbank schließt oder SQLite ganz beendest. Einen gesonderten "Speichern unter"-Befehl gibt's nicht.
"Not an error" besagt, dass die Befehlskette schlüssig war und ausgeführt werden konnte. Also alles in Ordnung, wenn diese Meldung ausgegeben wird.
Wenn alles in Ordnung ist, wieso wird der Gegner dann nicht vergiftet beim Angriff? Wenn ich was falsch gemacht hätte müsste doch eine Fehlermeldung kommen. Es kam aber weder eine Fehler Meldung noch wurde der Gegner vergiftet im Spiel. o.O
Was deine SQL-Anweisung im Spiel bewirkt oder auch nicht, das kann SQLite nicht beurteilen. Es beurteilt einzig, ob es deine Anweisung in der Datenbank ausführen kann. Wenn du dich z.B. vertippt hättest oder irgendwo ein Leerzeichen gesetzt hättest, dann wäre die Anweisung vielleicht nicht ausführbar gewesen und das hätte dir SQLite sofort angezeigt.
Ich habe das natürlich getestet und bei mir hat es funktioniert. Die Vergiftung hält nur kurz an und wird deshalb auch nicht sehr lange am Icon des Gegners angezeigt. Gegen wen hast du denn gekämpft? Bei Gegnern mit Immunität Gift hat es natürlich keinen Effekt. Hast du auch den Eintrag bei der Waffe vorgenommen? Im richtigen Savegame? Bei der richtigen Waffe?
Habe es in der Arena probiert. Die sind ja nicht Immun gegen Gift. beim schwächeren Gift hat es bei denen jedenfalls funktioniert. Aber beim schweren nicht mal 1 Sekunde. War kein Icon da. Bei ScriptOverride steht dort: on:Hit:set_poison_wound_hard.xml
Habe es im richtigen Savegame gemacht da ich mir zusätzlich eine Waffe dazu gecheatet habe, und wäre es das falsche Savegame gewesen wäre die Waffe ja gar nicht im Inventar drinne. Also war es das richtige Savegame.
18.10.2016, 15:14 (Dieser Beitrag wurde zuletzt bearbeitet: 18.10.2016, 15:18 von Huhn123.)
Wildschweine finde ich gerade keine. Aber habe es bei Wölfen probiert und auch dort werden die nicht vergiftet. Während die von meiner anderen Waffe mit leichten Wundbrand ganz normal vergiftet werden.
Hast du das Script bei der Waffe mit dem Savegameeditor oder dem SQLite Browser eingetragen? Falls ersteres, mache es mal mit dem zweiten. Waffen sind in der Tabelle _Instance_Weapon.