Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung | |||
|
quickstart:skripte:abfragen [2026/06/29 13:31] 157.100.112.106 alte Version wiederhergestellt (2026/06/08 16:04) |
quickstart:skripte:abfragen [2026/07/07 05:12] (aktuell) 216.73.216.10 alte Version wiederhergestellt (2015/08/18 20:15) |
||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== Abfragen | + | == Abfragen == |
| - | + | ||
| - | ===== 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 8: | Zeile 6: | ||
| Abfragen geschehen in der Regel in der Condition eines Dialoges, also in der dazugehörigen FUNC INT. Wenn dies TRUE zurückgibt, | Abfragen geschehen in der Regel in der Condition eines Dialoges, also in der dazugehörigen FUNC INT. Wenn dies TRUE zurückgibt, | ||
| - | <code C> | + | |
| FUNC INT DIA_Dr_Test_110_Bloedmann_condition | FUNC INT DIA_Dr_Test_110_Bloedmann_condition | ||
| { | { | ||
| - | IF (Npc_KnowsInfo(other, | + | IF (Npc_KnowsInfo(other, |
| { | { | ||
| return TRUE; | return TRUE; | ||
| }; | }; | ||
| - | };</ | + | }; |
| ------ | ------ | ||
| - | <code C>IF (Npc_KnowsInfo(self, | + | IF (Npc_KnowsInfo(self, |
| Das ist der Kopf der Abfrage. IF ist das Schlüsselwort, | Das ist der Kopf der Abfrage. IF ist das Schlüsselwort, | ||
| ------ | ------ | ||
| - | <code C> | + | |
| { | { | ||
| return TRUE; | return TRUE; | ||
| }; | }; | ||
| - | </ | + | |
| 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 38: | Zeile 36: | ||
| So könnte das zum Beispiel aussehen: | So könnte das zum Beispiel aussehen: | ||
| - | <code C> | + | |
| { | { | ||
| - | | + | IF (Npc_KnowsInfo(other, |
| - | && (Npc_HasItems(other, | + | && (Npc_HasItems(other, |
| - | || (Npc_HasItems(other, | + | || (Npc_HasItems(other, |
| - | { | + | { |
| - | return TRUE; | + | return TRUE; |
| - | }; | + | }; |
| - | </ | + | }; |
| Hier würde sich das so lesen: | Hier würde sich das so lesen: | ||
| Zeile 59: | Zeile 57: | ||
| 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: | ||
| - | <code C>func int Npc_HasItems(var c_npc n0, var int iteminstance)</ | + | func int Npc_HasItems(var c_npc n0, var int iteminstance) |
| 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 68: | Zeile 66: | ||
| ------ | ------ | ||
| - | ===== 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 78: | Zeile 76: | ||
| <= kleiner oder gleich | <= kleiner oder gleich | ||
| < kleiner | < kleiner | ||
| - | </ | + | |
| Einiges davon ist sicher schon vom Mathematikunterricht bekannt. | Einiges davon ist sicher schon vom Mathematikunterricht bekannt. | ||