Benutzer-Werkzeuge

Webseiten-Werkzeuge


Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Nächste Überarbeitung
Vorherige Überarbeitung
quickstart:skripte:kampf-ki [2015/08/18 22:15]
127.0.0.1 Externe Bearbeitung
quickstart:skripte:kampf-ki [2016/02/07 22:25] (aktuell)
milgo
Zeile 1: Zeile 1:
-==  ​Einleitung ​== +===== Kampf-KI verbessern ===== 
-In diesem (kurzgehaltenem) Tutorial werde ich euch zeigen, wie ihr die NPCs etwas "Inteligenter" kämpfen lasst (eher dass die NPCs mehr blocken).+In diesem (kurzgehaltenem) Tutorial werde ich euch zeigen, wie ihr die NPCs etwas "intelligenter" kämpfen lasst (eher dass die NPCs mehr blocken).
 Ich werde erst den Code dazu schreiben, und hinterher erklären. Ich werde erst den Code dazu schreiben, und hinterher erklären.
-==  Was sollte ich können? == +==== Was sollte ich können? ​==== 
-Es sollte reichen wenn man neue Funktionen ​o.a. schreiben kann. +Es sollte reichen wenn man neue Funktionen schreiben kann. 
-==  Jetzt gehts los! == +==== Jetzt gehts los! ==== 
-Als erstes öffnet ihr die [GDATA]/​_work/​data/​Scripts/​Content/​AI/​Human/​ZS_Human/​ZS_Attack.d! +Als erstes öffnet ihr die ''​[GDATA]/​_work/​data/​Scripts/​Content/​AI/​Human/​ZS_Human/​ZS_Attack.d''​
-In dieser Datei gibt es die Funktion: AI_Attack (self); nach der wir suchen müssen.+In dieser Datei gibt es die Funktion: ​''​AI_Attack (self);'' ​nach der wir suchen müssen.
 Das sollte etwa so aussehen: Das sollte etwa so aussehen:
-[[Kasten GML]]if (other.aivar[AIV_INVINCIBLE] == FALSE) // Nur NSCs angreifen, die NICHT im Talk sind+ 
 +<code C> 
 +if (other.aivar[AIV_INVINCIBLE] == FALSE) // Nur NSCs angreifen, die NICHT im Talk sind
  {  {
  //​führt Angriff mit Waffe oder Spell aus (Aktion wird durch FAI bestimmt)  //​führt Angriff mit Waffe oder Spell aus (Aktion wird durch FAI bestimmt)
Zeile 17: Zeile 19:
  {  {
  Npc_ClearAIQueue(self);​ //killt den letzten AI_Attack-Befehl,​ verhindert z.B. stumpfes weiterrennen.  Npc_ClearAIQueue(self);​ //killt den letzten AI_Attack-Befehl,​ verhindert z.B. stumpfes weiterrennen.
- };[[Kasten Ende]]+ }; 
 +</​code>​
 In der if Abfrage baut ihr nun einige andere ein, z.B. ob der Hero gerade schlägt, und eine bestimmte Variable den richtigen Wert hat! Dies könnte so aussehen: In der if Abfrage baut ihr nun einige andere ein, z.B. ob der Hero gerade schlägt, und eine bestimmte Variable den richtigen Wert hat! Dies könnte so aussehen:
-[[Kasten GML]]if (other.aivar[AIV_INVINCIBLE] == FALSE) // Nur NSCs angreifen, die NICHT im Talk sind+ 
 +<code C> 
 +if (other.aivar[AIV_INVINCIBLE] == FALSE) // Nur NSCs angreifen, die NICHT im Talk sind
  {  {
 var int Variable; Variable = Hlp_Random(10);​ var int Variable; Variable = Hlp_Random(10);​
Zeile 44: Zeile 49:
  {  {
  Npc_ClearAIQueue(self);​ //killt den letzten AI_Attack-Befehl,​ verhindert z.B. stumpfes weiterrennen.  Npc_ClearAIQueue(self);​ //killt den letzten AI_Attack-Befehl,​ verhindert z.B. stumpfes weiterrennen.
- };[[Kasten Ende]]+ }; 
 +</​code>​ 
 MfG Marlus MfG Marlus
-Ich werde bald weiterschreiben,​ aber der Grundbaustein für vernünftig blockende NPCs ist schon da. 
quickstart/skripte/kampf-ki.1439928952.txt.gz · Zuletzt geändert: 2016/02/07 14:33 (Externe Bearbeitung)