nobank.c-Dateireferenz

#include <properties.h>
#include <attributes.h>
Include-Abhängigkeitsdiagramm für nobank.c:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define ME   this_object()

Funktionen

int DeepQueryMoney (object ob)
int is_bank (object ob)
int DeepTransferMoney (object pl, int amount)
varargs int TestAndTransfer (object ob, int trans, string msg)

Variablen

inherit std player moneyhandler

Makro-Dokumentation

#define ME   this_object()

Definiert in Zeile 16 der Datei nobank.c.


Dokumentation der Funktionen

int DeepQueryMoney ( object  ob  ) 

Definiert in Zeile 18 der Datei nobank.c.

Benutzt i, obs und P_AMOUNT.

Wird benutzt von is_bank().

00018                               {
00019   int res,i;
00020   object *obs;
00021   
00022   if (!ob) return 0;
00023   res=0;obs=deep_inventory(ob);
00024   for (i=sizeof(obs)-1;i>=0;i--)
00025     if ((ob=obs[i]) && object_name(ob)[0..10]=="/obj/money#")
00026       res+=ob->QueryProp(P_AMOUNT);
00027   return res;
00028 }

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

int DeepTransferMoney ( object  pl,
int  amount 
)

Definiert in Zeile 51 der Datei nobank.c.

Benutzt AddMoney(), ctime(), i, log_file, ME, ob(), obs und P_AMOUNT.

Wird benutzt von TestAndTransfer().

00051                                              {
00052   object *obs,ob;
00053   int act,trans,i;
00054   
00055   if (!pl || amount<=0)
00056     return 0;
00057   if (pl->QueryMoney()>=amount) {
00058     pl->AddMoney(-1*amount);
00059     trans=amount;
00060   } else {
00061     obs=deep_inventory(pl);trans=0;
00062     for (i=sizeof(obs)-1;i>=0;i--) {
00063       if ((ob=obs[i]) && object_name(ob)[0..11]=="/obj/money#") {
00064                 act=ob->QueryProp(P_AMOUNT);
00065                 if (act<=0) continue;
00066                 if (act>=amount) { // mehr Geld als benoetigt?
00067                   ob->SetProp(P_AMOUNT,act-amount); // abziehen
00068                   trans+=amount; 
00069                   amount=0; // nichts mehr benoetigt
00070                   break;    // also auch ende
00071                 }
00072                 amount-=act;
00073                 trans+=act;
00074                 ob->remove(); // abziehen was da ist
00075       }
00076     }
00077   }
00078   log_file("stolen_money",
00079                    sprintf("%s %O: %O (%O)\n",ctime(time())[4..15],pl,trans,ME));
00080   AddMoney(trans);
00081   return trans;
00082 }

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

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

int is_bank ( object  ob  ) 

Definiert in Zeile 30 der Datei nobank.c.

Benutzt A_CON, A_DEX, A_INT, A_STR, DeepQueryMoney(), P_QP, P_XP und stats.

Wird benutzt von TestAndTransfer().

00030                        {
00031   int *stats,geld;
00032   
00033   if (!ob || !query_once_interactive(ob)) return 0;
00034   stats=({ob->QueryAttribute(A_STR),
00035                   ob->QueryAttribute(A_INT),
00036                   ob->QueryAttribute(A_DEX),
00037                   ob->QueryAttribute(A_CON),
00038                   0});
00039   stats[4]=stats[1]+stats[2]+stats[3];
00040   geld=DeepQueryMoney(ob);
00041   
00042   if (stats[0]>=10
00043       && stats[4]<stats[0]
00044       && geld>5000
00045       && ob->QueryProp(P_XP)<300000
00046       && ob->QueryProp(P_QP)<300)
00047     return geld;
00048   return 0;
00049 }

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

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

varargs int TestAndTransfer ( object  ob,
int  trans,
string  msg 
)

Definiert in Zeile 84 der Datei nobank.c.

Benutzt DeepTransferMoney() und is_bank().

00084                                                               {
00085   int geld,abzug;
00086 
00087   if ((geld=is_bank(ob))<=0) return 0;
00088   if (trans<0)
00089     abzug=(geld*trans)/-100; // Prozentsatz
00090   else
00091     abzug=trans;             // fester Abzug
00092   if (abzug>geld) abzug=geld;
00093   if (abzug<=0) return 0;
00094   abzug=DeepTransferMoney(ob,abzug);
00095   if (abzug<=0) return 0;  
00096   if (msg && ob)
00097     tell_object(ob,sprintf(msg,abzug));
00098   return abzug;
00099 }

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


Variablen-Dokumentation

inherit std player moneyhandler

Definiert in Zeile 12 der Datei nobank.c.

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