Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.lang.StringBuilder;
- import java.text.*;
- import com.mythicscape.batclient.interfaces.*;
- import java.util.regex.*;
- import java.util.HashMap;
- import java.awt.Toolkit;
- SCRIPT_NAME = "ship";
- String scan_command = "ship scan";
- boolean phunt = true;
- boolean mhunt = false;
- boolean nhunt = false;
- boolean sc = false;
- boolean beep = true;
- String crew_leader = "(?:Timur|Willabert)";
- String line_0 = "+-----------------------------------+-----------+\n";
- StringBuilder line_1 = new StringBuilder("| ( )| / / |\n");
- String line_2 = "+--------+----------+-----+-----+---+-----------+\n";
- StringBuilder line_3 = new StringBuilder("| | | | | | / / |\n");
- String line_4 = "+--------+----------+-----+-----+---+-----------+\n";
- boolean scan = false;
- 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 ]+[)])?");
- // 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
- Pattern pm2 = Pattern.compile("^p(\\d+)$");
- HashMap al;
- String shipname = "";
- void bootup()
- {
- al = new HashMap();
- triggerManager.newTrigger(SCRIPT_NAME + "gag1","^The following information becomes known to you:","",true,false,false,null,Font.PLAIN);
- triggerManager.newTrigger(SCRIPT_NAME + "own_hull","^The ship's hull.*[(]([0-9]+)%[)]","$"+SCRIPT_NAME+".set_ownhull",true,false,false,null,Font.PLAIN);
- triggerManager.newTrigger(SCRIPT_NAME + "own_sail","^The sails .*[(]([0-9]+)%[)]","$"+SCRIPT_NAME+".set_ownsail",true,false,false,null,Font.PLAIN);
- triggerManager.newTrigger(SCRIPT_NAME + "own_rudder","^The rudder .*[(]([0-9]+)%[)]","$"+SCRIPT_NAME+".set_ownrudder",true,false,false,null,Font.PLAIN);
- triggerManager.newTrigger(SCRIPT_NAME + "prepare_ram","^" + crew_leader + " tells you 'Preparin ta ram","$"+SCRIPT_NAME+".set_ram");
- triggerManager.newTrigger(SCRIPT_NAME + "prepare_trebuchet","^" + crew_leader + " tells you 'Aye, Cap'n, loadin up tha trebuchet!","$"+SCRIPT_NAME+".set_trebuchet");
- triggerManager.newTrigger(SCRIPT_NAME + "prepare_boarder","^" + crew_leader + " tells you 'Tha boardin' party tis gettin ready.","$" + SCRIPT_NAME + ".set_boarder");
- triggerManager.newTrigger(SCRIPT_NAME + "break_free","^" + crew_leader + " tells you 'We managed to break free of the .* grapples!'","$" + SCRIPT_NAME + ".break_free");
- triggerManager.newTrigger(SCRIPT_NAME + "got_grappled","^" + crew_leader + " tells you 'We 'ave been caught by tha .*, Cap'n!","$" + SCRIPT_NAME + ".got_grappled");
- triggerManager.newTrigger(SCRIPT_NAME + "pursuit_now","^" + crew_leader + " tells you 'Aye aye, Cap'n, layin' in pursuit now!","$" + SCRIPT_NAME + ".now_pursuit");
- triggerManager.newTrigger(SCRIPT_NAME + "we_grappled","^" + crew_leader + " tells you 'We managed ta rope tha .*, Cap'n!!!'","$" + SCRIPT_NAME + ".we_grappled");
- 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");
- triggerManager.newTrigger(SCRIPT_NAME + "we_grapple","^" + crew_leader + " tells you 'Tha crew's readyin' tha grapplin' hooks now, Cap'n!'","$" + SCRIPT_NAME + ".set_grapple");
- 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");
- triggerManager.newTrigger(SCRIPT_NAME + "hit_punk","^The ship shudders as it plows into the side of .*","$" + SCRIPT_NAME + ".set_attack_clear");
- triggerManager.newTrigger(SCRIPT_NAME + "we_win","^" + crew_leader + " tells you 'We destroy'd tha .*!!!'","$" + SCRIPT_NAME + ".we_win");
- 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");
- 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");
- triggerManager.newTrigger(SCRIPT_NAME + "attacked","^" + crew_leader + " tells you 'We're under attack, Cap'n!!!'","$" + SCRIPT_NAME + ".beep");
- }
- void run(){
- if(!sc) clientGUI.printText("Generic",line_0,false);
- clientGUI.printText("Generic",line_1.toString(),false);
- if(!sc) clientGUI.printText("Generic",line_2,false);
- clientGUI.printText("Generic",line_3.toString(),false);
- if(!sc) clientGUI.printText("Generic",line_4,false);
- }
- public void beep()
- {
- Toolkit.getDefaultToolkit().beep();
- }
- public void we_grappled()
- {
- set_attack_clear();
- set_grappled(true);
- }
- public void now_pursuit()
- {
- set_f(line_3,22,23,"P");
- }
- public void we_win()
- {
- set_name("");
- set_grappled(false);
- set_f(line_3,22,23," ");
- }
- public void set_grapple()
- {
- set_f(line_3,1,9,"GRAPPLE");
- }
- public void set_boarder()
- {
- set_f(line_3,1,9,"BOARDER");
- }
- public void set_attack_clear()
- {
- clientGUI.docommand("console info condition");
- set_f(line_3,1,9,"");
- }
- public void set_trebuchet()
- {
- set_f(line_3,1,9,"TREBUCHET");
- }
- public void set_ram()
- {
- set_f(line_3,1,9," RAM");
- }
- public void set_ownhull()
- {
- set_f(line_3,37,40,vars.get(1));
- }
- public void set_ownsail()
- {
- set_f(line_3,41,44,vars.get(1));
- }
- public void set_ownrudder()
- {
- set_f(line_3,45,48,vars.get(1));
- run();
- }
- public void set_targethull(String a)
- {
- set_f(line_1,37,40,a);
- }
- public void set_targetsail(String a)
- {
- set_f(line_1,41,44,a);
- }
- public void set_targetrudder(String a)
- {
- set_f(line_1,45,48,a);
- }
- public void set_class(int a)
- {
- set_f(line_1,34,35,String.valueOf(a));
- }
- public void set_attack(String type)
- {
- set_f(line_3,1,9,type);
- }
- public void got_grappled()
- {
- set_grappled(true);
- }
- public void break_free()
- {
- set_grappled(false);
- }
- public void set_grappled(boolean b)
- {
- if(b)
- set_f(line_3,11,19,"GRAPPLED");
- else
- set_f(line_3,11,19,"");
- }
- public void set_name(String name)
- {
- set_f(line_1,1,33,name);
- }
- public void set_f(StringBuilder sb, int a, int b,String s)
- {
- char[] n = s.toCharArray();
- for(int i = a; i < b; ++i)
- {
- if(n.length > (i -a))
- sb.setCharAt(i,n[i-a]);
- else
- sb.setCharAt(i,' ');
- }
- }
- public String processCommand(){
- if (command.equals(scan_command)){
- scan = true;
- al.clear();
- } else if(command.equals("combat ram"))
- {
- return "combat ram " + shipname;
- } else {
- Matcher m2 = pm2.matcher(command);
- if(m2.find())
- {
- shipname = al.get(Integer.parseInt(m2.group(1)));
- set_name(shipname);
- return "pursue " + shipname;
- }
- }
- return command;
- }
- public ParsedResult trigger(){
- ParsedResult result = argument;
- if(scan)
- {
- String raw = result.getStrippedText();
- Matcher m1 = pm1.matcher(raw);
- String pursue = "";
- if(m1.find())
- {
- // 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
- clientGUI.printText("generic",m1.group(1));
- if(m1.group(2) != null)
- clientGUI.printText("generic",m1.group(2));
- if(m1.group(8) != null)
- clientGUI.printText("generic",m1.group(8));
- if((phunt && m1.group(11).equals("pirate")) || (mhunt && m1.group(11).equals("merchant")) || (nhunt && m1.group(11).equals("navy")))
- clientGUI.printText("generic","(" + m1.group(11),"993300");
- else
- clientGUI.printText("generic","(" + m1.group(11));
- clientGUI.printText("generic"," " + m1.group(12));
- clientGUI.printText("generic","(c" + shipclass(m1.group(12)),"41A317");
- clientGUI.printText("generic","))");
- if(m1.group(13) != null)
- clientGUI.printText("generic"," " + m1.group(13));
- if(m1.group(14) != null)
- clientGUI.printText("generic"," " + m1.group(14));
- if(m1.group(8) != null && ((phunt && m1.group(11).equals("pirate"))||(mhunt && m1.group(11).equals("merchant"))||(nhunt && m1.group(11).equals("navy"))))
- {
- clientGUI.printText("generic"," # ");
- clientGUI.printText("generic","p" + al.size(),"993300");
- clientGUI.printText("generic"," #");
- al.put(al.size(),m1.group(9));
- }
- clientGUI.printText("generic","\n");
- if(shipname.equals(m1.group(9)))
- {
- if(m1.group(3) != null)
- {
- set_targethull(m1.group(3));
- if(m1.group(5) != null)
- {
- set_targetsail(m1.group(5));
- if(m1.group(7) != null)
- set_targetrudder(m1.group(7));
- }
- }
- set_class(shipclass(m1.group(12)));
- }
- return new ParsedResult("");
- } else if(raw.startsWith("You feel mentally and physically drained."))
- {
- scan = false;
- }
- }
- return result;
- }
- public int shipclass(String a)
- {
- if(a.equals("boat"))
- return 1;
- 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"))
- return 2;
- 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"))
- return 3;
- 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"))
- return 4;
- 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"))
- return 5;
- 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"))
- return 6;
- else
- return -1;
- }
Advertisement
Add Comment
Please, Sign In to add comment