#include <wizlevels.h>#include <properties.h>#include <bank.h>
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 |
| #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().
| 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 }


| 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 }

| 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 }

| 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 }


| 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 }

| private void real_log | ( | ) |
Definiert in Zeile 105 der Datei zentralbank.c.
Benutzt allmoney, dtime(), log_file und LS.
Wird benutzt von log_state().


| int remove | ( | ) |
Definiert in Zeile 220 der Datei zentralbank.c.
Benutzt destruct() und save_me().

| void reset | ( | void | ) |
Definiert in Zeile 100 der Datei zentralbank.c.
Benutzt adjust_percents().
00101 { 00102 adjust_percents(); 00103 }

| 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 }

| 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 }

| 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().
1.6.3