Ver um Único Post
  #17  
Antigo 03-08-2009, 06:43 PM
Avatar de Nosyel
Nosyel Nosyel está offline
Membro Senior
 
Registrado em: Jul 2008
Localização: Brasília - DF
Posts: 2,434
MUITO OBRIGADO: 1,942
Agradecido 498 Vezes em 104 Posts
Reputação: 47
Nosyel é explendido para se observarNosyel é explendido para se observarNosyel é explendido para se observarNosyel é explendido para se observarNosyel é explendido para se observarNosyel é explendido para se observar
Talking Re: [Download] Lista de NPC's ( Atualizado 18/07/2009 )

Citação:
Postado Originalmente por eddyzapa Ver Post
Olá, Nosyel, cara to com um probleminha em alguns npc´s que eu peguei daqui.

Tipo o Sortudo, ele até em certo momento funciona, mas quando você adiciona mais de 3 itens ele começa a bugar tudo.
Exemplo, quero mudar o item de numero 3 e ele muda o de número 1 com o numero da ID que era do 3. Dai deu um bug sinistro no servidor, o cara quebrou um bau e começou a chover Elmo de Ying Yang huehuhe.

Outro npc que é ótimo mas ta bugado tbm é o Resta Um, qual o erro?
Simplesmente ele fica paradão em prontera, num da pra clicar, e nem anuncia quando começa o evento.
E só mais uma coisinha, queria um sistema vip que contase os dia vip,pois to tendo muito trabalho no meu servidor, muita gente pagando vip e tipo, estou tendo que marcar tudo no excell, e as vezes esqueço de retirar um vip que já acabou.
Já procurei algum sistema vip que funcione e num consegui achar nenhum se tiver como vc me ajudar com isso ficarei grato.
Bem vamos lá então:

1º Sortudo:

Código:
//**************************************************************************//
//*               Um Nome... Um Reinado... Uma Reputação...                *//
//**************************************************************************//
//*                                                                        *//
//*                                                                        *//
//*                                 \|||/                                  *//
//*            .-.________          (o o)               ________.-.        *//
//*       ----/ \_)_______) +--oooO--(_)------------+  (_______(_/ \----   *//
//*          (    ()___)    |                       |    (___()     )      *//
//*               ()__)     |      * NOSYEL *       |     (__()            *//
//*       ----\___()_)      |                       |      (_()___/-----   *//
//*                         +------------Ooo--------+                      *//
//*                                |__|__|                                 *//
//*                                 || ||                                  *//
//*                        ________ooO Ooo________                         *//
//*                                                                        *//
//**************************************************************************//
//* Invejados Por Muitos, Copiados Por Alguns, e Admirados Por Todos!!!... *//
//**************************************************************************//
prontera.gat,158,193,5	script	Sortudo	106,{

set .n$, "[^FF0000Sortudo^000000]";

	if(getgmlevel() > 9 && getgmlevel() < 99){show .n$; show "Você não pode participar !"; close;}
	if(getgmlevel() == 99){
	show .n$;
	show "Olá ^0000CD"+StrCharInfo(0)+"^000000 !";
	show "O que deseja ?";
	switch(select("- Entrar","- Alterar Drops")){

case 1:
	if($portao_sortudo == FALSE){next; show .n$; show "O Evento está fechado !"; close;}
	next;
	show .n$;
	show "Boa sorte durante o evento !";
	close2;
	set @rand_sortudo, rand(1,8);
	if(@rand_sortudo == 1){warp "quiz_02.gat",318,34; end;}
	if(@rand_sortudo == 2){warp "quiz_02.gat",37,52; end;}
	if(@rand_sortudo == 3){warp "quiz_02.gat",73,52; end;}
	if(@rand_sortudo == 4){warp "quiz_02.gat",330,34; end;}
	if(@rand_sortudo == 5){warp "quiz_02.gat",49,52; end;}
	if(@rand_sortudo == 6){warp "quiz_02.gat",342,34; end;}
	if(@rand_sortudo == 7){warp "quiz_02.gat",354,34; end;}
	if(@rand_sortudo == 8){warp "quiz_02.gat",61,52; end;}
case 2:
	next;
	show .n$;
	show "Digite o ID do item que poderá ser dropado !";
	input @id_sortudo;
	next;
	show .n$;
	show "Digite outro ID de item que poderá ser dropado !";
	input @id_sortudo_t;
	next;
	show .n$;
	show "Digite a quantia em Zeny que poderá ser ganha !";
	input @zeny_sortudo;
	next;
	show .n$;
	show "Você escolheu como prêmios:";
	show "1 "+getitemname(@id_sortudo);
	show "1 "+getitemname(@id_sortudo_t);
	show @zeny_sortudo+" Zenys";
	close2;
	set $item_sortudo,@id_sortudo;
	set $item_sortudo_t,@id_sortudo_t;
	set $zeny_sortudo,@zeny_sortudo;
	end;
}
	}
	show .n$;
	show "Olá ^0000CD"+StrCharInfo(0)+"^000000 !";
	show "O que deseja ?";
	if(select("- Entrar:- Nada") == 2) close;
	if($portao_sortudo == FALSE){next; show .n$; show "O Evento está fechado !"; close;}
	next;
	show .n$;
	show "Boa sorte durante o evento !";
	close2;
	set @rand_sortudo, rand(1,8);
	if(@rand_sortudo == 1){warp "quiz_02.gat",318,34; end;}
	if(@rand_sortudo == 2){warp "quiz_02.gat",37,52; end;}
	if(@rand_sortudo == 3){warp "quiz_02.gat",73,52; end;}
	if(@rand_sortudo == 4){warp "quiz_02.gat",330,34; end;}
	if(@rand_sortudo == 5){warp "quiz_02.gat",49,52; end;}
	if(@rand_sortudo == 6){warp "quiz_02.gat",342,34; end;}
	if(@rand_sortudo == 7){warp "quiz_02.gat",354,34; end;}
	if(@rand_sortudo == 8){warp "quiz_02.gat",61,52; end;}

OnClock0100: set $portao_sortudo,1; announce "O Evento 'Sortudo' irá começar, vocês só tem 5 minutos !",bc_yellow; end;
OnClock0105: set $portao_sortudo,0; announce "Os portões para o evento foram fechados !",bc_yellow; end;
OnClock0300: set $portao_sortudo,1; announce "O Evento 'Sortudo' irá começar, vocês só tem 5 minutos !",bc_yellow; end;
OnClock0305: set $portao_sortudo,0; announce "Os portões para o evento foram fechados !",bc_yellow; end;
OnClock0500: set $portao_sortudo,1; announce "O Evento 'Sortudo' irá começar, vocês só tem 5 minutos !",bc_yellow; end;
OnClock0505: set $portao_sortudo,0; announce "Os portões para o evento foram fechados !",bc_yellow; end;
OnClock0700: set $portao_sortudo,1; announce "O Evento 'Sortudo' irá começar, vocês só tem 5 minutos !",bc_yellow; end;
OnClock0705: set $portao_sortudo,0; announce "Os portões para o evento foram fechados !",bc_yellow; end;
OnClock0900: set $portao_sortudo,1; announce "O Evento 'Sortudo' irá começar, vocês só tem 5 minutos !",bc_yellow; end;
OnClock0905: set $portao_sortudo,0; announce "Os portões para o evento foram fechados !",bc_yellow; end;
OnClock1100: set $portao_sortudo,1; announce "O Evento 'Sortudo' irá começar, vocês só tem 5 minutos !",bc_yellow; end;
OnClock1105: set $portao_sortudo,0; announce "Os portões para o evento foram fechados !",bc_yellow; end;
OnClock1300: set $portao_sortudo,1; announce "O Evento 'Sortudo' irá começar, vocês só tem 5 minutos !",bc_yellow; end;
OnClock1305: set $portao_sortudo,0; announce "Os portões para o evento foram fechados !",bc_yellow; end;
OnClock1500: set $portao_sortudo,1; announce "O Evento 'Sortudo' irá começar, vocês só tem 5 minutos !",bc_yellow; end;
OnClock1505: set $portao_sortudo,0; announce "Os portões para o evento foram fechados !",bc_yellow; end;
OnClock1700: set $portao_sortudo,1; announce "O Evento 'Sortudo' irá começar, vocês só tem 5 minutos !",bc_yellow; end;
OnClock1705: set $portao_sortudo,0; announce "Os portões para o evento foram fechados !",bc_yellow; end;
OnClock1900: set $portao_sortudo,1; announce "O Evento 'Sortudo' irá começar, vocês só tem 5 minutos !",bc_yellow; end;
OnClock1905: set $portao_sortudo,0; announce "Os portões para o evento foram fechados !",bc_yellow; end;
OnClock2100: set $portao_sortudo,1; announce "O Evento 'Sortudo' irá começar, vocês só tem 5 minutos !",bc_yellow; end;
OnClock2105: set $portao_sortudo,0; announce "Os portões para o evento foram fechados !",bc_yellow; end;
OnClock2300: set $portao_sortudo,1; announce "O Evento 'Sortudo' irá começar, vocês só tem 5 minutos !",bc_yellow; end;
OnClock2305: set $portao_sortudo,0; announce "Os portões para o evento foram fechados !",bc_yellow; end;
}

quiz_02.gat,0,0,0	script	Core_Sortudo	-1,{

OnClock0100: atcommand "@killmonster2"; end; OnClock0300: atcommand "@killmonster2"; end;
OnClock0500: atcommand "@killmonster2"; end; OnClock0700: atcommand "@killmonster2"; end;
OnClock0900: atcommand "@killmonster2"; end; OnClock1100: atcommand "@killmonster2"; end;
OnClock1300: atcommand "@killmonster2"; end; OnClock1500: atcommand "@killmonster2"; end;
OnClock1700: atcommand "@killmonster2"; end; OnClock1900: atcommand "@killmonster2"; end;
OnClock2100: atcommand "@killmonster2"; end; OnClock2300: atcommand "@killmonster2"; end;
OnClock0105: atcommand "@pvpon"; end; OnClock0305: atcommand "@pvpon"; end; OnClock0505: atcommand "@pvpon"; end;
OnClock0705: atcommand "@pvpon"; end; OnClock0905: atcommand "@pvpon"; end; OnClock1105: atcommand "@pvpon"; end;
OnClock1305: atcommand "@pvpon"; end; OnClock1505: atcommand "@pvpon"; end; OnClock1705: atcommand "@pvpon"; end;
OnClock1905: atcommand "@pvpon"; end; OnClock2105: atcommand "@pvpon"; end; OnClock2305: atcommand "@pvpon"; end;
OnClock0110: callsub Tesouro_Sortudo; OnClock0310: callsub Tesouro_Sortudo; OnClock0510: callsub Tesouro_Sortudo;
OnClock0710: callsub Tesouro_Sortudo; OnClock0910: callsub Tesouro_Sortudo; OnClock1110: callsub Tesouro_Sortudo;
OnClock1310: callsub Tesouro_Sortudo; OnClock1510: callsub Tesouro_Sortudo; OnClock1710: callsub Tesouro_Sortudo;
OnClock1910: callsub Tesouro_Sortudo; OnClock2110: callsub Tesouro_Sortudo; OnClock2310: callsub Tesouro_Sortudo;

Tesouro_Sortudo:

		atcommand "@pvpoff";
		monster	"quiz_02.gat",77,52,	"Tesouro",1732,1,"Tesouro::OnTreasureDie";
		monster	"quiz_02.gat",77,53,	"Tesouro",1732,1,"Tesouro::OnTreasureDie";
		monster	"quiz_02.gat",77,64,	"Tesouro",1732,1,"Tesouro::OnTreasureDie";
		monster	"quiz_02.gat",314,34,	"Tesouro",1732,1,"Tesouro::OnTreasureDie";
		monster	"quiz_02.gat",314,45,	"Tesouro",1732,1,"Tesouro::OnTreasureDie";
		monster	"quiz_02.gat",314,57,	"Tesouro",1732,1,"Tesouro::OnTreasureDie";
		monster	"quiz_02.gat",33,52,	"Tesouro",1732,1,"Tesouro::OnTreasureDie";
		monster	"quiz_02.gat",33,62,	"Tesouro",1732,1,"Tesouro::OnTreasureDie";
		monster	"quiz_02.gat",33,73,	"Tesouro",1732,1,"Tesouro::OnTreasureDie";
		monster	"quiz_02.gat",331,34,	"Tesouro",1732,1,"Tesouro::OnTreasureDie";
		monster	"quiz_02.gat",331,45,	"Tesouro",1732,1,"Tesouro::OnTreasureDie";
		monster	"quiz_02.gat",331,57,	"Tesouro",1732,1,"Tesouro::OnTreasureDie";
		monster	"quiz_02.gat",49,52,	"Tesouro",1732,1,"Tesouro::OnTreasureDie";
		monster	"quiz_02.gat",49,62,	"Tesouro",1732,1,"Tesouro::OnTreasureDie";
		monster	"quiz_02.gat",49,73,	"Tesouro",1732,1,"Tesouro::OnTreasureDie";
		monster	"quiz_02.gat",342,34,	"Tesouro",1732,1,"Tesouro::OnTreasureDie";
		monster	"quiz_02.gat",342,48,	"Tesouro",1732,1,"Tesouro::OnTreasureDie";
		monster	"quiz_02.gat",342,57,	"Tesouro",1732,1,"Tesouro::OnTreasureDie";
		monster	"quiz_02.gat",354,34,	"Tesouro",1732,1,"Tesouro::OnTreasureDie";
		monster	"quiz_02.gat",354,45,	"Tesouro",1732,1,"Tesouro::OnTreasureDie";
		monster	"quiz_02.gat",354,57,	"Tesouro",1732,1,"Tesouro::OnTreasureDie";
		monster	"quiz_02.gat",61,52,	"Tesouro",1732,1,"Tesouro::OnTreasureDie";
		monster	"quiz_02.gat",61,62,	"Tesouro",1732,1,"Tesouro::OnTreasureDie";
		monster	"quiz_02.gat",61,73,	"Tesouro",1732,1,"Tesouro::OnTreasureDie";
		end;
}

-	script	Tesouro	-1,{

OnTreasureDie:
		set @premio_sortudo, rand(1,4);

		if(@premio_sortudo == 1){
		getitem $item_sortudo,1; warp "prontera.gat",155,185;
		announce StrCharInfo(0)+" abriu um Baú. Prêmio: "+getitemname($item_sortudo)+" !",bc_yellow; end;
		}
		if(@premio_sortudo == 2){
		set Zeny, Zeny + $zeny_sortudo; warp "prontera.gat",155,185;
		announce StrCharInfo(0)+" abriu um Baú. Prêmio: "+$zeny_sortudo+" Zenys !",bc_yellow; end;
		}
		if(@premio_sortudo == 3){
		atcommand "@die"; warp "prontera.gat",155,185;
		announce StrCharInfo(0)+" abriu um Baú. Não ganhou nada, e ainda morreu !",bc_yellow; end;
		}
		if(@premio_sortudo == 4){
		getitem $item_sortudo_t,1; warp "prontera.gat",155,185;
		announce StrCharInfo(0)+" abriu um Baú. Prêmio: "+getitemname($item_sortudo_t)+" !",bc_yellow; end;
		}
}

quiz_02.gat	mapflag	nomemo
quiz_02.gat	mapflag	nowarp
quiz_02.gat	mapflag	nowarpto
quiz_02.gat	mapflag	noicewall
quiz_02.gat	mapflag	nosave
quiz_02.gat	mapflag	noreturn
quiz_02.gat	mapflag	noteleport
2º Resta um este Npc ele nunca funcionou 100% vou ate retirar ele daqui da lista mais se eu encontrar um funcionando 100% eu posto aqui para vcs

3º Sala vip o melhor npc de controle vip pegue abaixo:

Código:
//**************************************************************************//
//*               Um Nome... Um Reinado... Uma Reputação...                *//
//**************************************************************************//
//*                                                                        *//
//*                                                                        *//
//*                                 \|||/                                  *//
//*            .-.________          (o o)               ________.-.        *//
//*       ----/ \_)_______) +--oooO--(_)------------+  (_______(_/ \----   *//
//*          (    ()___)    |                       |    (___()     )      *//
//*               ()__)     |      * NOSYEL *       |     (__()            *//
//*       ----\___()_)      |                       |      (_()___/-----   *//
//*                         +------------Ooo--------+                      *//
//*                                |__|__|                                 *//
//*                                 || ||                                  *//
//*                        ________ooO Ooo________                         *//
//*                                                                        *//
//**************************************************************************//
//* Invejado Por Muitos, Copiado Por Alguns, e Admirado Por Todos!!!...    *//
//**************************************************************************//
//===== Atual Versão: ========================================
//	3.1
//===== Compatível com: ======================================
//	Cronus SVN
//===== Descrição: ===========================================
//	Ativa contas VIPs, retira dias vips automaticamente,
//	e quando acaba os dias vips, a VIP é retirada.
//===== Comentários Adicionais: ==============================
//	- 1.0 Criado Sistema [ Nosyel ]
//	- 2.0 Script Otimizado e adicionado opção que mostra o 
//		total de contas VIP que há no servidor. [ Nosyel ]
//	- 2.5 Adicionado possibilidade de setar o level da conta 
//		VIP do seu servidor. [ Nosyel ]
//	- 2.6 Script Otimizado e reestruturado. [ Nosyel ]
//	- 2.6b Readicionado o waitingroom e corrigido um 
// 		pequeno erro. [ Nosyel ]
//	- 2.7 Script Otimizado. [ Nosyel ]
//	- 2.8 Adicionado novo modo de adicionar VIP (pelo nome do char). [ Nosyel ]
//	- 2.9 Adicionado nova opção de ter ou não ter o comando @reloadgmdb. [ Nosyel ]
//	- 3.0 Script Otimizado , e modificado pequenas coisas. [ Nosyel ]
//	- 3.0b Feita uma mini modificação. [ Nosyel ]
//	- 3.1 Varias modificações no sistema. [ Nosyel ]
//============================================================

-	script	Vip#LoadConfig	-1,{
OnInit:

query_sql("SELECT `minlvgm` FROM `Vip` WHERE `id`='1'",$minlvgm);
query_sql("SELECT `vipsen` FROM `Vip` WHERE `id`='1'",$vipsen$);
query_sql("SELECT `diaspvip` FROM `Vip` WHERE `id`='1'",$diaspvip);
query_sql("SELECT `vipmsg` FROM `Vip` WHERE `id`='1'",$vipmsg);
query_sql("SELECT `levelvip` FROM `Vip` WHERE `id`='1'",$levelvip);
query_sql("SELECT `mapavip` FROM `Vip` WHERE `id`='1'",$mapavip$);
query_sql("SELECT `cordx` FROM `Vip` WHERE `id`='1'",$cordx);
query_sql("SELECT `cordy` FROM `Vip` WHERE `id`='1'",$cordy);
query_sql("SELECT `supervip` FROM `Vip` WHERE `id`='1'",$supervip);
query_sql("SELECT `levelsupervip` FROM `Vip` WHERE `id`='1'",$levelsupervip);
query_sql("SELECT `salavip2` FROM `Vip` WHERE `id`='1'",$salavip2);
query_sql("SELECT `mapavip2` FROM `Vip` WHERE `id`='1'",$mapavip2$);
query_sql("SELECT `cordx2` FROM `Vip` WHERE `id`='1'",$cordx2);
query_sql("SELECT `cordy2` FROM `Vip` WHERE `id`='1'",$cordy2);
query_sql("SELECT `reload` FROM `Vip` WHERE `id`='1'",$reload);
query_sql("SELECT `ShowVIPs` FROM `Vip` WHERE `id`='1'",$ShowVIPs);
query_sql("SELECT `site` FROM `Vip` WHERE `id`='1'",$site$);
query_sql("SELECT `namenpc` FROM `Vip` WHERE `id`='1'",$namenpc$);

end;
}

-	script	Vip#config	-1,{
//===== Configuraçõe: ========================================
//
OnInit:
//
// Level Mínimo de GM para ele poder mecher no Sistema VIP in-game:
// Lembre-se: alem do Level Minimo o GM terá também que saber a
// senha. ( deffault: 80 )
set $minlvgm,"80";
//
// Level da conta VIP (deffault: 1)
set $levelvip, 1;
//
// Seu emulador possui o comando: @reloadgmdb ?
// (0 para não, 1 para sim) (deffault: 0)
set $reload, 0;
//
// Senha para mexer no Sistema VIP in-game :
set $vipsen$,"ragnax";
//
// Quantidade de contas a mostrar por página
// na opção de listar contas vips.
// Maximo: 100 por página. ( deffault: 30 )
set $ShowVIPs, 30;
//
// Coordenadas da Sala VIP :
set $mapavip$,"sec_in01";
set $cordx,169;
set $cordy,173;
//
// Site do seu servidor : 
// OBSERVAÇÂO, se não houver deixe em branco (como está).
set $site$,"http://www.ragnalpha.com";
//
//Nome do npc:
set $namenpc$, "^CD0000[Sala VIP RagnAlpha]^000000";
//
end;
//
//============================================================
}

prontera.gat,164,173,2	script	Porteiro VIP	803,{
cutin "salavip.bmp",2;
if (getgmlevel() == 0){
show $namenpc$;
show "Você não é VIP";	
if($site$ == "0"){show "Informe-se como ser VIP!";
} else {show "Entre no site ^FF0000"+$site$+"^000000 e saiba como ser VIP !";}
cutin "salavip.bmp",255;
close;
}
set .@loop,1;
while(.@loop){
cutin "salavip.bmp",2;
show $namenpc$;
show "Olá "+strcharinfo(0)+"!";
show "O que deseja?";
next;
if (getgmlevel() >= $minlvgm && $supervip == 1 && $salavip2 == 1)
set .@menu$,select("- Entrar na sala VIP/ Super VIP","- Administrar VIPs","","- Nada");
else if (getgmlevel() >= $minlvgm)
set .@menu$,select("- Entrar na sala VIP","- Administrar VIPs","","- Nada");
else if (getgmlevel() == $levelsupervip && $supervip == 1 && $salavip2 == 1)
set .@menu$,select("- Entrar na sala Super VIP","","- Dias restantes de VIP","- Nada");
else
set .@menu$,select("- Entrar na sala VIP","","- Dias restantes de VIP","- Nada");
switch(.@menu$){
		Case 1:
			next;
			if (getgmlevel() >= $minlvgm && $supervip == 1 && $salavip2 == 1){
			show $namenpc$;
			show "Qual sala gostaria de entrar?";
			set @menu,select("- Entrar na sala VIP","- Entrar na sala Super VIP","- Nada");
			if(@menu == 3){
			next;
			cutin "salavip.bmp",255;
			break;
			}
			if(@menu == 1) warp $mapavip$,$cordx,$cordy;
			else 
			warp $mapavip2$,$cordx2,$cordy2;
			end;
			} else {
			show $namenpc$;
			if (getgmlevel() == $levelsupervip && $supervip == 1 && $salavip2 == 1) show "Você gostaria de ir para sala Super Vip?";
			else
			show "Você gostaria de ir para sala vip?";
			if(select("- Sim:- Não") == 1){
			if (getgmlevel() == $levelsupervip && $supervip == 1 && $salavip2 == 1) warp $mapavip2$,$cordx2,$cordy2;
			else
			warp $mapavip$,$cordx,$cordy;
			end;
			}
			next;
			cutin "salavip.bmp",255;
			break;
			}
			
		Case 2:
			next;
			show ""+$namenpc$+" - ^FF0000Administração^000000";
			show "Digite a senha para acessar essa Area:";
			digit @admvipssenha$;
			next;
			if (@admvipssenha$ != $vipsen$){
			show ""+$namenpc$+" - ^FF0000Administração^000000"; 
			show "Senha Incorreta!";
			cutin "salavip.bmp",255;
			close;
			}
			show ""+$namenpc$+" - ^FF0000Administração^000000";
			show "Senha Correta...";
			show "Levando à Administração de Contas VIP...";
			set .@loop2,1;
			while(.@loop2) {
			next;
			show ""+$namenpc$+" - ^FF0000Administração^000000";
			show "Oque você gostaria de fazer?";
			if ($supervip == 1)
			set .@menu2$,select("- Adicionar VIP/Super Vip:- Editar conta VIP:- Listar contas VIP:- Total de Contas VIP:- Opções Extras:- Sair");
			else
			set .@menu2$,select("- Adicionar VIP:- Editar conta VIP:- Listar contas VIP:- Total de Contas VIP:- Opções Extras:- Sair");
			switch(.@menu2$){

				Case 1:
					set .@loop6,1;
					while(.@loop6) {
					next;
					show ""+$namenpc$+" - ^FF0000Administração^000000";
					show "Como deseja adicionar a VIP?";
					switch(select("- Pelo Login:- Nome de um Char:- Voltar")){
						
						Case 1:
							next;
							show ""+$namenpc$+" - ^FF0000Administração^000000";	
							show "Digite o Login da Conta que deseja Adicionar:";
							show "Observação: Não é possível adicionar conta que ja é VIP.";
							digit @login$;
							next;
							set @accid,0;
							set @acclogin$,"";
							query_sql "SELECT `account_id` FROM `login` WHERE `level`='0' AND `diasvip`='0' AND `userid`='"+@login$+"'",@accid;
							show ""+$namenpc$+" - ^FF0000Administração^000000";
							if (@accid[0] == 0){
							show "Está conta não existe ou ja é VIP!";
							cutin "salavip.bmp",255;
							break;
							}
							query_sql "SELECT `userid` FROM `login` WHERE `account_id`='"+@accid+"'",@acclogin$;
							show "===========================";
							show "^FF0000ID da conta : ^000000"+@accid+"";
							show "^FF0000Login : ^000000"+@acclogin$+"";
							show "===========================";
							set @type, $levelvip;
							set @type2$, "VIP";
							if ($supervip == 1){
							show "Qual tipo de VIP deseja adicionar a essa Conta?";
							if(select("VIP:Super VIP") == 1){
							set @type, $levelvip;
							set @type2$, "VIP";
							} else {
							set @type, $levelsupervip;
							set @type2$, "Super VIP";
							}
							next;
							show ""+$namenpc$+" - ^FF0000Administração^000000";
							}
							show "Quantos dias VIP deseja adicionar a essa conta?";
							show " ";
							show "Observação: Não existe dias VIP 0";
							if(select("Digitar um Número:Usar padrão - "+$diaspvip+" dias") == 2) set @numdias, $diaspvip;
							else
							digit @numdias;
							next;
							show ""+$namenpc$+" - ^FF0000Administração^000000";
							if (@numdias == 0){
							show "Não é possível adicionar 0 dia(s) VIP!";
							cutin "salavip.bmp",255;
							break;
							}
							show "Adicionar ^FF0000"+@numdias+"^000000 dia(s) de ^FF0000"+@type2$+"^000000 à conta de ^FF0000"+@acclogin$+"^000000.";
							show "Proseguir?";
							if(select("- Sim:- Não") == 2) break;
							query_sql "UPDATE `login` SET `level`='"+@type+"',`diasvip`='"+@numdias+"' WHERE `account_id`='"+@accid+"'";
							next;
							if($reload) atcommand "@reloadgmdb";
							show ""+$namenpc$+" - ^FF0000Administração^000000";
							show "Conta VIP adicionada!";
							if($vipmsg) callfunc("SVRO_msg",@accid,""+@type2$+"",getcharid(3));
							cutin "salavip.bmp",255;
							break;
							
						Case 2:
							next;
							show ""+$namenpc$+" - ^FF0000Administração^000000";	
							show "Digite o nome do Char que deseja Adicionar VIP:";
							show "Observação: Não é possível adicionar VIP a chars VIP.";
							digit @name$;
							next;
							set @accid2,0;
							set @acclogin2$,"";
							query_sql "SELECT `account_id` FROM `char` WHERE `name`='"+@name$+"'",@accid2;
							show ""+$namenpc$+" - ^FF0000Administração^000000";
							if (@accid2[0] == 0){
							show "Este char não existe!";
							cutin "salavip.bmp",255;
							break;
							}
							query_sql "SELECT `userid` FROM `login` WHERE `level`='0' AND `diasvip`='0' AND `account_id`='"+@accid2+"'",@acclogin2$;
							if (@acclogin2$[0] == ""){
							show "A conta referente a este char ja é VIP!";
							cutin "salavip.bmp",255;
							break;
							}
							query_sql "SELECT `name` FROM `char` WHERE `account_id`='"+@accid2+"'",@charname$;
							show "===========================";
							show "O char: ^FF0000"+@charname$+"^000000 pertence a:";
							show "^FF0000ID da conta : ^000000"+@accid2+"";
							show "^FF0000Login : ^000000"+@acclogin2$+"";
							show "===========================";
							set @type3, $levelvip;
							set @type4$, "VIP";
							if ($supervip == 1){
							show "Qual tipo de VIP deseja adicionar a essa Conta?";
							if(select("VIP:Super VIP") == 1){
							set @type3, $levelvip;
							set @type4$, "VIP";
							} else {
							set @type3, $levelsupervip;
							set @type4$, "Super VIP";
							}
							next;
							show ""+$namenpc$+" - ^FF0000Administração^000000";
							}
							show "Quantos dias VIP deseja adicionar a essa conta?";
							show "Observação: Não existe dias VIP 0";
							if(select("Digitar um Número:Usar padrão - "+$diaspvip+" dias") == 2) set @numdias2, $diaspvip;
							else
							digit @numdias2;
							next;
							show ""+$namenpc$+" - ^FF0000Administração^000000";
							if (@numdias2 == 0){
							show "Não é possível adicionar 0 dia(s) VIP!";
							cutin "salavip.bmp",255;
							break;
							}
							show "Adicionar ^FF0000"+@numdias2+"^000000 dia(s) de ^FF0000"+@type4$+"^000000 à conta de ^FF0000"+@acclogin2$+"^000000 cujo char pertencente é: ^FF0000"+@charname$+"^000000.";
							show "Proseguir?";
							if(select("- Sim:- Não") == 2) break;
							query_sql "UPDATE `login` SET `level`='"+@type3+"',`diasvip`='"+@numdias2+"' WHERE `account_id`='"+@accid2+"'";
							next;
							if($reload) atcommand "@reloadgmdb";
							show ""+$namenpc$+" - ^FF0000Administração^000000";
							show "Conta VIP adicionada!";
							if($vipmsg) callfunc("SVRO_msg",@accid2,""+@type4$+"",getcharid(3));
							cutin "salavip.bmp",255;
							break;
						
						Case 3:
							set .@loop6,0;
							cutin "salavip.bmp",255;
							break;
					
					}
					}
					break;
					
					
				Case 2:
					next;
					show ""+$namenpc$+" - ^FF0000Administração^000000";
					show "Digite o Login da Conta que você deseja editar:";
					show " ";
					show " ";
					show "Observação: Não é possível editar contas que não são VIPs.";
					digit @login$;
					set @accid,0;
					set @diasr,0;
					set @acclogin$,"";
					set @EColor$, "^000000";
					query_sql "SELECT `account_id` FROM `login` WHERE `level`='"+$levelvip+"' OR `level`='"+$levelsupervip+"' AND `userid`='"+@login$+"'",@accid;
					if (@accid[0] == 0) {
					next;
					show ""+$namenpc$+" - ^FF0000Administração^000000";
					show "Está conta não é VIP ou não existe!";
					cutin "salavip.bmp",255;
					break;
					}
					set .@loop3,1;
					while(.@loop3) {
					next;
					query_sql "SELECT `userid`, `diasvip`, `level` FROM `login` WHERE `account_id`='"+@accid+"'", @acclogin$, @diasr, @tipo;
					show ""+$namenpc$+" - ^FF0000Administração^000000";
					show "A conta selecionada foi:";
					if (@diasr[0] <= 1) Set @Color$, "^FF0000";
					if (@diasr[0] >= 2 && @diasr[0] < 7) Set @Color$, "^FFA200";
					if (@diasr[0] >= 7 && @diasr[0] < 15) Set @Color$, "^C4CB00";
					if (@diasr[0] >= 15) Set @Color$, "^008000";
					show "ID da conta: "+ @Color$ + @accid + @EColor$;
					show "Login da conta: "+ @Color$ + @acclogin$ + @EColor$;
					show "Dias VIPs restantes: "+ @Color$ + @diasr + @EColor$;
					if (@tipo[0] == $levelvip) show "Tipo: "+ @Color$ +"VIP"+ @EColor$;
					else
					show "Tipo: "+ @Color$ +"Super VIP"+ @EColor$;
					show "O que deseja fazer?";
					if ($supervip == 1 && @tipo == $levelvip)
					set .@menu3$,select("- Editar dias VIP","- Cancelar conta VIP","- Mudar tipo para - Super VIP","- Voltar");
					else if ($supervip == 1 && @tipo == $levelsupervip)
					set .@menu3$,select("- Editar dias Super VIP","- Cancelar conta Super VIP","- Mudar tipo para - VIP","- Voltar");
					else
					set .@menu3$,select("- Editar dias VIP","- Cancelar conta VIP","","- Voltar");
					switch(.@menu3$){

						Case 1:
							next;
							show ""+$namenpc$+" - ^FF0000Administração^000000";
							show "Modificar Dias VIPs restantes da";
							show "Conta: ^FF0000"+@acclogin$+"^000000 de ^FF0000"+@diasr+"^000000 dia(s) VIP";
							show "Para?";
							show "Observação: Não da para modificar para 0 dias VIP!";
							digit @numdiase;
							next;
							if (@numdiase == 0){
							show ""+$namenpc$+" - ^FF0000Administração^000000";
							show "Não é possível modificar para 0 dia(s) VIP!";
							cutin "salavip.bmp",255;
							break;
							}
							show ""+$namenpc$+" - ^FF0000Administração^000000";
							show "Modificar de ^FF0000"+@diasr+"^000000 dia(s) VIP para ^FF0000"+@numdiase+"^000000 dia(s) VIP ?";
							if(select("- Sim:- Não") == 2) break;
							query_sql "UPDATE `login` SET `diasvip`='"+@numdiase+"' WHERE `account_id`='"+@accid+"'";
							next;
							if($reload) atcommand "@reloadgmdb";
							show ""+$namenpc$+" - ^FF0000Administração^000000";
							show "Dias Restantes VIP modificado!";
							cutin "salavip.bmp",255;
							break;

						Case 2:
							next;
							show ""+$namenpc$+" - ^FF0000Administração^000000";
							show "Deseja cancelar a VIP da";
							show "Conta: ^FF0000"+@acclogin$+"^000000 ?";
							if(select("- Sim:- Não") == 2) break;
							query_sql "UPDATE `login` SET `level`='0',`diasvip`='0',`msgvip`='0' WHERE `account_id`='"+@accid+"'";
							next;
							if($reload) atcommand "@reloadgmdb";
							show ""+$namenpc$+" - ^FF0000Administração^000000";
							show "Vip Cancelada!";
							set .@loop3,0;
							cutin "salavip.bmp",255;
							break;
							
						Case 3:
							next;
							show ""+$namenpc$+" - ^FF0000Administração^000000";
							show "Deseja mudar o tipo de VIP da";
							show "Conta: ^FF0000"+@acclogin$+"^000000 de";
							if(@tipo == $levelsupervip)show "Super VIP para VIP?";
							else
							show "VIP para Super VIP?";
							if(select("- Sim:- Não") == 2) break;
							if(@tipo == $levelsupervip)
							query_sql "UPDATE `login` SET `level`='"+$levelvip+"' WHERE `account_id`='"+@accid+"'";
							else
							query_sql "UPDATE `login` SET `level`='"+$levelsupervip+"' WHERE `account_id`='"+@accid+"'";
							next;
							if($reload) atcommand "@reloadgmdb";
							show ""+$namenpc$+" - ^FF0000Administração^000000";
							show "Tipo Modificado!";
							cutin "salavip.bmp",255;
							break;
								
						Case 4:
							set .@loop3,0;
							break;
						}
					}
					break;

				Case 3:
					next;
					set @lvar, $levelvip;
					set @lvar$, "VIP";
					if ($supervip == 1){
					show ""+$namenpc$+" - ^FF0000Administração^000000";
					show "Deseja verificar a lista de qual tipo de VIP?";
					if(select("VIP:Super VIP") == 1){
					set @lvar, $levelvip;
					set @lvar$, "VIP";
					} else {
					set @lvar, $levelsupervip;
					set @lvar$, "Super VIP";
					}
					}
					set .@Page, 0;
					set .@Found, 0;
					set .@loop5,1;
					while(.@loop5){
					deleteArray .@UserID$[0], 128;
					deleteArray .@AccID[0], 128;
					deleteArray .@VipDia[0], 128;
					if ($ShowVIPs > 100) Set $ShowVIPs, 100;
					set @EColor$, "^000000";
					set .@Page, .@Page + 1;
					next;
					show ""+$namenpc$+" - ^FF0000Administração^000000";
					show "Lista de Contas "+@lvar$+":";
					query_Sql "SELECT `userid`, `account_id`, `diasvip` FROM `login` WHERE `level`='"+@lvar+"' LIMIT " + (.@Page - 1) * $ShowVIPs + ", " + ($ShowVIPs + 1), .@UserID$, .@AccID, .@VipDia;
					for (Set .@i, 0; .@i < $ShowVIPs; Set .@i, .@i + 1) {
						if (.@VipDia[.@i] <= 1) Set @Color$, "^FF0000";
						if (.@VipDia[.@i] >= 2 && .@VipDia[.@i] < 7) Set @Color$, "^FFA200";
						if (.@VipDia[.@i] >= 7 && .@VipDia[.@i] < 15) Set @Color$, "^C4CB00";
						if (.@VipDia[.@i] >= 15) Set @Color$, "^008000";
						if (.@AccID[.@i]) {
						show "ID da conta: "+ @Color$ + .@AccID[.@i] + @EColor$;
						show "Login da conta: "+ @Color$ + .@UserID$[.@i] + @EColor$;
						show "Dias VIPs restantes: "+ @Color$ + .@VipDia[.@i] + @EColor$;
						show "===========================";
						set .@Found, 1;
						}
					}
					setArray .@Mnu$[0], "", "";
					if (.@Page > 1) Set .@Mnu$[0], "- Página anterior";
					if (.@AccID[$ShowVIPs]) Set .@Mnu$[1], "- Próxima página";
					if (!.@Found) Show "Não existe nenhum(a) "+@lvar$+" ainda.";
					switch(select(""+.@Mnu$[0]+"",""+.@Mnu$[1]+"","- Voltar")){
						
						Case 1:
							set .@Page, .@Page - 2;
							break;
						
						Case 2:
							break;

						Case 3:
						set .@loop5,0;
						break;
						}
					}
					break;

				Case 4:
					next;
					query_sql "SELECT COUNT(1) FROM `login` WHERE `level`='"+$levelvip+"'",@totalvip;
					if ($supervip == 1) query_sql "SELECT COUNT(1) FROM `login` WHERE `level`='"+$levelsupervip+"'",@totalsupervip;
					show ""+$namenpc$+" - ^FF0000Administração^000000";
					if ($supervip == 1) show "Seu servidor tem um total de ^008000"+@totalvip+"^000000 conta(s) VIP e ^008000"+@totalsupervip+"^000000 conta(s) Super VIP.";
					else
					show "Seu servidor tem um total de ^008000"+@totalvip+"^000000 conta(s) VIP.";
					select("- Voltar");
					break;
					
				Case 5:
					set .@loop4,1;
					while(.@loop4) {
					next;
					show ""+$namenpc$+" - ^FF0000Administração^000000";
					show "O que deseja fazer?";
					switch(select("- Processar Contas VIP:- Cancelar TODAS contas VIPs:- Voltar")){
			
						Case 1:
							next;
							show ""+$namenpc$+" - ^FF0000Administração^000000";
							show "Processando as Contas VIP você ";
							show "retirará 1 dia de todas contas VIP ";
							show "e se alguma conta chegar a 0 dias VIP ";
							show "ela será cancelada.";
							show "Deseja fazer isto?";
							if ($supervip == 1) show "Obs: Isso inclui VIPs e Super VIPs";
							if(select("Sim:Não") == 2) break;
							if ($supervip == 1){
							query_sql "UPDATE `login` SET `diasvip`=`diasvip`-1 WHERE `level`='"+$levelvip+"' OR `level`='"+$levelsupervip+"'";
							query_sql "UPDATE `login` SET `level`='0' WHERE `diasvip`<='0' AND `level`='"+$levelvip+"' OR `level`='"+$levelsupervip+"'";
							} else {
							query_sql "UPDATE `login` SET `diasvip`=`diasvip`-1 WHERE `level`='"+$levelvip+"'";
							query_sql "UPDATE `login` SET `level`='0' WHERE `diasvip`<='0' AND `level`='"+$levelvip+"'";
							}
							next;
							if($reload) atcommand "@reloadgmdb";
							show ""+$namenpc$+" - ^FF0000Administração^000000";
							show "Contas Processadas com sucesso!";
							cutin "salavip.bmp",255;
							break;

						Case 2:
							next;
							show ""+$namenpc$+" - ^FF0000Administração^000000";
							show "Fazendo isto você irá cancelar";
							show "TODAS contas VIP do servidor.";
							show "Deseja fazer isto?";
							if ($supervip == 1) show "Obs: Isso inclui VIPs e Super VIPs";
							if(select("Sim:Não") == 2) break;
							if ($supervip == 1)
							query_sql "UPDATE `login` SET `level`='0',`diasvip`='0',`msgvip`='0' WHERE `level`='"+$levelvip+"' OR `level`='"+$levelsupervip+"'";
							else 
							query_sql "UPDATE `login` SET `level`='0',`diasvip`='0',`msgvip`='0' WHERE `level`='"+$levelvip+"'";
							next;
							if($reload) atcommand "@reloadgmdb";
							show ""+$namenpc$+" - ^FF0000Administração^000000";
							show "Todas as contas VIP foram Canceladas!";
							cutin "salavip.bmp",255;
							break;
			
						Case 3:
							set .@loop4,0;
							break;
						}
					}
					break;

				Case 6:
					set .@loop2,0;
					break;
				}
			}
			close;

		Case 3:
			next;
			query_sql "SELECT `diasvip` FROM `login` WHERE `account_id` = '"+ getcharid(3) +"'", @dias;
			show $namenpc$;
			if (getgmlevel() == $levelsupervip && $supervip == 1) show "Você ainda tem "+@dias+" dia(s) de Super VIP.";
			else
			show "Você ainda tem "+@dias+" dia(s) de VIP.";
			select("- Voltar");
			next;
			break;
		
		Case 4:
			next;
			show $namenpc$;
			show "Ok! Volte quando quiser!";
			set .@loop,0;
			break;
	}
}
close;

OnInit:
waitingroom "VIP RagnAlpha",0;	
end;
}

function	script	Vip_msg	{
if(isloggedin(getarg(0))){
attachrid(getarg(0));
if($reload) announce "Sua "+getarg(1)+" foi confirmada com sucesso!, Obrigado.",bc_yellow|bc_self;
else
announce "Sua "+getarg(1)+" foi confirmada com sucesso! Relogue para terminarmos a operação.",bc_yellow|bc_self;
detachrid;
attachrid(getarg(2));
if(!$reload) query_sql "UPDATE `login` SET `msgvip`='1' WHERE `account_id` = '"+getarg(0)+"'";
} else {
query_sql "UPDATE `login` SET `msgvip`='1' WHERE `account_id` = '"+getarg(0)+"'";
}
return;
}


-	script	Vip#T-1	-1,{
	end;

OnClock0001:
	if ($supervip == 1) query_sql "UPDATE `login` SET `diasvip`=`diasvip`-1 WHERE `level`='"+$levelvip+"' OR `level`='"+$levelsupervip+"'";
	else
	query_sql "UPDATE `login` SET `diasvip`=`diasvip`-1 WHERE `level`='"+$levelvip+"'";
	end;

OnClock0002:
	if ($supervip == 1) query_sql "UPDATE `login` SET `level`='0' WHERE `diasvip`<='0' AND `level`='"+$levelvip+"' OR `level`='"+$levelsupervip+"'";
	else
	query_sql "UPDATE `login` SET `level`='0' WHERE `diasvip`<='0' AND `level`='"+$levelvip+"'";
	if($reload) atcommand "@reloadgmdb";
	end;
}

sec_in01	mapflag	nosave
sec_in01	mapflag	nowarp
sec_in01	mapflag	nowarpto
sec_in01	mapflag	nomemo
Tabela Vip:

Código:
-- Sistema VIP para Ragnarok Online (Vip)
-- Por  Nosyel®

-- Colunas no Login:
ALTER TABLE `login` ADD `diasvip` SMALLINT NOT NULL DEFAULT 0;
ALTER TABLE `login` ADD `msgvip` SMALLINT NOT NULL DEFAULT 0;

-- Tabela Vip

CREATE TABLE `Vip` (
`id` SMALLINT NOT NULL AUTO_INCREMENT ,
`minlvgm` SMALLINT NOT NULL ,
`vipsen` VARCHAR( 32 ) NOT NULL ,
`diaspvip` SMALLINT NOT NULL ,
`vipmsg` SMALLINT NOT NULL ,
`levelvip` SMALLINT NOT NULL ,
`mapavip` VARCHAR( 32 ) NOT NULL ,
`cordx` SMALLINT NOT NULL ,
`cordy` SMALLINT NOT NULL ,
`supervip` SMALLINT NOT NULL ,
`levelsupervip` SMALLINT NOT NULL ,
`salavip2` SMALLINT NOT NULL ,
`mapavip2` VARCHAR( 32 ) NOT NULL ,
`cordx2` SMALLINT NOT NULL ,
`cordy2` SMALLINT NOT NULL ,
`reload` SMALLINT NOT NULL ,
`showvips` SMALLINT NOT NULL ,
`site` VARCHAR( 32 ) NOT NULL ,
`namenpc` VARCHAR( 32 ) NOT NULL ,
PRIMARY KEY  (`id`)
) ENGINE = MYISAM;

-- Configurações Default

REPLACE INTO `Vip` VALUES (1,99,'SUA SENHA AQUI',31,1,1,'sec_in01',169,177,0,10,0,'sec_in01',85,168,0,30,0,'^CD0000[Porteiro VIP]^000000');

-- Não remover Créditos!!


Espero ter ajudado, abraços

OBS: Sistema Vip somente para servidores SQL

Última edição por Nosyel; 03-08-2009 às 06:54 PM.