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

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×
×
  • Create New...

Important Information

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