#include <properties.h>#include "../files.h"#include "./plant.h"

gehe zum Quellcode dieser Datei
Makrodefinitionen | |
| #define | NEED_PROTOTYPES |
Funktionen | |
| static string | sell_obj_only_plants (object ob, int short) |
| void | create () |
| void | reset () |
| static string | sell_obj (object ob, int short) |
| void | UpdateCounter (object ob, int num) |
| static int | realValue (object ob, object player) |
| static varargs int | QueryValue (object ob, int value, object player) |
| static varargs int | QueryBuyValue (mixed ob, object player) |
Variablen | |
| inherit std room | shop |
| static int | need_save |
| static int | basisvalue |
| static int | maxvalue |
| private int * | count |
| private int | sum |
| #define NEED_PROTOTYPES |
Definiert in Zeile 15 der Datei kraeuterladen.c.
| void create | ( | ) |
Definiert in Zeile 29 der Datei kraeuterladen.c.
Benutzt basisvalue, count, create(), maxvalue, need_save, PLANTCOUNT, restore_object(), set_next_reset(), SetStorageRoom() und sum.
00030 { 00031 int si; 00032 ::create(); 00033 SetStorageRoom("/p/service/padreic/kraeuter/kraeuterstore"); 00034 need_save=0; 00035 basisvalue=400; 00036 maxvalue=10000; 00037 seteuid(getuid()); // wird zum speichern benötigt 00038 if (!restore_object(object_name())) { 00039 count=({}); 00040 sum=0; 00041 } 00042 // fuer jede PlantID einmal anlegen... 00043 si=sizeof(count); 00044 if (si<PLANTCOUNT) count=count+allocate(PLANTCOUNT-si); 00045 00046 // reset in der BP abschalten 00047 if (load_name() == __FILE__[0..<3]) 00048 set_next_reset(-1); 00049 }

| static varargs int QueryBuyValue | ( | mixed | ob, | |
| object | player | |||
| ) | [static] |
Definiert in Zeile 141 der Datei kraeuterladen.c.
Benutzt QueryBuyFact() und realValue().
Wird benutzt von buy(), GetList(), QueryBuyValue() und show_obj().
00143 { 00144 if (objectp(ob)) 00145 return (realValue(ob, player)*QueryBuyFact(player) + 50)/100; 00146 // fixed Objekte... 00147 return ::QueryBuyValue(ob, player); 00148 }


| static varargs int QueryValue | ( | object | ob, | |
| int | value, | |||
| object | player | |||
| ) | [static] |
Definiert in Zeile 135 der Datei kraeuterladen.c.
Benutzt realValue().
Wird benutzt von QueryValue().


| static int realValue | ( | object | ob, | |
| object | player | |||
| ) | [static] |
Definiert in Zeile 116 der Datei kraeuterladen.c.
Benutzt basisvalue, count, id(), is_plant, P_VALUE, PLANTCOUNT und sum.
Wird benutzt von QueryBuyValue() und QueryValue().
00120 { 00121 int id, val; 00122 // Preise fuer normale Gueter ganz normal... 00123 if (!is_plant(ob)) 00124 return ob->QueryProp(P_VALUE); 00125 // jede Kraeuterkategorie bekommt den gleichen Wert zugewiesen. 00126 val=(sum+PLANTCOUNT)*basisvalue/PLANTCOUNT; 00127 // aber dieser Wert verteilt sich auf unterschiedlich viele Kraeuter 00128 id=ob->QueryPlantId(); 00129 if (id<=0) return 0; // illegal geclont -> wertlos 00130 if ((id-1)>sizeof(count)) count=count+allocate(id-1-sizeof(count)); 00131 val=val/(count[id]+1); 00132 return val-val%10; // Wert runden... 00133 }


| void reset | ( | void | ) |
Definiert in Zeile 72 der Datei kraeuterladen.c.
Benutzt basisvalue, count, i, maxvalue, need_save, PLANTCOUNT, reset(), save_object() und sum.
00073 { 00074 ::reset(); 00075 // Daten sind nicht sooo wichtig, als das bei jeder Aenderung 00076 // gesavet werden muesste. Daher nun im reset speichern. 00077 if (need_save) { 00078 if (((sum+PLANTCOUNT)*basisvalue/PLANTCOUNT)>maxvalue) { 00079 int i, newsum; 00080 for (i=sizeof(count)-1; i>=0; i--) { 00081 count[i] = count[i]*9/10; 00082 newsum+=count[i]; 00083 } 00084 sum=newsum; 00085 } 00086 save_object(object_name()); 00087 need_save=0; 00088 } 00089 }

| static string sell_obj | ( | object | ob, | |
| int | short | |||
| ) | [static] |
Definiert in Zeile 91 der Datei kraeuterladen.c.
Wird benutzt von sell_obj_only_plants().
00092 { 00093 // es werden nur Kraeuter angekauft, die legal geclont wurden, 00094 // d.h. im entsprechenden Master ordentlich eingetragen wurden! 00095 if (is_plant(ob) && ob->QueryPlantId()<=0) 00096 return ob->Name(WER, 2)+" wurde illegal geclont. Ich darf " 00097 +ob->QueryPronoun()+" leider nicht annehmen."; 00098 return ::sell_obj(ob, short); 00099 }

| static string sell_obj_only_plants | ( | object | ob, | |
| int | short | |||
| ) | [static] |
Definiert in Zeile 51 der Datei kraeuterladen.c.
Benutzt is_plant, sell_obj() und WER.
00057 : 00058 // string sell_obj(ob, short) 00059 // { 00060 // return ::sell_obj_only_plants(ob, short); 00061 // } 00062 { 00063 if (!is_plant(ob)) 00064 return "Tut mir leid, damit kann ich nichts anfangen."; 00065 // es werden nur Kraeuter angekauft, die legal geclont wurden, 00066 // d.h. im entsprechenden Master ordentlich eingetragen wurden! 00067 if (ob->QueryPlantId()<=0) 00068 return ob->Name(WER, 2)+" wurde illegal geclont. Ich darf " 00069 +ob->QueryPronoun()+" leider nicht annehmen."; 00070 return ::sell_obj(ob, short); }

| void UpdateCounter | ( | object | ob, | |
| int | num | |||
| ) |
Definiert in Zeile 101 der Datei kraeuterladen.c.
Benutzt count, id(), is_plant, need_save und sum.
Wird benutzt von buy(), make_to_money() und really_buy().
00102 { 00103 int id; 00104 id=ob->QueryPlantId(); 00105 if (id>0 && is_plant(ob)) { 00106 // Kauf oder Verkauf von Kraeutern, veraendert den Wert der 00107 // Kraeuter 00108 count[id]+=num; 00109 if (count[id]<0) count[id]=0; // darf aber ansich nich passieren 00110 sum+=num; 00111 need_save=1; 00112 } 00113 ::UpdateCounter(ob, num); 00114 }


int basisvalue [static] |
Definiert in Zeile 22 der Datei kraeuterladen.c.
Wird benutzt von create(), realValue() und reset().
| private int* count |
Definiert in Zeile 24 der Datei kraeuterladen.c.
Wird benutzt von _decay_peace_history(), create(), grep_file(), id(), MixedOut(), realValue(), reset(), save_spool_item(), SimpleInv(), UpdateCounter(), wurzel_an(), zeige_seite() und ZeigeZettel().
int maxvalue [static] |
Definiert in Zeile 23 der Datei kraeuterladen.c.
int need_save [static] |
Definiert in Zeile 21 der Datei kraeuterladen.c.
Wird benutzt von create(), reset() und UpdateCounter().
Definiert in Zeile 13 der Datei kraeuterladen.c.
Wird benutzt von _register_shop() und update_money().
| private int sum |
Definiert in Zeile 25 der Datei kraeuterladen.c.
Wird benutzt von create(), FindBestArmoursT(), GuildRating(), realValue(), RemoveObjectFromStore(), reset(), SelectFarEnemy(), SelectNearEnemy(), update_money(), UpdateCounter() und UpdateSACache().
1.6.3