Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Gaqmeq - Lista graczy
Forum PHP.pl > Forum > PHP
mazyl
Witam!

Może ktoś miał już do czynienia z GameQ

mam problem z wyciągnięciem listy graczy z serwera.

kiedyś temat był poruszony ale to co tam jest niestety nie działa.

jeżeli ktośby mógł pomóc.

tak wygląda część kodu odpowiadająca za wywołanie:

  1. $ip2 = explode(':', $ip);
  2. require_once "jscripts/GameQ.php";
  3. $gq = new GameQ();
  4. // IP , Port
  5. $servers['serwery'] = array('cs', $ip2[0], $ip2[1]);
  6. $results['serwer']['players']['0']['name'];
  7. $gq->addServers($servers);
  8. $gq->setOption('timeout', 200);
  9. $gq->setFilter('normalise');
  10. $row = $gq->requestData();
  11. $mapa = $row['serwery']['gq_mapname'];
  12. $nazwa = $row['serwery']['hostname'];



linia odpowiadająca za graczy :

  1. $results['serwer']['players']['0']['name'];



rozwiązanie znalezione na forum:

  1. for ($i = 0; $i < $players; $i++)
  2.  
  3. {
  4.  
  5.  
  6.  
  7. $gracze = $results['serwer']['players']['\".$i.\"']['name'];
  8.  
  9.  
  10.  
  11. echo "
  12.  
  13.  
  14.  
  15. <tr>
  16.  
  17. <td>$i</td>
  18.  
  19. <td>$gracze</td>
  20.  
  21. </tr>
  22.  
  23. ";
  24.  
  25.  
  26.  
  27. }


niestety nie dziala.

Moze ma ktoś pomysl ?
Michcio_
Nie wiem do jakiej gry to jest, ale zrób tak:

  1. $serwergracze=''.@$row['serwery']['numplayers'].''.@$row['serwery']['num_players'].''.@$row['serwery]['clients'].'';


Może nie jest to jakieś profesjonalne ale działa.
mazyl
do counter strike.

jak dokładniej mam to zapisac ?
Michcio_
  1. $ip2 = explode(':', $ip);
  2. require_once "jscripts/GameQ.php";
  3. $gq = new GameQ();
  4. // IP , Port
  5. $servers['serwery'] = array('cs', $ip2[0], $ip2[1]);
  6. $results['serwer']['players']['0']['name'];
  7. $gq->addServers($servers);
  8. $gq->setOption('timeout', 200);
  9. $gq->setFilter('normalise');
  10. $row = $gq->requestData();
  11. $mapa = $row['serwery']['gq_mapname'];
  12. $nazwa = $row['serwery']['hostname'];
  13. $serwergracze=''.@$row['serwery']['numplayers'].''.@$row['serwery']['num_players'].''.@$row['serwery]['clients'].'';


Zmiannea $serwergracze będzie pokazywać aktualną listę graczy na serwerze.
mazyl
probowałem. niestety zwraca mi tylko ilosc graczy nic wiecej.
Uriziel01
A co dostajesz w tej tablicy $results['serwer']['players'] ?
Zrób:
  1. var_dump($results['serwer']['players']);
mazyl
pokazuje się
  1. NULL


i nic wiecej. może ja podeśle jak ja mam to u siebie zrobione,

to jest fragment kodu potwierdzającego serwer.

  1. $ip = $_POST["ip"];
  2. $typ = $_POST["typ"];
  3.  
  4. $info = mysql_query("select ip from serwery where ip='$ip'");
  5. $inf=mysql_num_rows($info);
  6. if($inf == 0) {
  7. echo"<p class='note'>Na naszej liście nie istnieje serwer i IP: $ip</p>";
  8. } else {
  9.  
  10.  
  11. $ip2 = explode(':', $ip);
  12.  
  13. require_once "jscripts/GameQ.php";
  14. $gq = new GameQ();
  15. // IP , Port
  16. $servers['serwery'] = array('cs', $ip2[0], $ip2[1]);
  17. $results['serwer']['players']['0']['name'];
  18. $gq->addServers($servers);
  19. $gq->setOption('timeout', 200);
  20. $gq->setFilter('normalise');
  21.  
  22. $row = $gq->requestData();
  23. $mapa = $row['serwery']['gq_mapname'];
  24. $nazwa = $row['serwery']['hostname'];
  25. $id2 = $oGracz['gracz'];
  26. $zrodlo = $nazwa;
  27. $szukany = 'cs-server.pl';
  28. if(($id = strpos($zrodlo, $szukany)) !== false) // wlasnie tu
  29. {
  30. mysql_query("UPDATE serwery SET user='$id2', typ='$typ' WHERE ip='$ip' ");
  31. echo"<p class='note'>Zmieniono Właściciela serwera</p>";
  32. }
  33. else
  34. { echo"<p class='error'>Niepoprawna nazwa serwera lub błędny adres IP</p>";
  35.  
  36.  
  37. }
  38.  
  39. }


jeżeli ktoś moze na podstawie tego tutaj wstawić tabele z graczami.
Uriziel01
Jeżeli $results['serwer']['players'] niczego nie zawiera no to nie ma tutaj o czym rozmawiać, nie wyświetlisz listy graczy jeżeli jej tam fizycznie nie ma.
Michcio_
Tutaj masz przykład ode mnie, działa na pewno.

  1. $servers['servercs'] = array('cs', '79.133.192.171', '27015');
  2. require_once 'GameQ.php';
  3.  
  4. $gq = new GameQ;
  5.  
  6. $gq->addServers($servers);
  7. $data = $gq->requestData();
  8. echo '<table cellpadding="3"><tr><td><b>Nick</b></td><td><b>Punkty</b></td></tr>';
  9. $tab = $data['servercs']['players'];
  10. $n = count($tab);
  11. for ($i=0;$i<$n; $i++)
  12. {
  13. echo "<tr><td>".$data['servercs']['players'][$i][name]."</td><td>".$data['servercs']['players'][$i][score]."</td></tr>";
  14. }
  15. echo '</table>';
mazyl
Wielkie dzięki!

dziala. teraz jeszcze jeżeli wiesz, jak posortować je Od najepszych do najgorszych statów.

i jeszcze jak wyciągnąć czas gry na serwerze.



czy ktos pomoże ? jak wyświetlić czas gry oraz posegregować od największej do najmniejszej ilości zabić ?
xxdrago
mazyl,
http://gameq.sourceforge.net/
tutaj masz informacje, co i jak poczytaj trochę, można nawet dzięki temu tworzyć wykresy w bardzo łatwy sposób bez użycia crona.
Nie da sie też jedną biblioteką wyciągnąć wszystkiego, nie jest przystosowana.
mazyl
dobra znalazłem,
teraz takie pytanie, bo czas gry jest podawany w postaci sekund.
jak ładnie to zrobić, by zamiast ilości sekund dzieliło na np:

53 minut 25 sekund.
erix
Poszukaj na forum, było parę razy.
mazyl
nie moge znaleść niestety sad.gif może ktoś sie spotkał z takim tematem ?
prosiłbym o link

dalej mam pare problemów z tym.

nie moge wyciągnąc dodatkowych informacji o serwerze.

i jak mam liste graczy, chciałbym ją segregować od najiekszej do najmniejszej ilości zabić.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.