Zdravím, mám problém s minecraft statusem na webu. Jako jediný typ hry mi instantě vypadává je-li na serveru více jak 18 lidí. Prostě 2 minuty běží v pohodě a pak najednou na 5 minut 0/0 výpadek. Dělá to pouze při 18+ hráčích, při menším počtu to jede v pohodě.
Ta chyba vypadá nějak takto:
- bug.png (56.91 KiB) Zobrazeno 1415 x
- bug2.png (7.92 KiB) Zobrazeno 1415 x
Navíc když otevřu detail serveru a zrovna to nevypadává, ukazuje to taky špatný počet hráčů (místo 30 například 18) a pokud tam je menší počet hráčů, ukazuje to vždy o 1 méně v detailu.
A vypadat to má takto:
- ok.png (9.44 KiB) Zobrazeno 1415 x
Tohle je tuším aktuální kod statusu:Kód: Vybrat vše
function lgsl_query_MC(&$server, &$lgsl_need, &$lgsl_fp) {
$Data = WriteData($lgsl_fp, "\x09" );
if (!$Data) { return FALSE; }
$Challenge = Pack( 'N', $Data );
$status = WriteData($lgsl_fp, "\x00", $Challenge . "\x01\x02\x03\x04" );
$status = SubStr( $status, 11 );
$status = Explode( "\x00\x00\x01player_\x00\x00", $status );
$players = SubStr( $status[ 1 ], 0, -2 );
$players = Explode( "\x00", $players );
$status = Explode( "\x00", $status[ 0 ] );
$data = array ("general" => $status, "plugins" => explode(",",$status[9]), "players" => $players);
$server['b']['status'] = 1;
$server['s']['map'] = $data['general'][11];
$server['s']['game'] = $data['general'][3];
$server['s']['name'] = $data['general'][1];
$server['s']['map'] = $data['general'][11];
$server['s']['players'] = $data['general'][13];
$server['s']['playersmax'] = $data['general'][15];
$server['e']['version'] = $data['general'][7];
$server['e'] = $data['plugins'];
$players = array();
for($i=1;$i<sizeof($data['players']);$i++) {
$add = array("pid" => $i , "name" => $data['players'][$i]);
array_push($players,$add);
}
$server['p'] = $players;
return TRUE;
}
Pokud víte kde mám chybu, byl bych rád za radu. Nebo pokud víte někdo o nějakém kodu, který by fungoval lépe na
PHP-Fussion ?