Function processtext: Unterschied zwischen den Versionen

Aus Sternenschweif Wiki
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „Die Funktion "processtext" wird dafür verwendet, Platzhalter in Textkeys zu ersetzen. Beispiel: <syntaxhighlight lang="javascript"> function processtext(whi…“)
 
Zeile 20: Zeile 20:
 
In dieser Funktion wird zunächst ein zufälliger Schaden (Variable "dmg") ermittelt und anschließend per Funktion dealdamage "ausgeteilt".
 
In dieser Funktion wird zunächst ein zufälliger Schaden (Variable "dmg") ermittelt und anschließend per Funktion dealdamage "ausgeteilt".
  
Für den Textkey sind wohl der Name des Chars ({0}) als auch die Höhe des Schadens ({1}) erforderlich. Das Ersetzen erfolgt durch die Einträge:
+
Die Funktion processtext durchläuft nacheinander die Textkeys der entsprechenden Dialog-ID, d.h. den "request" und die "responses". Der "request" entspricht "which" = 0, die responses "which = 1"usw. fortlaufend.
 +
 
 +
Der Eintrag
 +
 
 +
<syntaxhighlight lang="javascript">
 +
 
 +
  if( which != 0 ) return text;
 +
 +
</syntaxhighlight>
 +
 
 +
bewirkt also, dass alle "responses" unverändert wiedergegeben werden, da "which" ungleich 0 ist bei den "responses". Somit bezieht sich der folgende Teil der Funktion nur noch auf den "request":
 +
 
 +
 
  
 
<syntaxhighlight lang="javascript">
 
<syntaxhighlight lang="javascript">
Zeile 26: Zeile 38:
 
text = text.replace( "{1}", dmg);
 
text = text.replace( "{1}", dmg);
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
Für den "request" wird also der Platzhalter {0} durch den Namen des Chars, der in der Variable "currentid" definiert wurde, sowie der Platzhalter {1} durch den Schaden (Variable "dmg") ersetzt.

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

Die Funktion "processtext" wird dafür verwendet, Platzhalter in Textkeys zu ersetzen.

Beispiel:

function processtext(which,text) {
  if( which != 0 ) return text;
  var dmg = rollRandom(3,9);
  dealDamage({"who":currentid,"amount":dmg,"mandatory":true,"type":"ignorers","reason":"drop"});
  text = text.replace( "{0}", getName(currentid) );
  text = text.replace( "{1}", dmg);
  return text;
}
<text key="KK_neg">{0} kommt zu Fall und verliert durch den heftigen Aufprall {1} LE.</text>

In dieser Funktion wird zunächst ein zufälliger Schaden (Variable "dmg") ermittelt und anschließend per Funktion dealdamage "ausgeteilt".

Die Funktion processtext durchläuft nacheinander die Textkeys der entsprechenden Dialog-ID, d.h. den "request" und die "responses". Der "request" entspricht "which" = 0, die responses "which = 1"usw. fortlaufend.

Der Eintrag

  if( which != 0 ) return text;

bewirkt also, dass alle "responses" unverändert wiedergegeben werden, da "which" ungleich 0 ist bei den "responses". Somit bezieht sich der folgende Teil der Funktion nur noch auf den "request":


text = text.replace( "{0}", getName(currentid) );
text = text.replace( "{1}", dmg);

Für den "request" wird also der Platzhalter {0} durch den Namen des Chars, der in der Variable "currentid" definiert wurde, sowie der Platzhalter {1} durch den Schaden (Variable "dmg") ersetzt.