Public paste
npc cronus
By: Sala dos Cristais | Date: Feb 14 2010 19:08 | Format: None | Expires: never | Size: 28.01 KB | Hits: 2250

  1. //////////////////////////////////////////////////////////////////////
  2. //  ______     _  _          _____              _         _         //
  3. // |  ____|   | |(_)        / ____|            (_)       | |        //
  4. // | |__    __| | _   ___  | (___    ___  _ __  _  _ __  | |_  ___  //
  5. // |  __|  / _` || | / _   ___   / __|| '__|| || '_  | __|/ __| //
  6. // | |____| (_| || ||  __/  ____) || (__ | |   | || |_) || |_ __  //
  7. // |______|__,_||_| ___| |_____/  ___||_|   |_|| .__/  __||___/ //
  8. //                                                | |               //
  9. //     Não remover os créditos.                   |_|               //
  10. //                                                                  //
  11. //////////////////////////////////////////////////////////////////////
  12. //====== Cronus ======================================================
  13. //=Evento: Sala dos Cristais
  14. //===== Por: =========================================================
  15. //= PH
  16. //===== Versão Atual: ================================================
  17. //=1.0
  18. //===== Descrição: ===================================================
  19. //=Evento baseado em "Sala dos Cristais", do pbRO.
  20. //===== Changelog: ===================================================
  21. //=Script iniciado
  22. //= 1.1 Reestruturado. [V i n i c i u S]
  23. //====================================================================
  24. //CONFIGURAÇÕES GERAIS:
  25. -       script  SC_CONFIG       -1,{
  26. OnInit:
  27. //CONFIGURAÇÕES DO TEMPO:
  28. //TIPO DE SISTEMA:
  29. //Selecione o número do sistema que deseja utilizar.
  30. //1 = Sistema de hora e minuto por dia. Caso escolha este sistema,
  31. //configure-o adequadamente, abaixo.
  32. //Esse sistema consiste em somente um início por dia
  33. //na hora e minuto em que você determinar. Depois só
  34. //acontecerá novamente no outro dia!
  35.  
  36. //2 = Sistema de vários inícios. Caso escolha esse sistema,
  37. //configure-o adequadamente, abaixo.
  38. //Esse sistema consiste em ter vários inícios
  39. //por dia, sempre acontecerá em X horas e irá
  40. //durar Y minutos.
  41.  
  42. set $SC_TIMESYSTEM,2;        //Sistema de início do evento. Padrão: 1 (Sistema de hora e minuto por dia).
  43.  
  44. //CONFIGURAÇÕES DO SISTEMA 1 (NÃO MECHA SE ESCOLHEU OUTRO SISTEMA):
  45.  
  46. set $SC_HSTART,20;        //Hora que iniciará.
  47. set $SC_MSTART,30;        //Minuto que iniciará.
  48. set $SC_HFINAL,22;        //Hora que terminará.
  49. set $SC_MFINAL,30;        //Minuto que terminará.
  50.  
  51. //CONFIGURAÇÕES DO SISTEMA 2 (NÃO MECHA SE ESCOLHEU OUTRO SISTEMA):
  52.  
  53. set $SC_HSTART2,2;        //O evento ocorrerá de X em X horas. X é o número. Padrão: 2 (Ocorrerá de 2 em 2 horas).
  54. set $SC_MSTART2,15;        //O evento terá a duração de X minutos. X é o número. Padrão: 15 (Terá a duração de 15 minutos).
  55.  
  56. //FIM DAS CONFIGURAÇÕES DO TEMPO E SISTEMA.
  57. //-------------------------------
  58.  
  59.  
  60. //CONFIGURAÇÕES DA SALA:
  61.  
  62. set $SC_CRISTSL1,10;        //Quantos cristais terão na primeira sala, ativada pela armadilha. Padrão: 10.
  63. set $SC_CRISTSL2,16;        //Quantos cristais terão na segunda sala, ativada pela armadilha. Padrão: 16.
  64. set $SC_SALA2MOB,1039;        //MvP da Sala 2. Padrão: 1039 (Bafomé).
  65. set $SC_SALA2MNB,1;        //Número de monstros da sala 2. Padrão: 1.
  66. set $SC_SALA2MN$,"Bafomé";        //Nome do MvP da Sala 2. Padrão: Bafomé.
  67. set $SC_CCHANCE,200;        //Chance de dropar as bandeiras dos cristais. 1000 = 100%. Padrão: 200 (20%).
  68. set $SC_MAXSL,2;        //Número de salas. Só pode ser 1 ou 2! Padrão: 2.
  69. set $SC_SL1MAX,5;        //Capacidade máxima de pessoas dentro da Sala 1. Padrão: 5.
  70. set $SC_SL2MAX,5;        //Capacidade máxima de pessoas dentro da Sala 2. Padrão: 5.
  71.  
  72. //FIM DAS CONFIGURAÇÕES DA SALA.
  73. //-------------------------------
  74.  
  75. //CONFIGURAÇÕES DOS MAPAS:
  76.  
  77. set $SC_MAPASL1$,"hunter_1-1";        //Mapa da sala 1. Padrão: hunter_1-1. (Se trocar este mapa, troque o mapa das armadilhas!).
  78. set $SC_COORDXS1,0;        //Coordenada X do mapa 1. Padrão: 0 (random).
  79. set $SC_COORDYS1,0;        //Coordenada Y do mapa 1. Padrão: 0 (random).
  80. set $SC_MAPASL2$,"hunter_2-1";        //Mapa da sala 2. Padrão: hunter_2-1. (Se trocar este mapa, troque o mapa das armadilhas!).
  81. set $SC_COORDXS2,0;        //Coordenada X do mapa 2. Padrão: 0 (random).
  82. set $SC_COORDYS2,0;        //Coordenada Y do mapa 2. Padrão: 0 (random).
  83.  
  84. //FIM DAS CONFIGURAÇÕES DOS MAPAS.
  85. //-------------------------------
  86.  
  87. //CONFIGURAÇÕES DAS ARMADILHAS:
  88.  
  89. set $SC_ARMEXIT,50;        //Chance de ser retirado da sala. Em porcentagem. Padrão: 50 (50%).
  90. set $SC_ARMEXPU,0;        //Chance de ser expulso e voltar só na próxima rodada. Padrão: 0 (0%).
  91. set $SC_ARMTEL1,4;        //Chance de ser mandado para uma sala com 10 Cristais. Padrão: 4 (4%).
  92. set $SC_ARMTEL2,3;        //Chance de ser mandado para uma sala com 10 Cristais e monstros. Padrão: 3 (3%).
  93. set $SC_ARMBON1,5;        //Chance de ganhar 2 bandeiras. Padrão: 5 (5%).
  94. set $SC_ARMBON2,10;        //Chance de ganhar 1 bandeira. Padrão: 10 (10%).
  95. set $SC_ARMAGIL,20;        //Chance de aumentar sua agilidade. Padrão: 20 (20%).
  96. set $SC_ARMBONN,1;        //Chance de perder 1 bandeira. Padrão: 1 (1%).
  97.  
  98. //FIM DAS CONFIGURAÇÕES DAS ARMADILHAS.
  99. //-------------------------------
  100.  
  101. //NÃO MECHA APARTIR DAQUI! A MENOS QUE SÁIBA O QUE ESTÁ FAZENDO.
  102.  
  103. monster $SC_MAPASL1$,0,0,"Cristal",1954,$SC_CRISTSL1,"SC_KILLCRISTAL::OnSC_CRISTALKILLSL1";
  104. monster $SC_MAPASL2$,0,0,"Cristal",1954,$SC_CRISTSL2,"SC_KILLCRISTAL::OnSC_CRISTALKILLSL2";
  105. monster $SC_MAPASL2$,0,0,$SC_SALA2MN$,$SC_SALA2MOB,$SC_SALA2MNB,"SC_KILLCRISTAL::OnSC_MVPKILLSL2";
  106.  
  107. monster "knight_1-1",0,0,"Cristal",1954,$SC_CRISTSL1,"SC_KILLCRISTAL::OnSC_CRISTALKPVP1";
  108.  
  109. monster "knight_2-1",0,0,"Cristal",1954,$SC_CRISTSL2,"SC_KILLCRISTAL::OnSC_CRISTALKPVP2";
  110.  
  111. monster "knight_2-1",0,0,$SC_SALA2MN$,$SC_SALA2MOB,$SC_SALA2MNB,"SC_KILLCRISTAL::OnSC_CRISTALKMVP1";
  112.  
  113. end;
  114. }
  115.  
  116. //ABAIXO ESTÃO AS ARMADILHAS. CASO TROQUE O MAPA PADRÃO, TROQUE AQUI TAMBÉM.
  117.  
  118. hunter_1-1,0,0,0        script  SC_ARMS -1,3,3,{
  119.  
  120. OnInit:
  121.  
  122. movenpc "SC_ARMS",rand(139,60),rand(60,139);
  123. end;
  124.  
  125. OnTouch:
  126.  
  127. callfunc "SC_DISPARM";
  128.  
  129. SC_MOVEARM:
  130.  
  131. movenpc "SC_ARMS",rand(139,60),rand(60,139);
  132. end;
  133.  
  134. }
  135.  
  136. prontera,140,225,5      script  SC_ARMS#2       -1,3,3,{
  137.  
  138. OnInit:
  139.  
  140. movenpc "SC_ARMS#2",rand(139,60),rand(60,139);
  141. end;
  142.  
  143. OnTouch:
  144.  
  145. callfunc "SC_DISPARM";
  146.  
  147. SC_MOVEARM:
  148.  
  149. movenpc "SC_ARMS#2",rand(139,60),rand(60,139);
  150. end;
  151.  
  152. }
  153.  
  154. hunter_1-1,0,0,0        script  SC_ARMS#3       -1,3,3,{
  155.  
  156. OnInit:
  157.  
  158. movenpc "SC_ARMS#3",rand(139,60),rand(60,139);
  159. end;
  160.  
  161. OnTouch:
  162.  
  163. callfunc "SC_DISPARM";
  164.  
  165. SC_MOVEARM:
  166.  
  167. movenpc "SC_ARMS#3",rand(139,60),rand(60,139);
  168. end;
  169.  
  170. }
  171.  
  172. hunter_1-1,0,0,0        script  SC_ARMS#4       -1,3,3,{
  173.  
  174. OnInit:
  175.  
  176. movenpc "SC_ARMS#4",rand(139,60),rand(60,139);
  177. end;
  178.  
  179. OnTouch:
  180.  
  181. callfunc "SC_DISPARM";
  182.  
  183. SC_MOVEARM:
  184.  
  185. movenpc "SC_ARMS#4",rand(139,60),rand(60,139);
  186. end;
  187.  
  188. }
  189.  
  190. hunter_1-1,0,0,0        script  SC_ARMS#5       -1,3,3,{
  191.  
  192. OnInit:
  193.  
  194. movenpc "SC_ARMS#5",rand(139,60),rand(60,139);
  195. end;
  196.  
  197. OnTouch:
  198.  
  199. callfunc "SC_DISPARM";
  200.  
  201. SC_MOVEARM:
  202.  
  203. movenpc "SC_ARMS#5",rand(139,60),rand(60,139);
  204. end;
  205.  
  206. }
  207.  
  208. hunter_2-1,0,0,0        script  SC_ARMS2        -1,3,3,{
  209.  
  210. OnInit:
  211.  
  212. movenpc "SC_ARMS2",rand(139,60),rand(60,139);
  213. end;
  214.  
  215. OnTouch:
  216.  
  217. callfunc "SC_DISPARM";
  218.  
  219. SC_MOVEARM:
  220.  
  221. movenpc "SC_ARMS2",rand(139,60),rand(60,139);
  222. end;
  223.  
  224. }
  225.  
  226. hunter_2-1,0,0,0        script  SC_ARMS2#2      -1,3,3,{
  227.  
  228. OnInit:
  229.  
  230. movenpc "SC_ARMS2#2",rand(139,60),rand(60,139);
  231. end;
  232.  
  233. OnTouch:
  234.  
  235. callfunc "SC_DISPARM";
  236.  
  237. SC_MOVEARM:
  238.  
  239. movenpc "SC_ARMS2#2",rand(139,60),rand(60,139);
  240. end;
  241.  
  242. }
  243.  
  244. hunter_2-1,0,0,0        script  SC_ARMS2#3      -1,3,3,{
  245.  
  246. OnInit:
  247.  
  248. movenpc "SC_ARMS2#3",rand(139,60),rand(60,139);
  249. end;
  250.  
  251. OnTouch:
  252.  
  253. callfunc "SC_DISPARM";
  254.  
  255. SC_MOVEARM:
  256.  
  257. movenpc "SC_ARMS2#3",rand(139,60),rand(60,139);
  258. end;
  259.  
  260. }
  261.  
  262. hunter_2-1,0,0,0        script  SC_ARMS2#4      -1,3,3,{
  263.  
  264. OnInit:
  265.  
  266. movenpc "SC_ARMS2#4",rand(139,60),rand(60,139);
  267. end;
  268.  
  269. OnTouch:
  270.  
  271. callfunc "SC_DISPARM";
  272.  
  273. SC_MOVEARM:
  274.  
  275. movenpc "SC_ARMS2#4",rand(139,60),rand(60,139);
  276. end;
  277.  
  278. }
  279.  
  280. hunter_2-1,0,0,0        script  SC_ARMS2#5      -1,3,3,{
  281.  
  282. OnInit:
  283.  
  284. movenpc "SC_ARMS2#5",rand(139,60),rand(60,139);
  285. end;
  286.  
  287. OnTouch:
  288.  
  289. callfunc "SC_DISPARM";
  290.  
  291. SC_MOVEARM:
  292.  
  293. movenpc "SC_ARMS2#5",rand(139,60),rand(60,139);
  294. end;
  295.  
  296. }
  297.  
  298. //TELEPORTADOR EM IZLUDE:
  299.  
  300. quiz_00,27,112,3        script  Sala dos Cristais       408,{
  301.  
  302. if(getgmlevel() >= 60) {
  303.  
  304. show "[^FFC800Sala dos Cristais^000000]";
  305. show "Escolha o modo de inicialização:";
  306.  
  307. if(select("Modo Admin","Modo Normal")==2) { next; goto SC_INICIO; } else { next; goto SC_ADMINCP; }
  308.  
  309. SC_ADMINCP:
  310.  
  311. show "[^FFC800Sala dos Cristais^000000]";
  312. show "Olá ^FFC500"+strcharinfo(0)+"^000000.";
  313. show "Bem-vind"+strsex("o","a")+" ao Admin CP";
  314. show "do Evento Sala dos Cristais!";
  315. show "Escolha o que deseja fazer:";
  316.  
  317.         switch(select("Trocar sistema de inicialização.","Configurar horários.","Configuração de monstros.","Outras configurações.")) {
  318.         next;
  319.  
  320.         case 1:
  321.  
  322.         show "[^FFC800Sala dos Cristais^000000]";
  323.         show "Ok, coloque o número correspondente ao sistema.";
  324.         show "^FF00001 = Sistema de hora";
  325.         show "e minuto por dia. Caso escolha";
  326.         show "este sistema, configure-o";
  327.         show "adequadamente, abaixo. Esse";
  328.         show "sistema consiste em somente";
  329.         show "um início por dia na hora e";
  330.         show "minuto em que você determinar.";
  331.         show "Depois só acontecerá novamente";
  332.         show "no outro dia!";
  333.         show " ";
  334.         show "2 = Sistema de vários inícios.";
  335.         show "Caso escolha esse sistema,";
  336.         show "configure-o adequadamente,";
  337.         show "abaixo. Esse sistema consiste";
  338.         show "em ter vários inícios por dia,";
  339.         show "sempre acontecerá em X horas";
  340.         show "e irá durar Y minutos.^000000";
  341.  
  342.         digit @SC_TIMESYSTEM;
  343.  
  344.                 if(@SC_TIMESYSTEM < 1 || @SC_TIMESYSTEM > 2) {
  345.                 next;
  346.                 show "[^FFC800Sala dos Cristais^000000]";
  347.                 show "Número inválido. Use somente 1 ou 2!";
  348.                 close;
  349.                 } else {
  350.                 next;
  351.                 show "[^FFC800Sala dos Cristais^000000]";
  352.                 show "Agora o sistema foi definido para "+@SC_TIMESYSTEM+"!";
  353.                 set $SC_TIMESYSTEM,@SC_TIMESYSTEM;
  354.                 close;
  355.                 }
  356.  
  357.         case 2:
  358.  
  359.         if($SC_TIMESYSTEM == 1) {
  360.         show "[^FFC800Sala dos Cristais^000000]";
  361.         show "Selecione qual tempo deseja alterar:";
  362.         show "Lembrando que estas configurações";
  363.         show "estão valendo para o Sistema 1";
  364.         show "^FF0000Hora de início: "+$SC_HSTART+"";
  365.         show "Minuto de início: "+$SC_MSTART+"";
  366.         show "Hora de término: "+$SC_HFINAL+"";
  367.         show "Minuto de término: "+$SC_MFINAL+"";
  368.  
  369.                 switch(select("Mudar horário de início.","Mudar horário de término.")) {
  370.                 next;
  371.  
  372.                 case 1:
  373.  
  374.                 show "[^FFC800Sala dos Cristais^000000]";
  375.                 show "Horário de início atual: ^0000FF"+$SC_HSTART+":"+$SC_MSTART+"^000000.";
  376.                 show "Digite a hora:";
  377.  
  378.                 digit @SC_HSTART;
  379.  
  380.                         if(@SC_HSTART < 0 || @SC_HSTART > 23) {
  381.                         next;
  382.                         show "[^FFC800Sala dos Cristais^000000]";
  383.                         show "Hora inválida. O valor precisa estar";
  384.                         show "entre 0 e 23!";
  385.                         close;
  386.                         } else {
  387.                         next;
  388.                         show "[^FFC800Sala dos Cristais^000000]";
  389.                         show "Digite os minutos:";
  390.  
  391.                         digit @SC_MSTART;
  392.  
  393.                                 if(@SC_MSTART < 0 || @SC_MSTART > 59) {
  394.                                 next;
  395.                                 show "[^FFC800Sala dos Cristais^000000]";
  396.                                 show "Minutos inválidos. O valor precisa estar";
  397.                                 show "entre 0 e 59!";
  398.                                 close;
  399.                                 } else {
  400.                                 next;
  401.                                 show "[^FFC800Sala dos Cristais^000000]";
  402.                                 show "O horário de início foi definido de ^0000FF"+$SC_HSTART+":"+$SC_MSTART+"^000000 para ^0000FF"+@SC_HSTART+":"+@SC_MSTART+"^000000!";
  403.                                 set $SC_HSTART,@SC_HSTART;
  404.                                 set $SC_MSTART,@SC_MSTART;
  405.                                 close;
  406.                                 }
  407.                         }
  408.  
  409.                 case 2:
  410.  
  411.                 show "[^FFC800Sala dos Cristais^000000]";
  412.                 show "Horário de término atual: ^0000FF"+$SC_HFINAL+":"+$SC_MFINAL+"^000000.";
  413.                 show "Digite a hora:";
  414.  
  415.                 digit @SC_HFINAL;
  416.  
  417.                         if(@SC_HFINAL < 0 || @SC_HFINAL > 23) {
  418.                         next;
  419.                         show "[^FFC800Sala dos Cristais^000000]";
  420.                         show "Hora inválida. O valor precisa estar";
  421.                         show "entre 0 e 23!";
  422.                         close;
  423.                         } else {
  424.                         next;
  425.                         show "[^FFC800Sala dos Cristais^000000]";
  426.                         show "Digite os minutos:";
  427.  
  428.                         digit @SC_MFINAL;
  429.  
  430.                                 if(@SC_MFINAL < 0 || @SC_MFINAL > 59) {
  431.                                 next;
  432.                                 show "[^FFC800Sala dos Cristais^000000]";
  433.                                 show "Minutos inválidos. O valor precisa estar";
  434.                                 show "entre 0 e 59!";
  435.                                 close;
  436.                                 } else {
  437.                                 next;
  438.                                 show "[^FFC800Sala dos Cristais^000000]";
  439.                                 show "O horário de término foi definido de ^0000FF"+$SC_HFINAL+":"+$SC_MFINAL+"^000000 para ^0000FF"+@SC_HFINAL+":"+@SC_MFINAL+"^000000!";
  440.                                 set $SC_HFINAL,@SC_HFINAL;
  441.                                 set $SC_MFINAL,@SC_MFINAL;
  442.                                 close;
  443.                                 }
  444.                         }
  445.                 }
  446.         } else {
  447.                 switch(select("Mudar intervalo de início.","Mudar duração do Evento.")) {
  448.                 next;
  449.  
  450.                 case 1:
  451.  
  452.                 show "[^FFC800Sala dos Cristais^000000]";
  453.                 show "O intervalo de tempo atual";
  454.                 show "está definido como:";
  455.                 show "Iniciar de ^0000FF"+$SC_HSTART2+"^0000FF em ^0000FF"+$SC_HSTART2+"^0000FF horas.";
  456.                 next;
  457.                 show "[^FFC800Sala dos Cristais^000000]";
  458.                 show "Digite agora o novo intervalo de tempo:";
  459.  
  460.                 digit @SC_HSTART2;
  461.  
  462.                         if(@SC_HSTART2 <= 0) {
  463.                         next;
  464.                         show "[^FFC800Sala dos Cristais^000000]";
  465.                         show "O intervalo deve ser de no mínimo uma hora.";
  466.                         close;
  467.                         } else {
  468.                         next;
  469.                         show "[^FFC800Sala dos Cristais^000000]";
  470.                         show "O intervalo de início foi";
  471.                         show "definido de ^0000FF"+$SC_HSTART2+"^000000 para ^0000FF"+@SC_HSTART2+"^000000 horas.";
  472.                         set $SC_HSTART2,@SC_HSTART2;
  473.                         close;
  474.                         }
  475.  
  476.                 case 2:
  477.  
  478.                 show "[^FFC800Sala dos Cristais^000000]";
  479.                 show "A duração do evento está";
  480.                 show "definido para ^0000FF"+$SC_MSTART2+"^000000 minutos.";
  481.                 next;
  482.                 show "[^FFC800Sala dos Cristais^000000]";
  483.                 show "Digite a nova duração em minutos:";
  484.  
  485.                 digit @SC_MSTART2;
  486.  
  487.                         if(@SC_MSTART2 < 1) {
  488.                         next;
  489.                         show "[^FFC800Sala dos Cristais^000000]";
  490.                         show "O tempo de duração mínima é de 1 minuto!";
  491.                         close;
  492.                         }
  493.                 set @SC_CONF,$SC_HSTART2*60;
  494.                         if(@SC_MSTART2 >= @SC_CONF) {
  495.                         next;
  496.                         show "[^FFC800Sala dos Cristais^000000]";
  497.                         show "A duração do evento tem";
  498.                         show "que estar dentro do";
  499.                         show "intervalo de tempo entre ele.";
  500.                         close;
  501.                         }
  502.                 show "[^FFC800Sala dos Cristais^000000]";
  503.                 show "A duração do evento foi";
  504.                 show "definida de ^0000FF"+$SC_MSTART2+"^000000 minutos para ^0000FF"+@SC_MSTART2+"^000000 minutos!";
  505.                 set $SC_MSTART2,@SC_MSTART2;
  506.                 close;
  507.                 }
  508.         }
  509.  
  510.         case 3:
  511.  
  512.         show "[^FFC800Sala dos Cristais^000000]";
  513.         show "Escolha uma opção para alterar:";
  514.  
  515.                 switch(select("Mudar cristais na Sala 1.","Mudar cristais na Sala 2.","Mudar MvP da Sala 2.","Chance de dropar Bandeiras.")) {
  516.                 next;
  517.  
  518.                 case 1:
  519.  
  520.                 show "[^FFC800Sala dos Cristais^000000]";
  521.                 show "Digite o número de cristais";
  522.                 show "que terão na Sala 1.";
  523.                 show "Valor atual: ^FF0000"+$SC_CRISTSL1+"^000000.";
  524.  
  525.                 digit @SC_CRISTSL1;
  526.  
  527.                         if(@SC_CRISTSL1 < 1) {
  528.                         next;
  529.                         show "[^FFC800Sala dos Cristais^000000]";
  530.                         show "O valor deve ser maior que 0";
  531.                         close;
  532.                         } else {
  533.                         next;
  534.                         show "[^FFC800Sala dos Cristais^000000]";
  535.                         show "O número de monstros da Sala 1";
  536.                         show "foi definido de ^0000FF"+$SC_CRISTSL1+"^000000 para ^0000FF"+@SC_CRISTSL1+"^000000!";
  537.                         set $SC_CRISTSL1,@SC_CRISTSL1;
  538.                         close;
  539.                         }
  540.  
  541.                 case 2:
  542.  
  543.                 show "[^FFC800Sala dos Cristais^000000]";
  544.                 show "Digite o número de cristais";
  545.                 show "que terão na Sala 2.";
  546.                 show "Valor atual: ^FF0000"+$SC_CRISTSL2+"^000000.";
  547.  
  548.                 digit @SC_CRISTSL2;
  549.  
  550.                         if(@SC_CRISTSL2 < 1) {
  551.                         next;
  552.                         show "[^FFC800Sala dos Cristais^000000]";
  553.                         show "O valor deve ser maior que 0";
  554.                         close;
  555.                         } else {
  556.                         next;
  557.                         show "[^FFC800Sala dos Cristais^000000]";
  558.                         show "O número de monstros da Sala 2";
  559.                         show "foi definido de ^0000FF"+$SC_CRISTSL2+"^000000 para ^0000FF"+@SC_CRISTSL2+"^000000!";
  560.                         set $SC_CRISTSL2,@SC_CRISTSL2;
  561.                         close;
  562.                         }
  563.  
  564.                 case 3:
  565.  
  566.                 show "[^FFC800Sala dos Cristais^000000]";
  567.                 show "Definições do MvP da Sala 2.";
  568.                 show "Digite o ID do novo monstro:";
  569.                 show "ID atual: ^FF0000"+$SC_SALA2MOB+"^000000.";
  570.                 show "Quantidade atual: ^FF0000"+$SC_SALA2MNB+"^000000.";
  571.                 show "Nome atual: ^FF0000"+$SC_SALA2MN$+"^000000.";
  572.  
  573.                 digit @SC_SALA2MOB;
  574.  
  575.                         if(@SC_SALA2MOB < 1001) {
  576.                         show "[^FFC800Sala dos Cristais^000000]";
  577.                         show "O número mínimo é 1001!";
  578.                         close;
  579.                         } else {
  580.                         show "[^FFC800Sala dos Cristais^000000]";
  581.                         show "Atenção, se o novo ID não existir,";
  582.                         show "vai dar erro no emulador. Deseja";
  583.                         show "proceguir mesmo assim?";
  584.                                 if(select("Sim.","Não.")==2) {
  585.                                 next;
  586.                                 show "[^FFC800Sala dos Cristais^000000]";
  587.                                 show "Ok, volte quando tiver certeza.";
  588.                                 close;
  589.                                 } else {
  590.                                 next;
  591.                                 show "[^FFC800Sala dos Cristais^000000]";
  592.                                 show "Ok, o novo ID foi definido com sucesso!";
  593.                                 set @SC_SALA2MOB,$SC_SALA2MOB;
  594.                                 close;
  595.                                 }
  596.                         }
  597.  
  598.                 next;
  599.                 show "[^FFC800Sala dos Cristais^000000]";
  600.                 show "Agora digite a quantidade de monstros que ficará na Sala 2:";
  601.                 show "Valor atual: ^FF0000"+$SC_SALA2MNB+"^000000.";
  602.  
  603.                 digit @SC_SALA2MNB;
  604.  
  605.                         if(@SC_SALA2MNB < 1) {
  606.                         next;
  607.                         show "[^FFC800Sala dos Cristais^000000]";
  608.                         show "O valor mínimo é 1.";
  609.                         close;
  610.                         } else {
  611.                         next;
  612.                         show "[^FFC800Sala dos Cristais^000000]";
  613.                         show "A nova quantidade foi definida com sucesso!";
  614.                         set $SC_SALA2MNB,@SC_SALA2MNB;
  615.                         close;
  616.                         }
  617.                 next;
  618.                 show "[^FFC800Sala dos Cristais^000000]";
  619.                 show "Agora digite o nome do monstro:";
  620.                 show "Nome atual: ^FF0000"+$SC_SALA2MN$+"^000000.";
  621.  
  622.                 digit @SC_SALA2MN$;
  623.  
  624.                 next;
  625.                 show "[^FFC800Sala dos Cristais^000000]";
  626.                 show "O novo nome foi definido com sucesso!";
  627.                 set $SC_SALA2MN$,@SC_SALA2MN$;
  628.                 close;
  629.  
  630.                 case 4:
  631.  
  632.                 show "[^FFC800Sala dos Cristais^000000]";
  633.                 show "Defina a rate de drop da";
  634.                 show "Bandeira Nacional, as rates";
  635.                 show "vão de 1 a 1000, 1000 = 100%.";
  636.                 show "Rate atual: ^FF0000"+$SC_CCHANCE+"^000000.";
  637.  
  638.                 digit @SC_CCHANCE;
  639.  
  640.                         if(@SC_CCHANCE < 1 || @SC_CHANCE > 1000) {
  641.                         next;
  642.                         show "[^FFC800Sala dos Cristais^000000]";
  643.                         show "A chance tem que ser entre 1 e 1000!";
  644.                         close;
  645.                         } else {
  646.                         next;
  647.                         show "[^FFC800Sala dos Cristais^000000]";
  648.                         show "A chance foi atualizada com sucesso!";
  649.                         set $SC_CCHANCE,@SC_CCHANCE;
  650.                         close;
  651.                         }
  652.                 }
  653.  
  654.         case 4:
  655.  
  656.         show "[^FFC800Sala dos Cristais^000000]";
  657.         show "Outras configurações...";
  658.         show "Número de Salas: ^FF0000"+$SC_MAXSL+"^000000.";
  659.         show "Capacidade Máxima:";
  660.         show "Sala 1: ^FF0000"+$SC_SL1MAX+"^000000 | Sala 2: ^FF0000"+$SC_SL2MAX+"^000000.";
  661.  
  662.                 switch(select("Mudar número de salas.","Capacidade Sala 1.","Capacidade Sala 2.")) {
  663.                 next;
  664.  
  665.                 case 1:
  666.  
  667.                 show "[^FFC800Sala dos Cristais^000000]";
  668.                 show "Escolha o número de salas,";
  669.                 show "somente 1 ou 2.";
  670.                 show "Valor Atual: ^FF0000"+$SC_MAXSL+"^000000.";
  671.  
  672.                 digit @SC_MAXSL;
  673.  
  674.                         if(@SC_MAXSL < 1 || @SC_MAXSL > 2) {
  675.                         next;
  676.                         show "[^FFC800Sala dos Cristais^000000]";
  677.                         show "O valor só pode ser 1 ou 2.";
  678.                         close;
  679.                         } else {
  680.                         next;
  681.                         show "[^FFC800Sala dos Cristais^000000]";
  682.                         show "O número de salas foi atualizado com sucesso!";
  683.                         set $SC_MAXSL,@SC_MAXSL;
  684.                         close;
  685.                         }
  686.  
  687.                 case 2:
  688.  
  689.                 show "[^FFC800Sala dos Cristais^000000]";
  690.                 show "Escolha a quantidade de";
  691.                 show "jogadores que a sala 1";
  692.                 show "irá suportar:";
  693.                 show "Valor atual: ^FF0000"+$SC_SL1MAX+"^000000.";
  694.  
  695.                 digit @SC_SL1MAX;
  696.  
  697.                         if(@SC_SL1MAX < 1) {
  698.                         next;
  699.                         show "[^FFC800Sala dos Cristais^000000]";
  700.                         show "A capacidade deve ser de pelo menos uma pessoa!";
  701.                         close;
  702.                         } else {
  703.                         next;
  704.                         show "[^FFC800Sala dos Cristais^000000]";
  705.                         show "A capacidade máxima da Sala 1 foi atualizada com sucesso!";
  706.                         set $SC_SL1MAX,@SC_SL1MAX;
  707.                         close;
  708.                         }
  709.  
  710.                 case 3:
  711.  
  712.                 show "[^FFC800Sala dos Cristais^000000]";
  713.                 show "Escolha a quantidade de";
  714.                 show "jogadores que a sala 2";
  715.                 show "irá suportar:";
  716.                 show "Valor atual: ^FF0000"+$SC_SL2MAX+"^000000.";
  717.  
  718.                 digit @SC_SL2MAX;
  719.  
  720.                         if(@SC_SL2MAX < 1) {
  721.                         next;
  722.                         show "[^FFC800Sala dos Cristais^000000]";
  723.                         show "A capacidade deve ser de pelo menos uma pessoa!";
  724.                         close;
  725.                         } else {
  726.                         next;
  727.                         show "[^FFC800Sala dos Cristais^000000]";
  728.                         show "A capacidade máxima da Sala 2 foi atualizada com sucesso!";
  729.                         set $SC_SL2MAX,@SC_SL2MAX;
  730.                         close;
  731.                         }
  732.                 }
  733.         }
  734. }
  735.  
  736.         if($SC_INIT == 0) {
  737.         show "[^FFC800Sala dos Cristais^000000]";
  738.         show "A sala dos cristais está fechada.";
  739.         close;
  740.         }
  741.  
  742. SC_INICIO:
  743. show "[^FFC800Sala dos Cristais^000000]";
  744. show "Olá, deseja entrar na Sala dos Cristais?";
  745. show "Capacidade Sala 1: ^FF0000"+getmapusers("hunter_1-1")+"^000000/^0000FF"+$SC_SL1MAX+"^000000";
  746. if($SC_MAXSL == 2) show "Capacidade Sala 2: ^FF0000"+getmapusers("hunter_2-1")+"^000000/^0000FF"+$SC_SL2MAX+"^000000";
  747.  
  748.         if($SC_MAXSL <= 1 || $SC_MAXSL > 2) {
  749.  
  750.                 if(select("Entrar na Sala ^FF0000[^0000FF"+getmapusers("hunter_1-1")+"^FF0000]^000000","Não entrar.")==2) {
  751.  
  752.                 next;
  753.                 show "[^FFC800Sala dos Cristais^000000]";
  754.                 show "Ok então, volte quando quiser!";
  755.                 close;
  756.                 } else {
  757.                 next;
  758.                         if(getmapusers("hunter_1-1") >= $SC_SL1MAX) {
  759.                         show "[^FFC800Sala dos Cristais^000000]";
  760.                         show "Infelizmente a sala está lotada. Volte mais tarde.";
  761.                         close;
  762.                         }
  763.  
  764.                 if(#SC_EXPULSION == 1 && #SC_TURN == $SC_TURN) {
  765.                 show "[^FFC800Sala dos Cristais^000000]";
  766.                 show "Desculpe, você caiu na armadilha de expulsão. Volte na próxima rodada!";
  767.                 close;
  768.                 }
  769.  
  770.                 set @SC_ROOM,1;
  771.                 warp "hunter_1-1",0,0;
  772.                 end;
  773.  
  774.                 }
  775.         } else {
  776.  
  777.                 switch(select("Entrar na Sala 1 ^FF0000[^0000FF"+getmapusers("hunter_1-1")+"^FF0000]^000000","Entrar na Sala 2 ^FF0000[^0000FF"+getmapusers("hunter_1-1")+"^FF0000]^000000","Não entrar.")) {
  778.                 next;
  779.  
  780.                 case 1:
  781.  
  782.                         if(getmapusers("hunter_1-1") >= $SC_SL1MAX) {
  783.                         show "[^FFC800Sala dos Cristais^000000]";
  784.                         show "Infelizmente a sala está lotada. Volte mais tarde.";
  785.                         close;
  786.                         }
  787.  
  788.                 if(#SC_EXPULSION == 1 && #SC_TURN == $SC_TURN) {
  789.                 show "[^FFC800Sala dos Cristais^000000]";
  790.                 show "Desculpe, você caiu na armadilha de expulsão. Volte na próxima rodada!";
  791.                 close;
  792.                 }
  793.  
  794.                 set @SC_ROOM,1;
  795.                 warp "hunter_1-1",0,0;
  796.                 end;
  797.  
  798.                 case 2:
  799.  
  800.                         if(getmapusers("hunter_2-1") >= $SC_SL2MAX) {
  801.                         show "[^FFC800Sala dos Cristais^000000]";
  802.                         show "Infelizmente a sala está lotada. Volte mais tarde.";
  803.                         close;
  804.                         }
  805.  
  806.                 if(#SC_EXPULSION == 1 && #SC_TURN == $SC_TURN) {
  807.                 show "[^FFC800Sala dos Cristais^000000]";
  808.                 show "Desculpe, você caiu na armadilha de expulsão. Volte na próxima rodada!";
  809.                 close;
  810.                 }
  811.  
  812.                 set @SC_ROOM,2;
  813.                 warp "hunter_2-1",0,0;
  814.                 end;
  815.  
  816.                 case 3:
  817.  
  818.                 show "[^FFC800Sala dos Cristais^000000]";
  819.                 show "Ok então, volte quando quiser!";
  820.                 close;
  821.         }
  822. }
  823. }
  824.  
  825.  
  826.  
  827. function        script  SC_DISPARM      {
  828.  
  829. set @SC_RANDOM,rand(1,100);
  830.  
  831.         if(@SC_RANDOM <= $SC_ARMEXIT) {
  832.         specialeffect2 69;
  833.         dispbottom "Armadilha! Você será jogado para fora.";
  834.         warp "izlude",142,128;
  835.         return;
  836.         } else {
  837.         goto ARMEXPU;
  838.         }
  839.  
  840. ARMEXPU:
  841.  
  842. set @SC_RANDOM,rand(1,100);
  843.  
  844.         if(@SC_RANDOM <= $SC_ARMEXPU) {
  845.         specialeffect2 69;
  846.         dispbottom "Armadilha! Você será expulso da rodada.";
  847.         warp "izlude",142,128;
  848.         set #SC_EXPULSION,1;
  849.         set #SC_TURN,$SC_TURN;
  850.         return;
  851.         } else {
  852.         goto ARMBON1;
  853.         }
  854.  
  855.  
  856. ARMBON1:
  857.  
  858. set @SC_RANDOM,rand(1,100);
  859.  
  860.         if(@SC_RANDOM <= $SC_ARMBON1) {
  861.         specialeffect2 100;
  862.         dispbottom "Bônus! Você recebeu 2 Bandeiras Nacionais!.";
  863.         additem 7549,2;
  864.         return;
  865.         } else {
  866.         goto ARMBON2;
  867.         }
  868.  
  869. ARMBON2:
  870.  
  871. set @SC_RANDOM,rand(1,100);
  872.  
  873.         if(@SC_RANDOM <= $SC_ARMBON2) {
  874.         specialeffect2 100;
  875.         dispbottom "Bônus! Você recebeu 1 Bandeira Nacional!.";
  876.         additem 7549,1;
  877.         return;
  878.         } else {
  879.         goto ARMAGIL;
  880.         }
  881.  
  882. ARMAGIL:
  883.  
  884. set @SC_RANDOM,rand(1,100);
  885.  
  886.         if(@SC_RANDOM <= $SC_ARMAGIL) {
  887.         dispbottom "Bônus! Você recebeu Aumentar Agilidade Nv. 10!.";
  888.         sc_start 32,240000,10;
  889.         skilleffect 29,0;
  890.         return;
  891.         } else {
  892.         goto ARMBONN;
  893.         }
  894.  
  895. ARMBONN:
  896.  
  897. set @SC_RANDOM,rand(1,100);
  898.  
  899.         if(@SC_RANDOM <= $SC_ARMBONN) {
  900.                 if(countitem(7549) > 0) {
  901.                 specialeffect2 62;
  902.                 dispbottom "Armadilha! Você perdeu 1 Bandeira Nacional!";
  903.                 delitem 7549,1;
  904.                 }
  905.         return;
  906.         }
  907. }
  908.  
  909.  
  910.  
  911. -       script  SC_KILLCRISTAL  -1,{
  912.  
  913. OnSC_CRISTALKILLSL1:
  914.  
  915. monster $SC_MAPASL1$,0,0,"Cristal",1398,1,"SC_KILLCRISTAL::OnSC_CRISTALKILLSL1";
  916.  
  917.         if(rand(1,1000) <= $SC_CCHANCE) {
  918.         additem 7549,1;
  919.         }
  920.  
  921.         set @SC_RANDOM,rand(1,100);
  922.  
  923.                 if(@SC_RANDOM <= $SC_ARMTEL1) {
  924.                 dispbottom "Monstro Bônus! Você será levado a uma sala com 10 Cristais!";
  925.                 warp "knight_1-1",0,0;
  926.                 end;
  927.                 }
  928.  
  929. end;
  930.  
  931. OnSC_CRISTALKILLSL2:
  932.  
  933. monster $SC_MAPASL2$,0,0,"Cristal",1398,1,"SC_KILLCRISTAL::OnSC_CRISTALKILLSL2";
  934.  
  935.         if(rand(1,1000) <= $SC_CCHANCE) {
  936.         additem 7549,1;
  937.         }
  938.  
  939.         set @SC_RANDOM,rand(1,100);
  940.  
  941.                 if(@SC_RANDOM <= $SC_ARMTEL1) {
  942.                 dispbottom "Monstro Armadilha! Você será levado a uma sala com Cristais e Monstros!";
  943.                 warp "knight_2-1",0,0;
  944.                 end;
  945.                 }
  946.  
  947. end;
  948.  
  949. OnSC_MVPKILLSL2:
  950.  
  951. monster "hunter_2-1",0,0,$SC_SALA2MN$,$SC_SALA2MOB,1,"SC_KILLCRISTAL::OnSC_MVPKILLSL2";
  952. end;
  953.  
  954. OnSC_CRISTALKPVP1:
  955.  
  956.         if(@SC_NCKILLS == $SC_CRISTSL1) {
  957.         set @SC_NCKILLS,0;
  958.         if(@SC_ROOM == 1) warp $SC_MAPASL1$,0,0;
  959.         if(@SC_ROOM == 2) warp $SC_MAPASL2$,0,0;
  960.         if(@SC_ROOM <= 0 || @SC_ROOM > 2) warp "izlude",142,128; logmes "O Player "+strcharinfo(0)+" entrou na Sala dos Cristais por outro meio a não ser pelo NPC.";
  961.         end;
  962.         }
  963.  
  964. getmapxy(@SC_MAP$,@SC_MAPX,@SC_MAPY,0);
  965. monster @SC_MAP$,0,0,"Cristal",1398,1,"SC_KILLCRISTAL::OnSC_CRISTALKPVP1";
  966.  
  967. set @SC_NCKILLS,@SC_NCKILLS+1;
  968.  
  969.         if(rand(1,1000) <= $SC_CCHANCE) {
  970.         additem 7549,1;
  971.         end;
  972.         }
  973. end;
  974.  
  975. OnSC_CRISTALKPVP2:
  976.  
  977.         if(@SC_NCKILLS == $SC_CRISTSL2) {
  978.         set @SC_NCKILLS,0;
  979.         if(@SC_ROOM == 1) warp $SC_MAPASL1$,0,0;
  980.         if(@SC_ROOM == 2) warp $SC_MAPASL2$,0,0;
  981.         if(@SC_ROOM <= 0 || @SC_ROOM > 2) warp "izlude",142,128; logmes "O Player "+strcharinfo(0)+" entrou na Sala dos Cristais por outro meio a não ser pelo NPC.";
  982.         end;
  983.         }
  984.  
  985. getmapxy(@SC_MAP$,@SC_MAPX,@SC_MAPY,0);
  986. monster @SC_MAP$,0,0,"Cristal",1398,1,"SC_KILLCRISTAL::OnSC_CRISTALKPVP2";
  987.  
  988. set @SC_NCKILLS,@SC_NCKILLS+1;
  989.  
  990.         if(rand(1,1000) <= $SC_CCHANCE) {
  991.         additem 7549,1;
  992.         end;
  993.         }
  994. end;
  995.  
  996. OnSC_CRISTALKMVP1:
  997.  
  998. getmapxy(@SC_MAP$,@SC_MAPX,@SC_MAPY,0);
  999. monster "knight_2-1",0,0,$SC_SALA2MN$,$SC_SALA2MOB,1,"SC_KILLCRISTAL::OnSC_CRISTALKMVP1";
  1000. end;
  1001. }
  1002.  
  1003. -       script  SC_TIMER        -1,{
  1004.  
  1005. OnInit:
  1006.  
  1007.         if($SC_TIMESYSTEM == 2 && $SC_INIT == 0) {
  1008.         set $SC_S2TCH,gettime(3)+$SC_HSTART2;
  1009.         set $SC_S2TCM,gettime(2)+$SC_MSTART2;
  1010.         }
  1011.  
  1012. initnpctimer;
  1013. setnpctimer gettime(1)*1000;
  1014. end;
  1015.  
  1016. OnTimer60000:
  1017.  
  1018.         if($SC_TIMESYSTEM == 1) {
  1019.                 if(gettime(3) == $SC_HSTART && gettime(2) == $SC_MSTART) callfunc "SC_INITIALIZE";
  1020.                 if(gettime(3) == $SC_HFINAL && gettime(2) == $SC_MFINAL) callfunc "SC_FINALIZE";
  1021.         } else {
  1022.                 if(gettime(3) == $SC_S2TCH && $SC_INIT == 0) callfunc "SC_INITIALIZE";
  1023.                 if(gettime(3) == $SC_S2TCH && gettime(2) == $SC_S2TCM && $SC_INIT == 1) callfunc "SC_FINALIZE";
  1024.         }
  1025.  
  1026. goto OnInit;
  1027.  
  1028. }
  1029.  
  1030. function        script  SC_INITIALIZE   {
  1031.  
  1032. set $SC_INIT,1;
  1033. announce "A Sala dos Cristais está aberta!",bc_all,0xFFC800;
  1034. setnpctimer 0;
  1035. return;
  1036. }
  1037.  
  1038. function        script  SC_FINALIZE     {
  1039.  
  1040. if($SC_INIT == 0) end;
  1041. announce "A Sala dos Cristais está fechada!",bc_all,0xFFC800;
  1042. set $SC_TURN,$SC_TURN+1;
  1043. set $SC_INIT,0;
  1044. mapwarp $SC_MAPASL1$,"izlude",142,128;
  1045. mapwarp $SC_MAPASL2$,"izlude",142,128;
  1046. mapwarp "knight_1-1","izlude",142,128;
  1047. mapwarp "knight_2-1","izlude",142,128;
  1048. setnpctimer 0;
  1049. return;
  1050. }
  1051.  
  1052. //MAPFLAGS... COMENTE AS QUE NÃO QUISER.
  1053. //Aqui está definido os mapas padrões. Troque aqui também, caso queira personalizar.
  1054.  
  1055. //DESABILITAR /MEMO:
  1056. hunter_1-1      mapflag nomemo
  1057. hunter_2-1      mapflag nomemo
  1058. hunter_3-1      mapflag nomemo
  1059. knight_1-1      mapflag nomemo
  1060. knight_2-1      mapflag nomemo
  1061. knight_3-1      mapflag nomemo