NPC's ohne C++ casten lassen

Hallo Community,

Nachdem hunderte Threads aufgemacht worden sind und ständig gefragt wurde, wie man NPC’s Spells

casten lässt, hab ich mal ein bissel das Internet durchforstet und mit dessen Hilfe euch dieses Tutorial

zusammengestellt, wie es OHNE C++ Scripts klappt.

Bedingungen: Ihr habt Ahnung, wie man mit Navicat umgeht und habt nen NPC, der den Spell casten soll

Also so läufts ab:

  1. Öffnet mit Navicat die World-Database und öffnet dort den Table “creature_ai_scripts”.

  2. Legt dort eine neue Spalte an

Und nun gehts los:

Tragt in der Spalte “ID” Irgendeine Zahl rein, die es in dem Table noch nicht gibt. (999999 z.B.)

In “Creature_ID” Gebt ihr die ID von euren erstellten NPC ein, sodass dann jeder NPC dieser Art den Spell castet.

In “event_type” gebt ihr ein, wann der Spell allgemein gewirkt werden soll:

1= Nur im Kampf

2= Nur außerhalb des Kamfpes

3= Wenn die HP des NPC’s einen bestimmten Wert erreicht haben in % gemessen

4= Wenn das Mana des NPC’s einen bestimmten Stand erreicht hat auch in % gemessen

Die Spalte “event_inverse_phase_mask” ist fürs erste unwichtig, also lasst diese Spalte auf 0

In der Spalte “event_chance” tragt ihr 100 ein, damit der NPC den Spell auch immer castet

In der Spalte “event_flags” tragt ihr 3 ein (kp wofür das ist, aber auf 3 wirds immer klappen)

In “event_param1” Tragt ihr ein, in was für einen minimalen Zeitraum der NPC’s den Spell casten wird (also z.b. 3000 = 3 sekunden / 80 = 80% mana, oder hp)

In “event_param2” Tragt ihr dementsprechend ein in was für einen Maximalen Zeitraum das passieren soll

In “event_param3” schreibt ihr rein, wie oft der Spell mindestens gecastet wird. (für event_type 4 lasst ihr dieses feld frei.)

In “event_param4” schreibt ihr denn rein, wie wie oft der Spell maximal gewirkt werden soll (bei event_type 4 frei lassen)

In "action1_type " schreibt ihr 11 rein

In “action1_param2” Tragt ihr die Spell ID ein, die der NPC casten soll

In “action1_param3” Tragt ihr ein, auf wen der Spell gecastet wird

0= Auf den NPC selbst (ideal für Buff’s)

1= Auf den Gegner (mit dem meisten Agro)

Den Rest könnt ihr leer lassen und so könnt ihr mit jeder neuen Reihe den NPC’s immer mehr Spell wirken lassen!

Ich hoffe es war möglichst einfach zu verstehen, und ich hoffe es hat euch geholfen!

Gruß: Dreadii

Und wenn man dann den Eintrag in der creature.template upped das beim entsprechenden NPC auch noch “EventAI” in AIName steht castet der auch tatsächlich xD

tjoa witziger weise castet der auch ohen das du inner creature template den kram eintragen musst, da jeder npc, der diesen spell verpasst bekommen hat das castet, musst also nur nen neuen npc anlegen, und den infach inner creature_ai_template eintragen, denn macht es auch jeder seiner art

Da wette ich gegen - mit dem Eintrag ins template sagst Du der Core ja erst das diese Entry die enstprechenden Casts aus der AI machen soll - woher sollte die Core das sonst wissen?

Probiers aus, da castet nix ohne den template-Eintrag

wie witzig, das ich hier nichts reinschreibe, was ich vorher net selber gemachthabe das denkste wofür Creature_ID gut ist ? diese spalte sacht der core, das jeder npc dieser art den spell machen soll

Beispiel: ich trage dort die creature id 68 ein, so wird jede sturmwindwache diesen spell casten

Und hier mal für nicht ganz so helle: Spalte “Creature_ID” → 68 = Core weiß, das jede Creature, die die Entry 68 hat diesen spell casten soll

Ja is gut, dann mach das mal so xD. Ich sag nix mehr dazu…

Und hier mal für nicht so ganz Helle:

Zitat:

“In der Spalte “event_flags” tragt ihr 3 ein (kp wofür das ist, aber auf 3 wirds immer klappen)”

Erklärung:

Die event flags sind ein Binärwert in den Ihr folgende Werte eintragen könnt (bei Mehrfachmöglichkeit addieren!)

1 EFLAG_REPEATABLE Event wiederholt sich (NICHT wenn das Flag nicht gesetzt ist)

2 EFLAG_DIFFICULTY_0 Event startet nur in instance difficulty 0 (nicht ohne Flag)

4 EFLAG_DIFFICULTY_1 Event startet nur in instance difficulty 1 (nicht ohne Flag)

8 EFLAG_DIFFICULTY_2 Event startet nur in instance difficulty 2 (nicht ohne Flag)

16 EFLAG_DIFFICULTY_3 Event startet nur in instance difficulty 3 (nicht ohne Flag)

128 EFLAG_DEBUG_ONLY Event Debug only!

Das heisst wenn Ihr wollt daß ein NPC einen Spell in allen Instanzmodi castet und das möglichst mehr wie einmal muss das Flag entsprechend 1+2+4+8+16 betragen (rechnen dürft Ihr selber) /emoticons/default_tongue.png

Gab es für die EventAIs nicht mal ein Tool^^

Das war ganz hilfreich.

Ja gibt es. Na ja ich denke noch großartig in der EventAI rumzuscripten is eh nich angebracht da Trin den ganzen Kram über kurz oder lang auf SmartAI umstellen wird. Das ist auch ganz gut so, SmartAI is um Einiges besser xD.

habe ein Problem bekomme immer die Fehler Meldung beim reloaden der Tabelle:

CreatureEventAI: Event 99999999 Action 1 uses incorrect Target type

woran liegt dieses Problem?

Dann haste wohl etwas in eine falsche Spalte eingetragen, denn ich habs mal eben kurz nochma nachgemacht, und ich kann mit navicat lite alles mühelos öffne und speichern

Truice, siehe meine Signatur^^ Sowohl SmartAI als auch EventAI werden unterstützt

Nen Tutorial für SmartAI wär wahrscheinlich besser gewesen, da EventAI über kurz oder lang entfernt wird. Aber ich denke mal, dass wenn man das Prinzip verstanden hat, auch mit SmartAI umzugehen weiß. Man braucht ja nur ins Wiki schauen