blob: 09d6c0bc1aff464f80c57e3945c02308ca34fbf2 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001command()
2FUNKTION:
3 int command(string str)
4 int command(string str, object ob)
5
6BESCHREIBUNG:
7 Fuehrt str wie ein Kommando welches direkt vom Nutzer abgegeben wurde
8 aus. Alle Effekte des Kommandos wirken sich auf this_object() oder,
9 falls angegeben, auf das Objekt <obj> aus.
10
11 Der Rueckgabewert ist >=1 fuer Erfolg und 0 fuer Misserfolg.
12 Rueckgabewert ist im Erfolgsfall die Hoehe der EvalCost in Ticks.
13
14 Wenn command() auf ein anderes Objekt angewendet wird, koennen auf
15 diesem Wege keine "static" deklarierten Funktionen aufgerufen werden,
16 um etwas Schutz vor unerlaubten Aufrufen zu geben.
17
18 Kommandi werden gestapelt, das heisst, nach der Ausfuehrung von <str>
19 werden die alten Werte fuer this_player(), query_verb() etc. wieder
20 hergestellt (ein Kommando kann dazu fuehren, dass ein Kommando
21 ausgefuehrt wird).
22
23BEMERKUNGEN:
24 Die meisten in Lebewesen definierten Kommandofunktionen sind vor
25 aeusserem Aufrufen durch "static" oAe geschuetzt. Zum Ausfuehren dieser
26 Kommandos muss command_me(L) eingesetzt werden, um diesen Schutz zu
27 umgehen.
28
29BEISPIELE:
30 Siehe command_me(L) fuer einen Vergleich.
31
32 // #1 Ein NPC nimmt und zuendet eine herumliegende /std/lightsource an
33 object f = present("\nlichtquelle", environment());
34 if(f && command("nimm lichtquelle"))
35 if(command("zuende lichtquelle an"))
36 tell_room(environment(), Name(WER)+" freut sich.\n");
37 else
38 tell_room(environment(), Name(WER)+" schaut bedroeppelt.\n");
39
40 // #2 Ein NPC traegt seine Sachen
41 clone_object("/ruestung/sommerkleid")->move(this_object(), 2);
42 command("trage kleid")
43 // aequivalent und besser ist hier:
44 AddItem("/ruestung/sommerkleid", REFRESH_REMOVE|CLONE_WEAR);
45
46SIEHE AUCH
47 command_stack(E), notify_fail(E), enable_commands(E), get_eval_cost(E)
48 command_me(L)
49
506 Sep 2012 Gloinson