| command() |
| FUNKTION: |
| int command(string str) |
| int command(string str, object ob) |
| |
| BESCHREIBUNG: |
| Fuehrt str wie ein Kommando welches direkt vom Nutzer abgegeben wurde |
| aus. Alle Effekte des Kommandos wirken sich auf this_object() oder, |
| falls angegeben, auf das Objekt <obj> aus. |
| |
| Der Rueckgabewert ist >=1 fuer Erfolg und 0 fuer Misserfolg. |
| Rueckgabewert ist im Erfolgsfall die Hoehe der EvalCost in Ticks. |
| |
| Wenn command() auf ein anderes Objekt angewendet wird, koennen auf |
| diesem Wege keine "static" deklarierten Funktionen aufgerufen werden, |
| um etwas Schutz vor unerlaubten Aufrufen zu geben. |
| |
| Kommandi werden gestapelt, das heisst, nach der Ausfuehrung von <str> |
| werden die alten Werte fuer this_player(), query_verb() etc. wieder |
| hergestellt (ein Kommando kann dazu fuehren, dass ein Kommando |
| ausgefuehrt wird). |
| |
| BEMERKUNGEN: |
| Die meisten in Lebewesen definierten Kommandofunktionen sind vor |
| aeusserem Aufrufen durch "static" oAe geschuetzt. Zum Ausfuehren dieser |
| Kommandos muss command_me(L) eingesetzt werden, um diesen Schutz zu |
| umgehen. |
| |
| BEISPIELE: |
| Siehe command_me(L) fuer einen Vergleich. |
| |
| // #1 Ein NPC nimmt und zuendet eine herumliegende /std/lightsource an |
| object f = present("\nlichtquelle", environment()); |
| if(f && command("nimm lichtquelle")) |
| if(command("zuende lichtquelle an")) |
| tell_room(environment(), Name(WER)+" freut sich.\n"); |
| else |
| tell_room(environment(), Name(WER)+" schaut bedroeppelt.\n"); |
| |
| // #2 Ein NPC traegt seine Sachen |
| clone_object("/ruestung/sommerkleid")->move(this_object(), 2); |
| command("trage kleid") |
| // aequivalent und besser ist hier: |
| AddItem("/ruestung/sommerkleid", REFRESH_REMOVE|CLONE_WEAR); |
| |
| SIEHE AUCH |
| command_stack(E), notify_fail(E), enable_commands(E), get_eval_cost(E) |
| command_me(L) |
| |
| 6 Sep 2012 Gloinson |