Jump to content
Kassio Felix

[NPC] Sistema vip. Duvida sobre vip free

Recommended Posts

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 by Kassio Felix
Link to comment
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
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  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.



×
×
  • Create New...

Important Information

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