Advertisement
Guest User

Untitled

a guest
Jul 28th, 2013
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.41 KB | None | 0 0
  1. // =========================================================== //
  2. // Nome: Devil Square por Stuff
  3. // =========================================================== //
  4. // Versão: 1.0
  5. // =========================================================== //
  6. // Autor: Wenden
  7. // =========================================================== //
  8. // Descrição: É como outros devil square a diferença é que cada monstro que você mata
  9. // você recebe uma quantidade aleatória de certo item, tanto a quantidade quanto o item
  10. // é configurado aqui no script na linha 165. Os item ganhados poderão ser trocados
  11. // no próprio npc por outros itens configurados por você na linha 165.
  12. // O Npc é em SQL onde são salvos os nomes, char ids, accounts ids e pontos dos jogadores
  13. // quando matarem os monstros. Quando a última rodada chegar ao fim, que no caso a última
  14. // é a 5° rodada, o npc fará um lista dos 5 jogadores que mais mataram monstros, eles serão
  15. // teletransportados para o meio do mapa onde irão correr atrás de destruir as Caixas do Tesouro.
  16. // O outros jogadores que não aparecem na lista dos 5 que mais mataram monstros serão
  17. // teletransportados para prontera.
  18. // =========================================================== //
  19.  
  20. prontera,174,196,5 script Devil Square 792,{
  21.  
  22. mes "["+strnpcinfo(1)+"]";
  23. mes "Bem-vindo aventureiro.";
  24. mes "Eu tenho um desafio para você";
  25. mes "deseja aceitar?";
  26. next;
  27. switch(select("Sim, eu aceito:Não, volto depois:Trocar "+getitemname($@id)+":Quero informações")){
  28.  
  29. Case 1:
  30. if($aberto == 0){
  31. mes "["+strnpcinfo(1)+"]";
  32. mes "A Devil Square está fechado";
  33. mes "no momento, volte mais tarde.";
  34. Close;
  35. }
  36.  
  37. percentheal 100,100;
  38. warp "ordeal_1-1",189,189;
  39. announce strcharinfo(0)+" entrou na Devil Square.",8;
  40. end;
  41.  
  42. Case 2:
  43. mes "["+strnpcinfo(1)+"]";
  44. mes "Estarei aqui quando precisar";
  45. mes "de um desafio.";
  46. Close;
  47.  
  48. Case 3:
  49. if(!countitem($@id)){
  50. mes "["+strnpcinfo(1)+"]";
  51. mes "Você não possui nenhuma";
  52. mes "^FF0000"+getitemname($@id)+"^000000.";
  53. Close;
  54. }
  55. mes "["+strnpcinfo(1)+"]";
  56. mes "Escolha qual item deseja trocar";
  57. mes "por ^FF0000"+getitemname($@id)+"^000000.";
  58. next;
  59.  
  60. set @menu$,"";
  61. for(set @i,0; @i < getarraysize($@l); set @i,@i+1)
  62. set @menu$,@menu$+""+getitemname($@l[@i])+" - ^FF0000"+$@y[@i]+"^000000x "+getitemname($@id)+":";
  63. set @menu$,@menu$+"Cancelar";
  64. set @sel,select(@menu$)-1;
  65. if(@sel == getarraysize($@l)) Close;
  66.  
  67. mes "["+strnpcinfo(1)+"]";
  68. mes "Agora me diga quantos";
  69. mes "^FF0000"+getitemname($@l[@sel])+"^000000 você quer.";
  70. mes "- 0 para Cencelar.";
  71. next;
  72. input @qnt;
  73. if(@qnt == 0) Close;
  74.  
  75. set @cost,$@y[@sel]*@qnt;
  76.  
  77. mes "["+strnpcinfo(1)+"]";
  78. mes "^FF0000"+@qnt+"^000000x ^FF0000"+getitemname($@l[@sel])+"^000000";
  79. mes "São ^FF0000"+@cost+"^000000x ^FF0000"+getitemname($@id)+"^000000.";
  80. mes "Deseja realizar a troca?";
  81. next;
  82. if(select("Sim:Não") == 2) Close;
  83.  
  84. if(countitem($@id) < @cost){
  85. mes "["+strnpcinfo(1)+"]";
  86. mes "Você não tem ^FF0000"+getitemname($@id)+"^000000";
  87. mes "suficientes para realizar a troca.";
  88. Close;
  89. }
  90. mes "["+strnpcinfo(1)+"]";
  91. mes "Está feito...";
  92. mes "Aqui está seus";
  93. mes "^FF0000"+getitemname($@l[@sel])+"^000000.";
  94. Close2;
  95. delitem $@id,@cost;
  96. getitem $@l[@sel],@qnt;
  97. end;
  98.  
  99. Case 4:
  100. mes "["+strnpcinfo(1)+"]";
  101. mes "A Devil Square é um evento";
  102. mes "automático ondes surgem vários";
  103. mes "monstros e o objetivo dos";
  104. mes "jogadores é matar todos os monstros.";
  105. next;
  106. mes "["+strnpcinfo(1)+"]";
  107. mes "O Objetivo final é chegar a última";
  108. mes "rodada onde surgem as";
  109. mes "Caixas do Tesouro.";
  110. next;
  111. mes "["+strnpcinfo(1)+"]";
  112. mes "A cada monstro que você mata";
  113. mes "você recebe ^FF0000"+getitemname($@id)+"^000000";
  114. mes "a quantidade é aleatória.";
  115. mes "As Caixas do Tesouro dão uma";
  116. mes "quantidade mais alta de ^FF0000"+getitemname($@id)+"^000000.";
  117. next;
  118. mes "["+strnpcinfo(1)+"]";
  119. mes "Com esses itens você pode trocar";
  120. mes "aqui mesmo por itens, os itens são";
  121. mes "configurados pelo Administrador.";
  122. next;
  123. mes "["+strnpcinfo(1)+"]";
  124. mes "Mas para chegar até a rodada das";
  125. mes "Caixas do Tesouro você precisar";
  126. mes "matar muitos monstros, porque";
  127. mes "somente os 5 jogadores que";
  128. mes "mais matarem monstros irão";
  129. mes "chegar a rodada Final.";
  130. next;
  131. mes "["+strnpcinfo(1)+"]";
  132. mes "Os demais serão teletransportados";
  133. mes "para prontera, os jogadores que";
  134. mes "continuarem no evento irão correr";
  135. mes "atrás das Caixas do Tesouro.";
  136. Close;
  137. }
  138.  
  139. OnInit:
  140. // Configurações
  141. set $@id,673; // Id do item que será recebido ao matar os monstros e as caixas do tesouro. Padrão: [671 = Moeda Poring].
  142. setarray $@p[0],1,2; // Quantidade de itens que serão sorteados ao matar os monstros. Padrão: [Entre 1 e 2].
  143. setarray $@b[0],20,30,40,50; // Quantidade de itens que serão sorteados ao destruir as Caixas do Tesouro. Padrão: [Entre 20,30,40 e 50];
  144. setarray $@l[0],671,7549,678,7135,7136,7139; // Id dos itens que poderão ser trocados.
  145. setarray $@y[0],12,24,20,12,12,24; // Preço dos itens que poderão ser trocados.
  146.  
  147. waitingroom "Devil Square",0;
  148. end;
  149. }
  150.  
  151. ordeal_1-1,182,183,5 script DS2 -1,{
  152.  
  153. OnTimer30000:
  154. if($status == 0) end;
  155. if (getmapusers("ordeal_1-1") == 0){ Announce "Todos os players foram mortos na Devil Square!!",8; set $status,0; killmonsterall "ordeal_1-1"; end; }
  156. initnpctimer;
  157. end;
  158.  
  159. }
  160.  
  161. ordeal_1-1,182,183,5 script DS3 -1,{
  162.  
  163. OnMinute50:
  164. Announce "O portal para a Devil Square está aberto, e em [5] minutos ela terá inicio!",8;
  165. initnpctimer; killmonsterall "ordeal_1-1"; set $aberto,1; disablenpc "dsq4"; set $status,1; query_sql "DELETE FROM `devilsquare`"; end;
  166.  
  167. OnTimer60000:
  168. Announce "O portal para a Devil Square está aberto, e em [4] minutos ela terá inicio!",8; end;
  169.  
  170. OnTimer120000:
  171. Announce "O portal para a Devil Square está aberto, e em [3] minutos ela terá inicio!",8; end;
  172.  
  173. OnTimer180000:
  174. Announce "O portal para a Devil Square está aberto, e em [2] minutos ela terá inicio!",8; end;
  175.  
  176. OnTimer240000:
  177. Announce "O portal para a Devil Square está aberto, e em [1] minuto ela terá inicio!",8; end;
  178. OnTimer300000:
  179. Announce "A Devil Square começou, boa sorte a todos!",8; initnpctimer "DS2"; set $aberto,0;
  180.  
  181. set $mobs,20;
  182. areamonster "ordeal_1-1",183,182,246,244,"[DS] Orc Zumbi",1153,2,"DS3::Ondsdead";
  183. areamonster "ordeal_1-1",183,182,246,244,"[DS] Orc Esqueleto",1152,4,"DS3::Ondsdead";
  184. areamonster "ordeal_1-1",205,205,219,219,"[DS] Familiar",1005,2,"DS3::Ondsdead";
  185. areamonster "ordeal_1-1",212,215,222,220,"[DS] Drainliar",1111,2,"DS3::Ondsdead";
  186. areamonster "ordeal_1-1",229,233,183,182,"[DS] Chon Chon de Aço",1042,2,"DS3::Ondsdead";
  187. areamonster "ordeal_1-1",230,246,246,244,"[DS] Zenorc",1177,2,"DS3::Ondsdead";
  188. areamonster "ordeal_1-1",241,252,205,205,"[DS] Orc Arqueiro",1189,2,"DS3::Ondsdead";
  189. areamonster "ordeal_1-1",251,235,222,220,"[DS] Sorrateiro",1037,2,"DS3::Ondsdead";
  190. areamonster "ordeal_1-1",203,204,194,195,"[DS] Lobo",1013,2,"DS3::Ondsdead";
  191. end;
  192.  
  193. Ondsdead:
  194. if ($status == 0) end;
  195. set $mobs,$mobs-1;
  196. set @premio,rand(getarraysize($@p));
  197. getitem $@id,$@p[@premio];
  198. callfunc "Checador",1;
  199. if($mobs == 10){ Mapannounce "ordeal_1-1","Devil Square: Faltam 10 monstros para a 2° rodada!",8; }
  200. if($mobs == 0){ Announce "Devil Square: Começou a 2° rodada de monstros!",8; goto Ondsround2; }
  201. end;
  202.  
  203. Ondsround2:
  204. set $mobs,20;
  205. areamonster "ordeal_1-1",183,182,246,244,"[DS] Esqueleto Soldado",1028,1,"DS3::Ondsdead2";
  206. areamonster "ordeal_1-1",183,182,246,244,"[DS] Esqueleto Soldado",1028,2,"DS3::Ondsdead2";
  207. areamonster "ordeal_1-1",205,205,219,219,"[DS] Orc Arqueiro",1189,1,"DS3::Ondsdead2";
  208. areamonster "ordeal_1-1",212,215,222,220,"[DS] Orc Arqueiro",1189,2,"DS3::Ondsdead2";
  209. areamonster "ordeal_1-1",229,233,183,182,"[DS] Arenoso",1165,2,"DS3::Ondsdead2";
  210. areamonster "ordeal_1-1",230,246,246,244,"[DS] Arenoso",1165,2,"DS3::Ondsdead2";
  211. areamonster "ordeal_1-1",241,252,205,205,"[DS] Esqueleto Arqueiro",1016,2,"DS3::Ondsdead2";
  212. areamonster "ordeal_1-1",251,235,222,220,"[DS] Esqueleto Arqueiro",1016,1,"DS3::Ondsdead2";
  213. areamonster "ordeal_1-1",203,204,194,195,"[DS] Minorus",1149,1,"DS3::Ondsdead2";
  214. areamonster "ordeal_1-1",251,235,222,220,"[DS] Minorus",1149,2,"DS3::Ondsdead2";
  215. areamonster "ordeal_1-1",210,208,194,195,"[DS] Réquiem",1164,2,"DS3::Ondsdead2";
  216. areamonster "ordeal_1-1",203,204,194,195,"[DS] Réquiem",1164,2,"DS3::Ondsdead2";
  217. end;
  218.  
  219. Ondsdead2:
  220. if ($status == 0) end;
  221. set $mobs,$mobs-1;
  222. set @premio,rand(getarraysize($@p));
  223. getitem $@id,$@p[@premio];
  224. callfunc "Checador",1;
  225. if($mobs == 10){ Mapannounce "ordeal_1-1","Devil Square: Faltam 10 monstros para 3° rodada!",8; }
  226. if($mobs == 0){ Announce "Devil Square: Começou a 3° rodada de monstros!",8; goto Ondsround3; }
  227. end;
  228.  
  229. Ondsround3:
  230. set $mobs,20;
  231. areamonster "ordeal_1-1",183,182,246,244,"[DS] Diabinho",1292,2,"DS3::Ondsdead3";
  232. areamonster "ordeal_1-1",183,182,246,244,"[DS] Diabinho",1292,1,"DS3::Ondsdead3";
  233. areamonster "ordeal_1-1",205,205,219,219,"[DS] Leib Olmai",1306,2,"DS3::Ondsdead3";
  234. areamonster "ordeal_1-1",212,215,222,220,"[DS] Leib Olmai",1306,1,"DS3::Ondsdead3";
  235. areamonster "ordeal_1-1",229,233,183,182,"[DS] Gullinbursti",1311,1,"DS3::Ondsdead3";
  236. areamonster "ordeal_1-1",230,246,246,244,"[DS] Gullinbursti",1311,2,"DS3::Ondsdead3";
  237. areamonster "ordeal_1-1",241,252,205,205,"[DS] Gullinbursti",1311,1,"DS3::Ondsdead3";
  238. areamonster "ordeal_1-1",251,235,222,220,"[DS] Serial Killer",1507,1,"DS3::Ondsdead3";
  239. areamonster "ordeal_1-1",203,204,194,195,"[DS] Serial Killer",1507,1,"DS3::Ondsdead3";
  240. areamonster "ordeal_1-1",251,235,222,220,"[DS] Serial Killer",1507,2,"DS3::Ondsdead3";
  241. areamonster "ordeal_1-1",210,208,194,195,"[DS] Esqueleto General",1290,1,"DS3::Ondsdead3";
  242. areamonster "ordeal_1-1",203,204,194,195,"[DS] Esqueleto General",1290,2,"DS3::Ondsdead3";
  243. areamonster "ordeal_1-1",251,235,222,220,"[DS] Gato de Nove Caudas",1307,1,"DS3::Ondsdead3";
  244. areamonster "ordeal_1-1",230,246,246,244,"[DS] Senhor dos Orcs",1190,1,"DS3::Ondsdead3";
  245. areamonster "ordeal_1-1",212,215,222,220,"[DS] Orc Héroi",1087,1,"DS3::Ondsdead3";
  246. end;
  247.  
  248. Ondsdead3:
  249. if ($status == 0) end;
  250. set $mobs,$mobs-1;
  251. set @premio,rand(getarraysize($@p));
  252. getitem $@id,$@p[@premio];
  253. callfunc "Checador",1;
  254. if($mobs == 10){ Mapannounce "ordeal_1-1","Devil Square: Faltam 10 monstros para 4° rodada!",8; }
  255. if($mobs == 0){ Announce "Devil Square: Começou a 4° rodada de monstros!",8; goto Ondsround4; }
  256. end;
  257.  
  258. Ondsround4:
  259. set $mobs,17;
  260. areamonster "ordeal_1-1",190,189,190,189,"[DS] Seyren Windsor",1634,1,"DS3::Ondsdead4";
  261. areamonster "ordeal_1-1",207,207,207,207,"[DS] Eremes Guile",1635,4,"DS3::Ondsdead4";
  262. areamonster "ordeal_1-1",217,217,217,217,"[DS] Howard Alt-Eisen",1636,5,"DS3::Ondsdead4";
  263. areamonster "ordeal_1-1",227,226,227,226,"[DS] Margaretha Sorin",1637,4,"DS3::Ondsdead4";
  264. areamonster "ordeal_1-1",241,241,241,241,"[DS] Kathryne Keyron",1639,1,"DS3::Ondsdead4";
  265. areamonster "ordeal_1-1",241,241,241,241,"[DS] Atroce",1785,1,"DS3::Ondsdead4";
  266. areamonster "ordeal_1-1",241,241,241,241,"[DS] Dragão Mutante",1262,1,"DS3::Ondsdead4";
  267. end;
  268.  
  269. Ondsdead4:
  270. if ($status == 0) end;
  271. set $mobs,$mobs-1;
  272. set $@premio,rand(getarraysize($@p));
  273. getitem $@id,$@p[$@premio];
  274. callfunc "Checador",1;
  275. if($mobs == 5){ Mapannounce "ordeal_1-1","Devil Square: Faltam 5 monstros para 5° rodada!",8; }
  276. if($mobs == 0){ Announce "Devil Square: Começou a 5° rodada de monstros!",8; goto Ondsround5; }
  277. end;
  278.  
  279. Ondsround5:
  280. set $mobs,10;
  281. areamonster "ordeal_1-1",233,246,233,246,"[DS] Salamandra",1831,1,"DS3::Ondsdead5";
  282. areamonster "ordeal_1-1",246,245,246,245,"[DS] Amon-Rá",1511,1,"DS3::Ondsdead5";
  283. areamonster "ordeal_1-1",189,188,189,188,"[DS] Doppelganger",1046,1,"DS3::Ondsdead5";
  284. areamonster "ordeal_1-1",236,236,236,236,"[DS] Guardião Espadachim",1829,1,"DS3::Ondsdead5";
  285. areamonster "ordeal_1-1",196,195,196,195,"[DS] Senhor das Trevas",1272,1,"DS3::Ondsdead5";
  286. areamonster "ordeal_1-1",206,205,206,205,"[DS] Kasa",1833,1,"DS3::Ondsdead5";;
  287. areamonster "ordeal_1-1",213,213,213,213,"[DS] Faraó",1157,1,"DS3::Ondsdead5";
  288. areamonster "ordeal_1-1",183,182,246,244,"[DS] Bafomé",1039,1,"DS3::Ondsdead5";
  289. areamonster "ordeal_1-1",224,223,224,223,"[DS] Kasa",1833,1,"DS3::Ondsdead5";
  290. areamonster "ordeal_1-1",243,232,243,232,"[DS] Guardião Arqueiro",1830,1,"DS3::Ondsdead5";
  291. end;
  292.  
  293. Ondsdead5:
  294. if ($status == 0) end;
  295. set $mobs,$mobs-1;
  296. set @premio,rand(getarraysize($@p));
  297. getitem $@id,$@p[@premio];
  298. callfunc "Checador",1;
  299. if($mobs == 5){ Announce "Devil Square: Faltam 5 monstros para as Caixas do Tesouro surgirem!",8; }
  300. if($mobs == 0){ Announce "Devil Square: 8 Caixas do Tesouros surgiram! Corram para destruir-las...",8; goto Ondsbox; }
  301. end;
  302.  
  303. Ondsbox:
  304. enablenpc "dsq4";
  305. sleep2 7000;
  306. set $mobs,8;
  307. monster "ordeal_1-1",245,245,"Caixa do Tesouro",1334,1,"DS3::Ondsboxdead";
  308. monster "ordeal_1-1",54,54,"Caixa do Tesouro",1334,1,"DS3::Ondsboxdead";
  309. monster "ordeal_1-1",149,26,"Caixa do Tesouro",1334,1,"DS3::Ondsboxdead";
  310. monster "ordeal_1-1",245,52,"Caixa do Tesouro",1334,1,"DS3::Ondsboxdead";
  311. monster "ordeal_1-1",273,150,"Caixa do Tesouro",1334,1,"DS3::Ondsboxdead";
  312. monster "ordeal_1-1",150,273,"Caixa do Tesouro",1334,1,"DS3::Ondsboxdead";
  313. monster "ordeal_1-1",54,245,"Caixa do Tesouro",1334,1,"DS3::Ondsboxdead";
  314. monster "ordeal_1-1",27,150,"Caixa do Tesouro",1334,1,"DS3::Ondsboxdead";
  315. end;
  316.  
  317. Ondsboxdead:
  318. if ($status == 0) end;
  319. set $mobs,$mobs-1;
  320. Announce "Devil Square: O jogador [ "+ strcharinfo(0)+" ] abriu uma das Caixas do Tesouro.",8;
  321. set @premio,rand(getarraysize($@b));
  322. getitem $@id,$@b[@premio];
  323. if($mobs == 0){ Announce "Devil Square: A última Caixa do Tesouro foi destruída!",8;
  324. Announce "Devil Square: Obrigado a todos que participaram.",8; set $status,0; disablenpc "dsq4";
  325. mapwarp "ordeal_1-1","prontera",156,177;
  326. }
  327. query_sql "DELETE FROM `devilsquare`";
  328. end;
  329. }
  330.  
  331. function script Checador {
  332.  
  333. if(getarg(0) == 1){
  334. set @nome$,"";
  335.  
  336. query_sql "SELECT `nome` FROM `devilsquare` WHERE `id_usuario`="+getcharid(0)+"",@nome$;
  337.  
  338. if (@nome$ == ""){
  339. query_sql "INSERT INTO `devilsquare` (`id_usuario`,`nome`,`id_acc`,`pontos`) VALUES ("+getcharid(0)+",'"+strcharinfo(0)+"','"+getcharid(3)+"',1)";
  340. return;
  341. }
  342. query_sql "UPDATE `devilsquare` SET `pontos` = `pontos` +1 WHERE `id_usuario`="+getcharid(0)+"";
  343. return;
  344. }
  345. }
  346. ordeal_1-1,210,211,1 script DS4::dsq4 -1,5000,5000,{
  347.  
  348. OnTouch:
  349.  
  350. query_sql "SELECT nome,pontos FROM devilsquare ORDER BY pontos DESC LIMIT 5",@nome$,@pontos;
  351.  
  352. for(set @i,0; @i < 5; set @i,@i+1)
  353. if(@nome$[@i] == strcharinfo(0)){
  354. mapwarp "ordeal_1-1","ordeal_1-1",150,150;
  355. pcblockmove getcharid(3),1;
  356. sleep2 2000;
  357. Announce "Devil Square: Parabéns, você matou muitos monstros, agora tem que ir atrás das Caixas do Tesouro.",bc_self;
  358. pcblockmove getcharid(3),0;
  359. end;
  360. }
  361. warp "prontera",156,177;
  362. dispbottom "A Devil Square chegou ao fim para você, obrigado por participar.";
  363. end;
  364. }
  365.  
  366.  
  367. // MapFlags ~
  368. ordeal_1-1 mapflag nowarp
  369. ordeal_1-1 mapflag nowarpto
  370. ordeal_1-1 mapflag noteleport
  371. ordeal_1-1 mapflag nosave SavePoint
  372. ordeal_1-1 mapflag nomemo
  373. ordeal_1-1 mapflag nobranch
  374. ordeal_1-1 mapflag nopenalty
  375. ordeal_1-1 mapflag pvp off
  376. ordeal_1-1 mapflag gvg off
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement