blob: 614320f1f2a20a2f16775cd9bb3071ccf5572233 [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001
MG Mud User88f12472016-06-24 23:31:02 +02002P_TARGET_AREA
Zesstra953f9972017-02-18 15:37:36 +01003*************
MG Mud User88f12472016-06-24 23:31:02 +02004
MG Mud User88f12472016-06-24 23:31:02 +02005
Zesstra953f9972017-02-18 15:37:36 +01006NAME
7====
MG Mud User88f12472016-06-24 23:31:02 +02008
Zesstra953f9972017-02-18 15:37:36 +01009 P_TARGET_AREA "target_area"
MG Mud User88f12472016-06-24 23:31:02 +020010
MG Mud User88f12472016-06-24 23:31:02 +020011
Zesstra953f9972017-02-18 15:37:36 +010012DEFINIERT IN
13============
MG Mud User88f12472016-06-24 23:31:02 +020014
Zesstra953f9972017-02-18 15:37:36 +010015 <combat.h>
MG Mud User88f12472016-06-24 23:31:02 +020016
MG Mud User88f12472016-06-24 23:31:02 +020017
Zesstra953f9972017-02-18 15:37:36 +010018BESCHREIBUNG
19============
MG Mud User88f12472016-06-24 23:31:02 +020020
Zesstra953f9972017-02-18 15:37:36 +010021 Kann in einem Raum gesetzt werden, um einen anderen, von dort aus mit
22 Fernkampfwaffen beschiessbaren Raum als Objekt oder Objektnamen (zu
23 einem geladenen Objekt) festzulegen.
MG Mud User88f12472016-06-24 23:31:02 +020024
MG Mud User88f12472016-06-24 23:31:02 +020025
Zesstra953f9972017-02-18 15:37:36 +010026BEMERKUNGEN
27===========
MG Mud User88f12472016-06-24 23:31:02 +020028
Zesstra953f9972017-02-18 15:37:36 +010029 Ein Schuetze kann nur in den anderen Raum schiessen, wenn die P_RANGE
30 seiner Waffe mindest gleich der P_SHOOTING_AREA des Raums (nicht des
31 Zielraums) ist.
MG Mud User88f12472016-06-24 23:31:02 +020032
Zesstra953f9972017-02-18 15:37:36 +010033 Idealerweise sollte in mit P_TARGET_AREA angegebenen Raeumen auch
34 P_NEVER_CLEAN gesetzt sein.
MG Mud User88f12472016-06-24 23:31:02 +020035
MG Mud User88f12472016-06-24 23:31:02 +020036
Zesstra953f9972017-02-18 15:37:36 +010037BEISPIELE
38=========
MG Mud User88f12472016-06-24 23:31:02 +020039
Zesstra953f9972017-02-18 15:37:36 +010040 // #1 Ein Baum-Raum (/std/room)
41 void create() {
42 ::create();
43 SetProp(P_INT_SHORT, "Auf einem Baum");
44 SetProp(P_INT_LONG, break_string("Du hockst auf einem Baum und kannst "
45 "auf die Lichtung unter Dir sehen.\n");
46
47 AddExit("unten", RAEUME("lichtung"));
48
49 SetProp(P_TARGET_AREA, RAEUME("lichtung")); // Lichtung beschiessbar
50 SetProp(P_SHOOTING_AREA, 15); // 15 Entfernung
51 }
52
53 // #2 Ein Elefanten-Transporter (/std/transport)
54 // Er trampelt durch mehrere Raeume durch und der Schuetze kann vom
55 // Ruecken des Elefanten aus auf Gegner draussen schiessen.
56 void create() {
57 ::create();
58 SetProp(P_NAME, "Kampfelefant");
59 AddId(({"elefant", "kampfelefant")});
60 SetProp(P_GENDER, MALE);
61 SetProp(P_SHORT, "Ein Kampfelefant");
62 SetProp(P_INT_SHORT, "Auf einem Kampfelefanten");
63 // P_LONG, P_INT_LONG
64
65 SetProp(P_ENTERCMDS, ({"kletter", "erkletter"}));
66 SetProp(P_LEAVECMDS, ({"verlass", "verlasse"}));
67
68 SetProp(P_ARRIVEMSG, ({"Der Elefant trampelt in einen Raum.\n",
69 "Ein Kampfelefant trampelt herein.\n"}));
70 SetProp(P_DEPARTMSG, ({"Der Elefant trampelt weiter.\n",
71 "Der Kampfelefant trampelt weiter.\n"}));
72
73 SetProp(P_SHOOTING_AREA, 8); // weiter als 8 sollte man schiessen
74
75 AddRoute(RAEUME("schlachtfeld"), 20+random(10), 6, "Schlachtfeld");
76 AddRoute(RAEUME("burgtor"), 20+random(10), 6, "Burgtor");
77 AddRoute(RAEUME("burghof"), 20+random(10), 6, "Burghof");
78 AddRoute(RAEUME("halle"), 20+random(10), 6, "Halle");
79 AddRoute(RAEUME("bresche"), 20+random(10), 6, "Bresche");
80 // ...
81
82 Start();
83 }
84
85
86SIEHE AUCH
87==========
88
89 Generell: P_AMMUNITION, P_SHOOTING_WC, P_STRETCH_TIME
90 Methoden: FindRangedTarget(L), shoot_dam(L), cmd_shoot(L)
91 Gebiet: P_RANGE, P_SHOOTING_AREA
92 Raeume: P_NEVER_CLEAN
93 Sonstiges: fernwaffen
94
9529.Jul 2014 Gloinson