Hallo,
ich habe eine Frage. ich möchte ein neues Items über ein Dialogscript spawnen lassen, geht das?
Die Anwendung wäre der Zauber "Sumus Elexiere". Nach der erfolgreichen Probe soll die jeweilge Pflanze "Einbeere aufgeladen" o.ä. erscheinen.
Vielen Dank schon mal vorab
#2
Ich weiß nicht so recht, worauf du hinaus willst, schau mal in der Wiki unter giveItemTo und showItemsetList nach, da könnte was für dich dabei sein.
Spiel verbessern? Fehler gefunden? Etwas unklar? Bitte beachten!
Mod-Datenbank SchickHD
Meine SchickHD-Mods *klick*
Meine SchweifHD-Mods *klick*
Probleme mit Mods?
Mod-Datenbank SchickHD
Meine SchickHD-Mods *klick*
Meine SchweifHD-Mods *klick*
Probleme mit Mods?
#3
Ich versuche mal es zu erklären.
Über einen Dialog soll eine Probe auf einen Zauber laufen. Wenn diese erfolgreich war, soll ein neues Item gespawnt werden, das die jeweiligen Effekte enthält. Es geht also nicht um die Modifizierung eines schon vorhandenen Items.
[Edit]
Folgender Dialog:
[spoiler]
aengste_dlg
1
= -5) {
var res = rollCheck({"who":selid,"which":"aengste","type":"spell","mod":0,"cost":5});
}
if (res.ok)
}]]>
true
[/spoiler]
Bei "if (res.ok) " bräuchte ich jetzt sowas wie "spawn item xy"
Über einen Dialog soll eine Probe auf einen Zauber laufen. Wenn diese erfolgreich war, soll ein neues Item gespawnt werden, das die jeweiligen Effekte enthält. Es geht also nicht um die Modifizierung eines schon vorhandenen Items.
[Edit]
Folgender Dialog:
[spoiler]
aengste_dlg
1
= -5) {
var res = rollCheck({"who":selid,"which":"aengste","type":"spell","mod":0,"cost":5});
}
if (res.ok)
}]]>
true
[/spoiler]
Bei "if (res.ok) " bräuchte ich jetzt sowas wie "spawn item xy"
Zuletzt geändert von Marjak am 06. Dez 2016, 17:13, insgesamt 2-mal geändert.
#4
Ja, einfach giveItemTo (dann spawnt das item einfach im Inventar, oder showItemSetList, dann bekommst Du ein loot-Fenster.
giveItemTo(Item-ID,anzahl,Char-ID);
giveItemTo(Item-ID,anzahl,Char-ID);
#5
@Mordbrenner und Yuan
Mordbrenner, Yuan, ich bräuchte mal eure Hilfe.
Also, ein Item spawnt, aber ich möchte abhängig von den verbliebenen ZfP* unterschiedliche Items spawnen lassen, bei 3 ZfP* Item XX und bei 4 Item AB. Aber irgendwie krieg ich immer nur dasselbe Item, egal ob die Zauberprobe erfolgreich war oder nicht.
Hier mal das, was ich habe:
[spoiler]
aengste_dlg
1
= -5) {
var res = rollCheck({"who":selid,"which":"aengste","type":"spell","mod":0,"cost":1});
}
if (res && res.ok)
tap = res.resrem;
if (tap = 5) giveItemTo(3,1,selid);
else if (tap = 4) giveItemTo(10,1,selid);
else if (tap = 3) giveItemTo(9,1,selid);
else if (tap = 2) giveItemTo(8,1,selid);
else if (tap = 1) giveItemTo(7,1,selid);
else if (tap = 0) giveItemTo(6,1,selid);
}]]>
true
[/spoiler]
Ziemlich sicher habe ich bei dem unteren Teil nur Klammern vergessen, aber wenn ihr kurz erklären könntet, wann eine bei if-Sätzen gesetzt werden müßte, wäre das super.
Mordbrenner, Yuan, ich bräuchte mal eure Hilfe.
Also, ein Item spawnt, aber ich möchte abhängig von den verbliebenen ZfP* unterschiedliche Items spawnen lassen, bei 3 ZfP* Item XX und bei 4 Item AB. Aber irgendwie krieg ich immer nur dasselbe Item, egal ob die Zauberprobe erfolgreich war oder nicht.
Hier mal das, was ich habe:
[spoiler]
aengste_dlg
1
= -5) {
var res = rollCheck({"who":selid,"which":"aengste","type":"spell","mod":0,"cost":1});
}
if (res && res.ok)
tap = res.resrem;
if (tap = 5) giveItemTo(3,1,selid);
else if (tap = 4) giveItemTo(10,1,selid);
else if (tap = 3) giveItemTo(9,1,selid);
else if (tap = 2) giveItemTo(8,1,selid);
else if (tap = 1) giveItemTo(7,1,selid);
else if (tap = 0) giveItemTo(6,1,selid);
}]]>
true
[/spoiler]
Ziemlich sicher habe ich bei dem unteren Teil nur Klammern vergessen, aber wenn ihr kurz erklären könntet, wann eine bei if-Sätzen gesetzt werden müßte, wäre das super.
#6
ich seh da jetzt auf den ersten Blick keinen Fehler. Klammern brauchst Du nach einem if nur, wenn Du mehr als einen Befehl ausführen möchtest.
Allerdings fragst Du nur auf resrem 0 bis 5 ab. Was passiert, wenn >5?
Welches der items spawnt denn? Das erste oder das letzte?
Alternativ mal nach
tap = res.resrem;
folgendes einfügen:
debugLog("tap= "+tap);
Dann zeigt er Dir in der Konsole den Wert von tap an.
Allerdings fragst Du nur auf resrem 0 bis 5 ab. Was passiert, wenn >5?
Welches der items spawnt denn? Das erste oder das letzte?
Alternativ mal nach
tap = res.resrem;
folgendes einfügen:
debugLog("tap= "+tap);
Dann zeigt er Dir in der Konsole den Wert von tap an.
#7
[s]Es wird immer nur das 3. Item gespawnt, ganz egal, ob die Probe gelungen oder mißlungen ist.[/s]
Deine Anregung werde ich gleich mal ausprobieren.
[EDIT]
Bei tap=5 wird korrekt das 3. Item gespawnt, bei allen anderen tap (ausprobiert mit tap 3, 1 und Probe mißlungen) allerdings immer das 10. Item, was auf der Liste das erste else if...(else if (tap = 4) giveItemTo(10,1,selid);) ist.
[spoiler]
if (res && res.ok)
tap = res.resrem;
debugLog("tap= "+tap);
if (tap >= 5) giveItemTo(3,1,selid);
else if (tap = 4) giveItemTo(10,1,selid);
else if (tap = 3) giveItemTo(9,1,selid);
else if (tap = 2) giveItemTo(8,1,selid);
else if (tap = 1) giveItemTo(7,1,selid);
else if (tap = 0) giveItemTo(6,1,selid);
[/spoiler]
Irgendwie scheint er nur die ersten beiden Einträge zu nehmen
Deine Anregung werde ich gleich mal ausprobieren.
[EDIT]
Bei tap=5 wird korrekt das 3. Item gespawnt, bei allen anderen tap (ausprobiert mit tap 3, 1 und Probe mißlungen) allerdings immer das 10. Item, was auf der Liste das erste else if...(else if (tap = 4) giveItemTo(10,1,selid);) ist.
[spoiler]
if (res && res.ok)
tap = res.resrem;
debugLog("tap= "+tap);
if (tap >= 5) giveItemTo(3,1,selid);
else if (tap = 4) giveItemTo(10,1,selid);
else if (tap = 3) giveItemTo(9,1,selid);
else if (tap = 2) giveItemTo(8,1,selid);
else if (tap = 1) giveItemTo(7,1,selid);
else if (tap = 0) giveItemTo(6,1,selid);
[/spoiler]
Irgendwie scheint er nur die ersten beiden Einträge zu nehmen
Zuletzt geändert von Marjak am 06. Dez 2016, 23:15, insgesamt 3-mal geändert.
#8
Gut, die Lösung war zwar nicht logisch, dafür aber ziemlich einfach.
Die Engine kann mit "tap = 3" nichts anfangen. Habe jetzt alle Tap-Einträge auf >="Wert" gesetzt und jetzt geht es.
Mordbrenner, vielen vielen Dank. Damit ist jetzt mein erster "Mod" fast fertig.
Die Engine kann mit "tap = 3" nichts anfangen. Habe jetzt alle Tap-Einträge auf >="Wert" gesetzt und jetzt geht es.
Mordbrenner, vielen vielen Dank. Damit ist jetzt mein erster "Mod" fast fertig.