Re: [Download] Lista de NPC's ( Atualizado 18/07/2009 )
|
|
Citação:
Postado Originalmente por eddyzapa
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.
|