blob: 230c54602bf96e26d8f967c637f5b0adae4e8ba9 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001inherit "/std/thing";
2
3#include <properties.h>
4#include <language.h>
5
6// ({Funktionsname, ({argumente}), tttel })
7nosave <string|mixed*>* watdenn;
8
9string _liesliste();
10
11protected void create()
12{
13 if (!clonep(this_object())) return;
14 ::create();
15 SetProp(P_SHORT,"Die Top-Liste, Top-Spielerliste, Top-Seherliste und "
16 "Top-Hardcoreliste");
17 SetProp(P_WEIGHT,0);
18 SetProp(P_GENDER,FEMALE);
19 SetProp(P_WEIGHT,20);
20 AddId(({"liste","topliste","top-liste",
21 "topspielerliste","top-spielerliste","topspieler","spielerliste",
22 "topseherliste","top-seherliste","topseher","seherliste",
23 "tophardcoreliste","top-hardcoreliste","tophardcore","hardcoreliste"}));
24 SetProp(P_NAME,"Liste");
25 SetProp(P_NOGET,"Die ist an der Wand festgenagelt.\n");
26 AddReadDetail(SENSE_DEFAULT, #'_liesliste);
27}
28
29#define NAME 0
30#define LEP 1
31#define QP 2
32#define XP 3
33#define LEVEL 4
34#define AGE 5
35#define RACE 6
36#define GUILD 7
37#define WIZLEVEL 8
38#define HARDCORE 9
39public string format_list(< <string|int>* >* list)
40{
41 int idx;
42 //string res=" Name Level AP Erfahrung Alter Gilde\n";
43 string res = sprintf(
44 "%c%:4s %:11-s %:5|s %:5|s %:4|s %:12|s %:12|s %:14-s\n",
45 ' ', "", "Name", "", "Level", "AP", "Erfahrung","Alter","Gilde");
46
47 foreach(<string|int>* entry: list)
48 {
49 ++idx;
50 entry[AGE] *= 2;
51 int tage = entry[AGE]/86400;
52 int stunden = (entry[AGE] % 86400) / 3600;
53 int minuten = (entry[AGE] % 3600) / 60;
54 res +=
55 sprintf("%c%:4d. %:11-s %:5-s %:5d %:4d %:12d %:4dd, %:2'0'd:%:2'0'd %:14-s\n",
56 (entry[WIZLEVEL]>0 ? '*' : ' '),
57 idx, capitalize(entry[NAME]),
58 (entry[HARDCORE]>1 ? "(RIP)" : ""),
59 entry[LEVEL],
60 entry[QP], entry[XP],
61 tage, stunden, minuten,
62 capitalize(entry[GUILD]));
63 }
64 return res;
65}
66
67private string get_list(<string|mixed*>* was)
68{
69 if (was == 0)
70 was=({"Liste", ({}), " "*28 + "Liste der Topspieler !\n\n" });
71
72 < <string|int>* >* list = "/secure/topliste"->(was[0])(was[1]...);
73
74 return was[2] + format_list(list);
75}
76
77varargs int id(string str,int lvl)
78{
79 if (!::id(str,lvl))
80 return 0;
81
82 if (strstr(str,"seher")>=0)
83 watdenn=({"SeherListe", ({ }), " "*29 + "Liste der Topseher !\n\n" });
84 else if (strstr(str,"spieler")>=0)
85 watdenn=({"SpielerListe", ({ }),
86 " "*21 + "Liste der Topspieler (Keine Seher) !\n\n" });
87 else if (strstr(str,"hardcore")>=0)
88 watdenn=({"HardcoreListe", ({ }),
89 " "*22 + "Liste der mutigsten aller Helden !\n\n" });
90 else
91 watdenn=({"Liste", ({ }), " "*28 + "Liste der Topspieler !\n\n" });
92
93 return 1;
94}
95
96string _query_long()
97{
98 if (this_player()) this_player()->More(get_list(watdenn));
99 watdenn=0;
100 return "";
101}
102
103varargs string long(int mode)
104{
105 if (this_player()) this_player()->More(get_list(watdenn));
106 watdenn=0;
107 return "";
108}
109
110string _liesliste()
111{
112 if (this_player()) this_player()->More(get_list(watdenn));
113 watdenn=0;
114 return "";
115}
116