source: trunk/stat/stat.php@ 614

Last change on this file since 614 was 614, checked in by george, 16 years ago
  • Přidáno: Výběr světa i na začátku stránek, kterých se výběr týká.
File size: 4.1 KB
Line 
1<?php
2include('../inc/db.php');
3
4$Hostname = $Config['Database']['Host'];
5$Username = $Config['Database']['User'];
6$Password = $Config['Database']['Password'];
7$Database = $Config['Mangos']['RealmList'][1]['DatabaseMangos']; // must contains characters table
8$RealmHostname = $Hostname;
9$RealmUsername = $Username;
10$RealmPassword = $Password;
11$RealmDatabase = $Config['Mangos']['DatabaseRealmd']; // must contains zone_coordinates and accounts table
12$CharactersDatabase = $Config['Mangos']['RealmList'][1]['DatabaseCharacters']; // must contains zone_coordinates and accounts table
13$EmuVersion = $Config['Mangos']['ClientVersion'];
14$Owner = $Config['Web']['Admin'];
15$ServerName = $Config['Web']['Title'];
16$DatabaseEncoding = 'utf8';
17
18$Output = WoWEmuStat();
19Header('Content-Type: text/xml');
20Header('Content-Length: '.strlen($Output));
21echo($Output);
22
23function WoWEmuStat()
24{
25 global $Hostname, $Username, $Password, $Database, $EmuVersion, $Owner, $ServerName, $realm_db, $DatabaseEncoding,
26 $RealmHostname, $RealmUsername, $RealmPassword, $RealmDatabase, $CharactersDatabase;
27
28 $Result =
29'<?xml version="1.0" encoding="UTF-8"'."?>\r\n".
30'<?xml-stylesheet type="text/xsl" href="stat.xsl"'."?>\r\n".
31" <stats>\r\n".
32" <server>\r\n".
33" <version>".$EmuVersion."</version>\r\n".
34" <owner>".$Owner."</owner>\r\n".
35" <servername>".$ServerName."</servername>\r\n".
36" <uptime>0 weeks 1 days 0 hours 0 mins</uptime>\r\n".
37" </server>\r\n".
38" <serverload>\r\n".
39" <network>\r\n".
40" <configsleep>200</configsleep>\r\n".
41" <loops>0</loops>\r\n".
42" <totaltime>0</totaltime>\r\n".
43" <load>0.00%</load>\r\n".
44" </network>\r\n".
45" <world>\r\n".
46" <configsleep>600</configsleep>\r\n".
47" <loops>95222</loops>\r\n".
48" <totaltime>7594525</totaltime>\r\n".
49" <load>1.50%</load>\r\n".
50" </world>\r\n".
51" </serverload>\r\n".
52" <players>\r\n";
53
54 $realm_db = mysql_connect($RealmHostname, $RealmUsername, $RealmPassword);
55 mysql_select_db($RealmDatabase, $realm_db);
56 $db_result = mysql_query("SET NAMES $DatabaseEncoding", $realm_db);
57
58 $mangos_db = mysql_connect($Hostname, $Username, $Password, TRUE);
59 mysql_select_db($Database, $mangos_db);
60 $db_result = mysql_query("SET NAMES $DatabaseEncoding", $mangos_db);
61
62 $characters_db = mysql_connect($RealmHostname, $RealmUsername, $RealmPassword);
63 mysql_select_db($CharactersDatabase, $characters_db);
64 $db_result = mysql_query("SET NAMES $DatabaseEncoding", $characters_db);
65
66 $db_result = mysql_query("SELECT * FROM `characters` WHERE `online`='1' ORDER BY `name`", $characters_db);
67 while($result = mysql_fetch_array($db_result))
68 {
69 // Get GM level by character
70 $db_result2 = mysql_query("SELECT gmlevel FROM `account` WHERE `id`='".$result['account']."'", $realm_db);
71 //echo("SELECT `gmlevel` FROM `account` WHERE `id`='".$result['account']."'");
72 $result2 = mysql_fetch_array($db_result2);
73
74 $char_data = explode(' ',$result['data']);
75 $Result .= " <player>\r\n".
76 " <name>".$result['name']."</name>\r\n".
77 " <race>".$result['race']."</race>\r\n".
78 " <class>".$result['class']."</class>\r\n".
79 " <level>".$char_data[53]."</level>\r\n".
80 " <map>".$result['map']."</map>\r\n".
81 " <zone>".get_zone_name($result['map'], $result['position_x'], $result['position_y'])."</zone>\r\n".
82 " <ping>10</ping>\r\n".
83 " <plevel>".$result2['gmlevel']."</plevel>\r\n".
84 " <ip>178.12.14.2</ip>\r\n".
85 " </player>\r\n";
86 }
87 $Result .= " </players>\r\n".
88 " </stats>\r\n";
89 return($Result);
90}
91
92function get_zone_name($mapid, $x, $y)
93{
94 global $realm_db;
95 $query = mysql_query("SELECT * FROM `zone_coordinates` ORDER BY `priory`", $realm_db);
96 $zmap = 0;
97 while($result = mysql_fetch_array($query))
98 {
99 if ($result['map']==$mapid AND $result['y_min'] < $x AND $result['y_max'] > $x AND $result['x_max'] < $y AND $result['x_min'] > $y) $zmap=$result['zone_id'];
100 }
101 return $zmap;
102}
103
104?>
Note: See TracBrowser for help on using the repository browser.