zentralbank.c-Dateireferenz

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

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define NEED_PROTOTYPES
#define TIME   strftime("%H:%M",time())
#define LS   1000000

Funktionen

void save_me ()
protected void create ()
private void adjust_percents ()
void reset ()
private void real_log ()
private void log_state ()
public varargs void PayIn (int amount, int percent)
public int WithDraw (int amount)
int _query_current_money ()
int _query_bank_default_percent ()
int _query_shop_percent_left ()
int _query_store_percent_left ()
public int * geldmenge ()
int set_percents (int store, int shop, int bank)
int remove ()

Variablen

int allmoney
int bank_default_percent
int store_default_percent
int shop_default_percent
int falling
int * summen = ({0,0,0,0,0,0})
nosave int last_save
nosave int counter

Makro-Dokumentation

#define LS   1000000

Definiert in Zeile 38 der Datei zentralbank.c.

Wird benutzt von adjust_percents(), PayIn(), real_log(), set_percents() und WithDraw().

#define NEED_PROTOTYPES

Definiert in Zeile 34 der Datei zentralbank.c.

#define TIME   strftime("%H:%M",time())

Definiert in Zeile 37 der Datei zentralbank.c.

Wird benutzt von adjust_percents(), heart_beat(), PayIn(), set_percents() und WithDraw().


Dokumentation der Funktionen

int _query_bank_default_percent (  ) 

Definiert in Zeile 161 der Datei zentralbank.c.

Benutzt bank_default_percent.

00162 {
00163   return bank_default_percent;
00164 }

int _query_current_money (  ) 

Definiert in Zeile 156 der Datei zentralbank.c.

Benutzt allmoney.

00157 {
00158   return allmoney;
00159 }

int _query_shop_percent_left (  ) 

Definiert in Zeile 166 der Datei zentralbank.c.

Benutzt shop_default_percent.

00167 {
00168   return shop_default_percent;
00169 }

int _query_store_percent_left (  ) 

Definiert in Zeile 171 der Datei zentralbank.c.

Benutzt store_default_percent.

00172 {
00173   return store_default_percent;
00174 }

private void adjust_percents (  ) 

Definiert in Zeile 65 der Datei zentralbank.c.

Benutzt allmoney, bank_default_percent, counter, falling, log_file, LS, save_me(), shop_default_percent, store_default_percent und TIME.

Wird benutzt von reset().

00066 {
00067   if (allmoney<50000   && falling>=0) falling=-1;
00068   if (allmoney>1000000 && falling<=0) falling=1;
00069   if (allmoney<200000 && falling>0 ) falling=0;
00070   if (allmoney>80000  && falling<0 ) falling=0;
00071   if (falling<0 && !((++counter)%5))
00072   {
00073     bank_default_percent=bank_default_percent+random(3)+1;
00074     store_default_percent=store_default_percent+random(3)+1;
00075     shop_default_percent=shop_default_percent+random(3)+1;
00076     log_file("ZENTRALBANK",
00077                 sprintf("%s: PERCENTS SET TO BANK %d STORE %d SHOP %d\n",
00078                   TIME,bank_default_percent,store_default_percent,
00079                   shop_default_percent),LS);
00080   }
00081   if (falling>0)
00082   {
00083     bank_default_percent/=2;
00084     store_default_percent/=2;
00085     shop_default_percent/=2;
00086     log_file("ZENTRALBANK",
00087                 sprintf("%s: PERCENTS SET TO BANK %d STORE %d SHOP %d\n",
00088                   TIME,bank_default_percent,store_default_percent,
00089                   shop_default_percent),LS);
00090   }
00091   if (bank_default_percent<1) bank_default_percent=1;
00092   if (bank_default_percent>90) bank_default_percent=90;
00093   if (store_default_percent<1) store_default_percent=1;
00094   if (store_default_percent>90) store_default_percent=90;
00095   if (shop_default_percent<1) shop_default_percent=1;
00096   if (shop_default_percent>90) shop_default_percent=90;
00097   save_me();
00098 }

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

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

protected void create (  ) 

Definiert in Zeile 55 der Datei zentralbank.c.

Benutzt allmoney, bank_default_percent, restore_object(), shop_default_percent und store_default_percent.

00056 {
00057   seteuid(getuid());
00058   allmoney=500000;
00059   bank_default_percent=BANK_DEFAULT_PERCENT;
00060   store_default_percent=STORE_PERCENT_LEFT;
00061   shop_default_percent=SHOP_PERCENT_LEFT;
00062   restore_object("/p/daemon/save/zentralbank");
00063 }

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

public int* geldmenge (  ) 

Definiert in Zeile 177 der Datei zentralbank.c.

Benutzt IS_ELDER, IS_LEARNER, ob(), owner, P_AMOUNT, P_NPC, QueryProp() und summen.

00177                         {
00178   
00179   if (summen[5] > time()-3600 || !IS_ELDER(this_player()))
00180       return summen;
00181 
00182   object *geld = clones("/obj/money",2);
00183   foreach(object ob: geld) {
00184     if (!environment(ob) || IS_LEARNER(environment(ob)))
00185       continue;
00186     if (environment(ob)->QueryProp(P_NPC))
00187       // in NPC
00188       summen[0]+=ob->QueryProp(P_AMOUNT);
00189     else if (load_name(environment(ob)) == "/obj/boerse")
00190       // in boersen
00191       summen[1]+=ob->QueryProp(P_AMOUNT);
00192     else
00193       // sonst rumliegend
00194       summen[2]+=ob->QueryProp(P_AMOUNT);
00195   }
00196   // Seherkarten
00197   geld = clones("/obj/seercard",2);
00198   mapping cards=m_allocate(sizeof(geld),1);
00199   foreach(object ob: geld) {
00200     cards[ob->query_owner()] = ob->QueryProp(P_AMOUNT);
00201   }
00202   foreach(string owner, int amount: cards)
00203     summen[3]+=amount;
00204   summen[4]=summen[0]+summen[1]+summen[2]+summen[3];
00205   summen[5]=time();
00206   return summen;
00207 }

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

private void log_state (  ) 

Definiert in Zeile 110 der Datei zentralbank.c.

Benutzt last_save, real_log() und save_me().

Wird benutzt von PayIn() und WithDraw().

00111 {
00112   // nur alle 5min nen Status-Logeintrag. Reicht voellig.
00113   if (find_call_out(#'real_log) == -1);
00114     call_out(#'real_log,300);
00115   // und alle 20min speichern.
00116   if (time()-last_save>1200)
00117     save_me();
00118 }

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

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

public varargs void PayIn ( int  amount,
int  percent 
)

Definiert in Zeile 120 der Datei zentralbank.c.

Benutzt allmoney, bank_default_percent, log_file, log_state(), LS und TIME.

00121 {
00122   if (amount<0) return;
00123   percent|=bank_default_percent;
00124   allmoney+=amount*percent/100;
00125   log_file("ZENTRALBANK",
00126       sprintf("%s: Einzahlung: %d (%d brutto) von %O\n",
00127                 TIME,amount*percent/100,amount,previous_object()),LS);
00128   log_state();
00129 }

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

private void real_log (  ) 

Definiert in Zeile 105 der Datei zentralbank.c.

Benutzt allmoney, dtime(), log_file und LS.

Wird benutzt von log_state().

00106 {
00107   log_file("ZBANKSTATUS",sprintf("%s: %d\n",dtime(time()),allmoney),LS);
00108 }

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

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

int remove (  ) 

Definiert in Zeile 220 der Datei zentralbank.c.

Benutzt destruct() und save_me().

00221 {
00222   save_me();
00223   destruct(this_object());
00224 }

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

void reset ( void   ) 

Definiert in Zeile 100 der Datei zentralbank.c.

Benutzt adjust_percents().

00101 {
00102   adjust_percents();
00103 }

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

void save_me (  ) 

Definiert in Zeile 49 der Datei zentralbank.c.

Benutzt last_save und save_object().

00050 {
00051   save_object("/p/daemon/save/zentralbank");
00052   last_save=time();
00053 }

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

int set_percents ( int  store,
int  shop,
int  bank 
)

Definiert in Zeile 209 der Datei zentralbank.c.

Benutzt bank_default_percent, log_file, LS, shop_default_percent, store_default_percent und TIME.

00210 {
00211   store_default_percent=store;
00212   shop_default_percent=shop;
00213   bank_default_percent=bank; 
00214   log_file("ZENTRALBANK",
00215       sprintf("%s: PERCENTS SET TO BANK %d STORE %d SHOP %d\n",
00216                 TIME,bank_default_percent,store_default_percent,
00217                 shop_default_percent),LS);
00218 }

public int WithDraw ( int  amount  ) 

Definiert in Zeile 131 der Datei zentralbank.c.

Benutzt allmoney, log_file, log_state(), LS und TIME.

00132 {
00133   int got;
00134 
00135   if (!amount) return 0;
00136   if (allmoney<0) allmoney=0;
00137   if (!allmoney)
00138     got=0;
00139   else
00140   {
00141     if (amount*3<allmoney)
00142       got=amount;
00143     else
00144     {
00145       got=allmoney/3;
00146       if (!got) got=1;
00147     }
00148     allmoney-=got;
00149   }
00150   log_file("ZENTRALBANK",sprintf("%s: Abhebung: %6d/%6d von %O\n",
00151                 TIME,got, amount,previous_object()),LS);
00152   log_state();
00153   return got;
00154 }

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


Variablen-Dokumentation

int allmoney

Definiert in Zeile 40 der Datei zentralbank.c.

Wird benutzt von _query_current_money(), adjust_percents(), create(), PayIn(), real_log() und WithDraw().

Definiert in Zeile 40 der Datei zentralbank.c.

Wird benutzt von _query_bank_default_percent(), adjust_percents(), create(), PayIn() und set_percents().

nosave int counter

Definiert in Zeile 47 der Datei zentralbank.c.

int falling

Definiert in Zeile 41 der Datei zentralbank.c.

Wird benutzt von adjust_percents().

nosave int last_save

Definiert in Zeile 46 der Datei zentralbank.c.

Wird benutzt von log_state() und save_me().

Definiert in Zeile 40 der Datei zentralbank.c.

Wird benutzt von _query_shop_percent_left(), adjust_percents(), create() und set_percents().

Definiert in Zeile 40 der Datei zentralbank.c.

Wird benutzt von _query_store_percent_left(), adjust_percents(), create() und set_percents().

int* summen = ({0,0,0,0,0,0})

Definiert in Zeile 44 der Datei zentralbank.c.

Wird benutzt von geldmenge().

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