Advertisement
Guest User

get_tw_server_0_6-example

a guest
Jan 22nd, 2014
976
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 11.27 KB | None | 0 0
  1. <?php  
  2.     /******************************************************************\
  3.     |* Copyright (c) by Starlex.de
  4.     |*
  5.     |* Visit:
  6.     |*      http://teeworlds.com
  7.     |*      http://teeworlds.de
  8.     |*      http://teeworlds-community.de
  9.     |*
  10.     |* License:
  11.     |*      http://creativecommons.org/licenses/by-nc-sa/3.0/deed.de
  12.     |*
  13.     \******************************************************************/
  14.     $test = get_tw_server_0_6("localhost:8303");
  15. ?>
  16.  
  17. <table border="1">
  18.   <tr>
  19.     <td><b>Name</b></td>
  20.     <td><b>Map</b></td>
  21.     <td><b>Gametype</b></td>
  22.     <td><b>Ingame</b></td>
  23.     <td><b>All</b></td>
  24.   </tr>
  25.   <tr>
  26.     <td><?php echo $test["name"]; ?> </td>
  27.     <td><?php echo $test["map"]; ?> </td>
  28.     <td><?php echo $test["type"]; ?> </td>
  29.     <td><?php echo $test["player_count_ingame"]."/".$test["max_players_ingame"]; ?></td>
  30.     <td><?php echo $test["player_count_all"]."/".$test["max_players_all"]; ?></td>
  31.   </tr>
  32. </table>
  33. <br/>
  34. <table border="1">
  35.   <tr>
  36.     <td><b>Name </b></td>
  37.     <td><b>Clan </b></td>
  38.     <td><b>Flag </b></td>
  39.     <td><b>Score </b></td>
  40.     <td><b>Team </b></td>
  41.   </tr>
  42.   <tr>
  43.  
  44. <?php foreach ($test["players"] as &$player) { ?>
  45.   <tr>
  46.     <td><?php echo $player["name"]; ?> </td>
  47.     <td><?php echo $player["clan"]; ?> </td>
  48.     <td><?php echo $player["flag"]; ?> </td>
  49.     <td><?php echo $player["score"]; ?> </td>
  50.     <td><?php echo $player["team"]; ?> </td>
  51.   </tr>
  52. <?php } ?>
  53.  
  54.   </tr>
  55. </table>
  56. <?php
  57. function get_tw_server_0_6($server) {
  58.  
  59.     $socket = stream_socket_client('udp://'.$server , $errno, $errstr, 1);
  60.     fwrite($socket, "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x67\x69\x65\x33\x05");
  61.     $response = fread($socket, 2048);
  62.    
  63.     //  echo str_replace("\x00"," <br/> ",$response);
  64.    
  65.     if ($response){
  66.         $info = explode("\x00",$response);
  67.        
  68.         $players = array();
  69.         for ($i = 0; $i <= $info[8]*5-5 ; $i += 5) {
  70.            
  71.             $teams = Array("Zuschauer","Spieler");
  72.             $team = $teams[$info[$i+14]];
  73.            
  74.             $flags = Array();
  75.            
  76.             $flags[] = Array("default", "-1");
  77.             $flags[] = Array("XEN", "901");
  78.             $flags[] = Array("XNI", "902");
  79.             $flags[] = Array("XSC", "903");
  80.             $flags[] = Array("XWA", "904");
  81.             $flags[] = Array("SS", "737");
  82.             $flags[] = Array("AF", "4");
  83.             $flags[] = Array("AX", "248");
  84.             $flags[] = Array("AL", "8");
  85.             $flags[] = Array("DZ", "12");
  86.             $flags[] = Array("AS", "16");
  87.             $flags[] = Array("AD", "20");
  88.             $flags[] = Array("AO", "24");
  89.             $flags[] = Array("AI", "660");
  90.             $flags[] = Array("AG", "28");
  91.             $flags[] = Array("AR", "32");
  92.             $flags[] = Array("AM", "51");
  93.             $flags[] = Array("AW", "533");
  94.             $flags[] = Array("AU", "36");
  95.             $flags[] = Array("AT", "40");
  96.             $flags[] = Array("AZ", "31");
  97.             $flags[] = Array("BS", "44");
  98.             $flags[] = Array("BH", "48");
  99.             $flags[] = Array("BD", "50");
  100.             $flags[] = Array("BB", "52");
  101.             $flags[] = Array("BY", "112");
  102.             $flags[] = Array("BE", "56");
  103.             $flags[] = Array("BZ", "84");
  104.             $flags[] = Array("BJ", "204");
  105.             $flags[] = Array("BM", "60");
  106.             $flags[] = Array("BT", "64");
  107.             $flags[] = Array("BO", "68");
  108.             $flags[] = Array("BA", "70");
  109.             $flags[] = Array("BW", "72");
  110.             $flags[] = Array("BR", "76");
  111.             $flags[] = Array("IO", "86");
  112.             $flags[] = Array("BN", "96");
  113.             $flags[] = Array("BG", "100");
  114.             $flags[] = Array("BF", "854");
  115.             $flags[] = Array("BI", "108");
  116.             $flags[] = Array("KH", "116");
  117.             $flags[] = Array("CM", "120");
  118.             $flags[] = Array("CA", "124");
  119.             $flags[] = Array("CV", "132");
  120.             $flags[] = Array("KY", "136");
  121.             $flags[] = Array("CF", "140");
  122.             $flags[] = Array("TD", "148");
  123.             $flags[] = Array("CL", "152");
  124.             $flags[] = Array("CN", "156");
  125.             $flags[] = Array("CX", "162");
  126.             $flags[] = Array("CC", "166");
  127.             $flags[] = Array("CO", "170");
  128.             $flags[] = Array("KM", "174");
  129.             $flags[] = Array("CG", "178");
  130.             $flags[] = Array("CD", "180");
  131.             $flags[] = Array("CK", "184");
  132.             $flags[] = Array("CR", "188");
  133.             $flags[] = Array("CI", "384");
  134.             $flags[] = Array("HR", "191");
  135.             $flags[] = Array("CU", "192");
  136.             $flags[] = Array("CW", "531");
  137.             $flags[] = Array("CY", "196");
  138.             $flags[] = Array("CZ", "203");
  139.             $flags[] = Array("DK", "208");
  140.             $flags[] = Array("DJ", "262");
  141.             $flags[] = Array("DM", "212");
  142.             $flags[] = Array("DO", "214");
  143.             $flags[] = Array("EC", "218");
  144.             $flags[] = Array("EG", "818");
  145.             $flags[] = Array("SV", "222");
  146.             $flags[] = Array("GQ", "226");
  147.             $flags[] = Array("ER", "232");
  148.             $flags[] = Array("EE", "233");
  149.             $flags[] = Array("ET", "231");
  150.             $flags[] = Array("FK", "238");
  151.             $flags[] = Array("FO", "234");
  152.             $flags[] = Array("FJ", "242");
  153.             $flags[] = Array("FI", "246");
  154.             $flags[] = Array("FR", "250");
  155.             $flags[] = Array("GF", "254");
  156.             $flags[] = Array("PF", "258");
  157.             $flags[] = Array("TF", "260");
  158.             $flags[] = Array("GA", "266");
  159.             $flags[] = Array("GM", "270");
  160.             $flags[] = Array("GE", "268");
  161.             $flags[] = Array("DE", "276");
  162.             $flags[] = Array("GH", "288");
  163.             $flags[] = Array("GI", "292");
  164.             $flags[] = Array("GR", "300");
  165.             $flags[] = Array("GL", "304");
  166.             $flags[] = Array("GD", "308");
  167.             $flags[] = Array("GP", "312");
  168.             $flags[] = Array("GU", "316");
  169.             $flags[] = Array("GT", "320");
  170.             $flags[] = Array("GG", "831");
  171.             $flags[] = Array("GN", "324");
  172.             $flags[] = Array("GW", "624");
  173.             $flags[] = Array("GY", "328");
  174.             $flags[] = Array("HT", "332");
  175.             $flags[] = Array("VA", "336");
  176.             $flags[] = Array("HN", "340");
  177.             $flags[] = Array("HK", "344");
  178.             $flags[] = Array("HU", "348");
  179.             $flags[] = Array("IS", "352");
  180.             $flags[] = Array("IN", "356");
  181.             $flags[] = Array("ID", "360");
  182.             $flags[] = Array("IR", "364");
  183.             $flags[] = Array("IQ", "368");
  184.             $flags[] = Array("IE", "372");
  185.             $flags[] = Array("IM", "833");
  186.             $flags[] = Array("IL", "376");
  187.             $flags[] = Array("IT", "380");
  188.             $flags[] = Array("JM", "388");
  189.             $flags[] = Array("JP", "392");
  190.             $flags[] = Array("JE", "832");
  191.             $flags[] = Array("JO", "400");
  192.             $flags[] = Array("KZ", "398");
  193.             $flags[] = Array("KE", "404");
  194.             $flags[] = Array("KI", "296");
  195.             $flags[] = Array("KP", "408");
  196.             $flags[] = Array("KR", "410");
  197.             $flags[] = Array("KW", "414");
  198.             $flags[] = Array("KG", "417");
  199.             $flags[] = Array("LA", "418");
  200.             $flags[] = Array("LV", "428");
  201.             $flags[] = Array("LB", "422");
  202.             $flags[] = Array("LS", "426");
  203.             $flags[] = Array("LR", "430");
  204.             $flags[] = Array("LY", "434");
  205.             $flags[] = Array("LI", "438");
  206.             $flags[] = Array("LT", "440");
  207.             $flags[] = Array("LU", "442");
  208.             $flags[] = Array("MO", "446");
  209.             $flags[] = Array("MK", "807");
  210.             $flags[] = Array("MG", "450");
  211.             $flags[] = Array("MW", "454");
  212.             $flags[] = Array("MY", "458");
  213.             $flags[] = Array("MV", "462");
  214.             $flags[] = Array("ML", "466");
  215.             $flags[] = Array("MT", "470");
  216.             $flags[] = Array("MH", "584");
  217.             $flags[] = Array("MQ", "474");
  218.             $flags[] = Array("MR", "478");
  219.             $flags[] = Array("MU", "480");
  220.             $flags[] = Array("MX", "484");
  221.             $flags[] = Array("FM", "583");
  222.             $flags[] = Array("MD", "498");
  223.             $flags[] = Array("MC", "492");
  224.             $flags[] = Array("MN", "496");
  225.             $flags[] = Array("ME", "499");
  226.             $flags[] = Array("MS", "500");
  227.             $flags[] = Array("MA", "504");
  228.             $flags[] = Array("MZ", "508");
  229.             $flags[] = Array("MM", "104");
  230.             $flags[] = Array("NA", "516");
  231.             $flags[] = Array("NR", "520");
  232.             $flags[] = Array("NP", "524");
  233.             $flags[] = Array("NL", "528");
  234.             $flags[] = Array("NC", "540");
  235.             $flags[] = Array("NZ", "554");
  236.             $flags[] = Array("NI", "558");
  237.             $flags[] = Array("NE", "562");
  238.             $flags[] = Array("NG", "566");
  239.             $flags[] = Array("NU", "570");
  240.             $flags[] = Array("NF", "574");
  241.             $flags[] = Array("MP", "580");
  242.             $flags[] = Array("NO", "578");
  243.             $flags[] = Array("OM", "512");
  244.             $flags[] = Array("PK", "586");
  245.             $flags[] = Array("PW", "585");
  246.             $flags[] = Array("PA", "591");
  247.             $flags[] = Array("PG", "598");
  248.             $flags[] = Array("PY", "600");
  249.             $flags[] = Array("PE", "604");
  250.             $flags[] = Array("PH", "608");
  251.             $flags[] = Array("PN", "612");
  252.             $flags[] = Array("PL", "616");
  253.             $flags[] = Array("PT", "620");
  254.             $flags[] = Array("PR", "630");
  255.             $flags[] = Array("QA", "634");
  256.             $flags[] = Array("RE", "638");
  257.             $flags[] = Array("RO", "642");
  258.             $flags[] = Array("RU", "643");
  259.             $flags[] = Array("RW", "646");
  260.             $flags[] = Array("BL", "652");
  261.             $flags[] = Array("SH", "654");
  262.             $flags[] = Array("KN", "659");
  263.             $flags[] = Array("LC", "662");
  264.             $flags[] = Array("MF", "663");
  265.             $flags[] = Array("PM", "666");
  266.             $flags[] = Array("VC", "670");
  267.             $flags[] = Array("WS", "882");
  268.             $flags[] = Array("SM", "674");
  269.             $flags[] = Array("ST", "678");
  270.             $flags[] = Array("SA", "682");
  271.             $flags[] = Array("SN", "686");
  272.             $flags[] = Array("RS", "688");
  273.             $flags[] = Array("SC", "690");
  274.             $flags[] = Array("SL", "694");
  275.             $flags[] = Array("SG", "702");
  276.             $flags[] = Array("SX", "534");
  277.             $flags[] = Array("SK", "703");
  278.             $flags[] = Array("SI", "705");
  279.             $flags[] = Array("SB", "90");
  280.             $flags[] = Array("SO", "706");
  281.             $flags[] = Array("ZA", "710");
  282.             $flags[] = Array("GS", "239");
  283.             $flags[] = Array("ES", "724");
  284.             $flags[] = Array("LK", "144");
  285.             $flags[] = Array("SD", "736");
  286.             $flags[] = Array("SR", "740");
  287.             $flags[] = Array("SZ", "748");
  288.             $flags[] = Array("SE", "752");
  289.             $flags[] = Array("CH", "756");
  290.             $flags[] = Array("SY", "760");
  291.             $flags[] = Array("TW", "158");
  292.             $flags[] = Array("TJ", "762");
  293.             $flags[] = Array("TZ", "834");
  294.             $flags[] = Array("TH", "764");
  295.             $flags[] = Array("TL", "626");
  296.             $flags[] = Array("TG", "768");
  297.             $flags[] = Array("TK", "772");
  298.             $flags[] = Array("TO", "776");
  299.             $flags[] = Array("TT", "780");
  300.             $flags[] = Array("TN", "788");
  301.             $flags[] = Array("TR", "792");
  302.             $flags[] = Array("TM", "795");
  303.             $flags[] = Array("TC", "796");
  304.             $flags[] = Array("TV", "798");
  305.             $flags[] = Array("UG", "800");
  306.             $flags[] = Array("UA", "804");
  307.             $flags[] = Array("AE", "784");
  308.             $flags[] = Array("GB", "826");
  309.             $flags[] = Array("US", "840");
  310.             $flags[] = Array("UY", "858");
  311.             $flags[] = Array("UZ", "860");
  312.             $flags[] = Array("VU", "548");
  313.             $flags[] = Array("VE", "862");
  314.             $flags[] = Array("VN", "704");
  315.             $flags[] = Array("VG", "92");
  316.             $flags[] = Array("VI", "850");
  317.             $flags[] = Array("WF", "876");
  318.             $flags[] = Array("EH", "732");
  319.             $flags[] = Array("YE", "887");
  320.             $flags[] = Array("ZM", "894");
  321.             $flags[] = Array("ZW", "716");
  322.  
  323.             $flag = "";
  324.            
  325.             foreach ($flags as $flag_tmp)
  326.             {
  327.                 if($flag_tmp[1] == $info[$i+12])
  328.                 {
  329.                     $flag = $flag_tmp[0];
  330.                 }
  331.             }
  332.            
  333.  
  334.             $players[] = array(
  335.                         "name" => htmlentities($info[$i+10], ENT_QUOTES, "UTF-8"),
  336.                         "clan" => htmlentities($info[$i+11], ENT_QUOTES, "UTF-8"),
  337.                         "flag" => $flag,
  338.                         "score" => $info[$i+13],
  339.                         "team" => $team);
  340.         }
  341.        
  342.         if($info[9] == $info[7])
  343.         {
  344.             $specslots = $info[9];
  345.         }else{
  346.             $specslots = $info[9] - $info[7];
  347.         }
  348.         $tmp = array(
  349.         "name" => $info[2],
  350.         "map" => $info[3],
  351.         "type" => $info[4],
  352.         "flags" => $info[5],
  353.         "player_count_ingame" => $info[6],
  354.         "max_players_ingame" => $info[7],
  355.         "player_count_spectator" => $info[8] - $info[6],
  356.         "max_players_spectator" => $specslots,
  357.         "player_count_all" => $info[8],
  358.         "max_players_all" => $info[9],
  359.         "players" => $players);
  360.        
  361.         return $tmp;
  362.        
  363.     } else {
  364.         return FALSE;
  365.     }
  366. }
  367. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement