SpellAttack()

FUNKTION

void SpellAttack(object enemy)

ARGUMENTE

enemy: Der Feind.

BESCHREIBUNG

Diese Funktion wird in jedem Heartbeat eines NPCs ausgefuehrt,
falls nicht P_DISABLE_ATTACK gesetzt ist (Paralyse).
Standardmaessig tut diese Funktion nichts, aber man kann sie
ueberschreiben, damit in jedem Heartbeat Angriffe mit Spells
ausgefuehrt werden.

Man sollte hierbei ein random() einbauen, damit der NPC nicht
in jedem Heartbeat auch wirklich einen Angriff ausfuehrt.
Ausserdem sollte man auch fuer eventuelle Ausgaben sorgen.

RUECKGABEWERT

Keiner.

BEMERKUNG

Die AttackChats, die mittels SetAttackChats gesetzt werden
koennen, macht im Grunde nichts anderes, aber Chats sind halt
keine Angriffe. :-)

BEISPIELE

Im Grunde ist dieses simple Beispiel eine Nachbildung von
Attack-Chats und soll dementsprechend nur der Anschauung dienen.

void SpellAttack(object enemy)
{
  // mit 80% Wahrscheinlichkeit wird nichts gemacht.
  switch(random(5))
  {
    case 0:
      write("Der Ork tritt Dir in den Hintern.\n");
      return;
    case 1:
      write("Der Ork bruellt: Lebend kommst Du hier nicht raus!\n");
      return;
    case 2:
      write("Der Ork blutet schon aus mehreren Wunden.\n");
      return;
    case 3:
      write(knirsch(enemy));
      return;
    default:
      return;
  }
}

string knirsch(object enemy)
{
   if (objectp(enemy))
     helm = enemy->QueryArmourByType(AT_HELMET);
   if (objectp(helm))
   {
     helm->Damage(1);
     return "Der Ork beschaedigt Deinen Helm!\n";
   }
   else
     return ""; // keine Meldung
}

SIEHE AUCH

"Attack", "SetAttackChats", /std/npc/combat.c

LETZTE AENDERUNG

Don, 27.02.2003, 12:50:00 von Hirudo