Function hasresponse: Unterschied zwischen den Versionen

Aus Sternenschweif Wiki
Wechseln zu: Navigation, Suche
Zeile 4: Zeile 4:
  
 
<syntaxhighlight lang="javascript">
 
<syntaxhighlight lang="javascript">
 +
<text>
 +
<partner>chbodir</partner>
 +
<id>2</id>
 +
<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) {
 +
if( which < 3 ) 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>
  
 
</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...
 +
 +
<syntaxhighlight lang="javascript">
 +
if( which < 3 ) return true;
 +
</syntaxhighlight>
 +
Die "responses" 1 bis 3 ("which" = 0 bis 2)) sollen immer ausgegeben werden.
 +
 +
<syntaxhighlight lang="javascript">
 +
return !res.ok;
 +
</syntaxhighlight>
 +
Die "reponse" 4 ("which" = 3) soll nur ausgegeben werden, wenn die Talentprobe in dieser ID scheitert ("!=res.ok).

Version vom 13. März 2014, 10:52 Uhr

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.

Beispiel:

		<text>
			<partner>chbodir</partner>
			<id>2</id>
			<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) {
	if( which < 3 ) 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" = 0 entspricht der ersten "response", "which" = 1 der zweiten usw...

if( which < 3 ) return true;

Die "responses" 1 bis 3 ("which" = 0 bis 2)) sollen immer ausgegeben werden.

return !res.ok;

Die "reponse" 4 ("which" = 3) soll nur ausgegeben werden, wenn die Talentprobe in dieser ID scheitert ("!=res.ok).