danilopietro

Members
  • Content count

    1
  • Joined

  • Last visited

  1. 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 [email protected], 0; [email protected] < getarraysize(.bomb_iamount); set [email protected],[email protected]+1) { if(.bomb_players[[email protected]+1] != 0) { if(getmapusers(.bomb_map$) >= .bomb_players[[email protected]] && getmapusers(.bomb_map$) < .bomb_players[[email protected]+1]) { set .bomb_iamount2, .bomb_iamount[[email protected]]; break; } } else { set .bomb_iamount2, .bomb_iamount[[email protected]]; break; } } set .bombevent, 0; for(set [email protected], 0; [email protected] < getarraysize(.mapf); set [email protected],[email protected]+1) setmapflag .bomb_map$,.mapf[[email protected]]; 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 [email protected], 0; [email protected] < getarraysize(.mapf); set [email protected],[email protected]+1) removemapflag .bomb_map$,.mapf[[email protected]]; removemapflag .bomb_map$,12; removemapflag .bomb_map$,34; removemapflag .bomb_map$,mf_noskill; end; } else { set [email protected],[email protected]+1; mapannounce .bomb_map$,"[Poring Bomb] Ataque "[email protected],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 [email protected], 0; [email protected] < getarraysize(.mapf); set [email protected],[email protected]+1) removemapflag .bomb_map$,.mapf[[email protected]]; 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á!