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

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

×
×
  • Create New...

Important Information

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