Forum

> > Stranded II > Scripts > Scripting - Fragen/Probleme
Forums overviewStranded II overview Scripts overviewLog in to reply

German Scripting - Fragen/Probleme

6,780 replies
Page
To the start Previous 1 2191 192 193339 340 Next To the start

old Re: Scripting - Fragen/Probleme

Kaffeebraun
User Off Offline

Quote
Ich habe mal 3 Fragen

• 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

old Re: Scripting - Fragen/Probleme

dragoana
User Off Offline

Quote
Edit: Fehler verbessert den humer bemerkt hat. page=ende... war schon absicht

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
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
Und dann prüfst du bei der Einheit, ob der Auftrag erfüllt ist:
1
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
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
Besser wäre, du setzt anstelle von "free.." eine Variable auf 1, und hast ein on:sleep / changeday event, dass die Einheit entfernt wenn diese Variable 1 hat. So ist das Verschwinden nicht auffällig.

3)
1
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

old Re: Scripting - Fragen/Probleme

Kaffeebraun
User Off Offline

Quote
Ich probiers aus danke für deine Hilfe,Aber da wären noch fragen im code
1
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?;
     }
}

old Re: Scripting - Fragen/Probleme

humer
User Off Offline

Quote
Ich antworte mal.

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.

old Re: Scripting - Fragen/Probleme

Kaffeebraun
User Off Offline

Quote
Also is das bei playergotitem die 1 die ID des items oder die 0 und was ist dann die null wenns die 1 ist?

edit:
1
2
3
4
5
6
7
on:use {
	  if($talked==0) {
	  dialogue "auftrag","9";
	  } elseif(playergotitem(1)>778) {
	  dialogue "belohnung",10;
	  }
}
richtig so?

old Re: Scripting - Fragen/Probleme

humer
User Off Offline

Quote
die 1 ist die Id des items (Goldbeutel). Die Anfrage bedeutet übersetzt: Wenn Spieler mehr als 0 goldbeutel besitzt, dann
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.

old Re: Scripting - Fragen/Probleme

Kaffeebraun
User Off Offline

Quote
ahhh danke

edit:Irgendwas funktioniert da nicht....
ich probiere in der extension mod das ich schwefel brauch:
1
2
3
4
5
6
on:use {
	  if($talked==0) {
	  dialogue "auftrag","9";
	  } elseif(playergotitem(1)>778) {
	  dialogue "belohnung",10;
	  }

old Re: Scripting - Fragen/Probleme

humer
User Off Offline

Quote
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
on:use {
	if($talked==0) {
		dialogue"auftrag",9;
	}
	elseif(playergotitem(Schwefel-ID)>0)	{
		dialogue"belohnung",10;
	}
}

old Re: Scripting - Fragen/Probleme

Kaffeebraun
User Off Offline

Quote
ähh......hab ich doch 778....ich hab das davor ausversehen kopiert^^

1
2
3
4
5
6
if($talked==0) {
	  dialogue "auftrag","9";
	  } elseif(playergotitem(778)>1) {
	  dialogue "belohnung",10;
	  }
}

funktioniert noch nicht

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
Zahlen welche als Parameter dienen werden nicht in Anführungsstriche gesetzt!
√ dialogue "bla", 1;
× dialogue "bla", "1";


Was soll das Script denn genau machen?

old Re: Scripting - Fragen/Probleme

humer
User Off Offline

Quote
also du willst, dass wenn du mehr als 1 schwefel, sprich 2++ hast, der auftrag erfüllt ist, oder?

1
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
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

old Re: Scripting - Fragen/Probleme

dragoana
User Off Offline

Quote
ok mir sind ein paar Sachen aufgefallen. Zum Beispiel dass die lokale Variable $talked ja zum Textcontainer gehört, und das nützt der Einheit nichts.
1
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.

old Re: Scripting - Fragen/Probleme

humer
User Off Offline

Quote
ich hab dir mal ne stark vereinfachte möglichkeit gemacht (siehe letzten post), aber sie funktioniert, zumindest bei mir.
To the start Previous 1 2191 192 193339 340 Next To the start
Log in to reply Scripts overviewStranded II overviewForums overview