Siga-nos em...
Follow us on Twitter Follow us on Facebook Watch us on YouTube
Registro


Alpha Servers
Resultados 1 a 5 de 5
  1. #1

    Avatar de MrFischer
    Data de Ingresso
    Jul 2010
    Localização
    Aqui em Casa
    Posts
    216
    Agradecido
    0
    Agradeceu
    0
    Peso da Avaliação
    11

    Padrão Querys para Top Player Online Top Duelo

    Bom eu encontro as funções php nos websites mas nao estao com as query.....

    Alguem poderia informar as Query para por pra funcionar os:
    Top Online
    Top Duel

    ?
    Última edição por Segredo; 13-11-2010 às 12:12 AM.

  2. #2


    Avatar de Segredo
    Data de Ingresso
    Sep 2009
    Localização
    Juiz De Fora
    Idade
    26
    Posts
    875
    Agradecido
    26
    Agradeceu
    20
    Peso da Avaliação
    21

    Padrão

    Mensagem de moderação:
    Titulo irregular tente criar títulos mais claros e objetivos
    O Próximo erro recebera infração!



    Top Player Online alguém pode te informar eu mesmo não tenho :S
    TOP Duel Só é possível se o programador criou querys dentro do próprio Codigo fonte do GS para salvar os dados dos duelos no banco de dados.
    Acredito eu que originalmente esses dados não são salvos =)
    Última edição por Segredo; 13-11-2010 às 12:16 AM.

  3. #3

    Avatar de sTreZ
    Data de Ingresso
    Feb 2010
    Localização
    Sampa
    Posts
    397
    Agradecido
    0
    Agradeceu
    0
    Peso da Avaliação
    12

    Padrão

    Top Online tem que ser criado também, mais ai já não é no GS e sim direto no SQL Server, mais precisamente, uma trigger na tabela MEMB_STAT.

  4. #4

    Avatar de MrFischer
    Data de Ingresso
    Jul 2010
    Localização
    Aqui em Casa
    Posts
    216
    Agradecido
    0
    Agradeceu
    0
    Peso da Avaliação
    11

    Padrão

    A obrigado, encontrei um top online que funciona corretamente, Bom se alguem estiver precisando e procurando esta aqui:

    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('%02dhs e %02dmin', $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");
    }
    ?>

    Esse Script de cima funcionou tranquilo, porem eu Fiz um mais complexo, onde eu posso definir as fotos de cada classe caso ele nao encontre a foto do personagem que o player faz o upload.



    <h4 class="style1">Ranking Online</h4>

    <div class="sidebox" >

    <ul class="menu" aling="center">

    <?
    $query = 'SELECT TOP 5 Name,Class,cLevel,TempoOnline,Image from Character order by TempoOnline desc, cLevel desc ';
    $result = mssql_query($query);?>

    <?for($i=0;$i < mssql_num_rows($result);++$i)
    {
    $row = mssql_fetch_row($result);
    $rank = $i+1;

    if($row[1] == 0){ $row[1] = 'DW';
    }
    if($row[1] == 1){ $row[1] = 'SM';
    }
    if($row[1] == 16){ $row[1] = 'DK';
    }
    if($row[1] == 17){ $row[1] = 'BK';
    }
    if($row[1] == 32){ $row[1] = 'Elf';
    }
    if($row[1] == 33){ $row[1] = 'ME';
    }
    if($row[1] == 48){ $row[1] = 'MG';
    }
    if($row[1] == 64){ $row[1] = 'DL';
    }
    if($row[1] == 18){ $row[1] = 'BM';
    }
    if($row[1] == 65){ $row[1] = 'LE';
    }
    if($row[1] == 49){ $row[1] = 'DM';
    }
    if($row[1] == 2) { $row[1] = 'GM';
    }
    if($row[1] == 80) { $row[1] = 'SUM';
    }
    if($row[1] == 81) { $row[1] = 'BS';
    }
    if($row[1] == 82) { $row[1] = 'DMM';
    }
    if($row[1] == 34){ $row[1] = 'HE';
    }
    if($row[4] == "")
    {
    if ($row[1] == 'DW') { $row[4] = 'no-photo.gif'; } // Dark Wiza
    if ($row[1] == 'SM') { $row[4] = 'no-photo.gif'; } // Soul Master
    if ($row[1] == 'GM') { $row[4] = 'no-photo.gif'; } // Grand Master
    if ($row[1] == 'DK') { $row[4] = 'no-photo.gif'; } // Dark Knight
    if ($row[1] == 'BK') { $row[4] = 'no-photo.gif'; } // Blade Knight
    if ($row[1] == 'BM') { $row[4] = 'no-photo.gif'; } // Blade Master
    if ($row[1] == 'ELF') { $row[4] = 'no-photo.gif'; } // Elf
    if ($row[1] == 'ME') { $row[4] = 'no-photo.gif'; } // Muse Elf
    if ($row[1] == 'HE') { $row[4] = 'no-photo.gif'; } // High Elf
    if ($row[1] == 'MG') { $row[4] = 'no-photo.gif'; } // Magic Gladiator
    if ($row[1] == 'DM') { $row[4] = 'no-photo.gif'; } // Duel Master
    if ($row[1] == 'DL') { $row[4] = 'no-photo.gif'; } // Dark Lord
    if ($row[1] == 'LE') { $row[4] = 'no-photo.gif'; } // Lord Emperor
    if ($row[1] == 'SUM') { $row[4] = 'no-photo.gif'; } // Summoner
    if ($row[1] == 'BS') { $row[4] = 'no-photo.gif'; } // Blood Summoner
    if ($row[1] == 'DMM') { $row[4] = 'no-photo.gif'; } // Dimension Master
    }
    if ($i == 0 ){
    $posicao1 = $rank;
    $tempo1 = $row[3];
    $nome1 = $row[0];
    $foto1 = $row[4]; }

    if ($i == 1 ){
    $posicao2 = $rank;
    $tempo2 = $row[3];
    $nome2 = $row[0];
    $foto2 = $row[4]; }

    if ($i == 2 ){
    $posicao3 = $rank;
    $tempo3 = $row[3];
    $nome3 = $row[0];
    $foto3 = $row[4]; }

    if ($i == 3 ){
    $posicao4 = $rank;
    $tempo4 = $row[3];
    $nome4 = $row[0];
    $foto4 = $row[4]; }

    if ($i == 4 ){
    $posicao5 = $rank;
    $tempo5 = $row[3];
    $nome5 = $row[0];
    $foto5 = $row[4]; }
    }
    ?>


    <marquee id="scroller" scrollamount="2" direction="up" style="width:100%; height:150px">

    <center><font color="#FFFF00">1°<?=$nome1?></font></center>
    <center><font color="#ADFF2F"><?php print Minutos2Horas($tempo1); ?></font></center>
    <center><img src="modules/uploads/photos/<?=$foto1?>" width="140" height="100"></center><br><br>
    <center><font color="#FFFF00">2°<?=$nome2?></font></center>
    <center><font color="#ADFF2F"><?php print Minutos2Horas($tempo2); ?></font></center>
    <center><img src="modules/uploads/photos/<?=$foto2?>" width="140" height="100"></center><br><br>
    <center><font color="#FFFF00">3°<?=$nome3?></font></center>
    <center><font color="#ADFF2F"><?php print Minutos2Horas($tempo3); ?></font></center>
    <center><img src="modules/uploads/photos/<?=$foto3?>" width="140" height="100"></center><br><br>
    <center><font color="#FFFF00">4°<?=$nome4?></font></center>
    <center><font color="#ADFF2F"><?php print Minutos2Horas($tempo4); ?></font></center>
    <center><img src="modules/uploads/photos/<?=$foto4?>" width="140" height="100"></center><br><br>
    <center><font color="#FFFF00">5°<?=$nome5?></font></center>
    <center><font color="#ADFF2F"><?php print Minutos2Horas($tempo5); ?></font></center>
    <center><img src="modules/uploads/photos/<?=$foto5?>" width="140" height="100"></center><br><br>
    </marquee>

    </ul>
    </div>

    Bom esse ai Faz um select dos 5 primeiros do ranking do TempoOnline e joga no menu
    com efeito de Marquee, tranzendo imagen nome e tempo online do Char, no caso eu coloquei um while pra ele pegar a classe do personagem e um for para fazer 5 vezes, aconselho se voce nao souber nada de programação nao mexer nisso rs.

    Segue abaixo uma foto do Ranking no meu site:
    [Somente usuários registrados podem vem os links. ]

    Lembrando que a adaptação foi feita no Template Darkstyle, mas qualquer outro template seria a mesma coisa.

    E para finalizar Criei um uma Job com um Step semanal para dar X Golds ao vencedor
    Segue a query abaixo:

    Use MuOnline
    declare @AccountID varchar (10)
    declare @Name varchar(10)
    declare @TempoOnline int
    Select top 1 @AccountID=AccountID,@Name=Name,@TempoOnline=Tempo Online from character order by TempoOnline desc, name desc
    Update memb_info set gold=gold+30 where memb___id=@AccountID
    Update character set TempoOnline=0

    Obs: Isso pra quem utiliza as tabelas do site na propria MuOnline, pra quem utiliza na propria WebSite, ficaria assim:

    Use MuOnline
    declare @AccountID varchar (10)
    declare @Name varchar(10)
    declare @TempoOnline int
    Select top 1 @AccountID=AccountID,@Name=Name,@TempoOnline=Tempo Online from character order by TempoOnline desc, name desc

    Update character set TempoOnline=0

    Use WebSite
    Update webcash set amount=amount+30 where name=@AccountID

    Bom é isso Galera, se aguem tiver alguma duvida, ou melhor ainda uma sugestao ou trazendo uma melhoria esempre bem vindo, e se errei ou infringi alguma regra do forum
    peço desculpas, Abraços!


    Creditos:
    DouglasF < Criaçao do Script para o Ranking >
    DouglaSDeV <Adaptação e desenvolvimento do Ranking >


    Bom acho que qualquer um consegue usar esta bem explicado.
    E com as explicações dadas acima e com a resolução da parte possivel do pedido acho que pode ser fechado o topico para evitar flood ^^

  5. #5


    Avatar de adrianodjs
    Data de Ingresso
    Jun 2010
    Localização
    Canadá
    Posts
    684
    Agradecido
    27
    Agradeceu
    16
    Peso da Avaliação
    16

    Padrão

    Mensagem de moderação:
    Duvida solucionada,Tópico fechado.

 

 

Informações de Tópico

Usuários Navegando neste Tópico

Há 1 usuários navegando neste tópico. (0 registrados e 1 visitantes)

Tópicos Similares

  1. |Pedido| COMPRO MU ONLINE JÁ NA ATIVA COM PLAYER E ETC..
    Por moffati no fórum Pedidos
    Respostas: 3
    Último Post: 21-07-2015, 04:32 PM
  2. |Resolvido| JOB - Para dar golds a cada 1h que o player fica Online
    Por Deeh116 no fórum Tópicos resolvidos
    Respostas: 5
    Último Post: 03-04-2012, 04:43 PM

Marcadores

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •