Reagieren auf ein Bewegungsereignis anhand eines Kleeblattes
![]()
// ein vierblaettriges kleeblatt // nach dem verschenken sieht man in der P_LONG, von wem man // es bekommen hat // 2002 by Sunrise@Wunderland inherit "thing"; #pragma strong_types #include <moving.h> #include <events.h> #include <defines.h> #include <properties.h> void verschenken(mixed data, string type); void create() { if (!clonep()) return; ::create(); SetProp(P_NAME, "Kleeblatt"); SetProp(P_PLURAL, "Kleeblaetter"); SetProp(P_NAME_ADJ, "vierblaettrig"); SetProp(P_WEIGHT, 1); SetProp(P_BULKINESS, 1); SetProp(P_NOSELL, "Ein vierblaettriges KLeeblatt verkauft man nicht.\n"); SetProp(P_GENDER, NEUTER); SetProp(P_LONG, "Das ist ein sehr schoenes vierblaettriges Kleeblatt. Man sagt, es soll " "Glueck bringen."); AddId(({"blatt", "kleeblatt", "klee", "sunrise_klee"}), ({"blaetter", "kleeblaetter", "klee"})); SetProp(P_ADJECTIVES, ({"vierblaettrig", "vierblaettriges", "vier" "blaettrigem", "vierblaettrigen", "vierblaettrige"})); AddCmd("iss|esse&kleeblatt|klee|blatt", "klee_essen", "Was willst Du essen?"); AddCmd("zaehl|zaehle&blaetter", "zaehlen", "Was willst Du zaehlen?"); // hier lauschen wir dem Give-Event, wir wollen nur reagieren listen_event(ET_GIVE, EPRIO_REACT, #'verschenken); } void verschenken(mixed data, string type) { object schenker; string str; // Das uebergebene Object bin nicht ich: if (data[E_MOVE_OBJ] != ME) return; // Der 'Schenkende' ist kein Lebewesen if (!living(schenker=data[E_ACTOR])) return; // Jetzt aendern wir die Beschreibung des Kleeblatts und setzen // den Namen des Schenkers rein str= "Dieses vierblaettrige Kleeblatt wurde Dir von "+ schenker->name(WEM, NAME_AUTO)+" zum Zeichen "+ schenker->QueryPossPronoun(FEMALE, WESSEN, 0)+ " Zuneigung geschenkt. Hoffentlich bringt es Dir Glueck."; SetProp(P_LONG, str); } int zaehlen() { tell_object(PL, break_string( "Du haeltst das Kleeblatt weit von Dir und faengst dann an, " "mit ausgestrecktem Zeigefinger die Blaetter an dem Kleeblatt " "zu zaehlen:\nEins\nZwei\nDrei\nVier\nJa, es sind tatsaechlich " "vier Blaetter. Das Kleeblatt hat seinen Namen verdient.")); tell_room(environment(PL), break_string( PL->name(WER, NAME_AUTO|NAME_CAP)+" haelt ein Kleeblatt weit " "von sich weg und faengt an, seine Blaetter mit ausgestrecktem " "Zeigefinger zu zaehlen und murmelt dabei:\nEins\n" "Zwei\nDrei\nVier\nDann geht ploetzlich ein Strahlen der " "Erkenntnis ueber "+PL->QueryPossPronoun(NEUTER, WEN, 0)+" Gesicht. " "Es handelt sich wohl tatsaechlich um ein " "vierblaettriges Kleeblatt."), ({PL})); return 1; } int klee_essen() { tell_object(PL, "Bist Du ein Schaf oder eine Kuh, dass Du jetzt " "schon gruenen Klee isst?\n"); return 1; } |
| Start » Magierhandbuch » Dokumentation » Programmierbeispiele » Kleeblatt | |
|
| |