Advertisement
Guest User

Devil Square

a guest
Jul 6th, 2014
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.01 KB | None | 0 0
  1. // .----------------------------------------------------------.
  2. // . SoulBlaker Scripts Apresenta: .
  3. // . ___________________ .
  4. // . / _____/\______ \ .
  5. // . \_____ \ | | _/ .
  6. // . / \ | | \ .
  7. // . /_______ / |______ / .
  8. // . \/ \/ .
  9. // . [ eAthena Advanced Scripts ] .
  10. // . v1.0 .
  11. // .----------------------------------------------------------.
  12. // ; http://www.eathena.ws/board/SoulBlaker-m271867.html ;
  13. // .----------------------------------------------------------.
  14. // . Script: .
  15. // . Devil Square .
  16. // .----------------------------------------------------------.
  17. // . Por: SoulBlaker Compátivel: eAthena SVN versão: 1.3 .
  18. // .----------------------------------------------------------.
  19. // . Descrição: .
  20. // . Evento Devil Square, ocorre de 1 a 1hr. .
  21. // .----------------------------------------------------------.
  22. // . Changelog da Versão: .
  23. // . - 1.0 Iniciado o NPC. [SoulBlaker] .
  24. // . - 1.1 Corrigido nome de uma var. [SoulBlaker] .
  25. // . - 1.2 Corrigido evento da Square 2. [SoulBlaker] .
  26. // . - 1.3 Corrigido info para ver se a Devil Square já .
  27. // . está acontecendo. [SoulBlaker] .
  28. // *----------------------------------------------------------*
  29. prontera,139,169,5 script Devil Square#devil_01 459,{
  30.  
  31. // Configurações
  32.  
  33. // Qual nível de Base para Entrar na Devil Square?
  34. set $SquareBaseLevel, 75;
  35.  
  36. // Qual o custo de Zeny para entrar na Devil Square?
  37. set $SquareZenyCost, 0;
  38.  
  39. // Configurações das Recompensas
  40. // Os itens são entregue aos jogadores que quebrarem
  41. // o Arca do Tesouro ao terminar o combate contra os
  42. // monstros. Logo abaixo, terá uma série de informações
  43. // e configurações, para você configurar da melhor
  44. // maneira que achar para o seu servidor.
  45.  
  46. // Configurações de EXP
  47. // Quanto de Experiência de Base o Jogador vai ganhar
  48. // ao matar uma Arca do Tesouro?
  49. // Se você deixar com o valor '0', o jogador não vai
  50. // ganhar experiência de Base.
  51. set $SquareBaseEXP,0;
  52.  
  53. // Quanto de Experiência de Classe o jogador vai ganhar
  54. // ao matar uma Arca do Tesouro?
  55. // Se você deixar com o valor '0', o jogador não vai
  56. // ganhar experiência de Classe.
  57. set $SquareJobExp,0;
  58.  
  59. // Configurações dos Itens!
  60. // Os itens são gravados e váriaveis (arrays).
  61. // Você deve determinar o ponto da array e o valor dela
  62. // como o Exemplo abaixo:
  63. //
  64. // set $SquareItem[<ponto>],<id do item>;
  65. // set $SquareItem[0],501;
  66. // OBS: Aqui o valor do array $SquareItem[0] será 501.
  67. //
  68. // set $SquareItem[0],501;
  69. // set $SquareItem[1],502;
  70. // OBS: Aqui o valor do ponto '0' da Array $SquareItem
  71. // será 501, e o ponto '1' será 502.
  72. //
  73. // Você somente pode adicionar números no ponto,
  74. // e não utrapassar de 127 arrays. Ou seja o máximo de
  75. // ponto no é '127'.
  76. //
  77. // Se você for um usuário avançado, poderá adicionar vários
  78. // valores em um setarray.
  79. // Exemplo:
  80. //
  81. // setarray $SquareItem[0],501,502,503;
  82. //
  83. // Ele irá setar desta maneira: 0 = 501, 1 = 502 e 3 = 503.
  84. // Alguns Itens vem padarão para não haver erro durante os eventos.
  85. // Então Sinta-se livre para setar os itens que deseja ou editar
  86. // os padrão do script. :)
  87. set $SquareItem[0],20005;
  88. set $SquareItem[1],2524;
  89. set $SquareItem[2],2421;
  90. set $SquareItem[3],5171;
  91. set $SquareItem[4],2357;
  92.  
  93. // Qual o Máximo da quantidade de Item que o jogador pode ganhar?
  94. // Se você defenir o valor para 10, o jogador irá ganhar 10x o
  95. // item ganho no evento.
  96. set $SquareAmount,1;
  97.  
  98. // Qual o Máximo de Jogador que pode entrar na arena de Devil Square?
  99. // Se você botar '0', está opção será desabilitada.
  100. set $SquarePlayers,0;
  101.  
  102. // Deseja bloquear o uso de Habilidades ao gerar a Arca do Tesouro?
  103. // Bote 1 se deseja, bote 0 se não deseja.
  104. set $SquareTreasureNoSkill,1;
  105.  
  106. mes "[Recepcionista da Devil Square]";
  107. mes "Seja Bem-vindo,";
  108. mes "a ^ff0000 Devil Square ^000000.";
  109. mes "Porta é fechada e você deve";
  110. mes "esperar na sala de Espera da Devil Square!!";
  111. next;
  112. switch ( select ("Sala de Espera?","Informações.","Saír.") ) {
  113. case 1:
  114. mes "[Recepcionista da Devil Square]";
  115. mes " Sim, para entrar na Devil Square...";
  116. mes "... você deve clicar duas vezes";
  117. mes "no balão escrito 'Devil Square' em cima de mim.";
  118. mes " Assim que estiver lá, aguarde o inicio da";
  119. mes "Devil Square que você será teletransportado";
  120. mes "automáticamente para a arena.";
  121. break;
  122. case 2:
  123. mes "[Recepcionista da Devil Square]";
  124. mes " A Devil Square é determinada por";
  125. mes "nível de Base...";
  126. mes " Para participar deste evento você";
  127. mes "deve ter o Nível de Base " + $SquareBaseLevel + " ou maior.";
  128. next;
  129. mes "[Recepcionista da Devil Square]";
  130. if( $SquareZenyCost ) {
  131. mes " A para entrar na arena";
  132. mes "você precisa ter no minimo de";
  133. mes $SquareZenyCost + " zenys.";
  134. mes " Mais pode trazer muitos";
  135. mes "beneficios a você.";
  136. }
  137. else {
  138. mes " Para entrar na arena";
  139. mes "é totalmente grátis.";
  140. mes "Ou seja não leva nenhum";
  141. mes "custo, e pode trazer";
  142. mes "muitos beneficios...";
  143. }
  144. next;
  145. mes "[Recepcionista da Devil Square]";
  146. mes "No final do evento, será invocado";
  147. mes "algumas Arca do Tesouro, possibilitando";
  148. mes "você a mata-las e ganhar recompensas";
  149. mes "do evento, preste muita atenção quando";
  150. mes "elas forem invocadas...";
  151. next;
  152. mes "[Recepcionista da Devil Square]";
  153. mes " A Devil Square ocorre de 3 em 3 hora.";
  154. mes "Então fique sempre ligado nestes horários.";
  155. break;
  156. case 3:
  157. mes "[Recepcionista da Devil Square]";
  158. mes "Já sabe, se falar morre...";
  159. break;
  160. }
  161. close;
  162.  
  163. OnInit:
  164. // Sets mapflags
  165. setmapflag "ordeal_1-1",mf_nomemo;
  166. setmapflag "ordeal_1-1",mf_noteleport;
  167. setmapflag "ordeal_1-1",mf_nowarp;
  168. setmapflag "ordeal_1-1",mf_nogo;
  169. setmapflag "ordeal_1-1",mf_nomemo;
  170. setmapflag "ordeal_1-1",mf_nosave;
  171.  
  172. // Set Waiting Rom
  173. set $@player,10000;
  174. if( $SquarePlayers )
  175. set $@player, $SquarePlayers;
  176.  
  177. waitingroom "Devil Square",$@player,"OnArena";
  178. end;
  179.  
  180. OnArena:
  181. if( $SquareZenyCost && Zeny < $SquareZenyCost ) {
  182. dispbottom "Você não tem zeny para entrar na arena.";
  183. dispbottom "E será chutado para bem longe...";
  184. warp "prontera",156,166;
  185. }
  186. set Zeny, Zeny - $SquareZenyCost;
  187. end;
  188.  
  189. OnMinute00:
  190. killmonsterall "ordeal_1-1";
  191. if( $squareinf == 0 ) {
  192. set $@clock,5;
  193. donpcevent "Devil Square#devil_01::OnSquareEvent";
  194. }
  195. end;
  196. OnMinute01:
  197. if( $squareinf == 0 ) {
  198. set $@clock,4;
  199. donpcevent "Devil Square#devil_01::OnSquareEvent";
  200. }
  201. end;
  202. OnMinute02:
  203. if( $squareinf == 0) {
  204. set $@clock,3;
  205. donpcevent "Devil Square#devil_01::OnSquareEvent";
  206. }
  207. end;
  208. OnMinute03:
  209. if( $squareinf == 0 ) {
  210. set $@clock,2;
  211. donpcevent "Devil Square#devil_01::OnSquareEvent";
  212. }
  213. end;
  214. OnMinute04:
  215. if( $squareinf == 0 ) {
  216. set $@clock,1;
  217. donpcevent "Devil Square#devil_01::OnSquareEvent";
  218. }
  219. end;
  220. OnMinute05:
  221. if( $squareinf == 0 ) {
  222. set $@clock,0;
  223. disablenpc "Devil Square#exit";
  224. donpcevent "Devil Square#devil_01::OnSquareEvent";
  225. }
  226. end;
  227.  
  228. OnSquareEvent:
  229. // Tome cuidado ao editar os eventos.
  230. if( $@clock > 0 )
  231. announce "A Devil Square está-ra aberta em " + $@clock + " minutos, corram para a arena!",8;
  232. else if( $square_round == 0 || $square_round == 1) {
  233. announce "A Devil Square começou, boa sorte para todos!",8;
  234. warpwaitingpc "ordeal_1-1",183,182,10000;
  235. set $squareinf, 1;
  236. set $squaremob, 62;
  237. set $square_round, 1;
  238.  
  239. // Mobs Padrão de 15 Spaws
  240. areamonster "ordeal_1-1",183,182,246,144,"[Devil Square] Orc Herói",1189,1,"Devil Square#devil_01::OnDevilMobDead";
  241. areamonster "ordeal_1-1",183,182,246,144,"[Devil Square] Esqueleto Arqueiro",1016,15,"Devil Square#devil_01::OnDevilMobDead";
  242. areamonster "ordeal_1-1",183,182,246,144,"[Devil Square] Minorous",1149,15,"Devil Square#devil_01::OnDevilMobDead";
  243.  
  244. // Mobs Padrão de 10 Spaws
  245. areamonster "ordeal_1-1",183,182,246,144,"[Devil Square] Esqueleto Soldado",1028,10,"Devil Square#devil_01::OnDevilMobDead";
  246. areamonster "ordeal_1-1",183,182,246,144,"[Devil Square] Arenoso",1165,10,"Devil Square#devil_01::OnDevilMobDead";
  247. areamonster "ordeal_1-1",183,182,246,144,"[Devil Square] Réquiem",1164,10,"Devil Square#devil_01::OnDevilMobDead";
  248.  
  249. }
  250. else if( $square_round == 2 ) {
  251. announce "Devil Square: Começou a 2° Square!! Boa Sorte a todos",8;
  252. set $squaremob, 60;
  253.  
  254. // Mobs Padrão de 15 Spaws
  255. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Gárgula",1253,15,"Devil Square#devil_01::OnDevilMobDead";
  256. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Mímico",1191,15,"Devil Square#devil_01::OnDevilMobDead";
  257.  
  258. // Mobs Padrão de 10 Spaws
  259. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Alarme",1193,10,"Devil Square#devil_01::OnDevilMobDead";
  260. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Injustiçado",1257,10,"Devil Square#devil_01::OnDevilMobDead";
  261. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Alma Penada",1192,10,"Devil Square#devil_01::OnDevilMobDead";
  262.  
  263. }
  264. else if( $square_round == 3 ) {
  265. announce "Devil Square: Começou a 3° Square!! Boa Sorte a todos",8;
  266. set $squaremob, 57;
  267.  
  268. // Mobs Padrão de 15 Spaws
  269. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Anolian",1206,15,"Devil Square#devil_01::OnDevilMobDead";
  270. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Andarilho",1208,15,"Devil Square#devil_01::OnDevilMobDead";
  271. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Coringa",1131,15,"Devil Square#devil_01::OnDevilMobDead";
  272.  
  273. // Mobs Padrão de 10 Spaws
  274. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Deviruchi",1109,10,"Devil Square#devil_01::OnDevilMobDead";
  275.  
  276. // Mobs Padrão de 1 Spaws
  277. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Ilusão das Trevas",1302,1,"Devil Square#devil_01::OnDevilMobDead";
  278. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Senhor das Trevas",1272,1,"Devil Square#devil_01::OnDevilMobDead";
  279.  
  280. }
  281. else if( $square_round == 4 ) {
  282. announce "Devil Square: Começou a 4° Square e os Mini-Boss Atacam! Boa Sorte a todos",8;
  283. set $squaremob, 30;
  284.  
  285. // Mobs Padrão de 5 Spaws
  286. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Serial Killer",1507,5,"Devil Square#devil_01::OnDevilMobDead";
  287. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Dragão Mutante",1449,5,"Devil Square#devil_01::OnDevilMobDead";
  288. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Cavaleiro Sanguinário",1268,5,"Devil Square#devil_01::OnDevilMobDead";
  289.  
  290. // Mobs Padrão de 4 Spaws
  291. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Quimera",1456,4,"Devil Square#devil_01::OnDevilMobDead";
  292.  
  293. // Mobs Padrão de 3 Spaws
  294. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] ArchAngeling",1388,3,"Devil Square#devil_01::OnDevilMobDead";
  295. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Grifo",1259,3,"Devil Square#devil_01::OnDevilMobDead";
  296. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Panzer Goblin",1308,3,"Devil Square#devil_01::OnDevilMobDead";
  297.  
  298. // Mobs Padrão de 2 Spaws
  299. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Líder Cobold",1296,2,"Devil Square#devil_01::OnDevilMobDead";
  300.  
  301. }
  302. else if( $square_round == 5 ) {
  303. announce "Devil Square: Começou a 5° Square e os MVP's Atacam! Boa Sorte a todos",8;
  304. set $squaremob, 9;
  305.  
  306. // Mobs Padrão de 1 Spaws
  307. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Bafomé",1399,1,"Devil Square#devil_01::OnDevilMobDead";
  308. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Senhor dos Mortos",1373,1,"Devil Square#devil_01::OnDevilMobDead";
  309. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] General Tartaruga",1312,1,"Devil Square#devil_01::OnDevilMobDead";
  310. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Senhor dos Orcs",1190,1,"Devil Square#devil_01::OnDevilMobDead";
  311. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Senhor das Trevas",1272,1,"Devil Square#devil_01::OnDevilMobDead";
  312. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Drácula",1389,1,"Devil Square#devil_01::OnDevilMobDead";
  313. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Faraó",1157,1,"Devil Square#devil_01::OnDevilMobDead";
  314. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Osíris",1038,1,"Devil Square#devil_01::OnDevilMobDead";
  315. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Orc Herói",1087,1,"Devil Square#devil_01::OnDevilMobDead";
  316.  
  317. }
  318. else if( $square_round == 6 ) {
  319. announce "Devil Square: Começou a 6° Square e os MVP's continua Atacado! Boa Sorte a todos",8;
  320. set $squaremob, 9;
  321.  
  322. // Mobs Padrão de 1 Spaws
  323. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Amon-ra",1511,1,"Devil Square#devil_01::OnDevilMobFinish";
  324. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Orc Herói",1087,1,"Devil Square#devil_01::OnDevilMobFinish";
  325. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Bafomé",1399,1,"Devil Square#devil_01::OnDevilMobFinish";
  326. areamonster "ordeal_1-1",183,182,246,244,"[Devil Square] Senhor dos Mortos",1373,1,"Devil Square#devil_01::OnDevilMobFinish";
  327.  
  328. }
  329. else {
  330. // Atenção, aqui fica todas as Caixas de recompensa...
  331. set $squaremob, 9;
  332. monster "ordeal_1-1",231,250,"Arca do Tesouro",1324,1,"Devil Square#devil_01::OnTreasureDied";
  333. monster "ordeal_1-1",234,247,"Arca do Tesouro",1328,1,"Devil Square#devil_01::OnTreasureDied";
  334. monster "ordeal_1-1",237,244,"Arca do Tesouro",1332,1,"Devil Square#devil_01::OnTreasureDied";
  335. monster "ordeal_1-1",240,241,"Arca do Tesouro",1336,1,"Devil Square#devil_01::OnTreasureDied";
  336. monster "ordeal_1-1",243,238,"Arca do Tesouro",1340,1,"Devil Square#devil_01::OnTreasureDied";
  337. monster "ordeal_1-1",246,235,"Arca do Tesouro",1344,1,"Devil Square#devil_01::OnTreasureDied";
  338. monster "ordeal_1-1",249,232,"Arca do Tesouro",1348,1,"Devil Square#devil_01::OnTreasureDied";
  339. monster "ordeal_1-1",252,229,"Arca do Tesouro",1352,1,"Devil Square#devil_01::OnTreasureDied";
  340. monster "ordeal_1-1",249,241,"Arca do Tesouro",1356,1,"Devil Square#devil_01::OnTreasureDied";
  341. monster "ordeal_1-1",240,249,"Arca do Tesouro",1360,1,"Devil Square#devil_01::OnTreasureDied";
  342. if( !$SquareTreasureNoSkill )
  343. setmapflag "ordeal_1-1",mf_noskill;
  344.  
  345. }
  346. end;
  347.  
  348. OnDevilMobDead:
  349. set $squaremob, $squaremob - 1;
  350. if( $squaremob > 0 )
  351. announce "Devil Square: Faltam " + $squaremob + " monstros para a " + ($square_round + 1) + "° Square.",8;
  352. else {
  353. set $square_round, $square_round + 1;
  354. donpcevent "Devil Square#devil_01::OnSquareEvent";
  355. }
  356. end;
  357.  
  358. OnDevilMobFinish:
  359. set $squaremob, $squaremob - 1;
  360. if( $squaremob > 0 )
  361. announce "Devil Square: Faltam " + $squaremob + " monstros para terminar os ataques dos Monstros.",8;
  362. else {
  363. announce "Devil Square: Parabéns jovens guerreiros, vocês derrotaram todos ataques dos monstros. Agora as Arca do Tesouro irão aparecer.",8;
  364. set $square_round, 7;
  365. donpcevent "Devil Square#devil_01::OnSquareEvent";
  366. }
  367. end;
  368.  
  369. OnTreasureDied:
  370. set $squaremob, $squaremob - 1;
  371. announce "Devil Square: O Jogador [ " + strcharinfo(0) + " ] abriu uma das Arcas do Tesouro.",8;
  372. doevent "Devil Square#devil_01::OnTreasure";
  373. if( $squaremob == 0 ) {
  374. announce "Parabéns a todos bravos guerreiros que venceram a luta contra os Monstros na Devil Square.",8;
  375. announce "Evento criado por [ SoulBlaker ] do fórum eAthena.",8;
  376. enablenpc "Devil Square#exit";
  377. enablewaitingroomevent "Devil Square#exit";
  378. set $square_round, 0;
  379. set $squareinf, 0;
  380.  
  381. // Remove mapflags
  382. removemapflag "ordeal_1-1",mf_nomemo;
  383. removemapflag "ordeal_1-1",mf_noteleport;
  384. removemapflag "ordeal_1-1",mf_nowarp;
  385. removemapflag "ordeal_1-1",mf_nogo;
  386. removemapflag "ordeal_1-1",mf_nomemo;
  387. removemapflag "ordeal_1-1",mf_noskill;
  388. removemapflag "ordeal_1-1",mf_nosave;
  389.  
  390. }
  391. end;
  392.  
  393. OnTreasure:
  394.  
  395. set BaseExp, BaseExp + $SquareBaseEXP;
  396. set JobExp, JobExp + $SquareBaseEXP;
  397. set $@rand_1,rand(getarraysize($SquareItem));
  398. if( $SquareAmount )
  399. set $@rand_2,rand(1,$SquareAmount);
  400. else
  401. set $@rand_2,1;
  402. getitem $SquareItem[$@rand_1],$@rand_2;
  403. end;
  404. }
  405.  
  406. ordeal_1-1,246,245,7 script Devil Square#exit 51,{
  407.  
  408. mes "[Recepcionista da Saída]";
  409. mes "Deseja retornar a Prontera?";
  410. next;
  411. if( Select ("Sim.","Não.") == 1) {
  412. mes "[Recepcionista da Saída]";
  413. mes "Muito bem, boa viajem!";
  414. close2;
  415. warp "prontera",155,171;
  416. end;
  417. }
  418. mes "[Recepcionista da Saída]";
  419. mes "Você deve saír logo... ou pode ter grandes problemas...";
  420. close;
  421.  
  422. OnInit:
  423. waitingroom "Devil Square Saída",10000;
  424. disablewaitingroomevent;
  425. end;
  426. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement