Avatar billede doomstone-dk- Nybegynder
02. august 2003 - 22:58 Der er 8 kommentarer og
3 løsninger

connect til cs og/eller q3 server

Jeg ved hvordan jeg kan connecte til en q2 server og få dataen så jeg kan arbejde med den! men hvordan gør jeg det med en cs og q3 server?
Avatar billede doomstone-dk- Nybegynder
02. august 2003 - 22:59 #1
SKal virke både i linux og windows
Avatar billede simonvalter Praktikant
02. august 2003 - 23:01 #2
Avatar billede doomstone-dk- Nybegynder
02. august 2003 - 23:07 #3
Hvis i kenner andre ud over cs, q2 og q3 må i meget gerne sige det jeg kan bruge alle :)
Avatar billede superanden Nybegynder
02. august 2003 - 23:23 #4
cs: bruger jeg half-life protocol , se evt på www.p2d.frac.dk under servere (hlprot skal være installeret (kig evt. under downloads))
Avatar billede superanden Nybegynder
02. august 2003 - 23:23 #5
altså boomtown har jo lavet til alle spil, deres boomtown @ home client
Avatar billede doomstone-dk- Nybegynder
02. august 2003 - 23:36 #6
superanden>> Skal bruge det til min hejmmeside zapsite.dk

Har kun simmet men efter hvad jeg kan se bruger de alle
"fsockopen("udp://".$addr, $port);"
Som jeg også gør til mit q2 server status. men af underlige grude virke mit kun til q2. ved i hvorfor?

Vil se det mere i sømne i morgen!
Avatar billede the_legend Nybegynder
03. august 2003 - 10:51 #7
<?php
include("config.php");
//Forbinder serveren
$fp = fsockopen("udp://".$serverip, $serverport, &$errno, &$errstr, 5);

if(!$fp) {
echo "<b>Kunne ikke forbinde til serveren</b>";
} else {
//Sender en query om at få detaljer om serveren
$send="\377\377\377\377details".chr(0);
fwrite($fp,$send);
$tmp=fgets($fp,5);

//Sætter alle standard værdi'erne
$text=""; $count=0;
$antal = 0;
$Servernavn = '';
$Servermap = '';
$Serverdir = '';
$Servertype = '';
$Serveractiveclient = '';
$Servermaxclient = '';
$Servertyp = '';
$Serveros = '';
$Serverpass = '';

//Går svaret igennem
do {
  $antal++;
  $tmp=fgets($fp,1);
  //De forskellige informationer sættes
  if ($count == 1) {
    $Servernavn = $Servernavn.$tmp;
  }
  if ($count == 2) {
    $Servermap = $Servermap.$tmp;
  }
  if ($count == 3) {
    $Serverdir = $Serverdir.$tmp;
  }
  if ($count == 4) {
    $Servertype = $Servertype.$tmp;
  }
  if ($count == 5) {
    if ($antal == 1) {
      $Serveractiveclient = $Serveractiveclient.ord($tmp);
    }
    if ($antal == 2) {
      $Servermaxclient = $Servermaxclient.ord($tmp);
    }
    if ($antal == 4) {
      $Servertyp = $Servertyp.chr(ord($tmp));
    }
    if ($antal == 5) {
      $Serveros = $Serveros.chr(ord($tmp));
    }
    if ($antal == 6) {
      $Serverpass = $Serverpass.ord($tmp);
    } 
  }
  $text.=$tmp;
  if (!ord($tmp)) { $count++; $text.="<br>"; $antal = 0; }
} while ($count<11);


//Password og OS rettes til et tekst
$Serverpass = 'Kræves ikke';
if ($Serverpass == '1') {
  $Serverpass = 'Kræves';
}
$Serveros = 'Windows';
if ($Serveros == 'l') {
  $Serveros = 'Linux';
}
//Informationen skrives
echo '<table width="400" style="border:0px;">';
echo '<tr><td colspan="2" align="center"><h2>'.$Servernavn.'</h2></td></tr>';
echo '<tr><td colspan="2" align="left"><b>Information:</b></td></tr>';
echo '<tr><td width="50">Map:</td><td>'.$Servermap.'</td></tr>';
echo '<tr><td>Type:</td><td>'.$Servertype.'</td></tr>';
echo '<tr><td>Spillere:</td><td>'.$Serveractiveclient.' af '.$Servermaxclient.'</td></tr>';
echo '<tr><td>Kode:</td><td>'.$Serverpass.'</td></tr>';
echo '<tr><td>OS:</td><td>'.$Serveros.'</td></tr>';
echo '</table>';


//Begynder at hente spillere
echo '<br><table width="400" border="0">';
echo '<tr><td colspan="3" align="left"><b>Spillere:</b></td></tr>';
echo '<tr><td>Id</td><td>Navn</td><td>Frags</td></tr>';

//Sender en query om at få spillere på serveren
$countantal = 2;
$sidstelinje = 0;
$activespillere = 1;
$send="\377\377\377\377players".chr(0);
fwrite($fp,$send);
$tmp=fgets($fp,5);
echo $tmp;
$text=""; $count=0;
$antal = 0;
$spillere = array();
$spillernr = -1;

//Går svaret igennem
do {
  $antal++;
  $tmp=fgets($fp,1);
  if ($count == 1) {
    if ($antal == 8) {
      //Finder ud af hvor mange aktive der er på serveren og putter det ind i en variabel
      $countantal = ord($tmp) * 4 + 1;
      $activespillere = ord($tmp);
    }
    //Udskriver de forskellige informationer om spillerne
    if ($antal == 9) {
      $spillernr = $spillernr + 1;
      $spillere[$spillernr] = array();
      $spillere[$spillernr][2] = ord($tmp);
      $sidstelinje = $count;
    }
    if ($antal > 9) {
      $spillere[$spillernr][1] = $spillere[$spillernr][1].str_replace("'", "&apos;", $tmp);
    }
  } else {
    if ($antal == 5) {
      $spillernr = $spillernr + 1;
      $spillere[$spillernr] = array();
      $spillere[$spillernr][2] = ord($tmp);
      $sidstelinje = $count;
    }
    if ($antal > 5) {
      $spillere[$spillernr][1] = $spillere[$spillernr][1].str_replace("'", "&apos;", $tmp);
    }
    if ($antal == 1 AND $sidstelinje+1 == $count) {
      $spillere[$spillernr][0] = ord($tmp);
    }
  }
  $text = $text.$tmp;

  if (!ord($tmp)) { $count++; $text.="<br>"; $antal = 0; }
} while ($count<$countantal);

//Skriver hvis der ikke er nogle på serveren
if ($activespillere == 0) {
  echo "<tr><td colspan='3' align='center'>Ingen aktive spillere</td></tr>";
} else {
  //Udskriver spillerne hvis der er nogle
  for ($i = 0; $i < sizeof($spillere); $i++) {
    echo "<tr><td>".$spillere[$i][2]."</td><td>".$spillere[$i][1]."</td><td>".$spillere[$i][0]."</td></tr>";
  }
}
echo "</table>";
//Lukker forbindelsen til serveren
fclose($fp);
};
?>

jeg bruger denne kode til at få noget info om en cs server!

du skal fx skrive server.php?serverip=212.97.202.28&serverport=27016 så det det..
Avatar billede doomstone-dk- Nybegynder
03. august 2003 - 13:09 #8
the_legend>> Meget godt script men det som viser medlemmerne virker ikke?
Avatar billede xyborx Nybegynder
04. august 2003 - 09:46 #11
Jeg lærte en del af at læse her:
http://0x00.org/random/Halflife/
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester