Jump to content
  • 0
Sign in to follow this  
leonardofan

MVP Points

Question

Tenho esse MVP points

prontera,150,150,6      script  Trocador de MVP Points#1        753,{
     
       
// Estrutura da loja:
        // ID,preço, Id,preço, ID,preço...;
setarray .items[0],5463,175, 5462,175, 10501,200, 10502,400, 5377,400;
           
set .npcname$, "[ ^cf7500Trocador de MVP Points^000000 ]";
           
mes
.npcname$;
mes "Olá ^0000FF"+strcharinfo (0)+"^000000, eu posso trocar seus MVP Points por items especiais o catálogo de items é o seguinte.";
next;
switch (select ("- Máscara Colorida:- Máscara do Exterminador:- Goma de Mascar:- Donut:- Antique Pipe")) {
        case 1: set @buying, 0; set @qt, 1; break;
        case 2: set @buying, 2; set @qt, 1; break;
        case 3: set @buying, 4; set @qt, 1; break;
        case 4: set @buying, 6; set @qt, 1; break;
        case 5: set @buying, 8; set @qt, 1; break;
}
set @prize, .items[@buying+1];
mes .npcname$;
mes "Você escolheu comprar o item ^FF0000"+getitemname (.items[@buying])+"^000000, irá lhe custar ^FF0000"+@prize+"^000000 MVP Points.";
mes "Deseja prosseguir?";
next;
if (select ("- Sim, claro!:- Não, muito caro.") == 2) {
        mes .npcname$;
        mes "Está bem, volte quando quiser negociar seus MVP Points.";
        close;
} else {
        if (mvp_points < @prize) { //Verificação da quantidade de MVP Points
        mes .npcname$;
        mes "Você não possui MVP Points suficientes.";
        close;
}
if (checkweight(.items[@buying],@qt) == 0) { //Verificação de peso
        mes .npcname$;
mes "Você está muito pesado para receber o item, por favor livre-se de um pouco de seu peso.";
        close;
}
        getitem .items[@buying],@qt;
set mvp_points, mvp_points - @prize;
        mes .npcname$;
        mes "Aqui está seu item, muito obrigado por utilizar nosso serviço de trocas.";
        dispbottom "Você gastou "+@prize+" MVP Points, lhe restam "+mvp_points+" MVP Points.";
        close;
        }
}

e uso esse sql
 
CREATE TABLE IF NOT EXISTS `mvp_rank` (
`id` INT( 11 ) UNSIGNED NOT NULL DEFAULT '0',
`name` VARCHAR( 23 ) NOT NULL ,
`mvpkills` BIGINT( 20 ) UNSIGNED NOT NULL ,
`mvp_points` BIGINT( 20 ) UNSIGNED NOT NULL ,
UNIQUE KEY `id` ( `id` )
) TYPE = MYISAM DEFAULT CHARSET = latin1
 
e uso esse ranking.
 
 
//=========================================================
// Cronus Script - Ranking MVP
//=========================================================
// Escrito por Kant - 18/02/2011
//=========================================================
// 20/05/2014 -- mcsxD // Criação Tabela SQl automatico e 
//                          Nick top 1º no waitingroom 
//=========================================================
//-Mostra um top com os players que mais mataram
// mvps no servidor.
//-Configurações disponíveis in-game: anúncio quando um
// player matar um mvp, número de posições mostradas e
// resetar top.
//-Tabela sql será criada automaticamente.
//=========================================================
//-Fiz esse npc a fim de melhorar um pouco  o script do
// Rokimoki e fazer uma versão sql, usando uma tabela 
// para guardar os dados, facilitando o uso em sites e cp.
//-Agradecimentos ao Rokimoki por ter feito a array com AS
// ids dos mvps.
//=========================================================
 
- script Rank MvP -1,{
OnInit:
query_sql "CREATE TABLE IF NOT EXISTS `mvprank` (`id` INT( 11 ) UNSIGNED NOT NULL DEFAULT '0',`name` VARCHAR( 23 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL ,`mvpkills` BIGINT UNSIGNED NOT NULL ,UNIQUE (`id`)) ENGINE = MYISAM";
SET $a, 1;
SET $topmvp, 10;
setarray $mvpid[0],1511,1251,1734,1647,1651,1785,1630,1399,1039,1874,2068,1272,1719,1046,1389,1885,1876,1112,1115,1957,1418,1871,1252,1768,1086,1688,1646,1373,1147,1492,1059,1150,1956,2022,1087,1190,1038,1157,1159,1502,1623,1650,1583,1779,1708,1312,1751,1685,1648,1649,1917,1658,1832,1916,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2021,2024,2025,2026,2027,2028,2032;
end;
 
OnNPCKillEvent:
FOR (SET .@i, 0; .@i < getarraysize($mvpid); SET .@i, .@i + 1) {
IF (killedrid == $mvpid[.@i]) SET .@s,1;
}
IF (!.@s) end;
IF ($a) announce "O player [ "+strcharinfo(0)+" ] matou o MvP [ "+getmonsterinfo(killedrid,0)+" ] no mapa [ "+strcharinfo(3)+" ]",bc_blue|bc_all;
query_sql "INSERT INTO mvprank (id, name, mvpkills) values('"+getcharid(0)+"','"+strcharinfo(0)+"','1') ON DUPLICATE KEY UPDATE mvpkills = mvpkills + '1'";
end;
}
 
prontera
,150,150,4 script Top MVP Killers 837,{
IF (getgroupid() > 90) {
mes "[^0000FFTop MvP "+$topmvp+"^000000]";
mes "O que deseja fazer?";
switch(SELECT("Ver Top",(($a) ? "Desligar anúncio":"Ligar anúncio"),"Resetar Top MvP:Número de posições")) {
case 1: break;
case 2:
SET $a, ($a) ? 0 : 1;
close;
case 3:
query_sql "TRUNCATE `mvprank`";
close;
case 4:
mes "Digite o número de posições do top mvp.";
input $topmvp;
break;
}
next;
}
query_sql "SELECT `name`,`mvpkills` FROM `mvprank` ORDER BY `mvpkills` DESC LIMIT "+$topmvp+"",@names$,@mvpkills;
mes "[^0000FFTop MvP "+$topmvp+"^000000]";
FOR (SET @c, 0; @c < $topmvp; SET @c, @c + 1) {
mes "^FF0000"+(@c+1)+"º^000000 ^0000FF"+@names$[@c]+"^000000 matou ^FF0000"+@mvpkills[@c]+"^000000 MvP's.";
}
close;
OnInit:
query_sql "SELECT `name`,`mvpkills` FROM `mvprank` ORDER BY `mvpkills` DESC LIMIT 1",.@names$,.@mvpkills;
waitingroom .@names$,0;
end;
}

 

 

O ranking está funcionando 100% porém quando clico no mvp point ele diz que não tenho pontos MVP creio que que o MVP points não está lendo a ranking MVP alguem pode me ajuda???

Share this post


Link to post
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Você fala nessa parte?

 

        if (mvp_points < @prize) { //Verificação da quantidade de MVP Points        mes .npcname$;        mes "Você não possui MVP Points suficientes.";        close;} 

Eu acredito que o erro esteja no uso dessa variável mvp_points, não sei quem criou esse script da parte de cima, mas eu não estou o entendendo, talvez alguém mais experiente possa te ajudar. 

Share this post


Link to post
Share on other sites
  • 0

dei uma olhada só por cima mas n sei se vc percebeu mas vc tá usando duas tabelas: mvprank e mvp_rank

Share this post


Link to post
Share on other sites
  • 0

dei uma olhada só por cima mas n sei se vc percebeu mas vc tá usando duas tabelas: mvprank e mvp_rank

 

Exatamente, porém os comandos tão sendo usados todos em cima da tabela mvprank, a mvp_rank é nula e não está sendo usada em parte alguma no script, sendo ela inútil. 

 

A variável mvp_point é contada após matar o MvP (creio eu), sendo uma variável permanente para trocar por itens futuramente no script, logo ela não tem haver com a contagem de pontos para o Ranking, que é em SQL. 

 

Share this post


Link to post
Share on other sites
  • 0

Pelo que notei a variável "mvp_points" nunca foi definida, sendo sempre 0.

 

Tente adicionar esta linha antes do end do OnNPCKillEvent:

mvp_points++;

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
Sign in to follow this  

×
×
  • Create New...

Important Information

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