Advertisement
Guest User

Untitled

a guest
Sep 19th, 2017
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.41 KB | None | 0 0
  1. //===== Script editado por: Zwetsch ======//
  2. //===== Funções adicionadas: ======//
  3. //===== Restrição de Classes, apenas a classe Aprendiz pode participar do evento. ======//
  4. //===== Função de verificação se o evento está ativo ou desativo, caso esteja ativo, ele liberará o menu, caso contrário, ele abrirá diálogo avisando que o evento está desativado. ======//
  5. //===== Pequena mudança no menu, agora você pode consultar/configurar o horário em que o evento é iniciado. ======//
  6. prontera,65,212,4 script Evento Bomb Poring#BP 1904,{
  7.  
  8. if (Class == 0 && $open == 1)
  9. goto aberto;
  10. if (Class == 0 && $open == 0)
  11. goto fechado;
  12.  
  13. fechado:
  14. mes "[^FF0000 Evento Bomb Poring ^000000]";
  15. mes "No momento, esse evento encontra-se fechado.";
  16. close;
  17.  
  18. aberto:
  19. mes "[^FF0000 Evento Bomb Poring ^000000]";
  20. mes "Olá ^0000FF"+strcharinfo(0)+"^000000!";
  21. mes "Por favor, selecione a ação que você deseja realizar.";
  22. next;
  23. switch(select("^FF0000-^000000 Sim, quero entrar.:^FF0000-^000000 Como funciona?:^FF0000-^000000 Horarários do Evento.:^FF0000-^000000 Não, talvez depois.")) {
  24. case 1:
  25. if (.BombaPoring != 1) {
  26. mes "[^FF0000 Evento Bomb Poring ^000000]";
  27. mes "O evento ainda não começou, verifique os horários em que o evento é iniciado. Até a próxima.";
  28. close;
  29. }
  30. else if (BaseLevel < .BP_MinLevel || Zeny < .BP_Zeny) {
  31. mes "[^FF0000 Evento Bomb Poring ^000000]";
  32. mes "Desculpe, o nível mínimo para entrar é " + .BP_MinLevel + " e a taxa de entrada é de " + .BP_Zeny + "z.";
  33. close2;
  34. cutin "",255;
  35. end;
  36. }
  37. Zeny = Zeny - .BP_Zeny;
  38. announce "[Evento Bomb Poring]: " + strcharinfo(0) + " entrou no evento Bomb Poring!",8;
  39. warp "poring_c01",0,0;
  40. end;
  41. case 2:
  42. mes "[^FF0000 Evento Bomb Poring ^000000]";
  43. mes "O Bomb Poring é um evento de sobrevivência!! Se você sobreviver todas as " + .BP_Rounds + " rodadas você vence!";
  44. next;
  45. mes "[^FF0000 Evento Bomb Poring ^000000]";
  46. mes "Mas não pense que é fácil, diversos Bomb Porings serão invocados, mais e mais e sua única opção é fugir deles!";
  47. next;
  48. if (.BP_Zeny) {
  49. mes "[^FF0000 Evento Bomb Poring ^000000]";
  50. mes "Eu também cobro uma pequena taxa de entrada de apenas " + .BP_Zeny + "z.";
  51. next;
  52. }
  53. if (.BP_MinLevel) {
  54. mes "[^FF0000 Evento Bomb Poring ^000000]";
  55. mes "Ahhh! Eu permito apenas jogadores de nível " + .BP_MinLevel + " ou maior no evento. São regras.";
  56. next;
  57. }
  58. mes "[^FF0000 Evento Bomb Poring ^000000]";
  59. mes "O evento abre a cada meia hora. Você deve falar comigo para entrar. Até lá!";
  60. close;
  61. case 3:
  62. mes "[^FF0000 Evento Bomb Poring ^000000]";
  63. mes "Abaixo você poderá visualizar os horário que o evento é iniciado.";
  64. dispbottom "Horário / Nome do Evento";
  65. dispbottom "Horário Indefinido / Bomb Poring";
  66. dispbottom "Horário Indefinido / Bomb Poring";
  67. dispbottom "Horário Indefinido / Bomb Poring";
  68. case 4:
  69. mes "[^FF0000 Evento Bomb Poring ^000000]";
  70. mes "Volte quando estiver pronto.";
  71. close;
  72. }
  73.  
  74. OnInit:
  75. //===== CONFIGURAÇÕES ========================================================
  76.  
  77. .BP_GM = 99; //Nível de GM necessário para acessar as configurações
  78. .BP_MinLevel = 0; //Nível mínimo para entrar (0=Ignorar)
  79. .BP_Zeny = 5000; //Zeny necessário para entrar (0=Ignorar)
  80. .BP_Rounds = 10; //Número de rodadas
  81. .BP_Interval = 15; //Tempo entre cada rodada (em segundos)
  82. .BP_Bombs = 10; //Número de BombaPorings invocados a cada rodada
  83.  
  84. //IDs dos prémios (O jogador ganha 1 item aleatório)
  85. setarray .BP_Item,607,608,609,610,19587,12208,12209,12210,12211,12212,12214,12622,2573,2576,2589,7621;
  86.  
  87. //===== FIM DAS CONFIGURAÇÕES ================================================
  88.  
  89. bindatcmd "gm_bp",strnpcinfo(3)+"::OnAtcommand";
  90. end;
  91.  
  92. OnClock1330:
  93. OnClock1630:
  94. OnClock1830:
  95. OnStartEvent:
  96. set $open,1;
  97. if (.BombaPoring != 0 && getmapusers("poring_c01") != 0) end;
  98. .BombaPoring = 0;
  99. killmonsterall "poring_c01";
  100. disablenpc "Evento Bomb Poring#BP2";
  101. mapwarp "poring_c01","prontera",156,143;
  102.  
  103. donpcevent "Evento Bomb Poring#BP::OnEventON";
  104. announce "[Evento Bomb Poring]: O evento Bomb Poring terá início em 3 minutos.",0;
  105. .BombaPoring = 1;
  106. sleep 60000;
  107. if (.BombaPoring != 1) end;
  108. announce "[Evento Bomb Poring]: O evento Bomb Poring terá início em 2 minutos.",0;
  109. sleep 60000;
  110. if (.BombaPoring != 1) end;
  111. announce "[Evento Bomb Poring]: O evento Bomb Poring terá início em 1 minuto.",0;
  112. sleep 60000;
  113. if (.BombaPoring != 1) end;
  114. announce "[Evento Bomb Poring]: O evento Bomb Poring começou!",0;
  115. donpcevent "Evento Bomb Poring#BP::OnBeginEvent";
  116. end;
  117.  
  118. OnBeginEvent:
  119. donpcevent "Evento Bomb Poring#BP::OnEventOFF";
  120. .BombaPoring = 2;
  121. sleep 3000;
  122. if (getmapusers("poring_c01") == 0) {
  123. announce "[Evento Bomb Poring]: O evento foi cancelada, pois nenhum jogador se inscreveu para participar do mesmo.",0;
  124. .BombaPoring = 0;
  125. end;
  126. }
  127. mapannounce "poring_c01","[Evento Bomb Poring]: Cuidado! Os Porings Bomb estão vindo!",0;
  128. sleep 3000;
  129. donpcevent "Evento Bomb Poring#BP::OnMob";
  130. end;
  131.  
  132. OnMob:
  133. for (.BombaPoring = 2; .BombaPoring-2 < .BP_Rounds; .BombaPoring++) {
  134. if(getmapusers("poring_c01") == 0)
  135. goto OnEnd;
  136. if (.BombaPoring > 3)
  137. mapannounce "poring_c01","[Evento Bomb Poring]: Cuidado! Mais Porings Bomb estão vindo!",0;
  138. monster "poring_c01",0,0,"Bomb Poring",1904,.BP_Bombs;
  139. sleep .BP_Interval*1000;
  140. }
  141. .BombaPoring++;
  142. killmonsterall "poring_c01";
  143. mapannounce "poring_c01","[Evento Bomb Poring]: Os Porings Bomb se foram! Parabéns!!",0;
  144. sleep 1000;
  145. enablenpc "Evento Bomb Poring#BP2";
  146. end;
  147.  
  148. OnGMEnd:
  149. if (.BombaPoring == 1)
  150. announce "[Evento Bomb Poring]: Um membro da Equipe do Servidor fechou o portal do Porings Bomb!",0;
  151. else
  152. mapannounce "poring_c01","[Evento Bomb Poring]: Um membro da Equipe do Servidor terminou o evento!",0;
  153. OnEnd:
  154. donpcevent "Evento Bomb Poring#BP::OnEventOFF";
  155. .BombaPoring = 0;
  156. killmonsterall "poring_c01";
  157. sleep 1000;
  158. mapwarp "poring_c01","prontera",156,143;
  159. end;
  160.  
  161. OnPCDieEvent:
  162. if (strcharinfo(3) == "poring_c01" && .BombaPoring) {
  163. switch(rand(3)) {
  164. case 1:
  165. mapannounce "poring_c01","[Evento Bomb Poring]: " + strcharinfo(0) + " explodiu em um milhões de pedaços!",0;
  166. break;
  167. case 2:
  168. mapannounce "poring_c01","[Evento Bomb Poring]: O jogador" + strcharinfo(0) + "! foi desintegrado por um Bomb Poring.",0;
  169. break;
  170. case 3:
  171. mapannounce "poring_c01","[Evento Bomb Poring]: O jogador " + strcharinfo(0) + "! foi explodido por um Bomb Poring.",0;
  172. break;
  173. }
  174. warp "SavePoint",0,0;
  175. if (getmapusers("poring_c01") == 0)
  176. goto OnEnd;
  177. end;
  178. }
  179. end;
  180.  
  181. OnAtcommand:
  182. if(getgroupid() < .BP_GM) end;
  183. mes "[^FF0000 Evento Bomb Poring ^000000]";
  184. mes "O que você gostaria que eu fizesse?";
  185. next;
  186. switch(select("Iniciar evento.:Terminar evento.:Mudar nível mínimo para entrar:Mudar zeny necessário para entrar:Mudar número de rodadas.:Mudar tempo entre cada rodada.:Mudar número de BombaPorings por rodada.:Ir para o mapa.")) {
  187. case 1:
  188. mes "[^FF0000 Evento Bomb Poring ^000000]";
  189. if (.BombaPoring == 0) {
  190. donpcevent "Evento Bomb Poring#BP::OnStartEvent";
  191. mes "Evento iniciado!";
  192. close;
  193. }
  194. mes "O evento já foi iniciado.";
  195. close;
  196. case 2:
  197. mes "[^FF0000 Evento Bomb Poring ^000000]";
  198. if (.BombaPoring != 0) {
  199. donpcevent "Evento Bomb Poring#BP::OnGMEnd";
  200. mes "Evento terminado!";
  201. close;
  202. }
  203. mes "O evento não foi iniciado.";
  204. close;
  205. case 3:
  206. mes "-Nível mínimo para entrar-";
  207. mes "Atual: " + .BP_MinLevel;
  208. mes "Digite o novo número desejado.";
  209. mes "Digite 0 para cancelar.";
  210. mes " ";
  211. input @new;
  212. if (@new < 1) {
  213. mes "Ação cancelada.";
  214. close;
  215. }
  216. mes "Número novo: " + @new;
  217. if(select("Completar mudança!:Cancelar!") == 2) {
  218. close;
  219. }
  220. .BP_MinLevel = @new;
  221. mes "FEITO!";
  222. close;
  223. case 4:
  224. mes "-Zeny necessário para entrar-";
  225. mes "Atual: " + .BP_Zeny;
  226. mes "Digite o novo número desejado.";
  227. mes "Digite 0 para cancelar.";
  228. mes " ";
  229. input @new;
  230. if (@new < 1) {
  231. mes "Ação cancelada.";
  232. close;
  233. }
  234. mes "Número novo: " + @new;
  235. if(select("Completar mudança!:Cancelar!") == 2) {
  236. close;
  237. }
  238. .BP_Zeny = @new;
  239. mes "FEITO!";
  240. close;
  241. case 5:
  242. mes "-Número de rodadas-";
  243. mes "Atual: " + .BP_Rounds;
  244. mes "Digite o novo número desejado.";
  245. mes "Digite 0 para cancelar.";
  246. mes " ";
  247. input @new;
  248. if (@new < 1) {
  249. mes "Ação cancelada.";
  250. close;
  251. }
  252. mes "Número novo: " + @new;
  253. if(select("Completar mudança!:Cancelar!") == 2) {
  254. close;
  255. }
  256. .BP_Rounds = @new;
  257. mes "FEITO!";
  258. close;
  259. case 6:
  260. mes "-Tempo entre cada rodada-";
  261. mes "-(em segundos)-";
  262. mes "Atual: " + .BP_Interval;
  263. mes "Digite o novo número desejado.";
  264. mes "Digite 0 para cancelar.";
  265. mes " ";
  266. input @new;
  267. if (@new < 1) {
  268. mes "Ação cancelada.";
  269. close;
  270. }
  271. mes "Número novo: " + @new;
  272. if(select("Completar mudança!:Cancelar!") == 2) {
  273. close;
  274. }
  275. .BP_Interval = @new;
  276. mes "FEITO!";
  277. close;
  278. case 7:
  279. mes "-Número de BombaPorings invocados a cada rodada-";
  280. mes "Atual: " + .BP_Bombs;
  281. mes "Digite o novo número desejado.";
  282. mes "Digite 0 para cancelar.";
  283. mes " ";
  284. input @new;
  285. if (@new < 1) {
  286. mes "Ação cancelada.";
  287. close;
  288. }
  289. mes "Número novo: " + @new;
  290. if(select("Completar mudança!:Cancelar!") == 2) {
  291. close;
  292. }
  293. .BP_Bombs = @new;
  294. mes "FEITO!";
  295. close;
  296. case 8:
  297. warp "poring_c01",0,0;
  298. end;
  299. }
  300.  
  301. OnEventON:
  302. waitingroom "BombaPoring ON!",0;
  303. end;
  304. OnEventOFF:
  305. delwaitingroom;
  306. end;
  307. }
  308.  
  309. poring_c01,104,110,3 script Evento Bomb Poring#BP2 1_M_SMITH,{
  310. mes "[^FF0000 Evento Bomb Poring ^000000]";
  311. mes "Aqui está seu prémio!";
  312. close2;
  313. copyarray .@premios, getvariableofnpc( .BP_Item, "Evento Bomb Poring#BP" ), 99;
  314. @id = rand(getarraysize(.@premios));
  315. getitem .@premios[@id],1;
  316. warp "SavePoint",0,0;
  317. end;
  318. }
  319.  
  320.  
  321. //==================Mapflags========================
  322. poring_c01 mapflag nowarp
  323. poring_c01 mapflag nowarpto
  324. poring_c01 mapflag noteleport
  325. poring_c01 mapflag nosave
  326. poring_c01 mapflag nomemo
  327. poring_c01 mapflag nobranch
  328. poring_c01 mapflag noloot
  329. poring_c01 mapflag noskill
  330. poring_c01 mapflag nopenalty
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement