@Oberscht: Das "Danke" war wohl etwas voreilig. Soweit der Stand der Dinge:
Die NPCs, die später das Kopfgeld des Spielers ermitteln können (Diebesgilden-Mitglieder in jeder Stadt, sofern vorhanden und in größeren Siedlungen außerhalb der Städte), bekommen eine (schon vorhandene) Quest mit Dialogen, die ein Topic "Wie hoch ist mein Kopfgeld in..." hinzufügen. Wählt man das Topic, bekommt man die Choices "Anvil?", "Cheydinhal?", "Skingrad?", "der Wildnis?", "ganz Cyrodiil?" usw.
Für die Ermittlung eines jeden Kopfgelds benötigt man 20 Gold, das globale kostet 40 Gold. Wenn der Spieler eine der Choices wählt, wird erst per Condition geprüft, ob der Spieler genug Gold im Inventar hat, wenn ja, kommt die Antwort "[nickt]" mit Happy=100 und folgender ResultScript:
Code:
Player.RemoveItem Gold001 20
AddItem Gold001 20
MessageBox "Ihr habt ein Kopfgeld von B1DUPLICATE000 = %.0f in Anvil."
Hat der Spieler unter 20 bzw. 40 Gold im Inventar, kommt die Antwort "[schüttelt mit dem Kopf]" mit Sad=100 und folgender ResultScript:
Code:
MessageBox "Euer Kopfgeld in Anvil konnte leider nicht ermittelt werden, da ihr das nötige Entgeld nicht aufbringen könnt."
Sämtliche Antworten beenden das Gespräch via "Goodbye". Jetzt meine Fragen:
- Was ist an der ResultScript zu der Antwort "[nickt]" falsch? Wenn ich den Script compilen will, kommt folgende Fehlermeldung: "Script 'DefaultCompiler', line 3: Too few variables in MessageBox parameters; expected 1, found 0.", was ja darauf hinweist, dass "B1DUPLICATE000" nicht die globale Variable für Anvil ist. Ich habe es auch schon mit "B1" (eigentlich nicht mehr existent) und "B1DC" versucht, aber keinen Erfolg gehabt. Ist vielleicht "%.f0" falsch?
- Wie genau weise ich dem NPC den Dialog zu? Ich habe die Quest "RBDRegions" benutzt, die ist standardmäßig auf "Start Game Enabled" geschaltet. Jetzt gehe ich auf den NPC, dann auf "Dialogue", dann links unter "View Quests" auf "AddQuest" und füge die Quest "RBDRegions" hinzu, die die ganzen Dialoge enthält. Muss jetzt der Spieler diese Quest aktiv haben (ist sie, sobald die .ESP aktiviert ist, wegen "Start Game Enabled") bzw. wie genau regele ich, dass dieser Dialog für den Spieler immer anwählbar ist?
edit:
Ich schätze, 1 hat sich erledigt. Habe den Script jetzt folgendermaßen:
Code:
Player.RemoveItem Gold001 20
AddItem Gold001 20
MessageBox "Ihr habt ein Kopfgeld von %.0f in Bruma.", B3
So funktioniert es, zumindest gibt das CS keine Fehler mehr heraus. Jetzt noch alle Dialoge anpassen, NPCs zuweisen und ausprobieren. Ich hoffe, dass alles so weit funktioniert. Dann werden noch die Scripts überarbeitet und morgen kann die nächste Version vom verbesserten Kopfgeldsystem kommen.