blob: 614320f1f2a20a2f16775cd9bb3071ccf5572233 [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001
2P_TARGET_AREA
3*************
4
5
6NAME
7====
8
9 P_TARGET_AREA "target_area"
10
11
12DEFINIERT IN
13============
14
15 <combat.h>
16
17
18BESCHREIBUNG
19============
20
21 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.
24
25
26BEMERKUNGEN
27===========
28
29 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.
32
33 Idealerweise sollte in mit P_TARGET_AREA angegebenen Raeumen auch
34 P_NEVER_CLEAN gesetzt sein.
35
36
37BEISPIELE
38=========
39
40 // #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