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 20:15]
127.0.0.1 Externe Bearbeitung
quickstart:skripte:abfragen [2026/06/29 13:31] (aktuell)
157.100.112.106 alte Version wiederhergestellt (2026/06/08 16:04)
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
 { {
-    IF (Npc_KnowsInfo(other,DIA_Dr_Test_110_Hello)+    IF (Npc_KnowsInfo(other,DIA_Dr_Test_110_Hello))
     {     {
     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 15:59 (Externe Bearbeitung)