source: mangos/inc/stat2.php@ 5

Last change on this file since 5 was 5, checked in by george, 18 years ago

import

File size: 3.9 KB
Line 
1<?php
2// This script generate dynamically WoWEmu-like file stat.xml from MaNGOS SQL database for www.wowstatus.net purpose
3// You have to register xml extension to be processed by PHP in Apache httpd.conf (something like AddType application/x-httpd-php .phtml .pwml .php3 .php4 .php .php2 .inc .xml)
4// Created by Chronos
5// email: robie@centrum.cz
6
7$Hostname = 'localhost';
8$Username = 'root';
9$Password = 'gurubashi';
10$Database = 'mangos'; // must contains characters table
11$RealmHostname = $Hostname;
12$RealmUsername = $Username;
13$RealmPassword = $Password;
14$RealmDatabase = 'realmd'; // must contains zone_coordinates and accounts table
15$EmuVersion = 'Mangos 3485';
16$Owner = 'Maron';
17$ServerName = 'Heroes Of Fantasy';
18$DatabaseEncoding = 'utf8';
19
20$Output = WoWEmuStat();
21$_GLOBALS['SERVER_SOFTWARE'] = 'WoWEmu';
22Header('Content-Type: text/xml');
23Header('Content-Length: '.strlen($Output));
24Header('Server: WoWEmu');
25echo($Output);
26
27function WoWEmuStat()
28{
29 global $Hostname, $Username, $Password, $Database, $EmuVersion, $Owner, $ServerName, $realm_db, $DatabaseEncoding,
30 $RealmHostname, $RealmUsername, $RealmPassword, $RealmDatabase;
31
32 $Result =
33'<?xml version="1.0" encoding="UTF-8"'."?>\r\n".
34'<?xml-stylesheet type="text/xsl" href="stat.xsl"'."?>\r\n".
35" <stats>\r\n".
36/*
37" <server>\r\n".
38" <version>".$EmuVersion."</version>\r\n".
39" <owner>".$Owner."</owner>\r\n".
40" <servername>".$ServerName."</servername>\r\n".
41" <uptime>0 weeks 1 days 0 hours 0 mins</uptime>\r\n".
42" </server>\r\n".
43" <serverload>\r\n".
44" <network>\r\n".
45" <configsleep>200</configsleep>\r\n".
46" <loops>0</loops>\r\n".
47" <totaltime>0</totaltime>\r\n".
48" <load>0.00%</load>\r\n".
49" </network>\r\n".
50" <world>\r\n".
51" <configsleep>600</configsleep>\r\n".
52" <loops>95222</loops>\r\n".
53" <totaltime>7594525</totaltime>\r\n".
54" <load>1.50%</load>\r\n".
55" </world>\r\n".
56" </serverload>\r\n".
57*/
58" <players>\r\n";
59
60 $realm_db = mysql_connect($RealmHostname, $RealmUsername, $RealmPassword);
61 mysql_select_db($RealmDatabase, $realm_db);
62 $db_result = mysql_query("SET NAMES $DatabaseEncoding", $realm_db);
63
64 $mangos_db = mysql_connect($Hostname, $Username, $Password, TRUE);
65 mysql_select_db($Database, $mangos_db);
66 $db_result = mysql_query("SET NAMES $DatabaseEncoding", $mangos_db);
67
68 $db_result = mysql_query("SELECT * FROM `character` WHERE `online`='1' ORDER BY `name`", $mangos_db);
69 while($result = mysql_fetch_array($db_result))
70 {
71 // Get GM level by character
72 $db_result2 = mysql_query("SELECT gmlevel FROM `account` WHERE `id`='".$result['account']."'", $realm_db);
73 //echo("SELECT `gmlevel` FROM `account` WHERE `id`='".$result['account']."'");
74 $result2 = mysql_fetch_array($db_result2);
75
76 $char_data = explode(' ',$result['data']);
77 $Result .= " <player>\r\n".
78 " <name>".$result['name']."</name>\r\n".
79 " <race>".$result['race']."</race>\r\n".
80 " <class>".$result['class']."</class>\r\n".
81 " <level>".$char_data[34]."</level>\r\n".
82 " <map>".$result['map']."</map>\r\n".
83 " <zone>".get_zone_name($result['map'], $result['position_x'], $result['position_y'])."</zone>\r\n".
84 " <ping>".$char_data['1420']."</ping>\r\n".
85 " <plevel>".$result2['gmlevel']."</plevel>\r\n".
86 " <ip>178.12.14.2</ip>\r\n".
87 " </player>\r\n";
88 }
89 $Result .= " </players>\r\n".
90 " </stats>\r\n";
91 return($Result);
92}
93
94function get_zone_name($mapid, $x, $y)
95{
96 global $realm_db;
97 $query = mysql_query("SELECT * FROM `zone_coordinates` ORDER BY `priory`", $realm_db);
98 $zmap = 0;
99 while($result = mysql_fetch_array($query))
100 {
101 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'];
102 }
103 return $zmap;
104}
105
106?>
Note: See TracBrowser for help on using the repository browser.