| SYNOPSIS |
| object environment(); |
| object environment(object obj); |
| object environment(string obj); |
| |
| ARGUMENTE: |
| obj |
| Objekt oder Pfad-String eines Objektes dessen Umgebungsobjekt |
| gesucht ist |
| |
| BESCHREIBUNG: |
| Es wird das Objekt bestimmt, in dem sich obj aufhaelt. |
| Wird obj nicht angegeben, so wird this_object() als Objekt angenommen. |
| |
| Zerstoerte Objekte haben kein Environment. |
| |
| BEMERKUNGEN: |
| - Blueprints, wie zum Beispiel Raeume haben oft kein environment(). Man |
| sollte daher ueberpruefen, ob ein environment() existiert, wenn man |
| darin oder darauf eine Funktion aufrufen will. |
| |
| BEISPIELE: |
| // In der Variable "raum" steht der Raum, in dem sich der Spieler derzeit |
| // aufhaelt - das kann auch 0 sein! |
| raum = environment(this_player()); |
| |
| // Dieses Objekt hat noch kein environment, da es eben erst geclont |
| // wurde. Ergo steht in env eine 0. |
| obj = clone_object("/std/thing"); |
| env = environment(obj); |
| |
| // alle Methoden die auf Environment arbeiten, sollten das vorher |
| // pruefen - insbesondere tell_room() |
| if(this_player() && environment(this_player()) && |
| objectp(o=present("schild",environment(this_player()))) { |
| |
| write("Du klebst Deine Plakette auf "+o->name(WEN)+".\n"); |
| tell_room(environment(this_player()), break_string( |
| this_player()->Name(WER)+" pappt einen Aufkleber auf "+ |
| o->name(WEN)+".",78), |
| ({this_player()})); |
| } |
| |
| // wenn Dinge sehr offensichtlich in Leuten kaputtgehen wird es |
| // komplexer (man kann das natuerlich noch weiter schachteln oder |
| // ueber all_environment() versuchen zu loesen |
| if(environment()) { |
| object ee; |
| ee=environment(environment()); |
| if(living(environment())) { |
| tell_object(environment(),Name(WER)+" zerfaellt.\n"); |
| if(ee) |
| tell_room(ee, |
| environment()->Name(WESSEN)+" "+name(RAW)+" zerfaellt.\n", |
| ({environment()})); |
| } else if(ee && living(ee)) |
| if(environment()->QueryProp(P_TRANSPARENT)) |
| tell_object(ee, Name(WER)+" zerfaellt in Deine"+ |
| (environment()->QueryProp(P_PLURAL)?"n": |
| (environment()->QueryProp(P_GENDER)==FEMALE?"r":"m"))+ |
| environment()->name(RAW)+".\n"); |
| } else tell_room(environment(),Name(WER)+" zerfaellt.\n"); |
| } |
| |
| SIEHE AUCH: |
| first_inventory(E), next_inventory(E), all_inventory(E) |
| all_environment(E) |
| |
| 20. Sep. 2002 Gloinson@MG |