daily pastebin goal
35%
SHARE
TWEET

Untitled

a guest Aug 12th, 2017 52 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import org.rsbot.script.Script;
  2. import org.rsbot.script.ScriptManifest;
  3. import org.rsbot.script.wrappers.*;
  4. import org.rsbot.event.events.MessageEvent;
  5. import org.rsbot.event.listeners.MessageListener;
  6. import org.rsbot.script.methods.Mouse;
  7.  
  8. @ScriptManifest (
  9.                   authors     = { "WinblowsME" },
  10.                   keywords    = { "runescape", "runecraft", "master", "slave" },
  11.                   name        = ">>> Slave Crafter <<<",
  12.                   description = "Carries Essence to the Master Crafter at the Earth Altar",
  13.                   version     = 1.5
  14.                 )
  15.  
  16. public class slave extends Script implements MessageListener
  17. {
  18.    private String MASTER_NAME   = "Change Master Name";
  19.    private int RUNE_ESS_ID      = 1436;
  20.    private int EARTH_RUNE_ID    = 557;
  21.    private int RUINS_ID         = 2455;
  22.    private int ALTAR_ID         = 2481;
  23.    private int PORTAL_ID        = 2468;
  24.    private int BANK_BOOTH_ID    = 782;  
  25.    private RSTilePath ruins_path;
  26.    private RSTilePath altar_path;
  27.  
  28.    private RSTile [] BANK_TO_RUINS = { new RSTile ( 3253, 3420 ),
  29.                                        new RSTile ( 3253, 3423 ),
  30.                                        new RSTile ( 3254, 3426 ),
  31.                                        new RSTile ( 3257, 3428 ),
  32.                                        new RSTile ( 3260, 3428 ),
  33.                                        new RSTile ( 3263, 3428 ),
  34.                                        new RSTile ( 3266, 3428 ),
  35.                                        new RSTile ( 3269, 3428 ),
  36.                                        new RSTile ( 3272, 3429 ),
  37.                                        new RSTile ( 3275, 3430 ),
  38.                                        new RSTile ( 3275, 3433 ),
  39.                                        new RSTile ( 3275, 3436 ),
  40.                                        new RSTile ( 3275, 3439 ),
  41.                                        new RSTile ( 3275, 3442 ),
  42.                                        new RSTile ( 3277, 3446 ),
  43.                                        new RSTile ( 3280, 3446 ),
  44.                                        new RSTile ( 3283, 3449 ),
  45.                                        new RSTile ( 3286, 3452 ),
  46.                                        new RSTile ( 3289, 3455 ),
  47.                                        new RSTile ( 3291, 3458 ),
  48.                                        new RSTile ( 3294, 3461 ),
  49.                                        new RSTile ( 3296, 3464 ),
  50.                                        new RSTile ( 3297, 3467 ),
  51.                                        new RSTile ( 3300, 3470 ),
  52.                                        new RSTile ( 3303, 3470 ),
  53.                                        new RSTile ( 3304, 3472 ) };
  54.  
  55.    private RSArea bank_area   = new RSArea ( new RSTile ( 3250, 3419 ), new RSTile ( 3257, 3423 ) );
  56.    private RSArea ruins_area  = new RSArea ( new RSTile ( 3303, 3470 ), new RSTile ( 3307, 3482 ) );
  57.    private RSArea portal_area = new RSArea ( new RSTile ( 2647, 4830 ), new RSTile ( 2661, 4836 ) );
  58.    private RSArea altar_area  = new RSArea ( new RSTile ( 2652, 4837 ), new RSTile ( 2663, 4844 ) );
  59.    private RSArea exit_area   = new RSArea ( new RSTile ( 3299, 3477 ), new RSTile ( 3302, 3479 ) );
  60.  
  61.    ////////////////////////////////////////////////////////////////////////////////////
  62.    // ON START
  63.    ////////////////////////////////////////////////////////////////////////////////////
  64.  
  65.    public boolean onStart()
  66.    {
  67.       ruins_path = walking.newTilePath ( BANK_TO_RUINS );
  68.  
  69.       return true;
  70.    }
  71.  
  72.    ////////////////////////////////////////////////////////////////////////////////////
  73.    // LOOP
  74.    ////////////////////////////////////////////////////////////////////////////////////
  75.  
  76.    public int loop()
  77.    {
  78.       main_function();
  79.  
  80.       return 0;
  81.    }
  82.  
  83.    ////////////////////////////////////////////////////////////////////////////////////
  84.    // MAIN FUNCTION
  85.    ////////////////////////////////////////////////////////////////////////////////////
  86.  
  87.    private void main_function()
  88.    {
  89.       mouse.setSpeed ( random ( 7, 10 ) );
  90.       anti_ban_camera();
  91.  
  92.       if ( walking.getEnergy() > random ( 50, 100 ) )
  93.       {
  94.          if ( !walking.isRunEnabled() )
  95.          {
  96.             walking.setRun ( true );
  97.          }
  98.       }
  99.  
  100.       if ( at_bank() )
  101.       {
  102.          if ( inventory.contains ( EARTH_RUNE_ID ) )
  103.          {
  104.             bank();
  105.          }
  106.          else if ( inventory.contains ( RUNE_ESS_ID ) )
  107.          {
  108.             walk_to_ruins();
  109.          }
  110.          else
  111.          {
  112.             bank();
  113.          }
  114.       }
  115.       else if ( at_ruins() )
  116.       {
  117.          if ( inventory.contains ( RUNE_ESS_ID ) )
  118.          {
  119.             enter_ruins();
  120.          }
  121.          else
  122.          {
  123.             walk_to_bank();
  124.          }
  125.       }
  126.       else if ( at_portal() )
  127.       {
  128.          if ( inventory.contains ( RUNE_ESS_ID ) )
  129.          {
  130.             walk_to_altar();
  131.          }
  132.          else
  133.          {
  134.             enter_portal();
  135.          }
  136.       }
  137.       else if ( at_altar() )
  138.       {
  139.          if ( inventory.contains ( EARTH_RUNE_ID ) )
  140.          {
  141.             walk_to_portal();
  142.          }
  143.  
  144.          if ( on_trade_window_1() )
  145.          {
  146.             trade_1();
  147.          }
  148.  
  149.          if ( on_trade_window_2() )
  150.          {
  151.             trade_2();
  152.          }
  153.       }
  154.       else if ( at_exit() )
  155.       {
  156.          if ( inventory.contains ( RUNE_ESS_ID ) )
  157.          {
  158.             walk_to_ruins();
  159.          }
  160.          else
  161.          {
  162.             walk_to_bank();
  163.          }
  164.       }
  165.       else
  166.       {
  167.          if ( inventory.contains ( RUNE_ESS_ID ) )
  168.          {
  169.             walk_to_ruins();
  170.          }
  171.          else
  172.          {
  173.             walk_to_bank();
  174.          }
  175.       }
  176.    }
  177.  
  178.    ////////////////////////////////////////////////////////////////////////////////////
  179.    // VALID MASTER
  180.    ////////////////////////////////////////////////////////////////////////////////////
  181.  
  182.    private boolean valid_master ( String curr_player )
  183.    {
  184.       int result = curr_player.compareTo ( MASTER_NAME );
  185.  
  186.       if ( result == 0 || result == 128 )
  187.       {
  188.          return ( true );
  189.       }
  190.       else
  191.       {
  192.          return ( false );
  193.       }
  194.    }
  195.  
  196.    ////////////////////////////////////////////////////////////////////////////////////
  197.    // ACTIONS
  198.    ////////////////////////////////////////////////////////////////////////////////////
  199.  
  200.    private void enter_ruins()
  201.    {
  202.       try
  203.       {
  204.          RSObject ruins = objects.getNearest ( RUINS_ID );
  205.          ruins.doAction ( "Enter" );
  206.       }
  207.       catch ( Exception e ) {}
  208.    }
  209.  
  210.    private void enter_portal()
  211.    {
  212.       try
  213.       {
  214.          RSObject portal = objects.getNearest ( PORTAL_ID );
  215.          portal.doAction ( "Enter" );
  216.       }
  217.       catch ( Exception e ) {}
  218.    }
  219.  
  220.    ////////////////////////////////////////////////////////////////////////////////////
  221.    // LOCATION CHECK
  222.    ////////////////////////////////////////////////////////////////////////////////////
  223.  
  224.    private boolean at_bank()
  225.    {
  226.       return ( bank_area.contains ( getMyPlayer().getLocation() ) );
  227.    }
  228.  
  229.    private boolean at_altar()
  230.    {
  231.       return ( altar_area.contains ( getMyPlayer().getLocation() ) );
  232.    }
  233.  
  234.    private boolean at_ruins()
  235.    {
  236.       return ( ruins_area.contains ( getMyPlayer().getLocation() ) );
  237.    }
  238.  
  239.    private boolean at_portal()
  240.    {
  241.       return ( portal_area.contains ( getMyPlayer().getLocation() ) );
  242.    }
  243.  
  244.    private boolean at_exit()
  245.    {
  246.       return ( exit_area.contains ( getMyPlayer().getLocation() ) );
  247.    }
  248.  
  249.    ////////////////////////////////////////////////////////////////////////////////////
  250.    // MOVEMENT
  251.    ////////////////////////////////////////////////////////////////////////////////////
  252.  
  253.    private void walk_to_ruins()
  254.    {
  255.       ruins_path.traverse();
  256.    }
  257.  
  258.    private void walk_to_bank()
  259.    {
  260.       ruins_path.reverse();
  261.       ruins_path.traverse();
  262.       ruins_path.reverse();
  263.    }
  264.  
  265.    private void walk_to_altar()
  266.    {
  267.       int rand_x = random ( 2654, 2658 );
  268.       int rand_y = random ( 4838, 4840 );
  269.  
  270.       RSTile [] TO_ALTAR = { new RSTile ( 2657, 4830 ),
  271.                              new RSTile ( 2657, 4833 ),
  272.                              new RSTile ( 2658, 4836 ),
  273.                              new RSTile ( rand_x, rand_y ) };
  274.  
  275.       altar_path = walking.newTilePath ( TO_ALTAR );
  276.       altar_path.traverse();
  277.    }
  278.  
  279.    private void walk_to_portal()
  280.    {
  281.       int rand_x = random ( 2654, 2658 );
  282.       int rand_y = random ( 4838, 4840 );
  283.  
  284.       RSTile [] TO_ALTAR = { new RSTile ( 2657, 4830 ),
  285.                              new RSTile ( 2657, 4833 ),
  286.                              new RSTile ( 2658, 4836 ),
  287.                              new RSTile ( rand_x, rand_y ) };
  288.  
  289.       altar_path = walking.newTilePath ( TO_ALTAR );
  290.       altar_path.reverse();
  291.       altar_path.traverse();
  292.       altar_path.reverse();
  293.    }
  294.  
  295.    ////////////////////////////////////////////////////////////////////////////////////
  296.    // BANK
  297.    ////////////////////////////////////////////////////////////////////////////////////
  298.  
  299.    private void bank()
  300.    {
  301.       try
  302.       {
  303.          RSObject bank_booth = objects.getNearest ( BANK_BOOTH_ID );
  304.  
  305.          bank_booth.doAction ( "Use-quickly" );
  306.          sleep ( 1000, 1500 );
  307.  
  308.          bank.depositAll();
  309.          sleep ( 1000, 1200 );
  310.  
  311.          bank.withdraw ( RUNE_ESS_ID, 28 );
  312.          sleep ( 1000, 1200 );
  313.  
  314.          bank.close();
  315.  
  316.          if ( inventory.getCount() != 28 )
  317.          {
  318.             bank();
  319.          }
  320.       }
  321.       catch ( Exception e ) {}
  322.    }
  323.  
  324.    ////////////////////////////////////////////////////////////////////////////////////
  325.    // TRADE 1
  326.    ////////////////////////////////////////////////////////////////////////////////////
  327.  
  328.    private void trade_1()
  329.    {
  330.       RSItem essence              = inventory.getItem ( RUNE_ESS_ID );
  331.       RSInterface trade_window_1  = interfaces.get ( 335 );
  332.       RSComponent accept_button_1 = trade_window_1.getComponent ( 17 );
  333.       RSComponent wealth_trans_1  = trade_window_1.getComponent ( 43 );
  334.       RSComponent wealth_trans_2  = trade_window_1.getComponent ( 44 );
  335.  
  336.       sleep ( 200, 300 );
  337.  
  338.       if ( trade_window_1.isValid() )
  339.       {
  340.          sleep ( 200, 300 );
  341.  
  342.          while ( wealth_trans_1.getText().contains ( "Nothing" ) )
  343.          {
  344.             essence.doAction ( "Offer-All" );
  345.             sleep ( 500, 750 );
  346.          }
  347.  
  348.          while ( wealth_trans_2.getText().contains ( "Nothing" ) )
  349.          {
  350.             sleep ( 500, 750 );
  351.          }
  352.  
  353.          accept_button_1.doAction ( "Accept" );
  354.       }
  355.    }
  356.  
  357.    ////////////////////////////////////////////////////////////////////////////////////
  358.    // TRADE 2
  359.    ////////////////////////////////////////////////////////////////////////////////////
  360.  
  361.    private void trade_2()
  362.    {
  363.       RSInterface trade_window_2  = interfaces.get ( 334 );
  364.       RSComponent trade_status    = trade_window_2.getComponent ( 34 );
  365.       RSComponent accept_button_2 = trade_window_2.getComponent ( 36 );
  366.  
  367.       sleep ( 200, 300 );
  368.  
  369.       if ( trade_window_2.isValid() )
  370.       {
  371.          sleep ( 200, 300 );
  372.  
  373.          while ( trade_status.getText().contains ( "player has accepted" ) )
  374.          {
  375.             accept_button_2.doAction ( "Accept" );
  376.          }
  377.       }
  378.    }
  379.  
  380.    ////////////////////////////////////////////////////////////////////////////////////
  381.    // CHECK TRADE WINDOW 1
  382.    ////////////////////////////////////////////////////////////////////////////////////
  383.  
  384.    private boolean on_trade_window_1()
  385.    {
  386.       return ( interfaces.get ( 335 ).isValid() );
  387.    }
  388.  
  389.    ////////////////////////////////////////////////////////////////////////////////////
  390.    // CHECK TRADE WINDOW 2
  391.    ////////////////////////////////////////////////////////////////////////////////////
  392.  
  393.    private boolean on_trade_window_2()
  394.    {
  395.       return ( interfaces.get ( 334 ).isValid() );
  396.    }
  397.  
  398.    ////////////////////////////////////////////////////////////////////////////////////
  399.    // CHECK TRADE WINDOW
  400.    ////////////////////////////////////////////////////////////////////////////////////
  401.  
  402.    private boolean on_trade_window()
  403.    {
  404.       return ( interfaces.get ( 334 ).isValid() || interfaces.get ( 335 ).isValid() );
  405.    }
  406.  
  407.    ////////////////////////////////////////////////////////////////////////////////////
  408.    // ANTI-BAN
  409.    ////////////////////////////////////////////////////////////////////////////////////
  410.  
  411.    private void anti_ban_camera()
  412.    {
  413.       int randomNum = random ( 1, 50 );
  414.  
  415.       if ( randomNum == 1 || randomNum == 2 || randomNum == 3 )
  416.       {
  417.          camera.moveRandomly ( random ( 2000, 5500 ) );
  418.       }
  419.  
  420.       if ( randomNum == 4 || randomNum == 5 )
  421.       {
  422.          camera.setAngle ( random ( 10, 40 ) );
  423.       }
  424.  
  425.       if ( randomNum == 6 )
  426.       {
  427.          camera.setPitch ( random ( 40, 68 ) );
  428.       }
  429.  
  430.       if ( randomNum == 7 )
  431.       {
  432.          camera.setPitch ( random ( 20, 45 ) );
  433.       }
  434.  
  435.       if ( randomNum == 8 )
  436.       {
  437.          camera.setPitch ( random ( 68, 90 ) );
  438.       }
  439.       else
  440.       {
  441.          sleep ( 50, 70 );
  442.       }
  443.    }
  444.  
  445.    ////////////////////////////////////////////////////////////////////////////////////
  446.    // MESSAGE RECEIVED
  447.    ////////////////////////////////////////////////////////////////////////////////////
  448.  
  449.    public void messageReceived ( MessageEvent e )
  450.    {
  451.       String sender_name    = e.getSender();
  452.       int message_result    = sender_name.compareTo ( MASTER_NAME );
  453.  
  454.       int rand_x            = random ( 10, 200 );
  455.       int rand_y            = random ( 445, 455 );
  456.  
  457.       if ( message_result == 0 || message_result == 128 )
  458.       {
  459.          if ( !inventory.contains ( EARTH_RUNE_ID ) )
  460.          {
  461.             mouse.click ( rand_x, rand_y, true );
  462.          }      
  463.       }
  464.    }
  465. }
RAW Paste Data
Top