P_TARGET_AREA

NAME

P_TARGET_AREA     "target_area"

DEFINIERT IN

<combat.h>

BESCHREIBUNG

Kann in einem Raum gesetzt werden, um einen anderen, von dort aus mit
Fernkampfwaffen beschiessbaren Raum als Objekt oder Objektnamen (zu
einem geladenen Objekt) festzulegen.

BEMERKUNGEN

Ein Schuetze kann nur in den anderen Raum schiessen, wenn die P_RANGE
seiner Waffe mindest gleich der P_SHOOTING_AREA des Raums (nicht des
Zielraums) ist.

Idealerweise sollte in mit P_TARGET_AREA angegebenen Raeumen auch
P_NEVER_CLEAN gesetzt sein.

BEISPIELE

// #1 Ein Baum-Raum (/std/room)
void create() {
  ::create();
  SetProp(P_INT_SHORT, "Auf einem Baum");
  SetProp(P_INT_LONG, break_string("Du hockst auf einem Baum und kannst "
    "auf die Lichtung unter Dir sehen.\n");

  AddExit("unten", RAEUME("lichtung"));

  SetProp(P_TARGET_AREA, RAEUME("lichtung"));  // Lichtung beschiessbar
  SetProp(P_SHOOTING_AREA, 15);                // 15 Entfernung
}

// #2 Ein Elefanten-Transporter (/std/transport)
// Er trampelt durch mehrere Raeume durch und der Schuetze kann vom
// Ruecken des Elefanten aus auf Gegner draussen schiessen.
void create() {
  ::create();
  SetProp(P_NAME, "Kampfelefant");
  AddId(({"elefant", "kampfelefant")});
  SetProp(P_GENDER, MALE);
  SetProp(P_SHORT, "Ein Kampfelefant");
  SetProp(P_INT_SHORT, "Auf einem Kampfelefanten");
  // P_LONG, P_INT_LONG

  SetProp(P_ENTERCMDS, ({"kletter", "erkletter"}));
  SetProp(P_LEAVECMDS, ({"verlass", "verlasse"}));

  SetProp(P_ARRIVEMSG, ({"Der Elefant trampelt in einen Raum.\n",
                         "Ein Kampfelefant trampelt herein.\n"}));
  SetProp(P_DEPARTMSG, ({"Der Elefant trampelt weiter.\n",
                         "Der Kampfelefant trampelt weiter.\n"}));

  SetProp(P_SHOOTING_AREA, 8); // weiter als 8 sollte man schiessen

  AddRoute(RAEUME("schlachtfeld"), 20+random(10), 6, "Schlachtfeld");
  AddRoute(RAEUME("burgtor"), 20+random(10), 6, "Burgtor");
  AddRoute(RAEUME("burghof"), 20+random(10), 6, "Burghof");
  AddRoute(RAEUME("halle"), 20+random(10), 6, "Halle");
  AddRoute(RAEUME("bresche"), 20+random(10), 6, "Bresche");
  // ...

  Start();
}

SIEHE AUCH

Generell:  P_AMMUNITION, P_SHOOTING_WC, P_STRETCH_TIME
Methoden:  FindRangedTarget(L), shoot_dam(L), cmd_shoot(L)
Gebiet:    P_RANGE, P_SHOOTING_AREA
Raeume:    P_NEVER_CLEAN
Sonstiges: fernwaffen

29.Jul 2014 Gloinson