gildenmaster.c-Dateireferenz

#include <thing/properties.h>
#include <wizlevels.h>
#include <new_skills.h>
#include <events.h>
Include-Abhängigkeitsdiagramm für gildenmaster.c:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define NEED_PROTOTYPES

Funktionen

void create ()
public mixed QueryProp (string name)
nomask int beitreten ()
static nomask void loose_ability (mixed key, mixed dat, int loss)
varargs nomask int austreten (int loss)
static nomask int security_check ()
nomask int AddGuild (string gildob)
nomask int RemoveGuild (string gildob)
nomask int ValidGuild (string gildenob)

Variablen

string * valid_guilds = ({})

Makro-Dokumentation

#define NEED_PROTOTYPES

Definiert in Zeile 11 der Datei gildenmaster.c.


Dokumentation der Funktionen

nomask int AddGuild ( string  gildob  ) 

Definiert in Zeile 124 der Datei gildenmaster.c.

Benutzt GUILD_DIR, GUILD_SAVEFILE, save_object(), security_check() und valid_guilds.

00124                                    {
00125   object tp;
00126 
00127   if (!stringp(gildob) || !strlen(gildob) || !security_check() 
00128       || file_size(GUILD_DIR+gildob+".c")<0)
00129       return 0;
00130   if (member(valid_guilds, gildob) != -1)
00131       return 0;
00132   valid_guilds+=({gildob});
00133   save_object(GUILD_SAVEFILE);
00134   return 1;
00135 }

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

varargs nomask int austreten ( int  loss  ) 

Definiert in Zeile 81 der Datei gildenmaster.c.

Benutzt DEFAULT_GUILD, E_ENVIRONMENT, E_GUILDNAME, E_LAST_GUILDNAME, E_OBJECT, E_PLNAME, EVENTD, EVT_GUILD_CHANGE, gilde, gname, GUILD_DIR, P_DEFAULT_GUILD, P_GUILD, P_NEWSKILLS, pl und skills.

00081                                        {
00082   object pl,gilde;
00083   string gname;
00084   mapping skills;
00085 
00086   if (!(pl=this_player()) || !(gilde=previous_object()))
00087                 return 0;
00088   // Gilden muessen Blueprints sein, so. ;-)
00089   gname=object_name(gilde);
00090   if (gname[0..7]!=GUILD_DIR ||
00091                   ((string)pl->QueryProp(P_GUILD))!=gname[8..]) {
00092                 write("Du kannst hier nicht aus einer anderen Gilde austreten.\n");
00093                 return -1;
00094   }
00095   if (gname[8..]==(pl->QueryProp(P_DEFAULT_GUILD)||DEFAULT_GUILD))
00096   {
00097         write("Aus dieser Gilde kannst Du nicht austreten.\n");
00098         return -1;
00099   }
00100   if (loss<=0) loss=20;
00101   skills=(mapping)pl->QueryProp(P_NEWSKILLS);
00102   walk_mapping(skills,"loose_ability",this_object(),loss);
00103   pl->SetProp(P_NEWSKILLS,skills);
00104   pl->SetProp(P_GUILD,0);
00105   // Event Gildenwechsel triggern
00106   EVENTD->TriggerEvent(EVT_GUILD_CHANGE, ([
00107                 E_OBJECT: pl, E_PLNAME: getuid(pl),
00108                 E_ENVIRONMENT: environment(pl),
00109                 E_GUILDNAME: pl->QueryProp(P_GUILD),
00110                 E_LAST_GUILDNAME: gname ]) );
00111   
00112   return 1;
00113 }

nomask int beitreten (  ) 

Definiert in Zeile 35 der Datei gildenmaster.c.

Benutzt DEFAULT_GUILD, E_ENVIRONMENT, E_GUILDNAME, E_LAST_GUILDNAME, E_OBJECT, E_PLNAME, EVENTD, EVT_GUILD_CHANGE, gilde, gname, GUILD_DIR, P_DEFAULT_GUILD, P_GUILD, pl und valid_guilds.

00035                        {
00036   object pl,gilde;
00037   string gname,ogname;
00038 
00039   if (!(pl=this_player()) || !(gilde=previous_object()))
00040                 return 0;
00041   // Gilden sind Blueprints.
00042   gname=object_name(gilde);
00043   if ((ogname=(string)pl->QueryProp(P_GUILD)) && 
00044       (ogname!=(((string)pl->QueryProp(P_DEFAULT_GUILD)) || DEFAULT_GUILD))) {
00045     if ((GUILD_DIR+ogname)==gname) {
00046       write("Du bist schon in dieser Gilde.\n");
00047       return -4;
00048     }
00049     write("Du bist noch in einer anderen Gilde.\n");
00050     return -1;
00051   }
00052   if (gname[0..7]!=GUILD_DIR ||
00053                   member(valid_guilds,(gname=gname[8..]))<0) {
00054                 write("Diese Gilde ist leider nicht zugelassen.\n"+
00055                                   "Bitte verstaendige einen Erzmagier.\n");
00056                 return -2;
00057   }
00058   pl->SetProp(P_GUILD,gname);
00059   // Event Gildenwechsel triggern
00060   EVENTD->TriggerEvent(EVT_GUILD_CHANGE, ([
00061                 E_OBJECT: pl, E_PLNAME: getuid(pl),
00062                 E_ENVIRONMENT: environment(pl),
00063                 E_GUILDNAME: gname,
00064                 E_LAST_GUILDNAME: ogname ]) );
00065 
00066   return 1;
00067 }

void create (  ) 

Definiert in Zeile 20 der Datei gildenmaster.c.

Benutzt GUILD_SAVEFILE, restore_object() und valid_guilds.

00020               {
00021   seteuid(getuid(this_object()));
00022   restore_object(GUILD_SAVEFILE);
00023   if (!pointerp(valid_guilds)) 
00024     valid_guilds=({});
00025 }

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

static nomask void loose_ability ( mixed  key,
mixed  dat,
int  loss 
) [static]

Definiert in Zeile 69 der Datei gildenmaster.c.

Benutzt SI_SKILLABILITY.

00069                                                                  {
00070   mixed val;
00071 
00072   val=mappingp(dat)?dat[SI_SKILLABILITY]:dat;
00073   if (!intp(val) || val<=0) return;
00074   val-=(val*loss)/100;if (val<=0) val=1;
00075   if (mappingp(dat))
00076                 dat[SI_SKILLABILITY]=val;
00077   else
00078                 dat=val;
00079 }

public mixed QueryProp ( string  name  ) 

Definiert in Zeile 28 der Datei gildenmaster.c.

Benutzt P_VALID_GUILDS und valid_guilds.

00029 {
00030   if (name==P_VALID_GUILDS) 
00031       return copy(valid_guilds);
00032   return 0;
00033 }

nomask int RemoveGuild ( string  gildob  ) 

Definiert in Zeile 137 der Datei gildenmaster.c.

Benutzt GUILD_SAVEFILE, save_object(), security_check() und valid_guilds.

00137                                       {
00138   object tp;
00139 
00140   if (!stringp(gildob) || !strlen(gildob) 
00141       || !security_check())
00142       return 0;
00143   if (member(valid_guilds, gildob) == -1)
00144       return 0;
00145   valid_guilds-=({gildob});
00146   
00147   save_object(GUILD_SAVEFILE);
00148   return 1;
00149 }

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

static nomask int security_check (  )  [static]

Definiert in Zeile 115 der Datei gildenmaster.c.

Benutzt ARCH_SECURITY, process_call() und ROOTID.

Wird benutzt von AddGuild() und RemoveGuild().

00116 {
00117   if (previous_object() && geteuid(previous_object())==ROOTID)
00118     return 1;
00119   if (!process_call() && previous_object() && ARCH_SECURITY)
00120     return 1;
00121   return 0;
00122 }

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

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

nomask int ValidGuild ( string  gildenob  ) 

Definiert in Zeile 151 der Datei gildenmaster.c.

Benutzt valid_guilds.

00151                                        {
00152   if (!stringp(gildenob)) 
00153       return 0;
00154 
00155   return (member(valid_guilds,gildenob)>=0);
00156 }


Variablen-Dokumentation

string* valid_guilds = ({})

Definiert in Zeile 18 der Datei gildenmaster.c.

Wird benutzt von AddGuild(), beitreten(), create(), QueryProp(), RemoveGuild() und ValidGuild().

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