Forum
Stranded II Scripts Scripting - Fragen/Probleme1-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 06: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 07: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.