yuhsing

Untitled

Feb 17th, 2013
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.67 KB | None | 0 0
  1. // Emperium Ladder
  2. // By: Max Ng
  3.  
  4. // add callfunc "AddEmpKill"; after map announce on agit breaks for this to work
  5. // WOE SE agit scripts and agit_template.txt
  6. // woe agits scripts add before sleep command
  7.  
  8. prontera,158,205,5 script WoE & Ranks Ladder 743,{
  9.  
  10. set .@alchJobs$, "18,4019,4041,4078";
  11. set .@taekJobs$, "4046";
  12.  
  13. L_Start:
  14.  
  15. //ECO
  16. setarray .@maps$[0], "aldeg_cas01","aldeg_cas02","aldeg_cas03","aldeg_cas04","aldeg_cas05",
  17. "gefg_cas01","gefg_cas02","gefg_cas03","gefg_cas04","gefg_cas05",
  18. "payg_cas01","payg_cas02","payg_cas03","payg_cas04","payg_cas05",
  19. "prtg_cas01","prtg_cas02","prtg_cas03","prtg_cas04","prtg_cas05",
  20. "nguild_alde","nguild_gef","nguild_pay","nguild_prt",
  21. "schg_cas01","schg_cas02","schg_cas03","schg_cas04","schg_cas05",
  22. "arug_cas01","arug_cas02","arug_cas03","arug_cas04","arug_cas05";
  23. //<<<< ECO
  24.  
  25. cleararray @char_id[0],0,getarraysize(@char_id);
  26. cleararray @guild_id[0],0,getarraysize(@guild_id);
  27. cleararray @kills[0],0,getarraysize(@kills);
  28. cleararray @g_kills[0],0,getarraysize(@g_kills);
  29. cleararray @char_name$[0],0,getarraysize(@char_name$);
  30. deletearray @name$[0],getarraysize(@name$);
  31. deletearray @fame[0],getarraysize(@fame);
  32. mes "[Ladder NPC]";
  33. mes "Hello there, what do you to check?";
  34. if (getgmlevel() >= 99) {
  35. menu "Agit Standings",L_TopAgits,"Top Emperium Breakers",L_ByPeople,"Top Emperium Breaking Guilds",L_ByGuilds,"Top 30 Alchemist Ranks",L_TopAlch,"Top 30 Taekwon Ranks",L_TopTaek,"Reset Ladder",L_Reset;
  36. } else {
  37. menu "Agit Standings",L_TopAgits,"Top Emperium Breakers",L_ByPeople,"Top Emperium Breaking Guilds",L_ByGuilds,"Top 30 Alchemist Ranks",L_TopAlch,"Top 30 Taekwon Ranks",L_TopTaek;
  38. }
  39.  
  40. L_TopAgits:
  41. next;
  42. mes "[Ladder NPC]";
  43. mes "Herewith is the list of the Top 6 Agits arranged according to ^0000FFCastle Economy^000000 as reference for the upcoming G.O.M.";
  44. mes "Please click on each item to view the information.";
  45.  
  46.  
  47. //ECO
  48. setarray .@maps$[0], "aldeg_cas01","aldeg_cas02","aldeg_cas03","aldeg_cas04","aldeg_cas05",
  49. "gefg_cas01","gefg_cas02","gefg_cas03","gefg_cas04","gefg_cas05",
  50. "payg_cas01","payg_cas02","payg_cas03","payg_cas04","payg_cas05",
  51. "prtg_cas01","prtg_cas02","prtg_cas03","prtg_cas04","prtg_cas05",
  52. "nguild_alde","nguild_gef","nguild_pay","nguild_prt",
  53. "schg_cas01","schg_cas02","schg_cas03","schg_cas04","schg_cas05",
  54. "arug_cas01","arug_cas02","arug_cas03","arug_cas04","arug_cas05";
  55.  
  56. // castle_id, master, economy, defense
  57. //query_sql "SELECT guild_castle.castle_id, guild.`name`, guild_castle.economy, guild_castle.defense FROM guild_castle inner JOIN guild ON guild_castle.guild_id=guild.guild_id ORDER BY guild_castle.economy desc, guild_castle.priority asc LIMIT 8", .@castle_id,.@name$,.@economy,.@defense;
  58.  
  59. //new query nov 23, 2010 to not include novice castles in list
  60. //query_sql "SELECT guild_castle.castle_id, guild.`name`, guild_castle.economy, guild_castle.defense FROM guild_castle inner JOIN guild ON guild_castle.guild_id=guild.guild_id WHERE guild_castle.castle_id NOT BETWEEN 20 AND 23 ORDER BY guild_castle.economy desc, guild_castle.priority asc LIMIT 8", .@castle_id,.@name$,.@economy,.@defense;
  61. // new query as of Jan 2013 with 6 castles open
  62. query_sql "SELECT guild_castle.castle_id, guild.`name`, guild_castle.economy, guild_castle.defense FROM guild_castle inner JOIN guild ON guild_castle.guild_id=guild.guild_id WHERE guild_castle.castle_id NOT BETWEEN 20 AND 23 ORDER BY guild_castle.economy desc, guild_castle.priority asc LIMIT 6", .@castle_id,.@name$,.@economy,.@defense;
  63.  
  64.  
  65.  
  66. // generate menu
  67. for( set .@i,0; .@i<getarraysize(.@castle_id); set .@i,.@i+1 )
  68. set .@menu$, .@menu$ + getcastlename(.@maps$[.@castle_id[.@i]])+" > "+.@name$[.@i]+" > "+.@economy[.@i]+" > "+.@defense[.@i] +":";
  69. // pick a castle
  70. set .@castle$, .@maps$[.@castle_id[select(.@menu$) -1]];
  71.  
  72.  
  73. switch(select( getgmlevel()>=99 ? "View info:Change economy:Change defense":"View info" )) {
  74. case 1:
  75. next;
  76. // use 'getcastledata' for the most updated info
  77. mes "Castle Name: ^0000FF"+getcastlename(.@castle$)+" ("+.@castle$+")^000000";
  78. mes "Guild Name: ^0000FF"+getguildname(getcastledata(.@castle$,1))+"^000000";
  79. mes "Guild Master: ^0000FF"+getguildmaster(getcastledata(.@castle$,1))+"^000000";
  80. mes "Economy: ^0000FF"+getcastledata(.@castle$,2)+"^000000";
  81. mes "Defense: ^0000FF"+getcastledata(.@castle$,3)+"^000000";
  82. break;
  83. case 2:
  84. next;
  85. mes "[^0000FF"+getcastlename(.@castle$)+" ("+.@castle$+")^000000]";
  86. mes "Economy: ^0000FF"+getcastledata(.@castle$,2)+"^000000";
  87. mes "Enter new Economy:";
  88. input .@eco;
  89. if( .@eco<0 || .@eco>100) {
  90. mes "^FF0000Economy can be between 0-100";
  91. close;
  92. }
  93. setcastledata .@castle$,2, .@eco;
  94. mes "Economy: ^0000FF"+getcastledata(.@castle$,2)+"^000000";
  95. break;
  96. case 3:
  97. next;
  98. mes "[^0000FF"+getcastlename(.@castle$)+" ("+.@castle$+")^000000]";
  99. mes "Defense: ^0000FF"+getcastledata(.@castle$,3)+"^000000";
  100. mes "Enter new Defense:";
  101. input .@def;
  102. if( .@def<0 || .@def>100) {
  103. mes "^FF0000Defense can be between 0-100";
  104. close;
  105. }
  106. setcastledata .@castle$,3, .@def;
  107. mes "Defense: ^0000FF"+getcastledata(.@castle$,3)+"^000000";
  108. break;
  109. }
  110. close;
  111.  
  112.  
  113. L_ByPeople:
  114. next;
  115. query_sql("SELECT `char_id`,`kills` FROM `ek_accounts` ORDER BY `kills` DESC LIMIT 10",@char_id,@kills);
  116. mes "[Ladder NPC]";
  117. mes "The Top 10 Breakers are:";
  118. for (set @i,0; @i < getarraysize(@char_id); set @i,@i + 1) {
  119. query_sql("SELECT `name`,`class` FROM `char` WHERE `char_id` = '" + @char_id[@i] + "' LIMIT 1",@char_name$,@class_id);
  120. mes @i + 1 + ". " + @char_name$[0] + " - ^00FF00 " + jobname(@class_id[0]) + " ^000000 - [^FF0000 " + @kills[@i] + " ^000000]";
  121. }
  122. close;
  123.  
  124. L_ByGuilds:
  125. next;
  126. query_sql("SELECT `guild_id`,`kills` FROM `ek_guilds` ORDER BY `kills` DESC LIMIT 10",@guild_id,@g_kills);
  127. mes "[Ladder NPC]";
  128. mes "The Top 10 Breaker Guilds are:";
  129. for (set @i,0; @i < getarraysize(@guild_id); set @i,@i + 1) {
  130. query_sql("SELECT `name` FROM `guild` WHERE `guild_id` = '" + @guild_id[@i] + "' LIMIT 1",@guild_name$);
  131. mes @i + 1 + ". " + @guild_name$[0] + " ^000000 - [ ^FF0000 " + @g_kills[@i] + " ^000000 ]";
  132. }
  133. close;
  134.  
  135. L_TopAlch:
  136. next;
  137. mes "[Ladder NPC]";
  138. mes "Click next to view the TOP 30 Alchemist Rankers. Use your Alchemist Class character to view individual points obtained.";
  139. next;
  140.  
  141. set @menulist$, "Top 30 Alchemist Ranking";
  142. if ( BaseJob == Job_Alchemist )
  143. set @menulist$, @menulist$ + ":Your Current Points";
  144.  
  145. switch(select(@menulist$)) {
  146. case 1:
  147. query_sql("SELECT `name`, `fame` FROM `char` WHERE `fame` != 0 AND `class` IN ("+ .@alchJobs$ +") ORDER BY `fame` DESC, `base_level` DESC, `job_level` DESC, base_exp DESC, job_exp DESC LIMIT 30", @name$, @fame);
  148. mes "The Top 30 Alchemists are:";
  149. for (set @i, 0; @i<getarraysize(@name$); set @i, @i+1) {
  150. mes (@i+1) + ". " + @name$[@i] + " - " + @fame[@i] + " pts.";
  151. }
  152. close;
  153. break;
  154. case 2:
  155. mes "[Ladder NPC]";
  156. query_sql("SELECT `fame` FROM `char` WHERE `char_id` = " + getcharid(0) + " LIMIT 1", @fame);
  157. mes "You have " + @fame + " points.";
  158. close;
  159. break;
  160. }
  161. close;
  162.  
  163. L_TopTaek:
  164. next;
  165. mes "[Ladder NPC]";
  166. mes "Click next to view the TOP 30 Taekwon Rankers. Use your Taekwon character to view individual points obtained.";
  167. next;
  168.  
  169. set @menulist$, "Top 30 Taekwon Ranking";
  170. if ( BaseJob == Job_Taekwon )
  171. set @menulist$, @menulist$ + ":Your Current Points";
  172.  
  173. switch(select(@menulist$)) {
  174. case 1:
  175. query_sql("SELECT `name`, `fame` FROM `char` WHERE `fame` != 0 AND `class` IN ("+ .@taekJobs$ +") ORDER BY `fame` DESC, `base_level` DESC, `job_level` DESC, base_exp DESC, job_exp DESC LIMIT 30", @name$, @fame);
  176. mes "The Top 30 Taekwons are:";
  177. for (set @i, 0; @i<getarraysize(@name$); set @i, @i+1) {
  178. mes (@i+1) + ". " + @name$[@i] + " - " + @fame[@i] + " pts.";
  179. }
  180. close;
  181. break;
  182. case 2:
  183. mes "[Ladder NPC]";
  184. query_sql("SELECT `fame` FROM `char` WHERE `char_id` = " + getcharid(0) + " LIMIT 1", @fame);
  185. mes "You have " + @fame + " points.";
  186. close;
  187. break;
  188. }
  189. close;
  190.  
  191. L_Reset:
  192. next;
  193. mes "[Ladder NPC]";
  194. mes "Are you sure you want to reset the ladder?";
  195. switch (select("Yes:No")) {
  196. case 1:
  197. query_sql "TRUNCATE TABLE `ek_accounts`";
  198. query_sql "TRUNCATE TABLE `ek_guilds`";
  199. logmes "EMPERIUM LADDER HAS BEEN RESETTTTTTTTTTTTTTTTTTTTTTTT";
  200. mes "Done!";
  201. close;
  202. case 2:
  203. mes "Alright.";
  204. close;
  205. }
  206. close;
  207. // said to remove by dzerox since error on onnpckillevent
  208. //OnNPCKillEvent:
  209. // if (killedrid == 1288) {
  210. // callfunc "AddEmpKill";
  211. // getmapxy(@map$,@x,@y,0);
  212. // mapannounce @map$,"[ " + strcharinfo(0) + " ] destroyed the Emperium.",bc_all;
  213. // }
  214. // end;
  215.  
  216. //removed since there is already sql table. uncomment if new install
  217. //OnInit:
  218. // // DO NOT EDIT
  219. // query_sql("CREATE TABLE IF NOT EXISTS `ek_accounts` (`account_id` INT(11) NOT NULL DEFAULT '0',`char_id` INT(11) NOT NULL DEFAULT '0',`kills` INT(20) NOT NULL DEFAULT '0') TYPE = MyISAM");
  220. // query_sql("CREATE TABLE IF NOT EXISTS `ek_guilds` (`guild_id` INT(11) NOT NULL DEFAULT '0',`kills` INT(20) NOT NULL DEFAULT '0') TYPE = MyISAM");
  221. // end;
  222.  
  223. }
  224.  
  225. function script AddEmpKill {
  226. if( getmapflag( strcharinfo(3),mf_gvg_castle ) )
  227. set .@castle_economy,getcastledata( strcharinfo(3),2 );
  228.  
  229. if (query_sql("SELECT `kills` FROM `ek_accounts` WHERE `char_id` = '" + getcharid(0) + "' LIMIT 1",@kills) <= 0) {
  230. query_sql("INSERT INTO `ek_accounts` VALUES ('" + getcharid(3) + "','" + getcharid(0) + "','"+.@castle_economy+"')");
  231. } else {
  232. set @kills[0],@kills[0] + .@castle_economy;
  233. query_sql("UPDATE `ek_accounts` SET `kills` = '" + @kills[0] + "' WHERE `char_id` = '" + getcharid(0) + "' LIMIT 1");
  234. }
  235. if (getcharid(2) != 0) {
  236. if (query_sql("SELECT `kills` FROM `ek_guilds` WHERE `guild_id` = '" + getcharid(2) + "' LIMIT 1",@g_kills) <= 0) {
  237. query_sql("INSERT INTO `ek_guilds` VALUES ('" + getcharid(2) + "','"+.@castle_economy+"')");
  238. } else {
  239. set @g_kills[0],@g_kills[0] + .@castle_economy;
  240. query_sql("UPDATE `ek_guilds` SET `kills` = '" + @g_kills[0] + "' WHERE `guild_id` = '" + getcharid(2) + "' LIMIT 1");
  241. }
  242. }
  243. return;
  244. }
  245.  
  246. // my additions
  247. turbo_room,76,100,6 duplicate(WoE & Ranks Ladder) WoE & Ranks Ladder#2 743
  248. payon,119,230,4 duplicate(WoE & Ranks Ladder) WoE & Ranks Ladder#3 743
  249. prontera,146,76,5 duplicate(WoE & Ranks Ladder) WoE & Ranks Ladder#4 743
  250.  
  251. izlude,136,135,6 duplicate(WoE & Ranks Ladder) WoE & Ranks Ladder#5 743
  252.  
  253. alberta,137,73,3 duplicate(WoE & Ranks Ladder) WoE & Ranks Ladder#6 743
  254. alberta,39,253,5 duplicate(WoE & Ranks Ladder) WoE & Ranks Ladder#7 743
  255.  
  256. amatsu,97,140,5 duplicate(WoE & Ranks Ladder) WoE & Ranks Ladder#8 743
  257.  
  258. morocc,151,258,5 duplicate(WoE & Ranks Ladder) WoE & Ranks Ladder#9 743
  259. morocc,136,106,3 duplicate(WoE & Ranks Ladder) WoE & Ranks Ladder#10 743
  260.  
  261. yuno,176,187,3 duplicate(WoE & Ranks Ladder) WoE & Ranks Ladder#11 743
  262.  
  263. gonryun,147,142,5 duplicate(WoE & Ranks Ladder) WoE & Ranks Ladder#12 743
  264. hugel,106,139,3 duplicate(WoE & Ranks Ladder) WoE & Ranks Ladder#13 743
  265.  
  266. geffen,114,54,8 duplicate(WoE & Ranks Ladder) WoE & Ranks Ladder#14 743
  267. geffen,168,124,5 duplicate(WoE & Ranks Ladder) WoE & Ranks Ladder#15 743
  268.  
  269. prontera,170,305,3 duplicate(WoE & Ranks Ladder) WoE & Ranks Ladder#16 743
  270. prontera,38,226,5 duplicate(WoE & Ranks Ladder) WoE & Ranks Ladder#17 743
  271. prontera,278,223,3 duplicate(WoE & Ranks Ladder) WoE & Ranks Ladder#18 743
  272.  
  273. aldebaran,114,124,5 duplicate(WoE & Ranks Ladder) WoE & Ranks Ladder#19 743
Advertisement
Add Comment
Please, Sign In to add comment