(Code des Testraum ist in /doc/beispiele/testobjekte/command_me_testraum)
// #1: Testraum, zwinge Spieler bei "schleiche heran" zum Furzen
// command_me() ist hier noetig, da das Furzen eine geschuetzte
// Kommandofunktion hat
inherit "/std/room";
void create() {
::create();
AddCmd("schleiche&heran|herum", "action_schleichen");
}
void init() {
::init();
add_action("action_kriechen", "kriech", 1);
}
static int action_schleichen(string str) {
string tmp = this_player()->QueryProp(P_RACE);
// ...
if(tmp[<1]=='e') tmp=tmp[0..<2];
write(break_string("Du versuchst leise zu schleichen, dabei passiert "
"dir aber ein allzu "+
(tmp=="Mensch"?"menschliches":lower_case(tmp)+"isches")+
" Missgeschick. Verflucht!", 78));
this_player()->command_me("\\furze");
return 1;
}
static int action_kriechen(string str) {
write(break_string("Deine Knie tun zu sehr weh dafuer.", 78));
tell_room(this_object(), break_string(this_player()->Name(WER)+
" knackt mit den Knien.", 78));
return 1;
}
// #2 (in obigem Raum): zwinge Spieler in Raum zu obigem Kommando
// Beide Kommandos gelingen, da Kommando mit AddCmd definiert.
find_player("naddl")->command_me("schleiche herum")
command("schleiche herum", find_player("naddl"));
// #3 (in obigem Raum): zwinge Spieler in Raum zu obigem Kommando
find_player("naddl")->command_me("krieche")
// Folgendes Kommando schlaegt fehl, da Kommandofunktion static ist.
command("krieche", find_player("naddl"));