Benutzer-Werkzeuge

Webseiten-Werkzeuge


Dies ist eine alte Version des Dokuments!


Einleitung

In diesem (kurzgehaltenem) Tutorial werde ich euch zeigen, wie ihr die NPCs etwas „Inteligenter“ kämpfen lasst (eher dass die NPCs mehr blocken).
Ich werde erst den Code dazu schreiben, und hinterher erklären.

Was sollte ich können?

Es sollte reichen wenn man neue Funktionen o.a. schreiben kann.

Jetzt gehts los!

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.
Das sollte etwa so aussehen:
Kasten GMLif (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)

			AI_Attack (self);				//In der Funktion, in der AI_Attack aufgerufen wird DARF KEIN AI_ Befehl VOR AI_Attack kommen, da sonst AI_Attack ignoriert wird
		};	
	}
	else
	{
		Npc_ClearAIQueue(self); //killt den letzten AI_Attack-Befehl, verhindert z.B. stumpfes weiterrennen.
	};[[Kasten Ende]]

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 GMLif (other.aivar[AIV_INVINCIBLE] == FALSE) Nur NSCs angreifen, die NICHT im Talk sind
{
var int Variable; Variable = Hlp_Random(10);
var int Ani_Variable; Ani_Variable = Hlp_Random(1);
if (C_BodyStateContains(hero, BS_HIT))
&& (Variable >= 3)
{
if (Ani_Variable == 0)
{
AI_PlayAniBS (self, „t_FistParade_0“, BS_PARADE);
}
else if (Ani_Variable == 1)
{
AI_PlayAniBS (self, „t_FistParadeJumpB“, BS_PARADE);
};
}
else
{
führt Angriff mit Waffe oder Spell aus (Aktion wird durch FAI bestimmt)

			AI_Attack (self);				//In der Funktion, in der AI_Attack aufgerufen wird DARF KEIN AI_ Befehl VOR AI_Attack kommen, da sonst AI_Attack ignoriert wird
		};	
	}
	else
	{
		Npc_ClearAIQueue(self); //killt den letzten AI_Attack-Befehl, verhindert z.B. stumpfes weiterrennen.
	};[[Kasten Ende]]

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)