<?php
$Hostname = 'localhost';
$Username = 'root';
$Password = '';
$Database = 'characters'; // must contains characters table
$RealmHostname = $Hostname;
$RealmUsername = $Username;
$RealmPassword = $Password;
$RealmDatabase = 'realmd';  // must contains zone_coordinates and accounts table
$EmuVersion = '4500';
$Owner = 'Admin';
$ServerName = 'Free WoW server';
$ServerAddress = 'realmlist';
$Patch = '2.3';
$Registration = 'Open';
$MaxPlayers = '200';
$XP = 'blizzlike';
$DatabaseEncoding = 'utf8';

$Output = MangosStat();
 Header('Content-Type: text/xml');   // Needed only for direct generation of xml file
 Header('Content-Length: '.strlen($Output)); // Needed only for direct generation of xml file
echo($Output);

function MangosStat()
{
  global $Hostname, $Username, $Password, $Database, $EmuVersion, $Owner, 
  $ServerName, $ServerAddress, $Patch, $Registration, $MaxPlayers, $XP,
  $realm_db, $DatabaseEncoding, $RealmHostname, $RealmUsername, $RealmPassword, $RealmDatabase;
  
  $Result =
'<?xml version="1.0" encoding="UTF-8"'."?>\r\n".
'<!DOCTYPE server SYSTEM "http://wow.zdechov.net/projectonlineplayes/onlineplayers.dtd"'.">\r\n".
"  <server>\r\n".
"    <servername>".$ServerName."</servername>\r\n".
"    <serveraddress>".$ServerAddress."</serveraddress>\r\n".
"    <owner>".$Owner."</owner>\r\n".
"    <patch>".$Patch."</patch>\r\n".
"    <uptime>0 weeks 1 days 0 hours 0 mins</uptime>\r\n".
"    <registration>".$Registration."</registration>\r\n".
"    <maxplayers>".$MaxPlayers."</maxplayers>\r\n".
"    <xp>".$XP."</xp>\r\n".
"    <players>\r\n";

    $realm_db = mysql_connect($RealmHostname, $RealmUsername, $RealmPassword);
    mysql_select_db($RealmDatabase, $realm_db);
  $db_result = mysql_query("SET NAMES $DatabaseEncoding", $realm_db);

    $mangos_db = mysql_connect($Hostname, $Username, $Password, TRUE);
    mysql_select_db($Database, $mangos_db);
  $db_result = mysql_query("SET NAMES $DatabaseEncoding", $mangos_db);

  
  $db_result = mysql_query("SELECT count(*) FROM `character` WHERE `online`='1' ORDER BY `name`", $mangos_db);
  $PlayersCount = mysql_fetch_row($db_result);
  $Result .= "      <playerscount>".$PlayersCount[0]."</playerscount>\r\n";
  

  $db_result = mysql_query("SELECT * FROM `character` WHERE `online`='1' ORDER BY `name`", $mangos_db);
    while($result = mysql_fetch_array($db_result))
    {
    // Get GM level by character
    $db_result2 = mysql_query("SELECT gmlevel FROM `account` WHERE `id`='".$result['account']."'", $realm_db);
    //echo("SELECT `gmlevel` FROM `account` WHERE `id`='".$result['account']."'");
    $result2 = mysql_fetch_array($db_result2);
    
    $char_data = explode(' ',$result['data']);
        $Result .= "      <player>\r\n".
    "        <name>".$result['name']."</name>\r\n".
    "        <level>".$char_data[34]."</level>\r\n".
    "        <race>".$result['race']."</race>\r\n".
    "        <class>".$result['class']."</class>\r\n".
    "        <zone>".get_zone_name($result['map'], $result['position_x'], $result['position_y'])."</zone>\r\n".
    "        <map>".$result['map']."</map>\r\n".
    "        <ip>178.12.14.2</ip>\r\n".
    "        <plevel>".$result2['gmlevel']."</plevel>\r\n".
    "      </player>\r\n";
  }
  $Result .= "    </players>\r\n".
   "  </server>\r\n";
   return($Result);
}

function get_zone_name($mapid, $x, $y)
{
    global $realm_db;
    $query = mysql_query("SELECT * FROM `zone_coordinates` ORDER BY `priory`", $realm_db);
    $zmap = 0;
    while($result = mysql_fetch_array($query))
    {
      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'];
    }
    return $zmap;
}
?>
