Kassio Felix Posted November 23, 2020 Share Posted November 23, 2020 (edited) Salve pessoal, estou usando esse npc para adicionar o vip, pois o emulador que estou usando é eAmod com rathena, porem é um emulador antigo e n tem suporte ao sistema vip original do rathena. gostaria de saber, se alguém pode fazer o script de dias vip grats, abaixo segue o sistema que estou usando. Spoiler // ___________________________________________________________________________________ // / \ // | __ __ _____ _ _____ | // | | \/ |_ _| | | __ \ | // | | \ / | | | | | | | | | | // | | |\/| | | | | | | | | | | // | | | | |_| |_| |____| |__| | | // | |_| |_|_____|______|_____/ | // | | // | --------------------------------------------------------------------------------- | // | Name: VIP System ( CONTROL ) | // | --------------------------------------------------------------------------------- | // | Author: mild | // | --------------------------------------------------------------------------------- | // | Description: VIP System ( CONTROL ), | // | add VIP, remove VIP, Add new staff member and other. | // | --------------------------------------------------------------------------------- | // | Changelog: | // | 1.0 Started [mild] | // | 1.1 Added "See members banished" [mild] | // | 1.2 Added "See VIP members" [mild] | // | ALTER TABLE `login` ADD `dayVip` INT(11) NOT NULL DEFAULT '0';// | // \__________________________________________________________________________________/ prontera, 155, 172, 4 script VIP System#script 936,{ // Script's configurations // Script's name set $nScript$, "[ VIP System ]"; // VIP's configurations // Sale of VIP, 30 days. set @dVip1, 30; // Sale of VIP, 15 days. set @dVip2, 15; // Sale of VIP, 5 days. set @dVip3, 5; // Purchase price of the VIP of 30 days. set @pVip1, 20; // Purchase price of the VIP of 15 days. set @pVip2, 10; // Purchase price of the VIP of 5 days. set @pVip3, 5; if ( getgroupid() < 1 ) { mes $nScript$; mes "Você não é VIP, deseja adquirir?"; if (select ("- Yes:- No") == 1) { switch ( select ("- "+@dVip1+" days for ^FF0000"+@pVip1+"^000000 cash.:- "+@dVip2+" days for ^FF0000"+@pVip2+"^000000 cash.:- "+@dVip3+" days for ^FF0000"+@pVip3+"^000000 cash.:- Nothing.") ) { case 1: if (#CASHPOINTS >= @pVip1) { mes $nScript$; mes "Your VIP will be activated."; close2; query_sql ("UPDATE `login` SET `group_id`='1',`dayVip`=`dayVip`+"+@dVip1+" WHERE `account_id`='"+ getcharid(3) +"'"); set #CASHPOINTS,#[email protected]; atcommand "@kick " + strcharinfo(0); end; } next; mes $nScript$; mes "Você não tem ^FF0000"+@pVip1+"^000000 Cash."; close; case 2: if (#CASHPOINTS >= @pVip2) { mes $nScript$; mes "Seu VIP será ativado."; close2; query_sql ("UPDATE `login` SET `group_id`='1',`dayVip`=`dayVip`+"+@dVip2+" WHERE `account_id`='"+ getcharid(3) +"'"); set #CASHPOINTS,#[email protected]; atcommand "@kick " + strcharinfo(0); end; } next; mes $nScript$; mes "Você não tem ^FF0000"+@pVip2+"^000000 Cash."; close; case 3: if (#CASHPOINTS >= @pVip3) { mes $nScript$; mes "Your VIP will be activated."; close2; query_sql ("UPDATE `login` SET `group_id`='1',`dayVip`=`dayVip`+"+@dVip3+" WHERE `account_id`='"+ getcharid(3) +"'"); set #CASHPOINTS,#[email protected]; atcommand "@kick " + strcharinfo(0); end; } next; mes $nScript$; mes "Você não tem ^FF0000"+@pVip3+"^000000 Cash."; close; case 4: mes $nScript$; mes "Okay, vejo você em breve."; close; } } next; mes $nScript$; mes "Okay, vejo você em breve."; close; } else if (getgroupid() == 1) { query_sql ("SELECT `dayVip` FROM `login` WHERE `account_id` = '"+getcharid(3)+"'", @dayVip); mes $nScript$; mes "Olá "+strcharinfo(0); mes "Você tem ^FF0000"+@dayVip+"^000000 dias VIP"; close; } else if ( getgroupid() == 99 ) { mes $nScript$; mes "Olá "+strcharinfo(0)+"."; mes "O que você quer fazer?"; switch ( select ( "- Add VIP.:- Add staff.:- Remove VIP.:- membros VIP:- Banir membro.:- Ver membros banidos.: -Nada." ) ) { case 1: next; mes $nScript$; mes "Digite o login da conta que deseja adicionar dias VIP"; input .@lAccount$; query_sql ("SELECT `account_id` FROM `login` WHERE `userid`='"+.@lAccount$+"'",.@ExisAccount); if ( .@ExisAccount == 0 ) { next; mes $nScript$; mes "Você não digitou o login correto."; close; } next; mes $nScript$; mes "Agora digite a quantidade de dias que deseja adicionar. "+.@lAccount$+"."; input .@ammouVip; if ( .@ammouVip == 0 ) { next; mes $nScript$; mes "Você digitou uma quantidade inválida."; close; } next; mes $nScript$; mes "Ok, vou adicionar o VIP"; next; mes $nScript$; mes "Pronto, adicionei o VIP na conta ^FF0000"+.@lAccount$+"^000000 - Quantidade ^FF0000"+.@ammouVip+"^000000."; query_sql ("UPDATE `login` SET `group_id`='1',`dayVip`=`dayVip`+"+.@ammouVip+" WHERE `userid`='"+.@lAccount$+"'"); close; case 2: next; mes $nScript$; mes "Escolha a posição que deseja adicionar à conta."; switch ( select ("- Administrator ^CD0000(99)^000000 :- Game Master ^CD0000(60)^000000 :- Game Helper ^CD0000(40)^000000 :- Other :- Nothing") ) { case 1: next; mes $nScript$; mes "Digite a conta de login."; input .@lAccoGM$; query_sql ("SELECT `account_id` FROM `login` WHERE `userid`='"+.@lAccoGM$+"'",.@NoGM); if ( .@NoGM == 0 ) { next; mes $nScript$; mes "Essa conta não existe."; close; } mes $nScript$; mes "Vou adicionar a posição na conta."; query_sql ("UPDATE `login` SET `group_id`='99' WHERE `userid`='"+.@lAccoGM$+"'"); next; mes $nScript$; mes "Pronto, adicionado!"; close; case 2: next; mes $nScript$; mes "Digite a conta de login."; input .@lAccoGM$; query_sql ("SELECT `account_id` FROM `login` WHERE `userid`='"+.@lAccoGM$+"'",.@NoGM); if ( .@NoGM == 0 ) { next; mes $nScript$; mes "Essa conta não existe."; close; } mes $nScript$; mes "Vou adicionar a posição na conta."; query_sql ("UPDATE `login` SET `group_id`='60' WHERE `userid`='"+.@lAccoGM$+"'"); next; mes $nScript$; mes "Pronto, adicionado"; close; case 3: next; mes $nScript$; mes "Digite a conta de login."; input .@lAccoGM$; query_sql ("SELECT `account_id` FROM `login` WHERE `userid`='"+.@lAccoGM$+"'",.@NoGM); if ( .@NoGM == 0 ) { next; mes $nScript$; mes "Essa conta não existe."; close; } mes $nScript$; mes "Vou adicionar a posição na conta."; query_sql ("UPDATE `login` SET `group_id`='40' WHERE `userid`='"+.@lAccoGM$+"'"); next; mes $nScript$; mes "Pronto, adicionado"; close; case 4: next; mes $nScript$; mes "Digite a conta de login."; input .@lAccoGM$; query_sql ("SELECT `account_id` FROM `login` WHERE `userid`='"+.@lAccoGM$+"'",.@NoGM); if ( .@NoGM == 0 ) { next; mes $nScript$; mes "Essa conta não existe."; close; } mes $nScript$; mes "Agora, adiciona a posição que deseja."; input .@lGroup; next; mes $nScript$; mes "Vou adicionar a posição na conta."; query_sql ("UPDATE `login` SET `group_id`='"+.@lGroup+"' WHERE `userid`='"+.@lAccoGM$+"'"); next; mes $nScript$; mes "Pronto, adicionado."; close; case 5: next; mes $nScript$; mes "Ok, adeus"; close; } case 3: next; mes $nScript$; mes "Deseja remover VIP de alguma conta?"; if ( select ("- Yes.:- No,") == 1 ) { input @AccountBan$; query_sql ("SELECT `account_id` FROM `login` WHERE `userid`='"+@AccountBan$+"'",.@NoExist); if (!.@NoExist) { next; mes $nScript$; mes "Essa conta não existe."; close; } next; mes $nScript$; mes "Digite a quantidade de dias que deseja remover."; next; input .@QAccountBan; mes $nScript$; mes "Eu vou remover."+.@QAccountBan+" - Account: "+@AccountBan$+"."; next; mes $nScript$; mes "Você tem certeza?"; if ( select ("- Yes:- No") == 1 ) { next; mes $nScript$; mes "Ok, vou remover o VIP."; close2; query_sql ("UPDATE `login` SET `group_id`='1',`dayVip`=`dayVip`-"+.@QAccount+" WHERE `userid`='"+@AccountBan$+"'"); end; } next; mes $nScript$; mes "Okay, Adeus."; close; } next; mes $nScript$; mes "Okay, Adeus."; close; case 4: next; query_sql("SELECT `userid` FROM `login` WHERE `group_id`=1",@nVIPs$); for(set @v, 0; @v < getarraysize(@nVIPs$); set @v, @v+1) { mes @v+" - "+ @nVips$[@v]; } close; case 5: next; mes $nScript$; mes "Deseja banir alguém?"; if ( select ("- Yes.:- No.") == 1 ) { next; mes $nScript$; mes "Digite a conta de login."; next; input @banM$; query_sql ("SELECT `account_id` FROM `login` WHERE `userid`='"+@banM$+"'",.@NoExis); if ( !.@NoExis ) { next; mes $nScript$; mes "Essa conta não existe."; close; } next; mes $nScript$; mes "Tem certeza que deseja banir "+@banM$+"?"; if ( select ("- Yes:- No") == 1 ) { close2; atcommand "@kick " + @banM$; query_sql ("UPDATE `login` SET `state`='5' WHERE `userid`='"+@BanM$+"'"); end; } next; mes $nScript$; mes "Okay, Adeus."; close; } next; mes $nScript$; mes "Okay, Adeus."; close; case 6: next; query_sql("SELECT `userid` FROM `login` WHERE `state`>=5",@nBan$); for(set @a, 0; @a < getarraysize(@nBan$); set @a, @a+1) { mes @a+" - "+ @nBan$[@a]; } close; case 7: next; mes $nScript$; mes "Okay, Adeus."; close; } } } - script SysVip#clock -1,{ OnClock0001: query_sql ("UPDATE `login` SET `dayVip`=`dayVip`-1 WHERE `group_id`='1'"); end; OnClock0002: query_sql ("UPDATE `login` SET `group_id`='0' WHERE `dayVip`<='0' AND `group_id`='1'"); end; } - script SysVip#onlogin -1,{ OnPCLoginEvent: query_sql ("SELECT `dayVip` FROM `login` WHERE `account_id` = '"+getcharid(3)+"'", .@ReSVIP); if(getgroupid() < 1) { dispbottom "Você não é VIP"; end; } else if (getgroupid() == 1) { dispbottom "Olá "+strcharinfo(0)+" Você tem "+.@ReSVIP+" dias VIP."; end; } else end; } E tenho esse vip grats aqui. porem com outra tabela.... Porem estou com muita dificuldade de fazer ele funcionar... Spoiler //==================================== // ==Aqui a tabela do vip //==ALTER TABLE `login` ADD `diasvip` INT( 11 ) UNSIGNED NOT NULL DEFAULT '0'; //==================================== - script VIPGRATIS -1,{ OnPCLoginEvent: if(#japegou != 1){ mes "Bem-Vindo(a) ao Adventure! "; mes "Você está recebendo agora 7 dias vip gratis.^000000."; mes "Você será desconectado para que a operação tenha efeito. Basta digitar seu Login e sua senha normalmente e continuar a jogar"; close2; query_sql "UPDATE `login` SET `group_id`='1',`diasvip`='5' WHERE `account_id` = '"+ getcharid(3) +"'"; set #japegou,1; atcommand "@kick "+strcharinfo(0); end; }else{ end; } } OnPCLoginEvent: if(getgmlvl () >= 1){ dispbottom "[Controle VIP]: Você ainda tem "+.@diasvip+" dia(s) de VIP."; //======================================== //==Abaixo o controle dos dias vip //======================================== - script contador vip -1,{ OnPCLoginEvent: query_sql "SELECT `diasvip` FROM `login` WHERE `account_id` = '"+ getcharid(3) +"'", .@diasvip; if (.@diasvip > 0) && { dispbottom "[Controle VIP]: Você ainda tem "+.@diasvip+" dia(s) de VIP."; end; }else{ OnPCLoginEvent: query_sql "SELECT `diasvip` FROM `login` WHERE `account_id` = '"+ getcharid(3) +"'", .@diasvip; if (.@diasvip <= 3) { dispbottom "[#ragnaMeta! Controle VIP]: O seu vip está acabando, você só tem mais "+.@diasvip+" dia(s) de VIP."; dispbottom "[#ragnaMeta! Controle VIP]: Acesse ja o site www.ragnaMeta.net e saiba ja como fazer uma doação para continuar utilizando esta conta com os benefícios vip"; end; } OnClock0000: query_sql "UPDATE `login` SET `diasvip`=`diasvip`-1 WHERE `group_id`>='1'"; end; OnClock0000: query_sql "UPDATE `login` SET `group_id`='0' WHERE `diasvip`<='0' AND `group_id`>='1'"; end; } //========================================= Consegui fazer funcionar, mas agradeço se alguém conseguir optimizar esse npc =D Spoiler - script VIPGratis#K-1 -1,{ OnPcLoginEvent: if(GetGmLevel() >= 1) end; if(#vipmake == 0) { mes "Bem-Vindo(a) ao servidor "+strcharinfo(0)+""; mes "Voce acaba de ganhar 7 dias vip grátis."; mes "Re-Logue para que ele seja ativado."; query_sql "UPDATE `login` SET `group_id`='1',`dayVip`='7' WHERE `account_id` = '"+ getcharid(3) +"'"; set #vipmake,1; close; } end; } // Diminuição dos VIPS - script VIPGratis#K-2 -1,{ end; OnClock0001: query_sql "UPDATE `login` SET `dayVip`=`dayVip`-1 WHERE `group_id`='1'"; end; OnClock0002: query_sql "UPDATE `login` SET `group_id`='0' WHERE `dayVip`<='0' AND `group_id`='1'"; end; } // Relógio VIP - script VIPGratis#K-3 -1,{ OnPCLoginEvent: if (getgroupid() < 1 || getgroupid() > 2) end; query_sql "SELECT `dayVip` FROM `login` WHERE `account_id` = '"+ getcharid(3) +"'", @dias; if (@dias[0] <= 5){ dispbottom "[Controle VIP]"; dispbottom "Você só tem "+@dias+" dia(s) de VIP restando,"; dispbottom "Recarregue sua VIP e Ajude o Servidor !!!"; end; } dispbottom "[Controle VIP]"; dispbottom "Você ainda tem "+@dias+" dia(s) de VIP."; end; } Edited November 23, 2020 by Kassio Felix Quote Link to comment Share on other sites More sharing options...