blob: 535bbf7a7e6dcdb30e32db8baa71c3ef2626fef3 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001P_TARGET_AREA
Zesstra953f9972017-02-18 15:37:36 +01002*************
MG Mud User88f12472016-06-24 23:31:02 +02003
MG Mud User88f12472016-06-24 23:31:02 +02004
Zesstra953f9972017-02-18 15:37:36 +01005NAME
6====
MG Mud User88f12472016-06-24 23:31:02 +02007
Zesstra953f9972017-02-18 15:37:36 +01008 P_TARGET_AREA "target_area"
MG Mud User88f12472016-06-24 23:31:02 +02009
MG Mud User88f12472016-06-24 23:31:02 +020010
Zesstra953f9972017-02-18 15:37:36 +010011DEFINIERT IN
12============
MG Mud User88f12472016-06-24 23:31:02 +020013
Zesstra953f9972017-02-18 15:37:36 +010014 <combat.h>
MG Mud User88f12472016-06-24 23:31:02 +020015
MG Mud User88f12472016-06-24 23:31:02 +020016
Zesstra953f9972017-02-18 15:37:36 +010017BESCHREIBUNG
18============
MG Mud User88f12472016-06-24 23:31:02 +020019
Zesstra953f9972017-02-18 15:37:36 +010020 Kann in einem Raum gesetzt werden, um einen anderen, von dort aus mit
21 Fernkampfwaffen beschiessbaren Raum als Objekt oder Objektnamen (zu
22 einem geladenen Objekt) festzulegen.
MG Mud User88f12472016-06-24 23:31:02 +020023
MG Mud User88f12472016-06-24 23:31:02 +020024
Zesstra953f9972017-02-18 15:37:36 +010025BEMERKUNGEN
26===========
MG Mud User88f12472016-06-24 23:31:02 +020027
Zesstra953f9972017-02-18 15:37:36 +010028 Ein Schuetze kann nur in den anderen Raum schiessen, wenn die P_RANGE
29 seiner Waffe mindest gleich der P_SHOOTING_AREA des Raums (nicht des
30 Zielraums) ist.
MG Mud User88f12472016-06-24 23:31:02 +020031
Zesstra953f9972017-02-18 15:37:36 +010032 Idealerweise sollte in mit P_TARGET_AREA angegebenen Raeumen auch
33 P_NEVER_CLEAN gesetzt sein.
MG Mud User88f12472016-06-24 23:31:02 +020034
MG Mud User88f12472016-06-24 23:31:02 +020035
Zesstra953f9972017-02-18 15:37:36 +010036BEISPIELE
37=========
MG Mud User88f12472016-06-24 23:31:02 +020038
Zesstra953f9972017-02-18 15:37:36 +010039 // #1 Ein Baum-Raum (/std/room)
40 void create() {
41 ::create();
42 SetProp(P_INT_SHORT, "Auf einem Baum");
43 SetProp(P_INT_LONG, break_string("Du hockst auf einem Baum und kannst "
44 "auf die Lichtung unter Dir sehen.\n");
45
46 AddExit("unten", RAEUME("lichtung"));
47
48 SetProp(P_TARGET_AREA, RAEUME("lichtung")); // Lichtung beschiessbar
49 SetProp(P_SHOOTING_AREA, 15); // 15 Entfernung
50 }
51
52 // #2 Ein Elefanten-Transporter (/std/transport)
53 // Er trampelt durch mehrere Raeume durch und der Schuetze kann vom
54 // Ruecken des Elefanten aus auf Gegner draussen schiessen.
55 void create() {
56 ::create();
57 SetProp(P_NAME, "Kampfelefant");
58 AddId(({"elefant", "kampfelefant")});
59 SetProp(P_GENDER, MALE);
60 SetProp(P_SHORT, "Ein Kampfelefant");
61 SetProp(P_INT_SHORT, "Auf einem Kampfelefanten");
62 // P_LONG, P_INT_LONG
63
64 SetProp(P_ENTERCMDS, ({"kletter", "erkletter"}));
65 SetProp(P_LEAVECMDS, ({"verlass", "verlasse"}));
66
67 SetProp(P_ARRIVEMSG, ({"Der Elefant trampelt in einen Raum.\n",
68 "Ein Kampfelefant trampelt herein.\n"}));
69 SetProp(P_DEPARTMSG, ({"Der Elefant trampelt weiter.\n",
70 "Der Kampfelefant trampelt weiter.\n"}));
71
72 SetProp(P_SHOOTING_AREA, 8); // weiter als 8 sollte man schiessen
73
74 AddRoute(RAEUME("schlachtfeld"), 20+random(10), 6, "Schlachtfeld");
75 AddRoute(RAEUME("burgtor"), 20+random(10), 6, "Burgtor");
76 AddRoute(RAEUME("burghof"), 20+random(10), 6, "Burghof");
77 AddRoute(RAEUME("halle"), 20+random(10), 6, "Halle");
78 AddRoute(RAEUME("bresche"), 20+random(10), 6, "Bresche");
79 // ...
80
81 Start();
82 }
83
84
85SIEHE AUCH
86==========
87
88 Generell: P_AMMUNITION, P_SHOOTING_WC, P_STRETCH_TIME
89 Methoden: FindRangedTarget(L), shoot_dam(L), cmd_shoot(L)
90 Gebiet: P_RANGE, P_SHOOTING_AREA
91 Raeume: P_NEVER_CLEAN
92 Sonstiges: fernwaffen
93
9429.Jul 2014 Gloinson