jail.c-Dateireferenz

#include <properties.h>
#include <wizlevels.h>
#include <hook.h>
Include-Abhängigkeitsdiagramm für jail.c:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define OFFICE   "/d/wueste/catweazle/room/office"

Funktionen

 create ()
 init ()
void exit (object liv)
 bla ()
 murks (str)
public varargs remove (int silent)
public string NotifyDestruct (object caller)
status HookRegistrationCallback (object registringObject, int hookid, object hookSource, int registringObjectsPriority, int registringObjectsType)
status HookCancelAllowanceCallback (object cancellingObject, int hookid, object hookSource, int cancellingObjectsPriority, mixed hookData)
status HookModificationAllowanceCallback (object modifyingObject, int hookid, object hookSource, int modifyingObjectsPriority, mixed hookData)
mixed HookCallback (object hookSource, int hookid, mixed hookData)
varargs void NotifyRemove (object ob)

Variablen

inherit std room
inherit std hook_consumer

Makro-Dokumentation

#define OFFICE   "/d/wueste/catweazle/room/office"

Definiert in Zeile 4 der Datei jail.c.


Dokumentation der Funktionen

bla (  ) 

Definiert in Zeile 46 der Datei jail.c.

Benutzt input_to().

00047 {
00048   string v;
00049 
00050   v=query_verb();
00051   input_to("murks",0);
00052   // sagen und schlafen erlaubt.
00053   if (stringp(v) && (v=="sag"||v=="sage"||v[0]=='\''
00054         ||v=="schlafe"||v=="schlaf"))
00055       return 0;
00056   write("Nix da.\n");
00057   return 1;
00058 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

create (  ) 

Definiert in Zeile 10 der Datei jail.c.

Benutzt break_string(), create(), P_INDOORS, P_INT_LONG, P_INT_SHORT, P_LIGHT und SetProp().

00011 {
00012   ::create();
00013   SetProp(P_LIGHT, 1 );
00014   SetProp(P_INT_SHORT,"Eine Gefaengniszelle");
00015   SetProp(P_INT_LONG, break_string(
00016       "Die Zelle ist absolut eintoenig und hat keine Fenster. Lange hier drin"
00017       "zu sitzen ist bestimmt nicht angenehm. Wenn du hier heraus willst, "
00018       "kannst Du wohl nur den Sheriff, seinen Stellvertreter oder einen "
00019       "Erzmagier darum bitten.",78));
00020   SetProp(P_INDOORS,1);
00021 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

void exit ( object  liv  ) 

Definiert in Zeile 41 der Datei jail.c.

Benutzt H_HOOK_MOVE und IS_DEPUTY.

00041                       {
00042   if (objectp(liv) && !IS_DEPUTY(liv))
00043     liv->HUnregisterFromHook(H_HOOK_MOVE,this_object());
00044 }

mixed HookCallback ( object  hookSource,
int  hookid,
mixed  hookData 
)

Definiert in Zeile 138 der Datei jail.c.

Benutzt H_CANCELLED, H_HOOK_MOVE, H_NO_MOD und IS_DEPUTY.

00138                                                                   {
00139   // nur move hooks sind interessant hier.
00140   if (hookid != H_HOOK_MOVE)
00141     return ({H_NO_MOD, hookData});
00142 
00143   // das duerfte eigentlich nicht vorkommen, da der Hook im exit() geloescht
00144   // wird...
00145   if (environment(hookSource) != this_object()) {
00146     hookSource->HUnregisterFromHook(H_HOOK_MOVE,this_object());
00147     return ({H_NO_MOD, hookData});
00148   }
00149 
00150   // Bewegungen in den Netztotenraum sind ok.
00151   if (!interactive(hookSource)
00152       && pointerp(hookData) && sizeof(hookData) >= 1) {
00153     if ((objectp(hookData[0])
00154                   && object_name(hookData[0]) == "/room/netztot")
00155                 || (stringp(hookData[0]) && hookData[0]=="/room/netztot") ) {
00156       return ({H_NO_MOD, hookData});
00157     }
00158   }
00159 
00160   // Deputy (oder hoeher), kein process_call(). Sonst wird die Bewegung
00161   // abgebrochen.
00162   if (!this_interactive() || !IS_DEPUTY(this_interactive())) {
00163       return ({H_CANCELLED, hookData});
00164   }
00165 
00166   return ({H_NO_MOD, hookData});
00167 }

status HookCancelAllowanceCallback ( object  cancellingObject,
int  hookid,
object  hookSource,
int  cancellingObjectsPriority,
mixed  hookData 
)

Definiert in Zeile 121 der Datei jail.c.

Benutzt H_HOOK_MOVE.

00122                                                                {
00123     if (hookid==H_HOOK_MOVE && cancellingObject != this_object()
00124                 && present(hookSource,this_object()))
00125                 return 0;
00126 
00127     return 1;
00128 }

status HookModificationAllowanceCallback ( object  modifyingObject,
int  hookid,
object  hookSource,
int  modifyingObjectsPriority,
mixed  hookData 
)

Definiert in Zeile 129 der Datei jail.c.

Benutzt H_HOOK_MOVE.

00130                                                                      { 
00131     if (hookid==H_HOOK_MOVE && modifyingObject != this_object()
00132                 && present(hookSource,this_object()))
00133                 return 0;
00134 
00135     return 1;
00136 }

status HookRegistrationCallback ( object  registringObject,
int  hookid,
object  hookSource,
int  registringObjectsPriority,
int  registringObjectsType 
)

Definiert in Zeile 114 der Datei jail.c.

Benutzt H_HOOK_MOVE.

00115                                                                           {
00116     if (hookid==H_HOOK_MOVE)
00117                 return 0;
00118 
00119     return 1;
00120 }

init (  ) 

Definiert in Zeile 23 der Datei jail.c.

Benutzt H_HOOK_LIBPRIO, H_HOOK_MOVE, H_HOOK_SURVEYOR, HRegisterToHook(), init(), input_to() und IS_DEPUTY.

00024 {
00025   ::init();
00026   if (!query_once_interactive(this_player()))
00027     return;
00028   if ( IS_DEPUTY(this_player()) ) // EM+ sind sowieso Deputies
00029     return;
00030   add_action("bla","",1);
00031   input_to("murks",0);
00032 
00033   // Move-Hook anhaengen
00034   if (!this_player()->HRegisterToHook(H_HOOK_MOVE, this_object(), 
00035                                  H_HOOK_LIBPRIO(1),H_HOOK_SURVEYOR,
00036                                                                  -1))
00037       raise_error("Fehler: Move-Hook konnte nicht registriert werden.\n");
00038 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

murks ( str   ) 

Definiert in Zeile 60 der Datei jail.c.

Benutzt break_string(), input_to(), name und old_explode().

00061 {
00062   if (!this_player() || environment(this_player())!=this_object()) 
00063       return;
00064 
00065   input_to("murks",0);
00066 
00067   if (!str||str=="") return 1;
00068   // Einschlafen erlaubt.
00069   if (str == "schlafe ein") {
00070       this_player()->command("schlafe ein");
00071       return 1;
00072   }
00073   if (str[0]=='\'') str="sag "+str[1..];
00074   if(str[0..3]=="sag "||str[0..4]=="sage ")
00075   {
00076        str=implode(old_explode(str," ")[1..]," ");
00077      write(break_string(str, 78, "Du sagst: "));
00078      tell_room(this_object(),break_string(str,78,
00079          capitalize(this_player()->name())+" sagt: "),({this_player()}));
00080      return 1;
00081   }
00082   write("Nix da.\n");
00083   return 1;
00084 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

public string NotifyDestruct ( object  caller  ) 

Definiert in Zeile 94 der Datei jail.c.

00094                                             {
00095 
00096   if (previous_object() != master()
00097       || caller == this_object())
00098     return 0;
00099 
00100   // wenn keiner hier ist, ists egal.
00101   if (!sizeof(filter(all_inventory(),#'query_once_interactive)))
00102     return 0;
00103 
00104   // Direkter Destruct mit Anwesenden nur fuer EM+
00105   if (!process_call() && this_interactive()
00106       && IS_ARCH(this_interactive()))
00107     return 0;
00108       
00109   return "Direkte Zerstoerung des Jails nur fuer EM+ erlaubt.\n";
00110 }

varargs void NotifyRemove ( object  ob  ) 

Definiert in Zeile 171 der Datei jail.c.

Benutzt IS_DEPUTY und P_START_HOME.

00171                                      {
00172   if (objectp(ob) && query_once_interactive(ob) && !IS_DEPUTY(ob)) {
00173     ob->SetProp(P_START_HOME,"/room/jail");
00174     ob->save_me(0);
00175   }
00176 }

public varargs remove ( int  silent  ) 

Definiert in Zeile 86 der Datei jail.c.

00086                                   {
00087   // keine Zerstoerung, wenn Spieler drin sind.
00088   if (sizeof(filter(all_inventory(),#'query_once_interactive)))
00089     return 0;
00090 
00091   return ::remove(1);
00092 }


Variablen-Dokumentation

inherit std hook_consumer

Definiert in Zeile 2 der Datei jail.c.

inherit std room

Definiert in Zeile 1 der Datei jail.c.

Erzeugt am Thu Jun 3 14:41:04 2010 für MorgenGrauen Mudlib von  doxygen 1.6.3