/*
.___ ___. __ __ ___
| \/ | | | | |/ /
| \ / | | | | ' /
| |\/| | | | | <
| | | | | | | . \
|__| |__| |__| |__|\__\
= Tarot Event v2016
= by Mik閕as
= brAthena
= User: http://forum.brathena.org/index.php/user/11630-mikeias/
*/
prontera,128,329,4 script Evento do Destino 4_M_BARD,{
mes "[Evento do Destino]";
mes "Ol?"+strcharinfo(0);
mes "Est?afim de testar sua sorte nas cartas? Fique atento quando anunciar o in韈io do evento.";
next;
switch(select("Participar do evento", ( getgroupid() >= $@lvminGM ? ( !$tarot_status ? "Ligar":"Desligar")+" Evento":"") , "Premia玢o", "N鉶 quero participar")){
case 1:
// = Se evento n鉶 ativo
if (!$tarot_status){
mes "[Evento do Destino]";
mes "Senhor"+(Sex? "":"a")+", no momento o evento n鉶 est?at韛o! N髎 avisaremos quando o evento come鏰r.";
close;
}
// = Verifica se o nome do personagem j?est?no array
for (set .@i,0; .@i < getarraysize($@tarot_participantes$); set .@i,.@i + 1) {
if ( $@tarot_participantes$[.@i] == strcharinfo(0) ) {
mes "[Evento do Destino]";
mes "Tenha calma "+strcharinfo(0)+"! N髎 ainda n鉶 estamos prontos para voc? aguarde um momento.";
next;
warp "force_1-1",100,100;
close;
}
}
mes "[Evento do Destino]";
mes "Tudo certo, anotei a sua participa玢o aqui! Em breve voc?ser?chamado para que o evento seja iniciado.";
// = Adiciona o nome do personagem ao array
set $@tarot_participantes$[getarraysize($@tarot_participantes$)], strcharinfo(0);
//message strcharinfo(0), strnpcinfo(1)+" Meus parab閚s! Voc?se registrou com 陎ito para participar do evento.";
announce strnpcinfo(1)+" <"+strcharinfo(0)+"> registrou-se para participar do evento!",bc_all;
next;
warp "force_1-1",100,100;
close;
case 2:
if( agitcheck() || agitcheck2() ){
mes "[Evento do Destino]";
mes "Neste momento a Guerra do Emperium est?at韛a e n鉶 ?poss韛el dar in韈io ao evento!";
close;
}
mes "[Evento do Destino]";
mes "Ol? Game-Master! Voc?tem certeza que deseja "+( !$tarot_status ? "Ligar":"Desligar")+" o evento?";
if(select("N鉶:Tenho certeza") == 1) close;
if ( !$tarot_status ){
donpcevent "Tarot Event::OnStart";
}else
donpcevent "Tarot Event::OnStop";
close;
end;
case 3:
mes "[Evento do Destino]";
mes "O participante que n鉶 for atingido pela carta 'Coma' receber?pontos de evento e recompensas aleat髍ias.";
close;
case 4:
close;
}
OnInit:
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//set "[Evento do Destino]", "^800000"+strnpcinfo(1)+"^000000";
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
setarray $@mapeventtarot$, "poring_w01", 102, 71; // = Configura玢o do mapa do evento
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
set $@mintarot_participantes,2; // = N鷐ero m韓imo de participantes para iniciar o evento
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
set $@lvminGM, 60; // = Level m韓imo de GM para ligar/desligar o evento
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// = ATEN敲O: CADA ITEM TEM SUA QUANTIDADE
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
callfunc ("resetEventoTarot", $@tarot_participantes$, $@mapeventtarot$[0]);
setarray .mapflag,0,1,7,8,13,22,33,34,12;
for (set .@m,0; .@m < getarraysize(.mapflag); set .@m, .@m + 1){
setmapflag $@mapeventtarot$[0], .mapflag[.@m];
}
end;
}
- script Tarot Event -1,{
// = In韈io autom醫ico
OnClock0500:
OnClock1700:
// = In韈io manual
OnStart:
set $tarot_status,1;
announce "[NPC] Evento do Destino: As inscri珲es para o evento est鉶 abertas! Voc阺 tem 5 minutos para participar. Digite @evt para participar.",bc_all;
sleep 60000;
announce "[NPC] Evento do Destino: As inscri珲es para o evento est鉶 abertas! Voc阺 tem 4 minutos para participar. Digite @evt para participar.",bc_all;
sleep 60000;
announce "[NPC] Evento do Destino: As inscri珲es para o evento est鉶 abertas! Voc阺 tem 3 minutos para participar. Digite @evt para participar.",bc_all;
sleep 60000;
announce "[NPC] Evento do Destino: As inscri珲es para o evento est鉶 abertas! Voc阺 tem 2 minutos para participar. Digite @evt para participar.",bc_all;
sleep 60000;
announce "[NPC] Evento do Destino: As inscri珲es para o evento est鉶 abertas! Voc阺 tem 1 minuto para participar. Digite @evt para participar.",bc_all;
sleep 60000;
if ( getarraysize($@tarot_participantes$) < $@mintarot_participantes ){
announce "As inscri珲es para o Evento do Destino n鉶 foram suficientes para iniciar.",bc_all;
callfunc ("resetEventoTarot", $@tarot_participantes$, $@mapeventtarot$[0]);
end;
}
announce "[NPC] Evento do Destino: As inscri珲es para o evento foram encerradas. Boa sorte a todos os participantes!",bc_all;
set $tarot_status,0;
for(set .@p, 0; .@p < getarraysize($@tarot_participantes$); set .@p, .@p + 1){
if ( isloggedin(getcharid(3, $@tarot_participantes$[.@p])) ){
warpchar $@mapeventtarot$[0], atoi($@mapeventtarot$[1]), atoi($@mapeventtarot$[2]), getcharid(0, $@tarot_participantes$[.@p]);
}else{
deletearray $@tarot_participantes$[.@p], 1;
}
}
sleep 8000;
donpcevent "[GM]Tyr::OnSpeak";
end;
OnReturn:
while( getarraysize($@tarot_participantes$) > 1){ // = Enquanto o total de participantes for maior que 1
//
sleep 1000;
for(set .@p,0;.@p<getarraysize($@tarot_participantes$);set .@p,.@p+1){
sleep 1000;
if(getmapusers("poring_w01") == 1){goto Vencer;}
attachrid(getcharid(3,$@tarot_participantes$[.@p]));
if( strcharinfo(3) == $@mapeventtarot$[0] ){
set .@CARDs,522+rand(1,14);
specialeffect2 .@CARDs, strcharinfo(0);
if( .@CARDs == 531 ){
deletearray $@tarot_participantes$[.@p], 1;
percentheal -99,-99;
sleep2 1500;
warp "SavePoint",0,0;
}
}
detachrid;
}
}
sleep 2000;
Vencer:
if ( getarraysize($@tarot_participantes$)){
attachrid(getcharid(3, $@tarot_participantes$[0])); // = Atacha o account_id apartir do nome
if ( strcharinfo(3) == $@mapeventtarot$[0] ){
announce "[NPC] Evento do Destino: O vencedor do evento ?o jogador '"+$@tarot_participantes$[0]+"' parab閚s!",bc_all;
getitem 7227,1;
set #evento,#evento+10;
}
detachrid;
}
callfunc ("resetEventoTarot", $@tarot_participantes$, $@mapeventtarot$[0]);
end;
// = Encerra o Evento
OnStop:
//announce "["+strnpcinfo(1)+"] Evento encerrado!",bc_all;
callfunc ("resetEventoTarot", $@tarot_participantes$, $@mapeventtarot$[0]);
end;
}
- script tarot_events -1,{
// = Se o participante que deslogou ou morreu estiver no mapa do evento, seu nome ser?retirado do array de tarot_participantes
OnPCLogoutEvent:
if ( strcharinfo(3) == $@mapeventtarot$[0] ){
for (set .@i,0; .@i < getarraysize($@tarot_participantes$); set .@i,.@i + 1) {
if ( $@tarot_participantes$[.@i] == strcharinfo(0) ){
deletearray $@tarot_participantes$[.@i], 1;
break;
}
}
}
end;
}
poring_w01,102,73,1 script [GM]Tyr 871,{
mes "[Organizadora de Eventos]";
mes "Jogadores na disputa...";
for (set .@i,0; .@i < getarraysize($@tarot_participantes$); set .@i,.@i + 1) {
mes (.@i+1)+" - "+$@tarot_participantes$[.@i];
}
close;
end;
OnSpeak:
setarray .msgs$,
"Usarei a habilidade 'Destino nas Cartas' em cada um de voc阺.",
"As rodadas ser鉶 de acordo com a ordem de inscri玢o no evento.",
"O vencedor ser?o 鷏timo a sobreviver!",
"Boa sorte a todos os participantes!",
"TAROOOW!";
for ( set .@i,0; .@i < getarraysize(.msgs$); set .@i, .@i+1 ){
npctalk .msgs$[.@i];
sleep 3000;
}
donpcevent "Tarot Event::OnReturn";
end;
OnInit:
setarray .x[0],94,105,99,110;
setarray .y[0],68;
npcspeed 195;
initnpctimer;
end;
OnTimer1000:
emotion rand(34,45);
for(set .c,0;.c<getarraysize(.x); set .c,.c+1){
npcwalkto .x[.c],.y[0];
sleep 3500;
}
initnpctimer;
end;
}
// = Reseta par鈓etros
function script resetEventoTarot {
// @param0 = array dos tarot_participantes
// @param1 = map event
deletearray getarg(0);
set $tarot_status,0;
mapwarp getarg(1), "prontera",156,183;
return;
}
not all sleep2 could be changed into sleep, you need to identity which part of the script execution doesnt attach to players and which part does.