Function hasresponse: Unterschied zwischen den Versionen
Aus Sternenschweif Wiki
(7 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 hasresponse(which) { | function hasresponse(which) { | ||
− | if( which < | + | 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" = | + | 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 < | + | if( which < 4 ) return true; |
</syntaxhighlight> | </syntaxhighlight> | ||
− | Die "responses" 1 bis 3 ("which" = | + | 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"> | ||
+ | var res = rollCheck({"who":0,"which":"JZ","type":"attrib"}); | ||
return !res.ok; | return !res.ok; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | Die " | + | 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)