Jump to content

Recommended Posts

  • 40 years later...
Posted

Hello Guys,

i want to ask if there is a way to make the core writing an xml file like this:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="http://localhost//test.php?file=server_stats.xsl"?>
<serverpage>
 <status>
   <platform>ArcEmu TRUNK r1509/Release-Win-X86 ([url]www.ArcEmu.org[/url])</platform>
   <uptime>0 days, 12 hours, 46 minutes, 16 seconds</uptime>
   <oplayers>23</oplayers>
   <cpu>0.34</cpu>

   <qplayers>0</qplayers>
   <ram>1023.766</ram>
   <avglat>44.696</avglat>
   <threads>41</threads>
   <fthreads>9</fthreads>
   <gmcount>0</gmcount>

   <lastupdate>Fri Mar 27 10:35:53 2009
</lastupdate>
   <alliance>13</alliance>
   <horde>10</horde>
   <acceptedconns>253</acceptedconns>
   <peakcount>72</peakcount>
   <wdbquerysize>0</wdbquerysize>

   <cdbquerysize>0</cdbquerysize>
 </status>
 <statsummary>
   <human>1</human>
   <orc>3</orc>
   <dwarf>1</dwarf>
   <nightelf>7</nightelf>

   <undead>3</undead>
   <tauren>0</tauren>
   <gnome>1</gnome>
   <troll>1</troll>
   <bloodelf>3</bloodelf>
   <draenei>3</draenei>

   <warrior>4</warrior>
   <paladin>2</paladin>
   <hunter>6</hunter>
   <rogue>4</rogue>
   <priest>1</priest>
   <shaman>0</shaman>

   <mage>1</mage>
   <warlock>2</warlock>
   <druid>3</druid>
 </statsummary>
 <instances>
   <instance>
       <map>0</map>

       <maptype>0</maptype>
       <players>8</players>
       <maxplayers>0</maxplayers>
       <creationtime>N/A</creationtime>
       <expirytime>N/A</expirytime>
       <idletime>N/A</idletime>

   </instance>
   <instance>
       <map>1</map>
       <maptype>0</maptype>
       <players>7</players>
       <maxplayers>0</maxplayers>
       <creationtime>N/A</creationtime>

       <expirytime>N/A</expirytime>
       <idletime>N/A</idletime>
   </instance>
   <instance>
       <map>25</map>
       <maptype>0</maptype>
       <players>0</players>

       <maxplayers>0</maxplayers>
       <creationtime>N/A</creationtime>
       <expirytime>N/A</expirytime>
       <idletime>N/A</idletime>
   </instance>
   <instance>
       <map>29</map>

       <maptype>0</maptype>
       <players>0</players>
       <maxplayers>0</maxplayers>
       <creationtime>N/A</creationtime>
       <expirytime>N/A</expirytime>
       <idletime>N/A</idletime>

   </instance>
   <instance>
       <map>37</map>
       <maptype>0</maptype>
       <players>0</players>
       <maxplayers>0</maxplayers>
       <creationtime>N/A</creationtime>

       <expirytime>N/A</expirytime>
       <idletime>N/A</idletime>
   </instance>
   <instance>
       <map>42</map>
       <maptype>0</maptype>
       <players>0</players>

       <maxplayers>0</maxplayers>
       <creationtime>N/A</creationtime>
       <expirytime>N/A</expirytime>
       <idletime>N/A</idletime>
   </instance>
   <instance>
       <map>44</map>

       <maptype>0</maptype>
       <players>0</players>
       <maxplayers>12</maxplayers>
       <creationtime>N/A</creationtime>
       <expirytime>N/A</expirytime>
       <idletime>N/A</idletime>

   </instance>
   <instance>
       <map>169</map>
       <maptype>0</maptype>
       <players>0</players>
       <maxplayers>0</maxplayers>
       <creationtime>N/A</creationtime>

       <expirytime>N/A</expirytime>
       <idletime>N/A</idletime>
   </instance>
   <instance>
       <map>369</map>
       <maptype>0</maptype>
       <players>0</players>

       <maxplayers>0</maxplayers>
       <creationtime>N/A</creationtime>
       <expirytime>N/A</expirytime>
       <idletime>N/A</idletime>
   </instance>
   <instance>
       <map>449</map>

       <maptype>0</maptype>
       <players>0</players>
       <maxplayers>0</maxplayers>
       <creationtime>N/A</creationtime>
       <expirytime>N/A</expirytime>
       <idletime>N/A</idletime>

   </instance>
   <instance>
       <map>450</map>
       <maptype>0</maptype>
       <players>0</players>
       <maxplayers>0</maxplayers>
       <creationtime>N/A</creationtime>

       <expirytime>N/A</expirytime>
       <idletime>N/A</idletime>
   </instance>
   <instance>
       <map>451</map>
       <maptype>0</maptype>
       <players>0</players>

       <maxplayers>0</maxplayers>
       <creationtime>N/A</creationtime>
       <expirytime>N/A</expirytime>
       <idletime>N/A</idletime>
   </instance>
   <instance>
       <map>530</map>

       <maptype>0</maptype>
       <players>7</players>
       <maxplayers>0</maxplayers>
       <creationtime>N/A</creationtime>
       <expirytime>N/A</expirytime>
       <idletime>N/A</idletime>

   </instance>
   <instance>
       <map>542</map>
       <maptype>4</maptype>
       <players>0</players>
       <maxplayers>5</maxplayers>
       <creationtime>10:26:02 27/02/2009</creationtime>

       <expirytime>10:26:02 28/02/2009</expirytime>
       <idletime>11:01:22 27/02/2009</idletime>
   </instance>
   <instance>
       <map>545</map>
       <maptype>4</maptype>
       <players>0</players>

       <maxplayers>5</maxplayers>
       <creationtime>10:14:20 27/02/2009</creationtime>
       <expirytime>10:14:20 28/02/2009</expirytime>
       <idletime>10:52:26 27/02/2009</idletime>
   </instance>
   <instance>
       <map>547</map>

       <maptype>4</maptype>
       <players>0</players>
       <maxplayers>5</maxplayers>
       <creationtime>10:22:13 27/02/2009</creationtime>
       <expirytime>10:22:13 28/02/2009</expirytime>
       <idletime>10:53:50 27/02/2009</idletime>

   </instance>
   <instance>
       <map>557</map>
       <maptype>4</maptype>
       <players>1</players>
       <maxplayers>5</maxplayers>
       <creationtime>10:34:20 27/02/2009</creationtime>

       <expirytime>N/A</expirytime>
       <idletime>N/A</idletime>
   </instance>
   <instance>
       <map>582</map>
       <maptype>0</maptype>
       <players>0</players>

       <maxplayers>0</maxplayers>
       <creationtime>N/A</creationtime>
       <expirytime>N/A</expirytime>
       <idletime>N/A</idletime>
   </instance>
   <instance>
       <map>584</map>

       <maptype>0</maptype>
       <players>0</players>
       <maxplayers>0</maxplayers>
       <creationtime>N/A</creationtime>
       <expirytime>N/A</expirytime>
       <idletime>N/A</idletime>

   </instance>
   <instance>
       <map>586</map>
       <maptype>0</maptype>
       <players>0</players>
       <maxplayers>0</maxplayers>
       <creationtime>N/A</creationtime>

       <expirytime>N/A</expirytime>
       <idletime>N/A</idletime>
   </instance>
   <instance>
       <map>587</map>
       <maptype>0</maptype>
       <players>0</players>

       <maxplayers>0</maxplayers>
       <creationtime>N/A</creationtime>
       <expirytime>N/A</expirytime>
       <idletime>N/A</idletime>
   </instance>
   <instance>
       <map>588</map>

       <maptype>0</maptype>
       <players>0</players>
       <maxplayers>0</maxplayers>
       <creationtime>N/A</creationtime>
       <expirytime>N/A</expirytime>
       <idletime>N/A</idletime>

   </instance>
   <instance>
       <map>589</map>
       <maptype>0</maptype>
       <players>0</players>
       <maxplayers>0</maxplayers>
       <creationtime>N/A</creationtime>

       <expirytime>N/A</expirytime>
       <idletime>N/A</idletime>
   </instance>
   <instance>
       <map>590</map>
       <maptype>0</maptype>
       <players>0</players>

       <maxplayers>0</maxplayers>
       <creationtime>N/A</creationtime>
       <expirytime>N/A</expirytime>
       <idletime>N/A</idletime>
   </instance>
   <instance>
       <map>591</map>

       <maptype>0</maptype>
       <players>0</players>
       <maxplayers>0</maxplayers>
       <creationtime>N/A</creationtime>
       <expirytime>N/A</expirytime>
       <idletime>N/A</idletime>

   </instance>
   <instance>
       <map>593</map>
       <maptype>0</maptype>
       <players>0</players>
       <maxplayers>0</maxplayers>
       <creationtime>N/A</creationtime>

       <expirytime>N/A</expirytime>
       <idletime>N/A</idletime>
   </instance>
 </instances>
 <gms>
 </gms>
 <sessions>
   <plr>

     <name>Herbal</name>
     <race>4</race>
     <class>11</class>
     <gender>1</gender>
     <pvprank>0</pvprank>
     <level>70</level>

     <map>530</map>
     <areaid>3703</areaid>
     <xpos>-1723.850830</xpos>
     <ypos>5491.229004</ypos>
     <ontime>1 hours, 8 minutes, 18 seconds</ontime>
     <latency>43</latency>

   </plr>
   <plr>
     <name>Pancho</name>
     <race>11</race>
     <class>2</class>
     <gender>0</gender>
     <pvprank>0</pvprank>

     <level>56</level>
     <map>1</map>
     <areaid>541</areaid>
     <xpos>-6116.390137</xpos>
     <ypos>-1145.420044</ypos>
     <ontime>0 hours, 0 minutes, 34 seconds</ontime>

     <latency>52</latency>
   </plr>
   <plr>
     <name>Nyx</name>
     <race>8</race>
     <class>4</class>
     <gender>1</gender>

     <pvprank>0</pvprank>
     <level>1</level>
     <map>1</map>
     <areaid>363</areaid>
     <xpos>-590.699158</xpos>
     <ypos>-4228.896484</ypos>

     <ontime>0 hours, 1 minutes, 15 seconds</ontime>
     <latency>34</latency>
   </plr>
   <plr>
     <name>Tamika</name>
     <race>2</race>
     <class>4</class>

     <gender>1</gender>
     <pvprank>0</pvprank>
     <level>70</level>
     <map>1</map>
     <areaid>1637</areaid>
     <xpos>1808.514038</xpos>

     <ypos>-4273.235840</ypos>
     <ontime>0 hours, 24 minutes, 37 seconds</ontime>
     <latency>28</latency>
   </plr>
   <plr>
     <name>Meterwels</name>
     <race>11</race>

     <class>2</class>
     <gender>0</gender>
     <pvprank>0</pvprank>
     <level>70</level>
     <map>530</map>
     <areaid>3703</areaid>

     <xpos>-1728.326782</xpos>
     <ypos>5503.406738</ypos>
     <ontime>0 hours, 3 minutes, 27 seconds</ontime>
     <latency>59</latency>
   </plr>
   <plr>
     <name>Skullcrusher</name>

     <race>4</race>
     <class>1</class>
     <gender>0</gender>
     <pvprank>0</pvprank>
     <level>70</level>
     <map>0</map>

     <areaid>4</areaid>
     <xpos>-11163.349609</xpos>
     <ypos>-2997.631104</ypos>
     <ontime>0 hours, 46 minutes, 44 seconds</ontime>
     <latency>67</latency>
   </plr>

   <plr>
     <name>Murdoc</name>
     <race>5</race>
     <class>4</class>
     <gender>0</gender>
     <pvprank>0</pvprank>

     <level>61</level>
     <map>530</map>
     <areaid>3553</areaid>
     <xpos>71.494835</xpos>
     <ypos>3450.129639</ypos>
     <ontime>0 hours, 16 minutes, 38 seconds</ontime>

     <latency>36</latency>
   </plr>
   <plr>
     <name>Sola</name>
     <race>4</race>
     <class>1</class>
     <gender>0</gender>

     <pvprank>0</pvprank>
     <level>40</level>
     <map>0</map>
     <areaid>1519</areaid>
     <xpos>-8834.524414</xpos>
     <ypos>479.571167</ypos>

     <ontime>0 hours, 53 minutes, 5 seconds</ontime>
     <latency>53</latency>
   </plr>
   <plr>
     <name>Sin</name>
     <race>10</race>
     <class>3</class>

     <gender>1</gender>
     <pvprank>0</pvprank>
     <level>28</level>
     <map>1</map>
     <areaid>392</areaid>
     <xpos>-982.656250</xpos>

     <ypos>-3798.568115</ypos>
     <ontime>0 hours, 0 minutes, 37 seconds</ontime>
     <latency>0</latency>
   </plr>
   <plr>
     <name>Feivel</name>
     <race>4</race>

     <class>1</class>
     <gender>1</gender>
     <pvprank>0</pvprank>
     <level>1</level>
     <map>1</map>
     <areaid>188</areaid>

     <xpos>10312.769531</xpos>
     <ypos>828.495239</ypos>
     <ontime>0 hours, 10 minutes, 58 seconds</ontime>
     <latency>63</latency>
   </plr>
   <plr>
     <name>Yui</name>

     <race>2</race>
     <class>3</class>
     <gender>0</gender>
     <pvprank>0</pvprank>
     <level>70</level>
     <map>530</map>

     <areaid>3536</areaid>
     <xpos>197.685791</xpos>
     <ypos>2653.279297</ypos>
     <ontime>0 hours, 27 minutes, 43 seconds</ontime>
     <latency>36</latency>
   </plr>

   <plr>
     <name>Angroscha</name>
     <race>3</race>
     <class>3</class>
     <gender>1</gender>
     <pvprank>0</pvprank>

     <level>37</level>
     <map>0</map>
     <areaid>1519</areaid>
     <xpos>-8911.710938</xpos>
     <ypos>635.445435</ypos>
     <ontime>0 hours, 7 minutes, 34 seconds</ontime>

     <latency>54</latency>
   </plr>
   <plr>
     <name>Novielle</name>
     <race>10</race>
     <class>5</class>
     <gender>1</gender>

     <pvprank>0</pvprank>
     <level>70</level>
     <map>530</map>
     <areaid>3703</areaid>
     <xpos>-2021.063599</xpos>
     <ypos>5385.645508</ypos>

     <ontime>1 hours, 6 minutes, 19 seconds</ontime>
     <latency>59</latency>
   </plr>
   <plr>
     <name>Schindala</name>
     <race>11</race>
     <class>3</class>

     <gender>1</gender>
     <pvprank>0</pvprank>
     <level>70</level>
     <map>1</map>
     <areaid>3425</areaid>
     <xpos>-6791.298828</xpos>

     <ypos>761.966858</ypos>
     <ontime>0 hours, 0 minutes, 38 seconds</ontime>
     <latency>51</latency>
   </plr>
   <plr>
     <name>Samatha</name>
     <race>5</race>

     <class>9</class>
     <gender>1</gender>
     <pvprank>0</pvprank>
     <level>19</level>
     <map>0</map>
     <areaid>172</areaid>

     <xpos>789.904846</xpos>
     <ypos>687.122253</ypos>
     <ontime>0 hours, 20 minutes, 39 seconds</ontime>
     <latency>72</latency>
   </plr>
   <plr>
     <name>Mara</name>

     <race>7</race>
     <class>1</class>
     <gender>1</gender>
     <pvprank>0</pvprank>
     <level>11</level>
     <map>0</map>

     <areaid>211</areaid>
     <xpos>-5285.149902</xpos>
     <ypos>167.073715</ypos>
     <ontime>0 hours, 22 minutes, 28 seconds</ontime>
     <latency>21</latency>
   </plr>

   <plr>
     <name>Blu</name>
     <race>4</race>
     <class>11</class>
     <gender>1</gender>
     <pvprank>0</pvprank>

     <level>70</level>
     <map>530</map>
     <areaid>3703</areaid>
     <xpos>-1718.611206</xpos>
     <ypos>5495.102539</ypos>
     <ontime>0 hours, 16 minutes, 49 seconds</ontime>

     <latency>51</latency>
   </plr>
   <plr>
     <name>Gojana</name>
     <race>4</race>
     <class>3</class>
     <gender>1</gender>

     <pvprank>0</pvprank>
     <level>60</level>
     <map>0</map>
     <areaid>1438</areaid>
     <xpos>-11026.084961</xpos>
     <ypos>-3379.923828</ypos>

     <ontime>1 hours, 4 minutes, 35 seconds</ontime>
     <latency>33</latency>
   </plr>
   <plr>
     <name>Paulinchen</name>
     <race>4</race>
     <class>11</class>

     <gender>1</gender>
     <pvprank>0</pvprank>
     <level>70</level>
     <map>557</map>
     <areaid>3956</areaid>
     <xpos>-347.795502</xpos>

     <ypos>-221.756546</ypos>
     <ontime>0 hours, 5 minutes, 45 seconds</ontime>
     <latency>11</latency>
   </plr>
   <plr>
     <name>Selket</name>
     <race>5</race>

     <class>4</class>
     <gender>1</gender>
     <pvprank>0</pvprank>
     <level>70</level>
     <map>1</map>
     <areaid>2742</areaid>

     <xpos>-6491.436035</xpos>
     <ypos>822.548035</ypos>
     <ontime>1 hours, 2 minutes, 36 seconds</ontime>
     <latency>67</latency>
   </plr>
   <plr>
     <name>Samson</name>

     <race>2</race>
     <class>3</class>
     <gender>0</gender>
     <pvprank>0</pvprank>
     <level>70</level>
     <map>530</map>

     <areaid>3518</areaid>
     <xpos>-1579.585083</xpos>
     <ypos>7593.142578</ypos>
     <ontime>3 hours, 38 minutes, 29 seconds</ontime>
     <latency>42</latency>
   </plr>

   <plr>
     <name>Robert</name>
     <race>1</race>
     <class>8</class>
     <gender>0</gender>
     <pvprank>0</pvprank>

     <level>50</level>
     <map>0</map>
     <areaid>1438</areaid>
     <xpos>-10943.979492</xpos>
     <ypos>-3401.277100</ypos>
     <ontime>0 hours, 34 minutes, 59 seconds</ontime>

     <latency>30</latency>
   </plr>
   <plr>
     <name>Physics</name>
     <race>10</race>
     <class>9</class>
     <gender>0</gender>

     <pvprank>0</pvprank>
     <level>59</level>
     <map>0</map>
     <areaid>139</areaid>
     <xpos>1948.194702</xpos>
     <ypos>-3610.875732</ypos>

     <ontime>1 hours, 7 minutes, 30 seconds</ontime>
     <latency>66</latency>
   </plr>
 </sessions>
</serverpage>

and what we need to modify for this?

Posted

From what I can see here, you can get most of this stuff from the DB (except for the latency and some other data). Meaning that you don't need to modify the core but just read the DB with a PHP script or something similar.

Posted
From what I can see here, you can get most of this stuff from the DB (except for the latency and some other data). Meaning that you don't need to modify the core but just read the DB with a PHP script or something similar.

what about this script? [someone on the forums made it]

<?php

$output_file     = "stats.xml";

$server            = "127.0.0.1";

$db_user        = "root";
$db_passwd        = "pass";

$base_XML =
<<<XML
<serverpage><sessions></sessions></serverpage>
XML;


/////// function block ///////

// connect to mysql server
function connectMySQL($HOST,$USER,$PASSWD) {
   return mysql_connect($HOST,$USER,$PASSWD);
}

// connect connection to a database
function selectMySQLDB($DB,$CONN) {
   return mysql_select_db($DB,$CONN);
}

// connect to character DB
function connectCharDB($HOST,$USER,$PASSWD) {    
   $connection = connectMySQL($HOST,$USER,$PASSWD);
   selectMySQLDB("characters",$connection);
}

// close mysql connection
function closeMySQL() {
   mysql_close();
}

/////// function block end ///////


// build base xml tree
$xml_Tree = new SimpleXMLElement($base_XML);

// open sql connection
connectCharDB($server,$db_user,$db_passwd);

$sql = "SELECT
           name,
           race,
           class,
           map,
           zone,
           position_x,
           position_y,
           SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 37), ' ', -1) as gender,
           SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 35), ' ', -1) as level
       FROM
           characters
       WHERE
           online = 1";

// send sql request
$chars = mysql_query($sql);

// walk through the results and generate xml data
while ($char = mysql_fetch_array($chars)) {
   $plr = $xml_Tree->sessions[0]->addChild('plr');
   $plr->addChild('name', htmlentities($char["name"]));
   $plr->addChild('race', $char["race"]);
   $plr->addChild('class', $char["class"]);
   $plr->addChild('gender', $char["gender"]);
   $plr->addChild('level', $char["level"]);
   $plr->addChild('map', $char["map"]);
   $plr->addChild('areaid', $char["zone"]);
   $plr->addChild('xpos', $char["position_x"]);
   $plr->addChild('ypos', $char["position_y"]);
}

// close open mysql connection
closeMySQL();


// for debugging
//echo $xml_Tree->asXML();


// write the file
$file_handler = fOpen($output_file , "w");
fWrite($file_handler , $xml_Tree->asXML());
fClose($file_handler);

?>

but i can't understand how to add all the info's..

the output XML has only those lines:

<?xml version="1.0"?>
<serverpage><sessions/></serverpage>

can you give me an example please? thanks!

Posted
just modify the db and colums to be read an it should work with no problems

its really working! lol, ecxept thad my Ascent Flash map isn't showing the online players for some reason.. :\\

and i need it to be refreshed automatically, how can i do thad? lets say every 120 sec the xml file will be refreshed from the db.

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use