Jump to content
GIGN Forum

Server Query


*jancis38*
 Share

Recommended Posts

  • Replies 93
  • Created
  • Last Reply

Top Posters In This Topic

Reāli man nerukā arī players_max un izvada kkādu 47.

Un ar šito kodu man vislaik rādas nedabujaam chalange...

<?
$ip="cs.****.lv";
    $port=27015;
    if(!$sock=@fsockopen("udp://".$ip,$port,$errno,$errstr,1)){
        die('[ERROR] '.$errno.': '.$errstr);
    }
    $data=(object)array();
    $response=query("TSource Engine Query\"); // te vel to sudu rauj nost, starp \ un 0 nav jabut atstarpei
    $type=getbyte($response);
    if($type==0x49){
        $data->name=getstring($response);
        $data->map=getstring($response);
        getstring($response);
        getstring($response);
        getshort($response);
        getbyte($response);
        $data->players_now=getbyte($response);
        $data->players_max=getbyte($response);
    }elseif($type==0x6D){
        getstring($response);
        $data->name=getstring($response);
        $data->map=getstring($response);
        getstring($response);
        getstring($response);
        getbyte($response);
        $data->players_now=getbyte($response);
        $data->players_max=getbyte($response);
    }else{
        die('WTF?!');
    }
    echo "
    Servera nosaukums: $data->name<br />
    Karte: $data->map<br />
    Speletaji: $data->players_now/$data->players_max<br />
    ";

define('A2S_PLAYER', "\x55");
$response = query(A2S_PLAYER . "\xFF\xFF\xFF\xFF");
if ( getbyte($response) != 0x41 )
  die('nedabujaam challenge');
$challenge = @pack("L", getlong($response));
$response = query(A2S_PLAYER . $challenge);
if ( getbyte($response) != 0x44 )
  die('nedabujaam playeru sarakstu');
$total_players = getbyte($response);
for($i = 1;$i < $total_players; $i++)
{
    getbyte($response);
    $name = getstring($response);
    $kills = getlong($response);
    getlong($response);
    echo $name."<br />\n";
}
?>

Edited by GuskiS
Link to comment
Share on other sites

Pirmkārt, tā kā tu esi vienkārši botsiki taisījis copy&paste no pirmās lapas, tad tu tāpat kā liela daļa uzrāvies uz problēmu.

Otrkārt, es nezinu vai tu esi ievērojis, bet iekš query funkcijas ir tāds mainīgais $query_type, kas var būt vai nu "source" vai "goldsource". Varētu būt, ka dēļ šī mainīgā tev response neatnāk pareizā. Nēesmu gan šito nekur pieminējis, bet noteikt query_type var nosūtot A2A_PING komandu un pārbaudot responses garumu. Ja garums strlen($response) ir 2, tad tas ir goldsource, citādi source. To vajag kā globālo mainīgo uzstādīt...

Link to comment
Share on other sites

  • 2 months later...
  • 2 weeks later...

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share


×
×
  • Create New...