Você não é registrado, por favor registre-se para ter acesso ao conteúdo completo.
Caso seja registrado, efetue login.
Esqueceu sua senha? Clique aqui
Recomendamos o uso do Mozilla Firefox para uma melhor visualização.    


Início Postados Hoje Marcar Fóruns Como Lidos Álbums Banidos SE Team Medalhas
Voltar   Secret Experience > Private Server & MMORPG - Administre Um > Lineage II - OFF > [L2OFF] Administrador > [L2OFF | Admin] Downloads > [L2OFF | Admin] Web Sites
Registrar Loteria VIPStaff SERegras do fórum Comunidade Arcade Postados Hoje Pesquisar Experience
   

Secret Experience.NET   Secret Experience Corporation - Welcome To The Real World
     Anúncios SE

Resposta
 
Ferramentas do Tópico Modos de Exibição
Antigo 12-08-2013, 10:23 PM   #1
Script Server Status: ON | OFF - Quantidade de Players ON e Record de Players ON
Setokaiba Setokaiba está online agora 12-08-2013, 10:23 PM

Esse script se resume em mostrar o status do servidor, quantos player encontram-se online no mesmo, e o recorde de players que já estiveram online em tal servidor.

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
<?php 
class ServerStatus 
{ 
   private $ip, $port, $interval, $timeout; 

   public function __construct($ip = '127.0.0.1', $port = 2106, $interval = 30, $timeout = 1) 
   { 
      $this->ip = $ip; 
      $this->port = $port; 
      $this->interval = $interval; 
      $this->timeout = $timeout; 
   } 

   public function GetStatusFromAuth() 
   { 
      $status = array(); 
      $f = @fsockopen($this->ip, $this->port, $errno, $errstr, $this->timeout); 
      if ($f) 
      { 
         do 
         { 
            $sec = floor($this->timeout); 
            $msec = ($this->timeout - $sec) * 1000; 
            socket_set_timeout($f, $sec, $msec); 

            $buf = fread($f, 2); 
            if (strlen($buf) != 2) break; 
            $a = unpack('vsize', $buf); 
            $size = $a['size'] - 2; 
            if ($size < 1) break; 

            $buf = fread($f, $size); 
            if (strlen($buf) != $size) break; 

            fwrite($f, "\x03\x00\xFE", 3); 

            $buf = fread($f, 2); 
            if (strlen($buf) != 2) break; 
            $a = unpack('vsize', $buf); 
            $size = $a['size'] - 2; 
            if ($size < 1) break; 

            $buf = fread($f, $size); 
            if (strlen($buf) != $size) break; 

            if (ord($buf[0]) != 0xFE) break; 
            if (strlen($buf) < 3) break; 
            $amount = ord($buf[1]) + ord($buf[2]) * 256; 
            $buf = substr($buf, 3); 
            if (strlen($buf) != $amount * 4) break; 
            $a = unpack('v' . ($amount * 2), $buf); 
            for ($i = 0; $i < $amount; $i++) $status[$a[$i * 2 + 1]] = $a[$i * 2 + 2]; 
         } 
         while (false); 
         fclose ($f); 
      } 
      return $status; 
   } 

   public function GetStatus() 
   { 
      $fn = dirname(__FILE__) . '/status.txt'; 
      $status = array(); 
      fclose(fopen($fn, 'a+b')); 
      $f = @fopen($fn, 'r+b'); 
      if ($f) 
      { 
         flock($f, LOCK_EX); 
         $cache = unserialize(fread($f, 1024)); 
         $status = @$cache['status']; 
         $time = @$cache['time']; 
         if (!IsSet($status) || !IsSet($time)) 
         { 
            $status = array(); 
            $time = 0; 
         } 
         if (time() - $time > $this->interval) 
         { 
            $new = $this->GetStatusFromAuth(); 
            foreach ($status as $id => $value) 
            { 
               $c = &$status[$id]; 
               $c['on'] = false; 
               $c['cur'] = 0; 
            } 
            foreach ($new as $id => $value) 
            { 
               if (!IsSet($status[$id])) $status[$id] = array('on' => false, 'cur' => 0, 'max' => 0); 
               $c = &$status[$id]; 
               $c['on'] = true; 
               $c['cur'] = $new[$id]; 
               if ($c['cur'] > $c['max']) $c['max'] = $c['cur']; 
            } 
            $cache = array('status' => $status, 'time' => time()); 
            $s = serialize($cache); 
            rewind($f); 
            ftruncate($f, 0); 
            fwrite($f, $s, strlen($s)); 
         } 
         fclose($f); 
      } 
      return $status; 
   } 

   public function GetText($id, $online, $offline) 
   { 
      $status = $this->GetStatus(); 
      if (IsSet($status[$id])) $c = &$status[$id]; else $c = array('on' => false, 'cur' => 0, 'max' => 0); 
      $res = str_replace(array('%c', '%m'), array($c['cur'], $c['max']), $c['on'] ? $online : $offline); 
      return $res; 
   } 
} 

$status = new ServerStatus('127.0.0.1'); 
$online = 'Status: <b><font color="#00AA00">ONLINE</font></b> | Players: <b>%c</b> | Record: <b>%m</b>'; 
$offline = 'Status: <b><font color="#FF0000">OFFLINE</font></b> | Players: <b>%c</b> | Record: <b>%m</b>'; 
echo $status->GetText(1, $online, $offline); //1 - ServerID 
?>

 
Avatar de Setokaiba
Setokaiba
Jesus Te Ama, Mas EU Não!

Quadro de Medalhas

Registrado em: Oct 2008
Localização: 45º 33º 34º N | 122º 41º 41º W DESTINATION: ANYWHERE Adidas
Posts: 4,133
Pontos: 20,442, Nível: 90
Pontos: 20,442, Nível: 90 Pontos: 20,442, Nível: 90 Pontos: 20,442, Nível: 90
Atividade: 99%
Atividade: 99% Atividade: 99% Atividade: 99%

Nome Real: Anderson Andrade
Visitas: 552
Os Seguintes 2 Usuários disseram Obrigado(a) para Setokaiba por gostarem deste post :
Kurosawa (27-01-2016), Myutsu (18-10-2013)
Links Patrocinados
Antigo 12-12-2013, 02:33 AM   #2
daniel000
Membro - General
 
Avatar de daniel000
 
Registrado em: Jun 2009
Posts: 244
Agradeceu: 117
Agradecido 61 Vezes em 50 Posts
Achei Ruim:
Acharam ruim Vezes em Posts
Pontos: 5,177, Nível: 46
Pontos: 5,177, Nível: 46 Pontos: 5,177, Nível: 46 Pontos: 5,177, Nível: 46
Atividade: 99%
Atividade: 99% Atividade: 99% Atividade: 99%

Inventório de daniel000

Padrão

onde coloca as config do mssql ?

daniel000 está offline   Responder com Citação
Antigo 12-12-2013, 04:51 AM   #3
Setokaiba
Jesus Te Ama, Mas EU Não!
 
Avatar de Setokaiba
 
Registrado em: Oct 2008
Localização: 45º 33º 34º N | 122º 41º 41º W DESTINATION: ANYWHERE Adidas
Posts: 4,133
Agradeceu: 837
Agradecido 6,058 Vezes em 2,106 Posts
Achei Ruim:
Acharam ruim Vezes em Posts
Meu Estado:
Pontos: 20,442, Nível: 90
Pontos: 20,442, Nível: 90 Pontos: 20,442, Nível: 90 Pontos: 20,442, Nível: 90
Atividade: 99%
Atividade: 99% Atividade: 99% Atividade: 99%

Nome Real: Anderson Andrade

Inventório de Setokaiba Usuário possui 1x Lock Fan Usuário possui 1x Oakley Usuário possui 1x Apple Inc. Fan/User Usuário possui 1x Honda Usuário possui 1x Windows Seven User

Padrão

Defina aqui o seu arquivo de class:
Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
<?php 
class ServerStatus 
{
Exemplo:
Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
<?php

require_once('functions.php');
require_once('settings.php');
Onde functions.php poderia ser:
Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
<?php

function mssql_ex() {
	global $CONFIG;
	$mssql = mssql_connect($CONFIG['mssql_host'],$CONFIG['mssql_user'],$CONFIG['mssql_pass']) or die ('Unable to connect to server.');
	$select = mssql_select_db($CONFIG['mssql_db'], $mssql) or die ('Unable to select database.');
}

?>
E settings.php poderia ser:
Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
<?php

global $CONFIG;

// MSQL
$CONFIG['mssql_host'] = 'hostname';
$CONFIG['mssql_user'] = 'username';
$CONFIG['mssql_pass'] = 'password';
$CONFIG['mssql_db'] = 'lin2db';

// SCRIPT REFRESH TIME
$CONFIG['refresh_time'] = 300;	// default: 300 (seconds)

?>

Setokaiba está online agora   Responder com Citação
O seguinte membro ao lado disse Obrigado(a) a : Setokaiba por gostar deste Post :
Myutsu (12-12-2013)
Antigo 12-12-2013, 12:40 PM   #4
isacasj91
Membro - Aspirante
 
Avatar de isacasj91
 
Registrado em: Nov 2010
Posts: 51
Agradeceu: 2
Agradecido 37 Vezes em 17 Posts
Achei Ruim:
Acharam ruim Vezes em Posts
Meu Estado:
Enviar mensagem via Windows Live Messenger para isacasj91
Pontos: 2,852, Nível: 32
Pontos: 2,852, Nível: 32 Pontos: 2,852, Nível: 32 Pontos: 2,852, Nível: 32
Atividade: 16%
Atividade: 16% Atividade: 16% Atividade: 16%

Nome Real: Isac Jr.

Inventório de isacasj91

Padrão

Voce tem apenas o codigo da quantidade de players ON?

isacasj91 está offline   Responder com Citação
Antigo 12-12-2013, 02:42 PM   #5
Setokaiba
Jesus Te Ama, Mas EU Não!
 
Avatar de Setokaiba
 
Registrado em: Oct 2008
Localização: 45º 33º 34º N | 122º 41º 41º W DESTINATION: ANYWHERE Adidas
Posts: 4,133
Agradeceu: 837
Agradecido 6,058 Vezes em 2,106 Posts
Achei Ruim:
Acharam ruim Vezes em Posts
Meu Estado:
Pontos: 20,442, Nível: 90
Pontos: 20,442, Nível: 90 Pontos: 20,442, Nível: 90 Pontos: 20,442, Nível: 90
Atividade: 99%
Atividade: 99% Atividade: 99% Atividade: 99%

Nome Real: Anderson Andrade

Inventório de Setokaiba Usuário possui 1x Lock Fan Usuário possui 1x Oakley Usuário possui 1x Apple Inc. Fan/User Usuário possui 1x Honda Usuário possui 1x Windows Seven User

Padrão

Visite a área:
[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]

[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]

Setokaiba está online agora   Responder com Citação
Resposta

Tags
jogadores, l2off, logados, online, players, quantidade, record


Regras para Posts
Você não pode postar novos tópicos
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar seus posts

Código [IMG] Sim
Código HTML Não

Ir para...


Horários baseados na GMT -3. Agora são 12:59 AM.