Forum
Scripts
Scripting - Fragen/Probleme
1-Wie kann ich machen das ich ne Quest von jemandem bekomme und er so lange wartet bis ich die quest erfüllt habe das er dann z.B. sagt:Gut gemacht!
2-Wie kann ich machen das ein Charakter weg ist wenn ich mit dem fertig gesprochen habe?
3-Wie kann ich machen das wenn ich ein schild benutze dort ne Nachricht steht also nicht msg oder diary?mfg
DarkCoffee
1) Allgemein: Du setzt auf der letzten Dialogseite eine Variable auf 1, d.h der Spieler hat diesen Dialog schon gelesen.
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
page=ende title=Auftrag text=start Ok, ich warte hier bis du den Goldbeutel gefunden hast. text=end script=start local $talked; $talked=1; script=end
1
2
3
4
5
6
7
2
3
4
5
6
7
on:use {
	if($talked==0) {
	dialogue "auftrag",quelle;
	} elseif(playergotitem(1)>0) {
	dialogue "belohnung",quelle;
	}
}
2) Wenig elegant: Nach dem Dialog einfach entfernen:
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
page=seite100 text=start Danke dass du mir geholfen hast. text=end button=seite101,Kein Problem page=seite101 script=start free "unit",ID; closemenu; script=end
3)
1
2
3
4
5
6
2
3
4
5
6
on:use {
	clear;
	add "Dies ist ein Schild";
	add "Es ist aus Holz";
	s2:msgbox "Hinweis";
}
edited 2×, last 21.07.08 04:11:10 pm
1
2
3
4
5
6
7
2
3
4
5
6
7
on:use {
if($talked==0) {
dialogue "auftrag",was kommt hier hin?;
} elseif(playergotitem(Id des Items?)>0) {
dialogue "belohnung",und hier?;
}
}
Es sind in beiden fällen quellenangaben zu den entsprechenden dialogen, wo es gespeichert ist. Also entweder als textcontainer, dann die ID angeben oder als datei, dann den Pfad angeben.
Edit:
Wenn du die erste variante von schnapsidee ausprobierst dann achte bitte darauf, dass im ersten Code zwei fehler sind.
Nr 1.
page=auftrag
title=ende
Nr 2.
die letzte zeile muss script=end heißen.
edit:
1
2
3
4
5
6
7
2
3
4
5
6
7
on:use {
	 if($talked==0) {
	 dialogue "auftrag","9";
	 } elseif(playergotitem(1)>778) {
	 dialogue "belohnung",10;
	 }
}
führe den dialog "belohnung" aus, der sich im textcontainer mit der ID=XY befindet.
Edit:
Wenn du eine ID angibst, dann lasse bitte die anführungszeichen weg!
Ansonsten ist es richtig, wenn der spieler mehr als 778 goldbeutel sammeln soll.
edit:Irgendwas funktioniert da nicht....
ich probiere in der extension mod das ich schwefel brauch:
1
2
3
4
5
6
2
3
4
5
6
on:use {
	 if($talked==0) {
	 dialogue "auftrag","9";
	 } elseif(playergotitem(1)>778) {
	 dialogue "belohnung",10;
	 }
Schnapsidee has written
Edit: Fehler verbessert den humer bemerkt hat. page=ende... war schon absicht
Oh, sorry. Ich habs jetzt auch erst gesehen, dass es doch so i.O. ist.
@DarkCoffee
Wenn du es mit schwefel machst, dann musst du auch die ID des Schwefels angeben.
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
on:use {
	if($talked==0) {
		dialogue"auftrag",9;
	}
	elseif(playergotitem(Schwefel-ID)>0)	{
		dialogue"belohnung",10;
	}
}
1
2
3
4
5
6
2
3
4
5
6
if($talked==0) {
	 dialogue "auftrag","9";
	 } elseif(playergotitem(778)>1) {
	 dialogue "belohnung",10;
	 }
}
funktioniert noch nicht
dialogue "bla", 1;
dialogue "bla", "1";Was soll das Script denn genau machen?
geht immernoch nicht obwohl ich sogar die Anführungsstriche weggemacht habe... 1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
on:use {
if($talked==0) {
dialogue"auftrag",1;
}
if(playergotitem(778)>1) {
dialogue"belohnung",1;
}
}
textcontainer ID=1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
page=auftrag title=quest text=start hohle mir bitte 2 schwefel text=end script=start local $talked; $talked=1; script=end page=belohnung title=quest text=start dankeschön text=end
jetzt musst du nur noch die ID's mit deinen ersetzen und die dialoge ausweiten
edited 1×, last 21.07.08 05:40:24 pm
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
on:use {
		if($talked==0) {
			dialogue "auftrag",1;
			local $talked;
			$talked=1;
		} elseif(playergotitem(778)>1) {
			dialogue "belohnung",2;
		}
}
das heißt, du kannst solche Zeilen aus dem Textquellen löschen.
script=start
$talked=1;
$talked...
script=end
und wenn du script aus dem Forum kopierst, musst du im nachhinein noch manuell Leerzeichen hinten aus solchen Zeilen wie script=start/end text=start/end entfernen, die dort warum auch immer erscheinen.
Scripting - Fragen/Probleme


Offline