Benutzer-Werkzeuge

Webseiten-Werkzeuge


Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Nächste Überarbeitung
Vorherige Überarbeitung
quickstart:skripte:abfragen [2015/08/18 22:15]
127.0.0.1 Externe Bearbeitung
quickstart:skripte:abfragen [2017/01/09 16:59] (aktuell)
milky-way update formatierung
Zeile 1: Zeile 1:
-==  Abfragen ==+======  Abfragen ​und Operatoren ====== 
 + 
 +=====  Abfragen =====
  
 If-Abfragen sind essenzieller Bestandteil aller Dialoge und Scripts. Hier wird am Beispiel eines Dialoges erklärt, wie man sie einsetzt. If-Abfragen sind essenzieller Bestandteil aller Dialoge und Scripts. Hier wird am Beispiel eines Dialoges erklärt, wie man sie einsetzt.
Zeile 6: Zeile 8:
  
 Abfragen geschehen in der Regel in der Condition eines Dialoges, also in der dazugehörigen FUNC INT. Wenn dies TRUE zurückgibt,​ dann erscheint der Dialog erst dem Spieler zum Auswählen. Abfragen geschehen in der Regel in der Condition eines Dialoges, also in der dazugehörigen FUNC INT. Wenn dies TRUE zurückgibt,​ dann erscheint der Dialog erst dem Spieler zum Auswählen.
 +<code C>
 FUNC INT DIA_Dr_Test_110_Bloedmann_condition FUNC INT DIA_Dr_Test_110_Bloedmann_condition
 { {
Zeile 13: Zeile 15:
     return TRUE;     return TRUE;
     };     };
-};+};</​code>​
  
 ------ ------
  
-IF (Npc_KnowsInfo(self,​DIA_Dr_Test_110_Hello) ​+<code C>IF (Npc_KnowsInfo(self,​DIA_Dr_Test_110_Hello) ​</​code>​
  
 Das ist der Kopf der Abfrage. IF ist das Schlüsselwort,​ dann kommt das, was abgefragt werden soll in Klammern. In diesem Fall Npc_KnowsInfo. So wird abgefragt, ob ein bestimmter Dialog schon geführt wurde, und das muss nicht unbedingt beim selben NPC sein. Nach Npc_KnowsInfo kommt dann eine weitere Klammer mit other und dann die Instanz des Dialoges, von dem man will, dass er schon geführt wurde, um diesen hier "​freizuschalten"​. Das ist der Kopf der Abfrage. IF ist das Schlüsselwort,​ dann kommt das, was abgefragt werden soll in Klammern. In diesem Fall Npc_KnowsInfo. So wird abgefragt, ob ein bestimmter Dialog schon geführt wurde, und das muss nicht unbedingt beim selben NPC sein. Nach Npc_KnowsInfo kommt dann eine weitere Klammer mit other und dann die Instanz des Dialoges, von dem man will, dass er schon geführt wurde, um diesen hier "​freizuschalten"​.
  
 ------ ------
 +<code C>
     {     {
     return TRUE;     return TRUE;
     };     };
 +</​code>​
 Hier wird man erkennen, dass das return TRUE; einfach nur in die Klammern der Abfrage gesetzt wurde (was zwingend nötig ist). Die gesamte Funktion liest sich dann praktisch so: Hier wird man erkennen, dass das return TRUE; einfach nur in die Klammern der Abfrage gesetzt wurde (was zwingend nötig ist). Die gesamte Funktion liest sich dann praktisch so:
  
Zeile 36: Zeile 38:
  
 So könnte das zum Beispiel aussehen: So könnte das zum Beispiel aussehen:
 +<code C>
 { {
-IF (Npc_KnowsInfo(other,​DIA_Dr_Test_110_Hello)  +    ​IF (Npc_KnowsInfo(other,​DIA_Dr_Test_110_Hello)  
-&& (Npc_HasItems(other,​ItMi_Gold) >= 5) +    && (Npc_HasItems(other,​ItMi_Gold) >= 5) 
-|| (Npc_HasItems(other,​ItMi_InnosStatue) >= 1) +    || (Npc_HasItems(other,​ItMi_InnosStatue) >= 1) 
-+    
-return TRUE; +        return TRUE; 
-}; +    }; 
-};+</​code>​
  
 Hier würde sich das so lesen: Hier würde sich das so lesen:
Zeile 57: Zeile 59:
 Für geübte Laien hier mal die Profi-Variante der Erklärung: Für geübte Laien hier mal die Profi-Variante der Erklärung:
  
-func int Npc_HasItems(var c_npc n0, var int iteminstance)+<code C>func int Npc_HasItems(var c_npc n0, var int iteminstance)</​code>​
  
 var c_npc n0 bedeutet einfach nur, dass man da other (für den Helden) oder self (für den NPC) einsetzen muss (obwohl letzteres nicht unbedingt häufig verwendet wird). var c_npc n0 bedeutet einfach nur, dass man da other (für den Helden) oder self (für den NPC) einsetzen muss (obwohl letzteres nicht unbedingt häufig verwendet wird).
Zeile 66: Zeile 68:
 ------ ------
  
-==  Operatoren ==+=====  Operatoren ​=====
  
 In Daedalus gelten die selben Operatoren wie in C++: In Daedalus gelten die selben Operatoren wie in C++:
 +<code C>
 == Gleich == Gleich
 != ungleich != ungleich
Zeile 76: Zeile 78:
 <= kleiner oder gleich <= kleiner oder gleich
 <  kleiner <  kleiner
 +</​code>​
 Einiges davon ist sicher schon vom Mathematikunterricht bekannt. Einiges davon ist sicher schon vom Mathematikunterricht bekannt.
  
quickstart/skripte/abfragen.1439928951.txt.gz · Zuletzt geändert: 2017/01/09 16:59 (Externe Bearbeitung)