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