source: trunk/inc/server.php@ 668

Last change on this file since 668 was 668, checked in by aleg, 15 years ago

Přidány WOTLK lokace. Práce Aphraela

File size: 14.7 KB
Line 
1<?php
2
3include_once(dirname(__FILE__).'/module.php');
4
5function NullErrorHandler()
6{
7}
8
9class Server extends Module
10{
11 function __construct($System, $Id)
12 {
13 parent::__construct($System);
14 $this->Id = $Id;
15 }
16
17 function HumanDate($date, $time = 1)
18 {
19 // input date is 0000-00-00 00:00:00
20 $date_arr = explode(' ', $date);
21 $date = explode('-', $date_arr[0]);
22 if(count($date_arr) > 1) $time_stp = explode(':', $date_arr[1]);
23 else $time_stp = array(0, 0, 0);
24 $time = mktime($time_stp[0], $time_stp[1], $time_stp[2], $date[1], $date[2], $date[0]);
25 if($time == 1) $human_date = date('d.m.Y H:i:s', $time);
26 else $human_date = date('d.m.Y', $time);
27 return($human_date);
28 }
29
30 function ParseCopper($copper_in)
31 {
32 $copper = $copper_in;
33 $golds = floor($copper / 10000);
34 $num = $copper - $golds * 10000;
35 $silver = floor($num / 100);
36 $copper = $num - $silver * 100;
37 $show_golds = '<font size="4">'.$golds.'</font>&nbsp;<img src="imgs/inc/g.gif">';
38 $show_silver = '<font size="4">'.$silver.'</font>&nbsp;<img src="imgs/inc/s.gif">';
39 $show_copper = '<font size="4">'.$copper.'</font>&nbsp;<img src="imgs/inc/c.gif">';
40 return($show_golds.'&nbsp;'.$show_silver.'&nbsp;'.$show_copper);
41 }
42
43 function OnlineCharactersCount()
44 {
45 $TotalCount = 0;
46 foreach($this->Config['Mangos']['RealmList'] as $Index => $Realm)
47 {
48 $Realm = new Realm($this->System, $Index);
49 $TotalCount += $Realm->OnlineCharactersCount();
50 }
51 return($TotalCount);
52 }
53
54 function OnlineStateImage($Status)
55 {
56 if($Status) return('<img src="imgs/inc/on.gif" alt="online" />&nbsp;<span style="text-color: #234303; text-size: 4;">Online</span>');
57 else return('<img src="imgs/inc/off.gif" alt="offline" />&nbsp;<span style="text-color: #990000; text-size: 4;">Offline</span>');
58 }
59
60 function CharacterCount()
61 {
62 $TotalCount = 0;
63 foreach($this->Config['Mangos']['RealmList'] as $Index => $Realm)
64 {
65 $Realm = new Realm($this->System, $Index);
66 $TotalCount += $Realm->CharacterCount($Index);
67 }
68 return($TotalCount);
69 }
70
71 public function AccountCount()
72 {
73 $this->Database->select_db($this->Config['Mangos']['DatabaseRealmd']);
74 $row = $this->Database->query('SELECT COUNT(*) FROM account')->fetch_row();
75 return($row[0]);
76 }
77
78 public function MapName($id)
79 {
80 $map_id = Array
81 (
82 0 => array(0,"Azeroths"),
83 1 => array(1,"Kalimdor"),
84 13 => array(13,"Test Zone"),
85 17 => array(17,"Kalidar"),
86 30 => array(30,"Alterac Valley"),
87 33 => array(33,"Shadowfang Keep Instance"),
88 34 => array(34,"The Stockade Instance"),
89 35 => array(35,"Stormwind Prison"),
90 36 => array(36,"Deadmines Instance"),
91 37 => array(37,"Azshara Crater"),
92 43 => array(43,"Wailing Caverns Instance"),
93 44 => array(44,"Monastery Interior"),
94 47 => array(47,"Razorfen Kraul Instance"),
95 48 => array(48,"Blackfathom Deeps Instance"),
96 70 => array(70,"Uldaman Instance"),
97 90 => array(90,"Gnomeregan Instance"),
98 109 => array(109,"Sunken Temple Instance"),
99 129 => array(129,"Razorfen Downs Instance"),
100 169 => array(169,"Emerald Forest"),
101 189 => array(189,"Scarlet Onastery Instance"),
102 209 => array(209,"Zul farrak Instance"),
103 229 => array(229,"Blackrock Spire Instance"),
104 230 => array(230,"Blackrock Depths Instance"),
105 249 => array(249,"Onyxias Lair Instance"),
106 269 => array(269,"Opening of the Dark Portal Instance"),
107 289 => array(289,"Scholomance Instance"),
108 309 => array(309,"ZulGurub Instance"),
109 329 => array(329,"Stratholme Instance"),
110 349 => array(349,"Maraudon Instance"),
111 369 => array(369,"Deeprun Tram"),
112 389 => array(389,"Ragefire Chasm Instance"),
113 409 => array(409,"The Molten Core Instance"),
114 429 => array(429,"Dire Maul Instance"),
115 449 => array(449,"Alliance PvP Barracks"),
116 450 => array(450,"Horde PvP Barracks"),
117 451 => array(451,"Development Land"),
118 469 => array(469,"BlackwingLair Instance"),
119 489 => array(489,"PvP Warsong Gulch"),
120 509 => array(509,"Ruins of Ahn Qiraj Instance"),
121 529 => array(529,"PvP Arathi Basin"),
122 530 => array(530,"Outland"),
123 531 => array(531,"Temple of Ahn Qiraj Instance"),
124 532 => array(532,"Karazhan Instance"),
125 533 => array(533,"Naxxramas Instance"),
126 534 => array(534,"The Battle for Mount Hyjal Instance"),
127 540 => array(540,"Hellfire Citadel The Shattered Halls Instance"),
128 542 => array(542,"Hellfire Citadel The Blood Furnace Instance"),
129 543 => array(543,"Hellfire Citadel Ramparts Instance"),
130 544 => array(544,"Maghtheridons Lair Instance"),
131 545 => array(545,"Coilfang The Steamvault Instance"),
132 546 => array(546,"Coilfang The Underbog Instance"),
133 547 => array(547,"Coilfang The Slave Pens Instance"),
134 548 => array(548,"Coilfang Serpentshrine Cavern Instance"),
135 550 => array(550,"Tempest Keep Instance"),
136 552 => array(552,"Tempest Keep The Alcatraz Instance"),
137 553 => array(553,"Tempest Keep The Botanica Instance"),
138 554 => array(554,"Tempest Keep The Mechanar Instance"),
139 555 => array(555,"Auchindoun Shadow Labyrinth Instance"),
140 556 => array(556,"Auchindoun Sethekk Halls Instance"),
141 557 => array(557,"Auchindoun Mana Tombs Instance"),
142 558 => array(558,"Auchindoun Auchenai Crypts Instance"),
143 559 => array(559,"Nagrand Arena"),
144 560 => array(560,"The Escape From Durnholde Instance"),
145 562 => array(562,"Blades Edge Arena"),
146 564 => array(564,"Black Temple Instance"),
147 565 => array(565,"Gruuls Lair Instance"),
148 566 => array(566,"Netherstorm Arena"),
149 568 => array(568,"ZulAman Instance"),
150 571 => array(571,"Northrend"),
151 574 => array(574,"Utgarde Keep Instance"),
152 575 => array(575,"Utgarde Pinnacle Instance"),
153 576 => array(576,"The Nexus Instance"),
154 578 => array(578,"The Oculus Instance"),
155 585 => array(585,"Magisters Terrace Instance"),
156 595 => array(595,"The Culling of Stratholme Instance"),
157 602 => array(602,"Halls of Lightning Instance"),
158 603 => array(603,"Ulduar Instance"),
159 604 => array(604,"Gundrak Instance"),
160 608 => array(608,"Violet Hold Instance"),
161 615 => array(615,"Obsidian Sanctum Instance"),
162 616 => array(616,"The Eye of Eternity"),
163 624 => array(624,"Vault of Archavon Instance"),
164 650 => array(650,"Trial of the Champion")
165 );
166 if(isset($map_id[$id])) return($map_id[$id][1]);
167 else return("Neznámá");
168 }
169
170 public function ZoneName($id)
171 {
172 $zone_id = Array
173 (
174 1 => Array("Dun Morogh",1),
175 3 => Array("Badlands",3),
176 4 => Array("Blasted Lands",4),
177 8 => Array("Swamp of Sorrows",8),
178 10 => Array("Duskwood",10),
179 11 => Array("Wetlands",11),
180 12 => Array("Elwynn Forest",12),
181 14 => Array("Durotar",14),
182 15 => Array("Dustwallow Marsh",15),
183 16 => Array("Azshara",16),
184 17 => Array("The Barrens",17),
185 19 => Array("Zul Gurub",19),
186 25 => Array("Blackrock Mountain",25),
187 28 => Array("Western Plaguelands",28),
188 33 => Array("Stranglethorn Vale",33),
189 36 => Array("Alterac Mountains",36),
190 38 => Array("Loch Modan",38),
191 40 => Array("Westfall",40),
192 41 => Array("Deadwind Pass",41),
193 44 => Array("Redridge Mountains",44),
194 45 => Array("Arathi Highlands",45),
195 46 => Array("Burning Steppes",46),
196 47 => Array("The Hinterlands",47),
197 51 => Array("Searing Gorge",51),
198 65 => Array("Dragonblight",65),
199 66 => Array("Zul Drak",66),
200 67 => Array("The Storm Peaks",67),
201 85 => Array("Tirisfal Glades",85),
202 130 => Array("Silverpine Forest",130),
203 133 => Array("Gnomeregan",133),
204 139 => Array("Eastern Plaguelands",139),
205 141 => Array("Teldrassil",141),
206 148 => Array("Darkshore",148),
207 206 => Array("Utgarde Keep",206),
208 209 => Array("Shadowfang Keep",209),
209 210 => Array("Icecrown",210),
210 215 => Array("Mulgore",215),
211 267 => Array("Hillsbrad Foothills",267),
212 331 => Array("Ashenvale",331),
213 357 => Array("Feralas",357),
214 361 => Array("Felwood",361),
215 394 => Array("Grizzly Hills",394),
216 400 => Array("Thousand Needles",400),
217 405 => Array("Desolace",405),
218 406 => Array("Stonetalon Mountains",406),
219 440 => Array("Tanaris",440),
220 457 => Array("The Veiled Sea",457),
221 490 => Array("Un Goro Crater",490),
222 491 => Array("Razorfen Kraul",491),
223 493 => Array("Moonglade",493),
224 495 => Array("Howling Fjord",495),
225 618 => Array("Winterspring",618),
226 717 => Array("The Stockade",717),
227 718 => Array("Wailing Caverns",718),
228 719 => Array("Blackfathom Deeps",719),
229 722 => Array("Razorfen Downs",722),
230 796 => Array("Scarlet Monastery",796),
231 978 => Array("Zul Farrak",978),
232 1196 => Array("Utgarde Pinnacle",1196),
233 1337 => Array("Uldaman",1337),
234 1377 => Array("Silithus",1377),
235 1417 => Array("Sunken Temple",1417),
236 1497 => Array("Undercity",1497),
237 1519 => Array("Stormwind City",1519),
238 1537 => Array("Ironforge",1537),
239 1581 => Array("The Deadmines",1581),
240 1583 => Array("Blackrock Spire",1583),
241 1584 => Array("Blackrock Depths",1584),
242 1637 => Array("Orgrimmar",1637),
243 1638 => Array("Thunder Bluff",1638),
244 1657 => Array("Darnassus",1657),
245 2017 => Array("Stratholme",2017),
246 2057 => Array("Scholomance",2057),
247 2100 => Array("Maraudon",2100),
248 2158 => Array("Onyxias Lair",2158),
249 2257 => Array("Deeprun Tram",2257),
250 2366 => Array("The Black Morass",2366),
251 2367 => Array("Old Hillsbrad Foothills",2367),
252 2557 => Array("Dire Maul",2557),
253 2562 => Array("Karazhan",2562),
254 2597 => Array("PvP Alterac Valley",2597),
255 2677 => Array("Blackwing Lair",2677),
256 2717 => Array("Molten Core",2717),
257 2817 => Array("Crystalsong Forest",2817),
258 3277 => Array("PvP Warsong Gulch",3277),
259 3358 => Array("PvP Arathi Basin",3358),
260 3428 => Array("Temple of Ahn Qiraj",3428),
261 3429 => Array("Ruins of Ahn Qiraj",3429),
262 3430 => Array("Eversong Woods",3430),
263 3433 => Array("Ghostlands",3433),
264 3437 => Array("Ragefire Chasm",3437),
265 3456 => Array("Naxxramas",3456),
266 3477 => Array("Azjol Nerub",3477),
267 3483 => Array("Hellfire Peninsula",3483),
268 3487 => Array("Silvermoon city",3487),
269 3518 => Array("Nagrand",3518),
270 3519 => Array("Terokkar Forest",3519),
271 3520 => Array("Shadowmoon Valley",3520),
272 3521 => Array("Zangarmarsh",3521),
273 3522 => Array("Blades Edge Mountains",3522),
274 3523 => Array("Netherstorm",3523),
275 3524 => Array("Azuremyst Isle",3524),
276 3525 => Array("Bloodmyst Isle",3525),
277 3537 => Array("Borean Tundra",3537),
278 3557 => Array("The Exodar",3557),
279 3562 => Array("Hellfire Ramparts",3562),
280 3606 => Array("Hyjal Summit",3606),
281 3607 => Array("Serpentshrine Cavern",3607),
282 3618 => Array("Gruuls Lair",3618),
283 3698 => Array("The Ring of Trials",3698),
284 3702 => Array("PvP The Circle of Blood",3702),
285 3703 => Array("Shattrath City",3703),
286 3711 => Array("Sholazar Basin",3711),
287 3713 => Array("The Blood Furnace",3713),
288 3714 => Array("The Shattered Halls",3714),
289 3715 => Array("The Steamvault",3715),
290 3716 => Array("The Underbog",3716),
291 3717 => Array("The Slave Pens",3717),
292 3789 => Array("Shadow Labyrinth",3789),
293 3790 => Array("Auchenai Crypts",3790),
294 3791 => Array("Sethekk Halls",3791),
295 3792 => Array("Mana Tombs",3792),
296 3805 => Array("Zul Aman",3805),
297 3820 => Array("PvP Eye of the Storm",3820),
298 3836 => Array("Magtheridons Lair",3836),
299 3842 => Array("The Eye",3842),
300 3846 => Array("The Arcatraz",3846),
301 3847 => Array("The Botanica",3847),
302 3849 => Array("The Mechanar",3849),
303 3959 => Array("Black Temple",3959),
304 3968 => Array("PvP Ruins of Lordaeron",3968),
305 4075 => Array("Sunwell Plateau",4075),
306 4080 => Array("Isle of Quel Danas",4080),
307 4095 => Array("Magisters Terrace",4095),
308 4100 => Array("The Culling of Stratholme",4100),
309 4120 => Array("The Nexus",4120),
310 4131 => Array("Magisters Terrace",4131),
311 4196 => Array("Drak Tharon Keep",4196),
312 4197 => Array("Wintergrasp",4197),
313 4228 => Array("The Oculus",4228),
314 4264 => Array("Halls of Stone",4264),
315 4272 => Array("Halls of Lightning",4272),
316 4273 => Array("Ulduar",4273),
317 4298 => Array("The Scarlet Enclave",4298),
318 4375 => Array("Gundrak",4375),
319 4378 => Array("PvP Dalaran Sewers",4378),
320 4384 => Array("PvP Strand of the Ancients",4384),
321 4395 => Array("Dalaran",4395),
322 4406 => Array("PvP The Ring of Valor",4406),
323 4415 => Array("The Violet Hold",4415),
324 4493 => Array("The Obsidian Sanctum",4493),
325 4494 => Array("Ahn kahet The Old Kingdom",4494),
326 4500 => Array("The Eye of Eternity",4500),
327 4603 => Array("Vault of Archavon",4603),
328 4710 => Array("PvP Isle of Conquest",4710),
329 4722 => Array("Trial of the Crusader",4722),
330 4723 => Array("Trial of the Champion",4723),
331 4742 => Array("Hrothgars Landing",4742),
332 4809 => Array("The Forge of Souls",4809),
333 4812 => Array("Icecrown Citadel",4812),
334 4813 => Array("Pit of Saron",4813),
335 4820 => Array("Halls of Reflection",4820)
336 );
337 if(isset($zone_id[$id])) return($zone_id[$id][0]);
338 else return('-');
339 }
340
341 function RealmSelection($FormNameSufix = '')
342 {
343 $Output = '';
344 if(count($this->Config['Mangos']['RealmList']) > 1)
345 {
346 if(array_key_exists('page', $_GET)) $Target = '?page='.$_GET['page'];
347 else $Target = '';
348 $Output .= '<div style="text-align: center;"><form id="RealmSelection'.$FormNameSufix.'" action="'.$Target.'" method="post">'.
349 '<div>Výběr světa <select name="RealmIndex" onchange="document.getElementById(\'RealmSelection'.$FormNameSufix.'\').submit()">';
350 foreach($this->Config['Mangos']['RealmList'] as $Index => $Realm)
351 {
352 if($_COOKIE['RealmIndex'] == $Index) $Selected = ' selected="selected"';
353 else $Selected = '';
354 $Output .= '<option value="'.$Index.'"'.$Selected.'>'.$Realm['Name'].'</option>';
355 }
356 $Output .= '</select></div>'.
357 '</form></div>';
358 }
359 return($Output);
360 }
361}
362
363?>
Note: See TracBrowser for help on using the repository browser.