World of Gothic Archiv
> Editing 'Der Schmied ist zu schnell' |
|
14.07.2003, 22:22 | #1 | ||
Zirror Beiträge: 472 |
'Der Schmied ist zu schnell'
Mir is kein anderer Titel eingefallen Wie schaffe ich es denn das der schmied erst nach einem Tag fertig ist, wenn ich ihm einen Auftrag für eine Spezielle Waffe gebe, also der Script ist schon fertig ich brauch nur noch ne Condition bzw. ne möglichkeit das der Schmied erst einen Tag nach dem ersten Dialog fertig ist (ich glaub irgendwas mit wld_getday () oder so) für Hilfe wäre ich sehr dankbar :D |
||
15.07.2003, 00:29 | #2 | ||
Malek Beiträge: 6.225 |
Nun, es gibt sicherlich ne Möglichkeit, siehe Wolf und die Minecrawlerrüstung. Aber eigentlich muss da eine Condition erfüllt sein, die im Dialog abgefragt wird ("Und, schon fertig?" o.ä.) Eine Abfrage, ob nun ein Tag verstrichen ist oder nicht, existiert meines Wissens nicht. Allerdings..... Du könntest im Dialog beim Schmied einen Wert auf TRUE setzen lassen. Nun nimmst du die Funktion fürs Übernachten (GOTHIC_workDATAscriptscontentStoryEVENTSSleepabit.d), wo, falls dieser Wert TRUE ist, eine weitere funktion auf TRUE gesetzt wird, die wiederum beim Schmied abgefragt ist. Diese verrät dem Schmied nun, dass du gepennt hast. Das funktioniert allerdings nur ein einziges Mal, ist keine dauerhafte Lösung. |
||
15.07.2003, 01:08 | #3 | ||
roXtar Beiträge: 341 |
...und funzt auch nicht, wenn man zb zum zeit totschlagen monster gekillt hat, statt zu schlafen... rox |
||
15.07.2003, 01:49 | #4 | ||
Zirror Beiträge: 472 |
*gähn* ich hasse Schlaflose Nächte :D. Egal zum Thema. Wolfs Minecrawler rüstung ist nicht Tagbedingt sondern Questbedingt, nachdem man den Ulumulu gemacht hat (CreatUlumulu == Log_Success) ist er fertig da könnt ihr selbst tausend mal schlafen. Ich bin noch nicht so lange im Scriptgeschäft, ich weiss zwar wo so eine Tages Funktion verwendet wird, aber ich kann sie irgendwie nicht erkennen. Der jenige der die Tagesfunktion verwendet ist Fortuno, der Krauthändler aus dem Sumpflager. Mein Problem ist da steht so einiges was ich nicht verstehe ;). Bzw befehle die mir unbekannt sind wenn also einer von euch Profis sich mal den Dia skript von ihm anschauen könnte wäre ich sehr verbunden. Aber danach mir noch schnell erklären wie das funktioniert ^^. Will ja schlieslich was lernen. |
||
15.07.2003, 04:04 | #5 | ||
Malek Beiträge: 6.225 |
*vordenKopfKlatscht* Stimmt! Fortuno hat ja die Abfrage für die tägliche Ration... Also interessant ist ja nur die Funktion quote: Diese Funktion ist in der Datei GOTHIC_workDATAscriptscontentStoryBB_SetDayTolerance.d auch benutzt. Hier wird die Toleranz des Zeitwertes bestimmt. quote: Die Funktion selber wird in dieser Datei initialisiert: GOTHIC_workDATAscriptscontentAIAI_Internexternals.d und sieht folgendermassen aus: quote: Also im Klartext bedeutet das, dass die Tage von der Engine gezählt und damit auch gespeichert werden (sieht man ja bei den Savegames). Beim Spielstart also Tag 0. In der oben genannten Datei wird festgelegt dass der Zähler gegen Mitternacht um den Faktor 1 erhöht wird. Ich interpretiere das so: quote: Bei ROT wird abgefragt, ob die globale "Fortuno_RatoinDay" ungleich der Funktion "Wld_GetDay" ist. Wenn ja, bekommt man die Joints, die Tagesfunktion wird ausgelöst, bei BLAU. Damit ist der Tag abgefragt und bleibt konstant, bis er sich bei Mitternacht im Counter um den Faktor 1 erhöht. Dann kann erneut abgefragt werden. Wenn die Funktion bereits abgefragt wurde, tritt natürlich die else-Funktion in Kraft. In dem Fall gibts leider kein Kraut. Ich hoffe das war nicht zu kompliziert erklärt, ist aber an sich schon nicht einfach... |
||
15.07.2003, 14:36 | #6 | ||
Zirror Beiträge: 472 |
Ahhh, also heist das im Klartext das wenn die Tage zumbeispiel 20 sind und man das erste mal mit furtone Spricht wird die Variable von Fortuno auf 20 gesetzt, Am nächsten Tag ist die Variable aber 21 aber bei Furtuno ist die Variable immernoch 20. Also weiss Gothic das es am 21. Tag noch nicht die Krautübergabe gegeben hat. Und dann setzt sich durch den Dialog der Wert auf 21, also heisst das das dann auch die Variable von Fortuno 21 ist, also weiss gothic da der 21 Tag ist und Fortuno die Variable 21 hat das der Spieler am 21. Tag schon da war. Um 00:01 wird die Variable von Wld_Getday + 1 Sprich also auf 22 gesetzt und dann beginnt das Ganze wieder von vorne, also Fortunos wert ist auf 21 und daher weiss Gothic das das Kraut heute noch nicht abgeholt wurde. Stimmt doch so oder ? Glaub ich habs kapiert. Das würde aber heissen das ich es einen Dialog davor auf Wld_GetDay () Setzten muss (also die Variable von meinem Schmied) ohne das es eien Effekt gibt und danach einen Dialog freischalten, der nur aktiviert ist wenn er 1. Den Dialog kennt, der die Variable des Schmiedes auf Wld_Getday () setzt und das die Variable vom Schmied ungleich wld_getday () ist, also erst am nächsten tag, stimmt doch oder ? Danke Malek du bist echt verdammt Clever :D |
||
15.07.2003, 17:18 | #7 | ||
Zirror Beiträge: 472 |
Würde es nicht eigentlich auch gehen das man, wenn zumbeispiel irgendwas 3 Tage dauern soll, einfach Variable=Wld_GetDay(+3) und dann nen Dialog macht der erst freigeschaltet wird wenn Variable=Wld_GetDay , sprich also wenn Wld_Getday um 3 sprich also das die Uhr 3 mal die 00:00 also 3 Tage später als der Tag an dem die Varialbe auf Wld_GetDay(+3) gestellt wurde oder ? Wird das dann auch so geschreiben oder eher Wld_Getday() + 3 ? Würde mich echt mal interessieren, das würde einige interesannte möglichkeiten eröffnen :D |
||
15.07.2003, 21:27 | #8 | ||
HornOx Beiträge: 1.458 |
Wld_GetDay(+3) wird schon beim parsen fehler erzeugen weil Wld_GetDay nun mal keine Parameter hat; Wld_Getday() + 3 sollte funktionieren. |
||
16.07.2003, 00:28 | #9 | ||
Malek Beiträge: 6.225 |
Ja, genau so hatte ich mir das gedacht :) Aber ob das über mehrere Tage auch geht, weiss ich net, musst du halt mal ausprobieren. quote: Mir fällt grad ein dass diese Funktion auch bei Snaf benutzt wird: quote: Ist dasselbe Prinzip. Hier ist mir noch was wichtiges aufgefallen: Vergiss nicht die Variable für die Tagesabfrage zu initialisieren: quote: |
||
|