Ein Mädchen mit Bonbons
![]()
// Das Mädchen gibt das Bonbon nur raus, wenn man mit "ja" anwortet. inherit "npc"; #include <properties.h> #include <events.h> #include <living/comm.h> #include <moving.h> string bonbon_info(); void ich_will(mixed data, string type, int prio); void create() { if (!clonep()) return; ::create(); create_default_npc(10); AddId(({"maedchen", "kind"}), ({"maedchen", "kinder"})); SetProp(P_NAME, "Maedchen"); SetProp(P_PLURAL, "Maedchen"); SetProp(P_LONG, "Das kleine Maedchen hat die Haende voller Bonbons. Ob sie Dir eins " "abgibt?"); AddInfo("bonbon", #'bonbon_info, "blickt Dich fragend an:"); listen_event(ET_COMM, EPRIO_REACT, #'ich_will); } string bonbon_info() { if (this_player()) this_player()->SetProp("bonbon_gefragt", 1); return "Willst Du eins?"; } void ich_will(mixed data, string type, int prio) { mixed antwort; object bonbon; if (!data[E_ACTOR]) return; // manche Kommunikationsverben verlangen ein "Opfer" // wir reagieren nur, wenn entweder keins angegeben wurde, oder wir es sind if (data[E_COMM_VICTIM] != this_object()) return; // hat derjenige schon gefragt? if (!data[E_ACTOR]->QueryProp("bonbon_gefragt")) return; // der Antwort-Text sollte "ja" enthalten antwort = data[E_COMM_TEXT][C_TEXT_OTHER]; // kein Antwort-String? if (!stringp(antwort)) return; // alles in Kleinbuchstaben wandeln antwort = lower_case(antwort); // Wir zerlegen den Antwort-String in seine Einzelteile antwort = efun::explode(antwort, " "); // ist "ja" enthalten? if (member(antwort, "ja") < 0) return; // nun bekommt der Spieler das Bonbon bonbon = clone_object("/obj/misc/bonbon"); if (bonbon->move(data[E_ACTOR], M_GIVE) < MOVE_OK) { say("Das Maedchen sagt: Du kannst es doch eh nicht mehr tragen.\n"); bonbon->remove(); return; } // Bei Erfolg setzen wir unser Testproperty wieder auf 0 data[E_ACTOR]->SetProp("bonbon_gefragt", 0); write("Das Maedchen gibt Dir ein Bonbon.\n"); say("Das Maedchen gibt "+data[E_ACTOR]->name(WEM, NAME_DEF)+" ein Bonbon.\n", data[E_ACTOR]); return; } |
| Start » Magierhandbuch » Dokumentation » Programmierbeispiele » Mädchen | |
|
| |