Function processtext: Unterschied zwischen den Versionen

Aus Sternenschweif Wiki
Wechseln zu: Navigation, Suche
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".
  
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.
+
Die Funktion processtext durchläuft nacheinander die Textkeys der entsprechenden Dialog-ID, d.h. den "request" und die "responses". Der "request" entspricht dabei "which" = 0, die responses "which" = 1 usw. fortlaufend.
  
 
Der Eintrag
 
Der Eintrag

Version vom 13. März 2014, 09:33 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 dabei "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.