• Bem vindo à nossa comunidade - Quer se juntar ao resto dos nossos membros? Registre-se*Registros aprovados pela adminitração

PEDIDO: CODIGO PHP para ranking

Status
Não esta aberto para novas mensagens.

mekkelle

Novato XPZ
boas tardes pessoal... gostaria de adicionar ao meu site de mu online um ranking de quem esta mais tempo online!

isto é, um codigo que me apresente o os minutos / horas que o jogador ja passou no server! e se possivel avisar se é preciso adicionar alguma tabela!!

aguardo resposta
 

dmbolado

Usuário XPZ
Bom Vamos la:

1º Passo:

Crie uma coluna na Table "Character" com os dados:

Código:

Nome da coluna: TempoOnline

Tipo da coluna: int

Default Value: 0 Ou simplesmente use o seguinte código no Query Analizer:

Código:

USE MuOnline

ALTER TABLE Character ADD TempoOnline int DEFAULT (0)

2º Passo:

Vá no Query Analizer e utilize o seguinte código:

Código:

DROP TRIGGER MembStat_RecordOnlineHoursLogo

após usar a query acima, limpe o query analizer e utilize a seguinte query:

Código:

CREATE TRIGGER [MembStat_RecordOnlineHours] ON dbo.MEMB_STAT

AFTER UPDATE

AS

declare @memb___id varchar(10)

declare @connectstat tinyint

SELECT @memb___id=memb___id,@connectstat=connectstat FROM INSERTED

IF (@connectstat = 0)

BEGIN

UPDATE [dbo].[Character]

SET TempoOnline = TempoOnline  datediff(minute, (SELECT ConnectTM FROM MEMB_STAT WHERE memb___id= @memb___id), getdate())

WHERE Name = (SELECT GameIDC FROM AccountCharacter WHERE Id=@memb___id)

END

Legenda:

minute = Altere esse valor pelo o que você quizer, se você quer que salve por horas altere esse valor em vermelho para hour

( Particularmente eu dechei minutes pois acho melhor.)

PHP:

Criei uma função que converte o tempo de Minutos para Horas,

Você deverá adicionar esse codigo no começo da sua pagina:

Código:

<?php

function Minutos2Horas($Mins) {

$Horas = floor($Mins / 60);

$Minutos = ($Mins - ($Horas * 60)) / 100;

$Sep = explode('.', $Horas  $Minutos);

if (strlen($Sep[1]) < 2) { $Sep[1] = $Sep[1] . 0; }

return sprintf('dhs e dmin', $Sep[0], $Sep[1]);

}

?>

( No site do Daldegam voce pode colocar ele em baixo da insercao dos scripts

<script type="text/javascript" src="templates/darkstyle/js/jquery.js"></script>

<script type="text/javascript" src="templates/darkstyle/js/jquery.tooltips.js"></script>

<script type="text/javascript" src="templates/darkstyle/js/functions.js"></script>

<script type="text/javascript" src="templates/darkstyle/js/ajax.js"></script>

que ficam no inicio do index.tpl.php da pasta de seu template. )

E onde deverá mostrar os minutos você adiciona o seguinte codigo:

Código:

<?php

print Minutos2Horas(Tempo);

?>

Onde Tempo = Tempo em minutos que será convertido. (A variavel que seleciona o tempo).

Créditos: DouglasF

Bom ate este ponto nosso companheiro DouglasF tinha feito para armazenar a informar e o calculo e a variavel para mostrar o total do tempo registrado ate então;

Porem precisamos montar o ranking colocar pra buscar a foto do personagem se nao tiver foto pegar a foto padrao tudo que um ranking precisa.

Bom agora vamos a parte que eu fiz no meu site.

Para quem vai montar de uma foto só segue o script:

Foto Fixa

$Q = @mssql_fetch_object(@mssql_query("SELECT TOP 1 Name,TempoOnline as Temp,Image FROM MuOnline.dbo.Character WHERE CtlCode<2 ORDER BY TempoOnline DESC,cLevel DESC,Name ASC"));

if($Q != false) {

$img = trim($Q->Image);

if(file_exists("modules/uploads/photos/".$img) == false || empty($img) == true) $img = "no-photo.gif";

echo("<a href="?page=rankings&char=".urlencode($Q->Name)."">".$Q->Name." <br />n");

echo('<img src="modules/uploads/photos/'.$img.'" alt="" width="100" height="100" style="border: 2px solid #222222;" /><br />');

echo(number_format((int)$Q->Temp, 0, null, ".")." Tempo Online</a>");

} else {

echo("Nenhum Resultado");

}

?>

Creditos:

L.Daldegan

Eu 
default_wink.png
 
Status
Não esta aberto para novas mensagens.
Topo Bottom