Ir para conteúdo
  • Cadastre-se

(Resolvido)Rank por valor de Storage


Ir para solução Resolvido por Gabriel Strakh,

Posts Recomendados

  • Solução

@davidvietro Olá, desculpe a demora, eu não estava em casa :wacko:.

Teste esse novo script, ajustei a parte da ordenação  e da tag small (se puder posta uma print): 

 

<?php
	$limitt = 5;
	$_storage = 378378;
	$skills = mysql_select_multi("SELECT a.name, a.level, a.experience, b.resets FROM (SELECT * FROM players WHERE group_id < 2 AND name != 'Account Manager') a left join (SELECT b.player_id, b.value as resets FROM player_storage b WHERE b.key = '$_storage') b on (a.id = b.player_id) ORDER BY b.resets DESC, a.level DESC, a.experience DESC LIMIT $limitt");
	$number_of_rows = 0;
	foreach($skills as $skillss) {
		$number_of_rows++;
		echo '+ <b></b><a href="characterprofile.php?name='.urlencode($skillss['name']).'" class="menu">'.$skillss['name'].'</a><br>';
		echo '<em class="style2">Level: <b>'.urlencode($skillss['level']).'</b> <small>Resets: <b>'. (($skillss['resets'])? $skillss['resets'] : 0) .'</b></small></em></li><br />';
	}
?>

 

Editado por strakh (veja o histórico de edições)

mOw9OYy.png

[Designer] / [Developer] 

 

Link para o post
Compartilhar em outros sites
  • Respostas 11
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Poderia me mostrar uma print de como é exibido o ranking atual?

Bom... Como eu não utilizo o Zenote não tenho como testar, então vamos ver se rodamos o novo script sem problemas    Atualize a parte PHP (Começa em <?php e termina em ?>) para essa aqui:   <?php $limitt = 5; $_storage = 378378; $skills = mysql_select_multi("SELECT a.name, a.level, a.experience, b.resets FROM (SELECT * FROM players WHERE group_id < 2 AND name != 'Account Manager') a left join (SELECT b.player_id, b.value as resets FROM player_storage b WHERE b.ke

@davidvietro Olá, desculpe a demora, eu não estava em casa . Teste esse novo script, ajustei a parte da ordenação  e da tag small (se puder posta uma print):    <?php $limitt = 5; $_storage = 378378; $skills = mysql_select_multi("SELECT a.name, a.level, a.experience, b.resets FROM (SELECT * FROM players WHERE group_id < 2 AND name != 'Account Manager') a left join (SELECT b.player_id, b.value as resets FROM player_storage b WHERE b.key = '$_storage') b on (a.id = b.player_

Posted Images

  Em 09/03/2016 em 19:21, strakh disse:

@davidvietro Olá, desculpe a demora, eu não estava em casa :wacko:.

Teste esse novo script, ajustei a parte da ordenação  e da tag small (se puder posta uma print): 

 

<?php
	$limitt = 5;
	$_storage = 378378;
	$skills = mysql_select_multi("SELECT a.name, a.level, a.experience, b.resets FROM (SELECT * FROM players WHERE group_id < 2 AND name != 'Account Manager') a left join (SELECT b.player_id, b.value as resets FROM player_storage b WHERE b.key = '$_storage') b on (a.id = b.player_id) ORDER BY b.resets DESC, a.level DESC, a.experience DESC LIMIT $limitt");
	$number_of_rows = 0;
	foreach($skills as $skillss) {
		$number_of_rows++;
		echo '+ <b></b><a href="characterprofile.php?name='.urlencode($skillss['name']).'" class="menu">'.$skillss['name'].'</a><br>';
		echo '<em class="style2">Level: <b>'.urlencode($skillss['level']).'</b> <small>Resets: <b>'. (($skillss['resets'])? $skillss['resets'] : 0) .'</b></small></em></li><br />';
	}
?>

 

 

 

 

Mostrar mais  

Cara, funcionou perfeitamente! Você é demais! muito obrigado!!!

Segue o print:
Untitled.jpg
 

Link para o post
Compartilhar em outros sites
  Em 09/03/2016 em 20:03, strakh disse:

@davidvietro Opa, que bom :grin: 

Qualquer coisa estamos aqui...

Mostrar mais  

 

Cara, estou com um problema aqui, mas não envolve seu script (ele está perfeito)

 

É o seguinte, o meu banco de dados organiza os resets por ordem de 9>8>7>6... porém, a partir do número 10 ou 11, na linha de organização, ele fica abaixo do 1. Consegue entender? vou te mandar uma foto: 

 

Hidden Content

    Give reaction to this post to see the hidden content.

 

Teria como mudar isso? pq nos ranks do reset vai aparecer só os players com até 9 resets, após isso, será desconsiderado porque o database entende ser um número menor.

Link para o post
Compartilhar em outros sites
  Em 09/03/2016 em 23:13, davidvietro disse:

 

Cara, estou com um problema aqui, mas não envolve seu script (ele está perfeito)

 

É o seguinte, o meu banco de dados organiza os resets por ordem de 9>8>7>6... porém, a partir do número 10 ou 11, na linha de organização, ele fica abaixo do 1. Consegue entender? vou te mandar uma foto: 

 

Hidden Content

    Give reaction to this post to see the hidden content.

 

Teria como mudar isso? pq nos ranks do reset vai aparecer só os players com até 9 resets, após isso, será desconsiderado porque o database entende ser um número menor.

Expand   Mostrar mais  

 

Pelo o que eu entendi isso ai é padrão do banco, como ele compara por string, ele vai ler primeiro os que começam com 1 e depois 2 e assim por diante.

 

Exemplo: 1, 11, 12 , 100, 101... 2, 20, 21, 22, 200... 3, 30, 31, 32, 300...

 

Isso é apenas na parte de exibição do banco, internamente ele se organiza de forma correta.

mOw9OYy.png

[Designer] / [Developer] 

 

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Nazo
      Buenas, TK!
      Um usuário pediu ajuda em um script, onde queria limitar para a quest ser feita apenas uma vez por IP, mesmo que ainda seja possível mudá-lo, resolvi postar aqui xd
       
      Execute esse código SQL no seu banco de dados MySQL, para a criação da tabela onde ficarão as storages e o IP armazenado do player:
      CREATE TABLE player_ip_storage( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, player_id INT NOT NULL, ip CHAR(15) NOT NULL, storage INT NOT NULL ); ALTER TABLE player_ip_storage ADD CONSTRAINT FK_PLAYER_ID FOREIGN KEY (player_id) REFERENCES players(id);  
      Ou caso seja SQLITE, utilize esse código:
      CREATE TABLE player_ip_storage( player_id INT NOT NULL, ip CHAR(15) NOT NULL, storage INT NOT NULL ); ALTER TABLE player_ip_storage ADD CONSTRAINT FK_PLAYER_ID FOREIGN KEY (player_id) REFERENCES players(id);  
      Crie um arquivo chamado nazo-functions.lua em data/lib e adicione o seguinte conteúdo:
      -- by Nazo (tibiaking.com) -- IP Storage System function getIpQuestStatus(cid, storage) storages = db.getResult("SELECT * FROM `player_ip_storage` WHERE `ip` = \"" .. doConvertIntegerToIp(getPlayerIp(cid)) .. "\" and `storage` = "..storage..";") if(storages:getID() ~= -1) then return false end return true end function setIpQuestStatus(cid, storage) db.executeQuery("INSERT INTO player_ip_storage(player_id, ip, storage) VALUES("..getPlayerGUID(cid)..",\""..doConvertIntegerToIp(getPlayerIp(cid)).."\","..storage..")") return true end  
      Agora, quando você tiver uma quest, adicione na verificação a função getIpQuestStatus na checagem junto, e quando finalizar a quest utilize o setIpQuestStatus, com os parâmetros cid e número da storage, porém a função só armazena que essa storage tem algo no banco de dados, ou seja, a quest já foi feita, você não armazena o valor da storage junto (como a função normal que geralmente adiciona "1" na storage).
       
      Exemplo de quest abaixo:
      -- by Nazo (tibiaking.com) config = { storage = 123123, -- storage da quest premio = {2160, 1} -- {itemid, quantia} } function onUse(cid, item, frompos, item2, toPosition) queststatus = getPlayerStorageValue(cid,config.storage) if(queststatus == -1 and getIpQuestStatus(cid, config.storage)) then -- note que eu só adicionei a função, nenhuma comparação, explicarei abaixo do código doPlayerSendTextMessage(cid,22,"Tome seu prêmio.") doPlayerAddItem(cid,config.premio[1],config.premio[2]) setPlayerStorageValue(cid,config.storage,1) setIpQuestStatus(cid,config.storage) -- função que adiciona a storage no banco de dados else doPlayerSendTextMessage(cid,22,"Você já fez esta quest.") end end  
      Explicação básica do motivo da função não possuir comparação na verificação e ficar como a seguir:
       
      if(getIpQuestStatus(cid, config.storage)) then Quando você faz um if, com uma função dentro sem comparações, ela continuará o bloco de comando apenas se o retorno da mesma for verdadeiro, assim quando você fizer a quest, e tentar novamente, o get retorna falso, e isso cancela a condição e vai para o bloco de comando do "else".
    • Por Digoshow
      Gente e o seguinte, eu fiz uma quest com o RME, e no final da quest quero que um player de use no Bau e Catar um item, o item seria Document = ID: 952, e apos ele dar use nesse document, e liberado e certo lugar para ele passar.
      Ele faz a quest, e quando ele pega o Document e ele der use, ira sair uma mensagem assim, Parabens, Voce conseguiu Acesso Full.
      E ai ia liberar tiles para ele passa para um Hunt sempre que ele quiser, entendero?
      Tipo uma quest da vip 2, Os player que termina a quest, e liberado acesso a vip 2 !
      Alguem pode me ajudar, sim eu procurei nao como eu nao so la aquelas coisas nao consegui, eu ate tentei mais deu o erro a seguir, e ainda o script nem dava item, mais tentei mesmo assim, olhem o erro que da.
       


        Ai gente alguem pode me ajudar com esse script? Que ao da use la no bau pega o item e quando usar, voce ganha acesso a lugares novos, tipo voce usa o item, e voce podera passar nos tiles. Obrigado, REP+ .
    • Por O.J
      Olá amigos estou aqui mais uma vez para pedir uma coisa, um NPC que peça items para o player e se o player trazer os itens ele ganha um prêmio, só que depois que ele pegasse o prêmio ele não pudesse fazer a quest novamente colocassem tipo uma storage que checa se ele ja fez a quest entendem? Por favor se puderem ajudar agradeço muito meu Ot é 8.60 obrigado comunidade .
    • Por 919894
      Olá TKbianos, baum?
       
       Seguinte, gostaria de uma action para uma alavanca que:
       
       --> O player só possa usar 1x na sua vida, ou seja, com storage.
       --> A alavanca só pode ser usada 1x por dia, ou seja, sever save.
       --> Teleporte para o local x697 y486 z7, se possível com um qualquer efeito e a mensagem de "Look for Loki and kill him!".
       
       Procurei no fórum, porém, sem sucesso.
       
       Desde já agradeço!
    • Por allanzinh
      fala galera estou presisando de um tile(piso) que remova a storage do player quando ele passe por ele  
       
      Storage que ira remover do player : 6598799
       
      Agradeço des de ja e do REEP + para quem me ajudar 
  • Estatísticas dos Fóruns

    96840
    Tópicos
    519576
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo