Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Problem] Skrypt na liczbę graczy online


Rekomendowane odpowiedzi

Opublikowano

Witam, mam problem ze skryptem na graczy online. Wszystko działa poprawnie, dopóki serwer nie stoi pusty.

Tak to wygląda z minimum jednym graczem na serwerze:
AivK3I0.png

 

Tak to wygląda, gdy serwer jest pusty:
p9SsjYh.png

 

Kod:
 

<?php
$host = "TUTAJ_IP"; // ip serwera
$port = TUTAJ_PORT; // port serwera
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$connected = socket_connect($socket, $host, $port);
if ($connected) {
$ping_start = microtime(true);
socket_send($socket, "\xFE", 1, 0);
$data = "";
$result = socket_recv($socket, &$data, 1024, 0);$ping_end = microtime(true);socket_close($socket);
if ($result != false && substr($data, 0, 1) == "\xFF") {
$info = explode("\xA7", mb_convert_encoding(substr($data,1), "iso-8859-1", "utf-16be"));
$serverName = substr($info[0], 1);
$playersOnline = $info[1];
$playersMax = $info[2];
$ping = round(($ping_end - $ping_start) * 1000);
echo "Online: <span style=\"color:green\">$playersOnline</span>/$playersMax<br/>
Status: ";if (($ping > '1000') || ($ping < '0')) {
echo "<font color=red>Offline</font>";
}
else {
echo "<font color=green>Online</font></br>";
}

} else {
echo "<span style=\"color:red\">Błąd: </span>Nie można odebrać danych";
}
} else {
echo "<span style=\"color:red\">Błąd: </span>Nie udało się przesłać danych";
}
?>

Za pomoc oczywiście like ^^

JXtCefR.png


"Mamy dość czasu, jeżeli wykorzystujemy go właściwie"

Opublikowano

zrob czos takiego, że jezli na serwerze jest 0 osob to automatycznie ustawia na 0.Napisze ci abys zrozumial ale to nie bedzie jezyk php

if $playersOnline < 1;

   set $playersOnline to 0
Opublikowano

­

<?php
$host = "TUTAJ_IP"; // ip serwera
$port = TUTAJ_PORT; // port serwera
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$connected = socket_connect($socket, $host, $port);
if ($connected) {
$ping_start = microtime(true);
socket_send($socket, "\xFE", 1, 0);
$data = "";
$result = socket_recv($socket, &$data, 1024, 0);$ping_end = microtime(true);socket_close($socket);
if ($result != false && substr($data, 0, 1) == "\xFF") {
$info = explode("\xA7", mb_convert_encoding(substr($data,1), "iso-8859-1", "utf-16be"));
$serverName = substr($info[0], 1);
$playersOnline = $info[1];
$playersMax = $info[2];
$ping = round(($ping_end - $ping_start) * 1000);
if ($playersOnline > 0){
echo "Online: <span style=\"color:green\">0</span>/$playersMax<br/>";
} elseif {
echo "Online: <span style=\"color:green\">$playersOnline</span>/$playersMax<br/>";
}
Status: ";if (($ping > '1000') || ($ping < '0')) {
echo "<font color=red>Offline</font>";
}
else {
echo "<font color=green>Online</font></br>";
}

} else {
echo "<span style=\"color:red\">Błąd: </span>Nie można odebrać danych";
}
} else {
echo "<span style=\"color:red\">Błąd: </span>Nie udało się przesłać danych";
}
?>

 

sygnatura.png

Opublikowano

­

<?php
$host = "TUTAJ_IP"; // ip serwera
$port = TUTAJ_PORT; // port serwera
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$connected = socket_connect($socket, $host, $port);
if ($connected) {
$ping_start = microtime(true);
socket_send($socket, "\xFE", 1, 0);
$data = "";
$result = socket_recv($socket, &$data, 1024, 0);$ping_end = microtime(true);socket_close($socket);
if ($result != false && substr($data, 0, 1) == "\xFF") {
$info = explode("\xA7", mb_convert_encoding(substr($data,1), "iso-8859-1", "utf-16be"));
$serverName = substr($info[0], 1);
$playersOnline = $info[1];
$playersMax = $info[2];
$ping = round(($ping_end - $ping_start) * 1000);
if $playersOnline > 0 {
echo "Online: <span style=\"color:green\">0</span>/$playersMax<br/>";
} else {
echo "Online: <span style=\"color:green\">$playersOnline</span>/$playersMax<br/>";
}
Status: ";if (($ping > '1000') || ($ping < '0')) {
echo "<font color=red>Offline</font>";
}
else {
echo "<font color=green>Online</font></br>";
}

} else {
echo "<span style=\"color:red\">Błąd: </span>Nie można odebrać danych";
}
} else {
echo "<span style=\"color:red\">Błąd: </span>Nie udało się przesłać danych";
}
?>

 

sygnatura.png

Opublikowano

­Wiedziałem, że nie powinienem tego usuwać... ;_;

<?php
$host = "TUTAJ_IP"; // ip serwera
$port = TUTAJ_PORT; // port serwera
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$connected = socket_connect($socket, $host, $port);
if ($connected) {
$ping_start = microtime(true);
socket_send($socket, "\xFE", 1, 0);
$data = "";
$result = socket_recv($socket, &$data, 1024, 0);$ping_end = microtime(true);socket_close($socket);
if ($result != false && substr($data, 0, 1) == "\xFF") {
$info = explode("\xA7", mb_convert_encoding(substr($data,1), "iso-8859-1", "utf-16be"));
$serverName = substr($info[0], 1);
$playersOnline = $info[1];
$playersMax = $info[2];
$ping = round(($ping_end - $ping_start) * 1000);
if ($playersOnline > 0){
echo "Online: <span style=\"color:green\">0</span>/$playersMax<br/>";
} else {
echo "Online: <span style=\"color:green\">$playersOnline</span>/$playersMax<br/>";
}
Status: ";if (($ping > '1000') || ($ping < '0')) {
echo "<font color=red>Offline</font>";
}
else {
echo "<font color=green>Online</font></br>";
}

} else {
echo "<span style=\"color:red\">Błąd: </span>Nie można odebrać danych";
}
} else {
echo "<span style=\"color:red\">Błąd: </span>Nie udało się przesłać danych";
}
?>

 

sygnatura.png

Opublikowano


<?php

$host = "TUTAJ_IP"; // ip serwera

$port = TUTAJ_PORT; // port serwera

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

$connected = socket_connect($socket, $host, $port);

if ($connected) {

$ping_start = microtime(true);

socket_send($socket, "\xFE", 1, 0);

$data = "";

$result = socket_recv($socket, &$data, 1024, 0);$ping_end = microtime(true);socket_close($socket);

if ($result != false && substr($data, 0, 1) == "\xFF") {

$info = explode("\xA7", mb_convert_encoding(substr($data,1), "iso-8859-1", "utf-16be"));

$serverName = substr($info[0], 1);

$playersOnline = $info[1];

$playersMax = $info[2];

$ping = round(($ping_end - $ping_start) * 1000);

if ($playersOnline > 0){

echo "Online: <span style=\"color:green\">0</span>/$playersMax<br/>";

} else {

echo "Online: <span style=\"color:green\">$playersOnline</span>/$playersMax<br/>";

}

If (($ping > '1000') || ($ping < '0')) {

echo "<font color=red>Offline</font>";

}

else {

echo "<font color=green>Online</font></br>";

}

 

} else {

echo "<span style=\"color:red\">Błąd: </span>Nie można odebrać danych";

}

} else {

echo "<span style=\"color:red\">Błąd: </span>Nie udało się przesłać danych";

}

?>

 

sygnatura.png

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...