Function hasresponse: Unterschied zwischen den Versionen
Aus Sternenschweif Wiki
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, 09: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).