Guest User

Untitled

a guest
Mar 30th, 2012
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.42 KB | None | 0 0
  1. import java.lang.StringBuilder;
  2. import java.text.*;
  3. import com.mythicscape.batclient.interfaces.*;
  4. import java.util.regex.*;
  5. import java.util.HashMap;
  6. import java.awt.Toolkit;
  7.  
  8. SCRIPT_NAME = "ship";
  9.  
  10.  
  11. String scan_command = "ship scan";
  12. boolean phunt = true;
  13. boolean mhunt = false;
  14. boolean nhunt = false;
  15. boolean sc = false;
  16. boolean beep = true;
  17. String crew_leader = "(?:Timur|Willabert)";
  18.  
  19.  
  20.  
  21.  
  22. String line_0 = "+-----------------------------------+-----------+\n";
  23. StringBuilder line_1 = new StringBuilder("| ( )| / / |\n");
  24. String line_2 = "+--------+----------+-----+-----+---+-----------+\n";
  25. StringBuilder line_3 = new StringBuilder("| | | | | | / / |\n");
  26. String line_4 = "+--------+----------+-----+-----+---+-----------+\n";
  27. boolean scan = false;
  28. Pattern pm1 = Pattern.compile("(.*?)(\\[H:([0-9]+)(/S:([0-9]+)(/R:([0-9]+))?)?\\] )?([{]([a-z]+[0-9]+)( <aggressive>)?[}] )?[(](pirate|navy|merchant) ([- a-z]+)[)] ?(<.*>)? ?([(][a-z ]+[)])?");
  29. // 0 - all 1 - fancyname 2 RSH info 3 - hull 5 - sail 7 - rudder 8 - npcthingy 9 - real name 10 - aggressive 11 - align 12 - shiptype 13 - armada 14 - shield status
  30. Pattern pm2 = Pattern.compile("^p(\\d+)$");
  31.  
  32. HashMap al;
  33. String shipname = "";
  34.  
  35. void bootup()
  36. {
  37. al = new HashMap();
  38. triggerManager.newTrigger(SCRIPT_NAME + "gag1","^The following information becomes known to you:","",true,false,false,null,Font.PLAIN);
  39. triggerManager.newTrigger(SCRIPT_NAME + "own_hull","^The ship's hull.*[(]([0-9]+)%[)]","$"+SCRIPT_NAME+".set_ownhull",true,false,false,null,Font.PLAIN);
  40. triggerManager.newTrigger(SCRIPT_NAME + "own_sail","^The sails .*[(]([0-9]+)%[)]","$"+SCRIPT_NAME+".set_ownsail",true,false,false,null,Font.PLAIN);
  41. triggerManager.newTrigger(SCRIPT_NAME + "own_rudder","^The rudder .*[(]([0-9]+)%[)]","$"+SCRIPT_NAME+".set_ownrudder",true,false,false,null,Font.PLAIN);
  42. triggerManager.newTrigger(SCRIPT_NAME + "prepare_ram","^" + crew_leader + " tells you 'Preparin ta ram","$"+SCRIPT_NAME+".set_ram");
  43. triggerManager.newTrigger(SCRIPT_NAME + "prepare_trebuchet","^" + crew_leader + " tells you 'Aye, Cap'n, loadin up tha trebuchet!","$"+SCRIPT_NAME+".set_trebuchet");
  44. triggerManager.newTrigger(SCRIPT_NAME + "prepare_boarder","^" + crew_leader + " tells you 'Tha boardin' party tis gettin ready.","$" + SCRIPT_NAME + ".set_boarder");
  45. triggerManager.newTrigger(SCRIPT_NAME + "break_free","^" + crew_leader + " tells you 'We managed to break free of the .* grapples!'","$" + SCRIPT_NAME + ".break_free");
  46. triggerManager.newTrigger(SCRIPT_NAME + "got_grappled","^" + crew_leader + " tells you 'We 'ave been caught by tha .*, Cap'n!","$" + SCRIPT_NAME + ".got_grappled");
  47. triggerManager.newTrigger(SCRIPT_NAME + "pursuit_now","^" + crew_leader + " tells you 'Aye aye, Cap'n, layin' in pursuit now!","$" + SCRIPT_NAME + ".now_pursuit");
  48. triggerManager.newTrigger(SCRIPT_NAME + "we_grappled","^" + crew_leader + " tells you 'We managed ta rope tha .*, Cap'n!!!'","$" + SCRIPT_NAME + ".we_grappled");
  49. triggerManager.newTrigger(SCRIPT_NAME + "they_break","^" + crew_leader + " tells you ('Cap'n, the .* ha' broken off of our grapple hold!'|'Releasin' tha grapples!')","$" + SCRIPT_NAME + ".break_free");
  50. triggerManager.newTrigger(SCRIPT_NAME + "we_grapple","^" + crew_leader + " tells you 'Tha crew's readyin' tha grapplin' hooks now, Cap'n!'","$" + SCRIPT_NAME + ".set_grapple");
  51. triggerManager.newTrigger(SCRIPT_NAME + "we_miss","^" + crew_leader + " tells you ('We were'nae able ta git a secure hold on tha .*'|'We missed tha .*!')","$" + SCRIPT_NAME + ".set_attack_clear");
  52. triggerManager.newTrigger(SCRIPT_NAME + "hit_punk","^The ship shudders as it plows into the side of .*","$" + SCRIPT_NAME + ".set_attack_clear");
  53. triggerManager.newTrigger(SCRIPT_NAME + "we_win","^" + crew_leader + " tells you 'We destroy'd tha .*!!!'","$" + SCRIPT_NAME + ".we_win");
  54. triggerManager.newTrigger(SCRIPT_NAME + "bad_target","^" + crew_leader + " tells you ('Who'd we try ta grapple, Cap'n?'|'We can'nae find tha target, Cap'n.')","$" + SCRIPT_NAME + ".set_attack_clear");
  55. triggerManager.newTrigger(SCRIPT_NAME + "out_of_range","^" + crew_leader + " tells you 'Tha .* seems ta be too far away ta ram,","$" + SCRIPT_NAME + ".set_attack_clear");
  56. triggerManager.newTrigger(SCRIPT_NAME + "attacked","^" + crew_leader + " tells you 'We're under attack, Cap'n!!!'","$" + SCRIPT_NAME + ".beep");
  57. }
  58.  
  59.  
  60. void run(){
  61. if(!sc) clientGUI.printText("Generic",line_0,false);
  62. clientGUI.printText("Generic",line_1.toString(),false);
  63. if(!sc) clientGUI.printText("Generic",line_2,false);
  64. clientGUI.printText("Generic",line_3.toString(),false);
  65. if(!sc) clientGUI.printText("Generic",line_4,false);
  66. }
  67. public void beep()
  68. {
  69. Toolkit.getDefaultToolkit().beep();
  70. }
  71. public void we_grappled()
  72. {
  73. set_attack_clear();
  74. set_grappled(true);
  75. }
  76. public void now_pursuit()
  77. {
  78. set_f(line_3,22,23,"P");
  79. }
  80. public void we_win()
  81. {
  82. set_name("");
  83. set_grappled(false);
  84. set_f(line_3,22,23," ");
  85. }
  86. public void set_grapple()
  87. {
  88. set_f(line_3,1,9,"GRAPPLE");
  89. }
  90. public void set_boarder()
  91. {
  92. set_f(line_3,1,9,"BOARDER");
  93. }
  94. public void set_attack_clear()
  95. {
  96. clientGUI.docommand("console info condition");
  97. set_f(line_3,1,9,"");
  98. }
  99. public void set_trebuchet()
  100. {
  101. set_f(line_3,1,9,"TREBUCHET");
  102. }
  103. public void set_ram()
  104. {
  105. set_f(line_3,1,9," RAM");
  106. }
  107. public void set_ownhull()
  108. {
  109. set_f(line_3,37,40,vars.get(1));
  110. }
  111. public void set_ownsail()
  112. {
  113. set_f(line_3,41,44,vars.get(1));
  114. }
  115. public void set_ownrudder()
  116. {
  117. set_f(line_3,45,48,vars.get(1));
  118. run();
  119. }
  120. public void set_targethull(String a)
  121. {
  122. set_f(line_1,37,40,a);
  123. }
  124. public void set_targetsail(String a)
  125. {
  126. set_f(line_1,41,44,a);
  127. }
  128. public void set_targetrudder(String a)
  129. {
  130. set_f(line_1,45,48,a);
  131. }
  132.  
  133. public void set_class(int a)
  134. {
  135. set_f(line_1,34,35,String.valueOf(a));
  136. }
  137. public void set_attack(String type)
  138. {
  139. set_f(line_3,1,9,type);
  140. }
  141. public void got_grappled()
  142. {
  143. set_grappled(true);
  144. }
  145. public void break_free()
  146. {
  147. set_grappled(false);
  148. }
  149. public void set_grappled(boolean b)
  150. {
  151. if(b)
  152. set_f(line_3,11,19,"GRAPPLED");
  153. else
  154. set_f(line_3,11,19,"");
  155. }
  156. public void set_name(String name)
  157. {
  158. set_f(line_1,1,33,name);
  159. }
  160. public void set_f(StringBuilder sb, int a, int b,String s)
  161. {
  162. char[] n = s.toCharArray();
  163. for(int i = a; i < b; ++i)
  164. {
  165. if(n.length > (i -a))
  166. sb.setCharAt(i,n[i-a]);
  167. else
  168. sb.setCharAt(i,' ');
  169. }
  170. }
  171.  
  172. public String processCommand(){
  173. if (command.equals(scan_command)){
  174. scan = true;
  175. al.clear();
  176. } else if(command.equals("combat ram"))
  177. {
  178. return "combat ram " + shipname;
  179. } else {
  180. Matcher m2 = pm2.matcher(command);
  181. if(m2.find())
  182. {
  183. shipname = al.get(Integer.parseInt(m2.group(1)));
  184. set_name(shipname);
  185. return "pursue " + shipname;
  186. }
  187. }
  188. return command;
  189. }
  190.  
  191. public ParsedResult trigger(){
  192. ParsedResult result = argument;
  193. if(scan)
  194. {
  195. String raw = result.getStrippedText();
  196. Matcher m1 = pm1.matcher(raw);
  197. String pursue = "";
  198. if(m1.find())
  199. {
  200. // 0 - all 1 - fancyname 2 - RSH info 3 - hull 5 - sail 7 - rudder 8 - npcthingy 9 - real name 10 - aggressive 11 - align 12 - shiptype 13 - armada 14 - shield status
  201.  
  202. clientGUI.printText("generic",m1.group(1));
  203.  
  204. if(m1.group(2) != null)
  205. clientGUI.printText("generic",m1.group(2));
  206. if(m1.group(8) != null)
  207. clientGUI.printText("generic",m1.group(8));
  208. if((phunt && m1.group(11).equals("pirate")) || (mhunt && m1.group(11).equals("merchant")) || (nhunt && m1.group(11).equals("navy")))
  209. clientGUI.printText("generic","(" + m1.group(11),"993300");
  210. else
  211. clientGUI.printText("generic","(" + m1.group(11));
  212. clientGUI.printText("generic"," " + m1.group(12));
  213. clientGUI.printText("generic","(c" + shipclass(m1.group(12)),"41A317");
  214. clientGUI.printText("generic","))");
  215.  
  216. if(m1.group(13) != null)
  217. clientGUI.printText("generic"," " + m1.group(13));
  218. if(m1.group(14) != null)
  219. clientGUI.printText("generic"," " + m1.group(14));
  220.  
  221. if(m1.group(8) != null && ((phunt && m1.group(11).equals("pirate"))||(mhunt && m1.group(11).equals("merchant"))||(nhunt && m1.group(11).equals("navy"))))
  222. {
  223. clientGUI.printText("generic"," # ");
  224. clientGUI.printText("generic","p" + al.size(),"993300");
  225. clientGUI.printText("generic"," #");
  226. al.put(al.size(),m1.group(9));
  227. }
  228. clientGUI.printText("generic","\n");
  229.  
  230. if(shipname.equals(m1.group(9)))
  231. {
  232. if(m1.group(3) != null)
  233. {
  234. set_targethull(m1.group(3));
  235. if(m1.group(5) != null)
  236. {
  237. set_targetsail(m1.group(5));
  238. if(m1.group(7) != null)
  239. set_targetrudder(m1.group(7));
  240. }
  241. }
  242. set_class(shipclass(m1.group(12)));
  243. }
  244.  
  245. return new ParsedResult("");
  246. } else if(raw.startsWith("You feel mentally and physically drained."))
  247. {
  248. scan = false;
  249. }
  250. }
  251. return result;
  252. }
  253.  
  254.  
  255. public int shipclass(String a)
  256. {
  257. if(a.equals("boat"))
  258. return 1;
  259. else if(a.equals("sloop") ||a.equals("ferry") || a.equals("lugger") || a.equals("cutter") || a.equals("cog") || a.equals("curraugh") || a.equals("ketch") || a.equals("brig"))
  260. return 2;
  261. else if(a.equals("schooner") ||a.equals("clipper") || a.equals("swiftship") || a.equals("brigantine") || a.equals("corvette") || a.equals("knorr") || a.equals("caravel") || a.equals("balinger"))
  262. return 3;
  263. else if(a.equals("frigate") ||a.equals("merchantman") || a.equals("whaler") || a.equals("carrack") || a.equals("crayer") || a.equals("buza") || a.equals("barque") || a.equals("nef"))
  264. return 4;
  265. else if(a.equals("galleon") ||a.equals("galleass") || a.equals("man-of-war") || a.equals("privateer") || a.equals("indiaman") || a.equals("viking longship") || a.equals("bireme") || a.equals("dromond"))
  266. return 5;
  267. else if(a.equals("war galleon") ||a.equals("destroyer") || a.equals("juggernaut") || a.equals("corsair") || a.equals("dreadnought") || a.equals("viking warship") || a.equals("trireme") || a.equals("drakkar"))
  268. return 6;
  269. else
  270. return -1;
  271. }
Advertisement
Add Comment
Please, Sign In to add comment