Jump to content
  • 0
mukinhas

Ranking PvP Mooka com classes [site]

Question

Como posso mudar de modo que apareça também as classes dos respectivos jogadores?

 

<?PHP $connecta = mysql_connect('127.0.0.1','ragnarok','ragnarok');$db = mysql_select_db('ragnarok');?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><link rel="stylesheet" type="text/css" href="estilo.css" /><title>Ranking PvP Mooka</title></head> <body><div id="ranking"><table border="0" cellpadding="0" cellspacing="0">  <tr align="center" id="title">    <td>Posição</td>    <td>Nome</td>    <td>Matou</td>  </tr>    <?PHP   $tabela = mysql_query("SELECT * FROM pvpm_data ORDER BY kills DESC LIMIT 50");  $pos = 1;    while($pvp = mysql_fetch_assoc($tabela)){  echo '  <tr align="center" id="player">      <td>'.$pos.'º</td>    <td>'.$pvp['name'].'</td>    <td>'.$pvp['kills'].'</td>      </tr>  ';    $pos++;  }   ?></table></div> </body></html> 

 

Por exemplo, Posição, Nome, Classe, Matou.

 

Grato.

Share this post


Link to post
Share on other sites

15 answers to this question

Recommended Posts

  • 0

Vistos os dados, a consulta SQL você deveria fazer é a seguinte:

SELECT p.`name`, p.`kills`, c.`class` FROM `pvpm_data` p LEFT JOIN `char` c on p.`id` = c.`char_id` WHERE p.`type` = 0 ORDER BY p.`kills` DESC LIMIT 50

 

Teste, e voçê me dizer.

Share this post


Link to post
Share on other sites
  • 0

Eu poderia ver a estrutura da tabela?

 

A tabela é na mesma base de dados como o resto de dados no jogo?

Exatamente.

 

__

@EDIT

 

Com "ver a estrutura da tebela", você gostaria de ver isso?

 

 

 

-- v1.0.0+DROP TABLE IF EXISTS `pvpm_data`;CREATE TABLE `pvpm_data` (`id` int(11) unsigned NOT NULL default '0',`name` varchar(255) NOT NULL default '',`kills` int(11) unsigned NOT NULL default '0',`dies` int(11) unsigned NOT NULL default '0',`leader` int(11) unsigned NOT NULL default '0',`annc` int(11) unsigned NOT NULL default '0',`ban` int(11) unsigned NOT NULL default '0',`type` int(11) unsigned NOT NULL default '0',KEY `id` (`id`),KEY `kills` (`kills`),KEY `dies` (`dies`)) ENGINE=MyISAM; -- v1.1.1+alter table pvpm_data add ratio int(11) not null default '0' after dies; -- v1.1.7+DROP TABLE IF EXISTS `pvpm_map`;CREATE TABLE `pvpm_map` (`id` int(11) unsigned NOT NULL default '0',`map` varchar(255) NOT NULL default 'NULL',`type` int(11) unsigned NOT NULL default '0',KEY `id` (`id`)) ENGINE=MyISAM;insert into pvpm_map (id,map,type) values (0,'guild_vs3',0);insert into pvpm_map (id,map,type) values (1,'pvp_n_1-5',0);insert into pvpm_map (id,map,type) values (2,'guild_vs1',2);insert into pvpm_map (id,map,type) values (3,'prt_are01',2);insert into pvpm_map (id,map,type) values (4,'guild_vs2',1); -- v1.2.3+alter table pvpm_map add noguild int(11) not null default '0';update pvpm_map set noguild=1 where map='guild_vs1'; -- v1.3.0+ DROP TABLE IF EXISTS `pvpm_lang`;CREATE TABLE IF NOT EXISTS `pvpm_lang` (  `id` int(11) unsigned NOT NULL,  `lang` int(11) unsigned NOT NULL default '0',  `str` varchar(255) NOT NULL default '',  KEY `id` (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;  

 

 

 

No caso é sem esses <div> </div>, não faço ideia porque entrou no code

Edited by mukinhas

Share this post


Link to post
Share on other sites
  • 0

Sim. Também gostaria de saber se a coluna id da tabela é para char id ou account id.

 

Então use a seguinte consulta SQL em vez da atual:

SELECT p.`name`, p.`kills`, c.`class` FROM `pvpm_data` p LEFT JOIN `char` c on p.`id` = c.`char_id` WHERE p.`type` = 0 ORDER BY p.`kills` DESC LIMIT 50

 

e pode mudar tudo o codigo para o seguinte (adicione as classes restantes):

<?PHP $connecta = mysql_connect('127.0.0.1','ragnarok','ragnarok');$db = mysql_select_db('ragnarok');?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><link rel="stylesheet" type="text/css" href="estilo.css" /><title>Ranking PvP Mooka</title></head> <body><div id="ranking"><table border="0" cellpadding="0" cellspacing="0">  <tr align="center" id="title">    <td>Posição</td>    <td>Nome</td>	<td>Classe</td>    <td>Matou</td>  </tr>    <?PHP   $tabela = mysql_query("SELECT p.`name`, p.`kills`, c.`class` FROM `pvpm_data` p LEFT JOIN `char` c on p.`id` = c.`char_id` WHERE p.`type` = 0 ORDER BY p.`kills` DESC LIMIT 50");  $pos = 1;    while($pvp = mysql_fetch_assoc($tabela)){  echo '  <tr align="center" id="player">      <td>'.$pos.'º</td>    <td>'.$pvp['name'].'</td>    <td>'.nome_do_classe($pvp['class']).'</td>    <td>'.$pvp['kills'].'</td>      </tr>  ';    $pos++;  }   ?></table></div> </body></html><?phpfunction nome_do_classe($classe) {	switch($classe) {		case 0: return "Novice";		case 1: return "Swordman";		case 2: return "Mage";		case 3: return "Archer";		case 4: return "Acolyte";		case 5: return "Merchant";		case 6: return "Thief";		// (Adicione as classes restantes)		default: return "Erro";	}}?>

 

Pode utilizar este arquivo se quiser: http://sourceforge.net/p/cerescp/svn/HEAD/tree/trunk/db/jobs.txt

 

Em outro caso, me dizer e tentarei de adapta-lo.

 

P.E.: Eu não sou Português ou Brasileiro, sou Espanhol, me desculpe meus erros.

Share this post


Link to post
Share on other sites
  • 0

Sim. Também gostaria de saber se a coluna id da tabela é para char id ou account id.

 

Então use a seguinte consulta SQL em vez da atual:

SELECT p.`name`, p.`kills`, c.`class` FROM `pvpm_data` p LEFT JOIN `char` c on p.`id` = c.`char_id` ORDER BY p.`kills` DESC LIMIT 50

 

e pode mudar tudo o codigo para o seguinte (adicione as classes restantes):

<?PHP $connecta = mysql_connect('127.0.0.1','ragnarok','ragnarok');$db = mysql_select_db('ragnarok');?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><link rel="stylesheet" type="text/css" href="estilo.css" /><title>Ranking PvP Mooka</title></head> <body><div id="ranking"><table border="0" cellpadding="0" cellspacing="0">  <tr align="center" id="title">    <td>Posição</td>    <td>Nome</td>	<td>Classe</td>    <td>Matou</td>  </tr>    <?PHP   $tabela = mysql_query("SELECT * FROM pvpm_data ORDER BY kills DESC LIMIT 50");  $pos = 1;    while($pvp = mysql_fetch_assoc($tabela)){  echo '  <tr align="center" id="player">      <td>'.$pos.'º</td>    <td>'.$pvp['name'].'</td>	<td>'.nome_do_classe($pvp['classe']).'</td>    <td>'.$pvp['kills'].'</td>      </tr>  ';    $pos++;  }   ?></table></div> </body></html><?phpfunction nome_do_classe($classe) {	switch($classe) {		case 0: return "Novice";		case 1: return "Swordman";		case 2: return "Mage";		case 3: return "Archer";		case 4: return "Acolyte";		case 5: return "Merchant";		case 6: return "Thief";		// (Adicione as classes restantes)		default: return "Erro";	}}?>

 

Pode utilizar este arquivo se quiser: http://sourceforge.net/p/cerescp/svn/HEAD/tree/trunk/db/jobs.txt

 

Em outro caso, me dizer e tentarei de adapta-lo.

 

P.E.: Eu não sou Português ou Brasileiro, sou Espanhol, me desculpe meus erros.

 

Rapaz, você escreve melhor que MUITOS br's, parabéns. Se não falasse que era espanhol eu continuaria achando que é brasileiro =]

 

Mas voltando ao assunto, deu erro da linha 34.

 

 

<td>'.nome_do_classe($pvp['classe']).'</td>

 

Eu tentei por uma $ antes de nome 

 

 

<td>'.$nome_do_classe($pvp['classe']).'</td>

 

Mas deu certo não, sabe o que pode ser?

 

Agradeço seu esforço para tentar me ajudar.

Edited by mukinhas

Share this post


Link to post
Share on other sites
  • 0

Oh, mea culpa. O resultado é na membro 'class' do array $pvp, não na 'classe'. Eu editei o meu post anterior.

 

Se o erro não é resolvido, favor poste a mensagem do erro aqui.

 

P.E.: Eu testei este código e parece funcional

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Ranking PvP Mooka</title></head> <body><?php	for ($i = 0; $i <= 6; $i++)		echo nome_do_classe($i) . '<br>';?></body></html><?phpfunction nome_do_classe($classe) {	switch($classe) {		case 0: return "Novice";		case 1: return "Swordman";		case 2: return "Mage";		case 3: return "Archer";		case 4: return "Acolyte";		case 5: return "Merchant";		case 6: return "Thief";		// (Adicione as classes restantes)		default: return "Erro";	}}?>

Share this post


Link to post
Share on other sites
  • 0

 

Oh, mea culpa. O resultado é na membro 'class' do array $pvp, não na 'classe'. Eu editei o meu post anterior.

 

Se o erro não é resolvido, favor poste a mensagem do erro aqui.

 

P.E.: Eu testei este código e parece funcional

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Ranking PvP Mooka</title></head> <body><?php	for ($i = 0; $i <= 6; $i++)		echo nome_do_classe($i) . '<br>';?></body></html><?phpfunction nome_do_classe($classe) {	switch($classe) {		case 0: return "Novice";		case 1: return "Swordman";		case 2: return "Mage";		case 3: return "Archer";		case 4: return "Acolyte";		case 5: return "Merchant";		case 6: return "Thief";		// (Adicione as classes restantes)		default: return "Erro";	}}?>

 

Cara, valeu!!! Você não sabe como que estou feliz por você me ajudar.

 

Está funcionando do jeito que eu queria. Mas aproveitando o post e abusando um pouco de sua boa vontade haha. Na imagem a seguir, observe que na 3ª posição "Os sem nomes" e na 5ª "Nao quero cla" são gulds. Eu tentei algumas coisas aqui mas não consegui deixar somente players no ranking

 

 

2djrnt1.png

 

 

 

  while($pvp = mysql_fetch_assoc($tabela)){  echo '  <tr align="center" id="player"> // <<-- aqui eu apaguei o player coloquei outras coisas e funciona da mesma forma      <td>'.$pos.'º</td>    <td>'.$pvp['name'].'</td>    <td>'.nome_do_classe($pvp['class']).'</td>    <td>'.$pvp['kills'].'</td>      </tr>

 

Tem alguma ideia de como me ajudar?

Share this post


Link to post
Share on other sites
  • 0

A minha pergunta é: como têm aparecido clãs na tabela? A não ser que a tabela foi concebida para o armazenamento de clãs em vez de jogadores, ou clãs e jogadores ao mesmo tempo. Nesse caso eu necessito de mais informaçao do script que maneja as inserções na tabela.

Share this post


Link to post
Share on other sites
  • 0

A minha pergunta é: como têm aparecido clãs na tabela? A não ser que a tabela foi concebida para o armazenamento de clãs em vez de jogadores, ou clãs e jogadores ao mesmo tempo. Nesse caso eu necessito de mais informaçao do script que maneja as inserções na tabela.

 

Bom, as tabelas do ranking são essas do link. detalhe: Tem mais uma tabela, porém é de idioma.

http://pastebin.com/raw.php?i=f8whNSsY

 

Essa tabela de cima é do pvp, tanto jogadores tanto clãs. No NPC in-game há a separação entre eles.

 

O script a seguir é o que você editou pra mim. Vale lembrar que antes mesmo da edição já estava tudo junto misturado.

 

 

 

<?PHP $connecta = mysql_connect('127.0.0.1','ragnarok','ragnarok');$db = mysql_select_db('ragnarok');?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><link rel="stylesheet" type="text/css" href="estilo.css" /><title>Ranking PvP Mooka</title></head> <body><div id="ranking"><table border="0" cellpadding="0" cellspacing="0">  <tr align="center" id="title">    <td>Posição</td>    <td>Nome</td>	<td>Classe</td>    <td>Matou</td>  </tr>    <?PHP   $tabela = mysql_query("SELECT p.`name`, p.`kills`, c.`class` FROM `pvpm_data` p LEFT JOIN `char` c on p.`id` = c.`char_id` ORDER BY p.`kills` DESC LIMIT 50");  $pos = 1;    while($pvp = mysql_fetch_assoc($tabela)){  echo '  <tr align="center" id="player">      <td>'.$pos.'º</td>    <td>'.$pvp['name'].'</td>    <td>'.nome_do_classe($pvp['class']).'</td>    <td>'.$pvp['kills'].'</td>      </tr>  ';    $pos++;  }   ?></table></div> </body></html> <?phpfunction nome_do_classe($classe) {	switch($classe) {		case 0: return "Novice";		case 1: return "Swordman";		case 2: return "Mage";		case 3: return "Archer";		case 4: return "Acolyte";		case 5: return "Merchant";		case 6: return "Thief";		case 7: return "Knight";		case 8: return "Priest";		case 9: return "Wizard";		case 10: return "Blacksmith";		case 11: return "Hunter";		case 12: return "Assassin";		case 13: return "Knight";		case 14: return "Crusader";		case 15: return "Monk";		case 16: return "Sage";		case 17: return "Rogue";		case 18: return "Alchemist";		case 19: return "Bard";		case 20: return "Dancer";		case 21: return "Crusader";		case 22: return "Wedding";		case 23: return "SuperNovice";		case 24: return "Gunslinger";		case 25: return "Ninja";		case 26: return "Santa_Costume";		case 27: return "Summer_Suit";		case 28: return "Hanbok";		case 4001: return "High_Novice";		case 4002: return "High_Swordman";		case 4003: return "High_Mage";		case 4004: return "High_Archer";		case 4005: return "High_Acolyte";		case 4006: return "High_Merchant";		case 4007: return "High_Thief";		case 4008: return "High_Knight";		case 4009: return "High_Priest";		case 4010: return "High_Wizard";		case 4011: return "Whitesmith";		case 4012: return "Sniper";		case 4013: return "Assassin_Cross";		case 4014: return "Lord_Knight";		case 4015: return "Paladin";		case 4016: return "Champion";		case 4017: return "Professor";		case 4018: return "Stalker";		case 4019: return "Creator";		case 4020: return "Clown";		case 4021: return "Gypsy";		case 4022: return "Paladin";		case 4023: return "Baby_Novice";		case 4024: return "Baby_Swordman";		case 4025: return "Baby_Mage";		case 4026: return "Baby_Archer";		case 4027: return "Baby_Acolyte";		case 4028: return "Baby_Merchant";		case 4029: return "Baby_Thief";		case 4030: return "Baby_Knight";		case 4031: return "Baby_Priest";		case 4032: return "Baby_Wizard";		case 4033: return "Baby_Blacksmith";		case 4034: return "Baby_Hunter";		case 4035: return "Baby_Assassin";		case 4036: return "Baby_Knight";		case 4037: return "Baby_Crusader";		case 4038: return "Baby_Monk";		case 4039: return "Baby_Sage";		case 4040: return "Baby_Rogue";		case 4041: return "Baby_Alchemist";		case 4042: return "Baby_Bard";		case 4043: return "Baby_Dancer";		case 4044: return "Baby_Crusader";		case 4045: return "Super_Baby";		case 4046: return "Taekwon";		case 4047: return "Star_Gladiator";		case 4048: return "Star_Gladiator";		case 4049: return "Soul_Linker";		case 4050: return "Gangsi";		case 4051: return "Death_Knight";		case 4052: return "Dark_collector";		case 4054: return "Rune_Knight";		case 4055: return "Warlock";		case 4056: return "Ranger";		case 4057: return "Arch_Bishop";		case 4058: return "Mechanic";		case 4059: return "Guillotine_Cross";		case 4060: return "Rune_Knight";		case 4061: return "Warlock";		case 4062: return "Ranger";		case 4063: return "Arch_Bishop";		case 4064: return "Mechanic";		case 4065: return "Guillotine_Cross";		case 4066: return "Royal_Guard";		case 4067: return "Sorcerer";		case 4068: return "Minstrell";		case 4069: return "Wanderer";		case 4070: return "Sura";		case 4071: return "Genetic";		case 4072: return "Shadow_Chaser";		case 4073: return "Royal_Guard";		case 4074: return "Sorcerer";		case 4075: return "Minstrel";		case 4076: return "Wanderer";		case 4077: return "Sura";		case 4078: return "Genetic";		case 4079: return "Shadow_Chaser";		case 4080: return "Rune_Knight";		case 4081: return "Rune_Knight";		case 4082: return "Royal_Guard";		case 4083: return "Royal_Guard";		case 4084: return "Ranger";		case 4085: return "Ranger";		case 4086: return "Mechanic";		case 4087: return "Mechanic";		case 4096: return "Baby_Rune";		case 4097: return "Baby_Warlock";		case 4098: return "Baby_Ranger";		case 4099: return "Baby_Bishop";		case 4100: return "Baby_Mechanic";		case 4101: return "Baby_Cross";		case 4102: return "Baby_Guard";		case 4103: return "Baby_Sorcerer";		case 4104: return "Baby_Minstrel";		case 4105: return "Baby_Wanderer";		case 4106: return "Baby_Sura";		case 4107: return "Baby_Genetic";		case 4108: return "Baby_Chaser";		case 4109: return "Baby_Rune";		case 4110: return "Baby_Guard";		case 4111: return "Baby_Ranger";		case 4112: return "Baby_Mechanic";		case 4190: return "Super_Novice_Expanded";		case 4191: return "Super_Baby_Expanded";		case 4211: return "Kagerou";		case 4212: return "Oboro";		default: return "Erro";	} }?>

 

 

 

Já tentei muita coisa, mas meu conhecimento sobre o assunto é muito limitado e não sei como arrumar.

 

Só faltou eu postar o npc mesmo.

Edited by mukinhas

Share this post


Link to post
Share on other sites
  • 0

Eu poderia ver a saída de fazer a seguinte consulta na tabela, feita desde PhpMyAdmin ou outro gestor de bases de dados?

 

SELECT * FROM `pvpm_data` ORDER BY `kills` DESC LIMIT 10"

 

(Ou o código do NPC, si possível, para encontrar o função das colunas da tabela)

Share this post


Link to post
Share on other sites
  • 0

Eu poderia ver a saída de fazer a seguinte consulta na tabela, feita desde PhpMyAdmin ou outro gestor de bases de dados?

 

SELECT * FROM `pvpm_data` ORDER BY `kills` DESC LIMIT 10"

 

(Ou o código do NPC, si possível, para encontrar o função das colunas da tabela)

 

Se eu substitui por essa linha continua a mesma coisa, com exceção de que agora todos são lidos como "novice"

Edited by mukinhas

Share this post


Link to post
Share on other sites
  • 0

Oh, eu queria saver os dados na tabela (você pode usar essa consulta no PhpMyAdmin ou similar), não que você trocara a consulta atual por essa.

Share this post


Link to post
Share on other sites
  • 0

Oh, eu queria saver os dados na tabela (você pode usar essa consulta no PhpMyAdmin ou similar), não que você trocara a consulta atual por essa.

 

Bom, quando eu pesquisei

SELECT * FROM `pvpm_data` ORDER BY `kills` DESC LIMIT 10"
 retornou isso aqui

 

av0588.png

Share this post


Link to post
Share on other sites
  • 0

Vistos os dados, a consulta SQL você deveria fazer é a seguinte:

SELECT p.`name`, p.`kills`, c.`class` FROM `pvpm_data` p LEFT JOIN `char` c on p.`id` = c.`char_id` WHERE p.`type` = 0 ORDER BY p.`kills` DESC LIMIT 50

 

Teste, e voçê me dizer.

 

Você é bom mesmo kkkkk.

 

Primeiro eu fiz a consulta e retornou só os players. Depois coloquei essa linha no script e funcionou perfeito. Vlw mesmo

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.