Function hasresponse: Unterschied zwischen den Versionen

Aus Sternenschweif Wiki
Wechseln zu: Navigation, Suche
 
(6 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Mit dieser Funktion ist es möglich, bei einer Dialog-ID definierte Antworten/Optionen (definiert als "response") zu unterdrücken/auszuschließen, wenn bestimmte Bedingungen erfüllt sind.
+
Mit dieser Funktion, einem sog. [[Dialog-Callback]], ist es möglich, bei einer Dialog-ID definierte Antworten/Optionen (definiert als "response") zu unterdrücken/auszuschließen, wenn bestimmte Bedingungen erfüllt sind.
  
 
Beispiel:
 
Beispiel:
Zeile 8: Zeile 8:
 
<id>2</id>
 
<id>2</id>
 
<adddata><![CDATA[
 
<adddata><![CDATA[
function processtext(which,text) {
 
if( which > 0 ) return text;
 
text = text.replace( /{0}/g, getName(0));
 
text = text.replace( /{1}/g, getLangString("text_pp2_"+getGender(0),[]));
 
return text;
 
}
 
 
 
function hasresponse(which) {
 
function hasresponse(which) {
if( which < 3 ) return true;
+
if( which < 4 ) return true;
 
var res = rollCheck({"who":0,"which":"JZ","type":"attrib"});
 
var res = rollCheck({"who":0,"which":"JZ","type":"attrib"});
 
return !res.ok;
 
return !res.ok;
Zeile 30: Zeile 23:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Die Funktion "hasresponse" durchläuft die in der ID definierten "responses" (in diesem Beispiel also 4). "which" = 0 entspricht der ersten "response", "which" = 1 der zweiten usw...
+
Die Funktion "hasresponse" durchläuft die in der ID definierten "responses" (in diesem Beispiel also 4). "which" = 1 entspricht der ersten "response", "which" = 2 der zweiten usw...
  
 
<syntaxhighlight lang="javascript">
 
<syntaxhighlight lang="javascript">
if( which < 3 ) return true;
+
if( which < 4 ) return true;
 
</syntaxhighlight>
 
</syntaxhighlight>
Die "responses" 1 bis 3 ("which" = 0 bis 2)) sollen immer ausgegeben werden. Somit bezieht sich der folgende Teil der Funktion nur noch auf die "response" 4.
+
Die "responses" 1 bis 3 ("which" = 1 bis 3)) sollen immer ausgegeben werden. Somit bezieht sich der folgende Teil der Funktion nur noch auf die "response" 4.
  
 
<syntaxhighlight lang="javascript">
 
<syntaxhighlight lang="javascript">
Zeile 41: Zeile 34:
 
return !res.ok;
 
return !res.ok;
 
</syntaxhighlight>
 
</syntaxhighlight>
Die "reponse" 4 ("which" = 3) soll nur ausgegeben werden, wenn die Talentprobe in dieser ID scheitert ("!=res.ok").
+
Die "response" 4 ("which" = 4) soll nur ausgegeben werden, wenn die Talentprobe in dieser ID scheitert ("!=res.ok").
 +
 
 +
 
 +
[[Category:NLTScript Referenz]]
 +
--lunatic 09:59, 13. Mär. 2014 (CET)

Aktuelle Version vom 16. März 2015, 21:05 Uhr

Mit dieser Funktion, einem sog. Dialog-Callback, ist es möglich, bei einer Dialog-ID definierte Antworten/Optionen (definiert als "response") zu unterdrücken/auszuschließen, wenn bestimmte Bedingungen erfüllt sind.

Beispiel:

<text>
<partner>chbodir</partner>
<id>2</id>
<adddata><![CDATA[
function hasresponse(which) {
	if( which < 4 ) return true;
	var res = rollCheck({"who":0,"which":"JZ","type":"attrib"});
	return !res.ok;
}]]></adddata>
<empty>false</empty>
<request>chbodir_2</request>
<response1 goto="3">chbodir_3</response1>
<response2 goto="10">chbodir_4</response2>
<response3 goto="13">chbodir_5</response3>
<response4 goto="14">chbodir_6</response4>
</text>

Die Funktion "hasresponse" durchläuft die in der ID definierten "responses" (in diesem Beispiel also 4). "which" = 1 entspricht der ersten "response", "which" = 2 der zweiten usw...

if( which < 4 ) return true;

Die "responses" 1 bis 3 ("which" = 1 bis 3)) sollen immer ausgegeben werden. Somit bezieht sich der folgende Teil der Funktion nur noch auf die "response" 4.

var res = rollCheck({"who":0,"which":"JZ","type":"attrib"});
return !res.ok;

Die "response" 4 ("which" = 4) soll nur ausgegeben werden, wenn die Talentprobe in dieser ID scheitert ("!=res.ok"). --lunatic 09:59, 13. Mär. 2014 (CET)