Fala galera, gostaria de saber se alguém consegue me ajudar. Estou utilizando o evento Poring Bomb do próprio emulador (Lastman). Traduzi ele, mas por algum motivo, quando tento abrir o WhispGlobal, nada acontece. Segue o script:
//Bomb Poring Event. by Jeroen
//================================
//Version: 2.1
//================================
//= Version: 1.6 Added Array for player + Rewards.
//= Version: 1.7 Optimised the script so its less resource intensive.(Received tips from Eurphy on rAthena, Thanks!)
//= Version: 1.8 Removed the use of 06guild_05, also started adding some new code for the next update.
//= Version: 1.9 Cleaned up the code a little bit.
//= Version: 2.0 Added a few more stuff to the config at the bottom, also did a bit more code cleaning.
//= Also added a GM Menu and other stuff(will have to expand the GM menu at some point).
//= Version: 2.1 Added a configurable map and added it to the GM menu.
//================================
//Notes:
//=If used on the eAthena Emulator, its required to change the Bomb porings AI to explode right away. 0x308D is the one I personally recommend.
//=GM's can activate it by sending a PM to NPC:bombgame with the word Start. To enter the GM menu, send the pm 'Menu'
//Future Plans:
//=Combining the two arrays, into one to clean up a little bit of space
//================================
- script bombgame -1,{
OnStart:
enablenpc "Poring Bomb";
setmapflag .bomb_map$,12;
setmapflag .bomb_map$,34;
setmapflag .bomb_map$,mf_noskill;
set .bombevent, 1;
announce "[Poring Bomb]Está na hora do evento Poring Bomb!",0;
sleep 3000;
announce "[Poring Bomb] Um portal foi aberto na Sala de Eventos!",0;
sleep 3000;
announce "[Poring Bomb] O portal ficará aberto por 2 minutos.",0;
sleep 120000;
if(getmapusers(.bomb_map$) < .min_player) {
announce "[Poring Bomb]Parece que não tem players o suficiente para o evento. Que chato!",0;
disablenpc "Poring Bomb";
set .bombevent, 0;
mapwarp .bomb_map$,"prontera",150,149;
set .bombstarted, 0;
end;
}
announce "[Poring Bomb] O portal para o Poring Bomb foi fechado!",0;
disablenpc "Poring Bomb";
mapannounce .bomb_map$,"[Poring Bomb] O evento começará em 1 minuto!",bc_map,"0x00ffff";
sleep 60000;
for(set .@i, 0; .@i < getarraysize(.bomb_iamount); set .@i,.@i+1) {
if(.bomb_players[.@i+1] != 0) {
if(getmapusers(.bomb_map$) >= .bomb_players[.@i] && getmapusers(.bomb_map$) < .bomb_players[.@i+1]) {
set .bomb_iamount2, .bomb_iamount[.@i];
break;
}
} else {
set .bomb_iamount2, .bomb_iamount[.@i];
break;
}
}
set .bombevent, 0;
for(set .@i, 0; .@i < getarraysize(.mapf); set .@i,.@i+1) setmapflag .bomb_map$,.mapf[.@i];
mapannounce .bomb_map$,"[Poring Bomb] O round começa em 10 segundos!",bc_map,"0x00ffff";
sleep 10000;
while(1) {
sleep .timer_bombs;
killmonsterall .bomb_map$;
if(getmapusers(.bomb_map$) == 1) {
set .bombstarted, 0;
mapwarp .bomb_map$,.bomb_map$,0,0;
end;
} else if (!getmapusers(.bomb_map$)) {
announce "[Poring Bomb] Parece que todos morreram no último ataque!",0;
set .bombstarted, 0;
for(set .@i, 0; .@i < getarraysize(.mapf); set .@i,.@i+1) removemapflag .bomb_map$,.mapf[.@i];
removemapflag .bomb_map$,12;
removemapflag .bomb_map$,34;
removemapflag .bomb_map$,mf_noskill;
end;
} else {
set .@raidnum,.@raidnum+1;
mapannounce .bomb_map$,"[Poring Bomb] Ataque "+.@raidnum,bc_map,"0x00ffff";
sleep 1000;
monster .bomb_map$,0,0,"--ja--",1904,.mobcount;
set .mobcount,.mobcount+.increase;
}
}
OnWhisperGlobal:
if(@whispervar0$ == "Start" || @whispervar0$ == "start" ) {
if(.bombstarted) {
mes "O evento ainda está acontecendo!";
close;
}
if(getgroupid() < .min_GMlvl) end;
mes "Gostaria de iniciar o evento?";
if (select("Sim:Não") == 2) close;
else {
mes "Começar com quantas bombas?";
mes "^00FF00Min:^000000"+.min_bombs+".";
mes "^00FF00Max:^000000"+.max_bombs+".";
while(1) {
input .mobcount;
if(.mobcount > .max_bombs) mes "Por favor, selecione uma quantidade menor.";
else if(.mobcount < .min_bombs) mes "Por favor, selecione uma quantidade maior.";
else break;
}
next;
mes "Quantas bombas a mais por round?";
mes "^00FF00Max:^000000"+(.max_bombs/5)+".";
while(1) {
input .increase;
if (!.increase) mes "Por favor, selecione uma quantidade maior";
else if (.increase > (.max_bombs/5)) mes "Por favor, selecione uma quantidade menor."; //increase should never be greater than the max bomb increase, Divided by 5 to set a certain limit.
else break;
}
next;
mes "Certo, aqui vamos nós!.";
donpcevent strnpcinfo(0)+"::OnStart";
set .bombstarted, 1;
close;
}
}
else if( @whispervar0$ == "Menu" || @whispervar0$ == "menu") {
if(getgroupid() < .min_GMmenu) end;
if(select("^FF0000GM Menu^000000:Cancelar") == 2) close;
while(1) {
switch(select(
"^777777~Mínimo de bombas requeridas^FF0000["+.min_bombs+"]^000000:"+
"^777777~Máximo de bombas requeridas^FF0000["+.max_bombs+"]^000000:"+
"^777777~Recompensa^FF0000["+((!.bomb_item)?" Tickets de Evento":getitemname(.bomb_item))+"]^000000:"+
"^777777~Mínimo de players^FF0000["+.min_player+"]^000000:"+
"^777777~Mapa^FF0000["+.bomb_map$+"]^000000:"+
"^777777~Fechar^000000")) {
case 1:
mes "Informe a nova quantidade mínima de bombas.";
mes "Quantidade mínima atual: ^0000FF "+.min_bombs+"^000000.";
input .min_bombs;
next;
break;
case 2:
mes "Informe a nova quantidade máxima de bombas.";
mes "Quantidade máxima atual: ^0000FF "+.max_bombs+"^000000.";
input .max_bombs;
if (.max_bombs < 20 || .max_bombs > 1000) { set .max_bombs, 200; mes "Quantidade de bombas inválida. Configurando para 200."; } //it is NOT recomemnded to go over 1000!
next;
break;
case 3:
mes "Selecione o novo prêmio.";
mes "Prêmio atual: ^0000FF "+((!.bomb_item)?"Tickets de Evento":getitemname(.bomb_item))+"^000000.";
input .bomb_item;
if (.bomb_item == 0){ next; break;} //allowing to set .bomb_item to 0 to use event rewards
if (getitemname(.bomb_item) == "null" ) { set .bomb_item, 501; mes "Item inválido. Configurando para Poção Vermelha."; }
next;
break;
case 4:
mes "Informe a nova quantidade mínima de players para iniciar o evento.";
mes "Quantidade mínima de players atual: ^0000FF "+.min_player+"^000000.";
input .min_player;
if (.min_player < 2) { set .min_player, 2; mes "Quantidade inválida. Configurando mínimo de players para 2."; }
next;
break;
case 5:
mes "Informe o novo mapa para o evento.";
mes "Mapa atual:^0000FF "+.bomb_map$+"^000000.";
input .bomb_map$;
if(getmapusers(.bomb_map$) == -1) { set .bomb_map$, "06guild_04"; mes "Mapa inválido. Configurando para 06guild_04"; }
next;
break;
default: close; break;
}
}
}
else end;
OnPCDieEvent:
if (strcharinfo(3) != .bomb_map$) end;
mapannounce .bomb_map$, strcharinfo(0)+" está fora! Participantes restantes: "+(getmapusers(.bomb_map$) - 2),bc_map,"0x00ffff";
warp "SavePoint",0,0;
end;
OnPCLoadMapEvent:
if (strcharinfo(3) != .bomb_map$) end;
if (.bombstarted) {
dispbottom "O evento está sendo realizado no momento.";
warp "SavePoint",0,0;
} else {
for(set .@i, 0; .@i < getarraysize(.mapf); set .@i,.@i+1) removemapflag .bomb_map$,.mapf[.@i];
removemapflag .bomb_map$,12;
removemapflag .bomb_map$,34;
removemapflag .bomb_map$,mf_noskill;
announce strcharinfo(0)+" ganhou o Evento Poring Bomb!",0;
if (.bomb_item) getitem .bomb_item, .bomb_iamount2;
else { set #Event_Points,#Event_Points+.bomb_iamount2; dispbottom "You now have "+#Event_Points+" Event Points"; }
dispbottom "Parabéns! Você ganhou o Evento Poring Bomb!";
dispbottom "Você será teletransportado para fora em 5 segundos.";
specialeffect 568;
sleep2 5000;
dispbottom "Obrigado por participar!";
warp "SavePoint",0,0;
end;
}
end;
//------------------Config----------------------------
OnInit:
disablenpc "Poring Bomb";
//sets max bomb Porings on a map set by a GM.
set .max_bombs, 120;
set .increase, 10;
//sets min bombs
set .min_bombs, 10;
set .mobcount, 10;
//timer until the new raid spawns (Atleast 10 seconds is recommended!)
set .timer_bombs, (1000*15); //15 seconds, 1000 * 150 = 15000
//Item reward, set to 0 to use event points (Var used for event points = #Event_Points)
set .bomb_item, 7180; //Event Points
//How many points Array lenght needs to be the same as the Array lenght below.
setarray .bomb_iamount[0],800;
//Array of how many players are in the room, for the reward amount (event points or Item amount)
setarray .bomb_players[0],1;
//Event Map
set .bomb_map$, "guild_vs5";
//Minimum required player amount.
set .min_player, 2;
//Required GM level to start event.
set .min_GMlvl, 90;
//Required GM level to enter GM menu
set .min_GMmenu, 90;
//Mapflags
setarray .mapf[0],0,1,2,3,4,11,13,22,33,42; //in order "No memo, No teleport, no save, no branch, No Penalty,No trade, No Warp, No go, No return, no warp to, load event"
end;
}
//Prontera NPC:
ama_test,38,102,5 script Poring Bomb BOMBPORING,{
if (checkmount()) {
mes "Você não pode entrar no evento de Peco Peco.";
close;
}
if (getvariableofnpc(.bombevent, "bombgame")) {
mes "[Poring Bomb]";
mes "Ola, gostaria de entrar no evento?";
next;
if (select("Sim, por favor:Não agora, obrigado") == 1) { sc_end SC_ALL; warp (getvariableofnpc(.bomb_map$, "bombgame")),0,0; }
else mes "Que pena, vejo você em breve!";
close;
} else {
mes "[Poring Bomb]";
mes "O evento não está aberto!";
close;
}
}
Agradeço desde já!