Advertisement
Guest User

Untitled

a guest
Apr 21st, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.77 KB | None | 0 0
  1. import org.dreambot.api.methods.Calculations;
  2. import org.dreambot.api.methods.map.Tile;
  3. import org.dreambot.api.script.AbstractScript;
  4. import org.dreambot.api.script.Category;
  5. import org.dreambot.api.script.ScriptManifest;
  6. import org.dreambot.api.wrappers.interactive.Player;
  7. import org.dreambot.api.wrappers.items.Item;
  8. import org.dreambot.api.wrappers.widgets.WidgetChild;
  9.  
  10. import java.util.ArrayList;
  11. import java.util.List;
  12. import java.util.Timer;
  13.  
  14. @ScriptManifest(author = "You", name = "Custom Script", version = 1.0, description = "Dicing Script", category = Category.MONEYMAKING)
  15. public class main extends AbstractScript {
  16.     Timer timer;
  17.     State state;
  18.     long betAmmount = 0;
  19.     boolean acceptedBet = false;
  20.     private long startGP = 0;
  21.     long tradeTimer = 0;
  22.     private long myGp = 0;
  23.     boolean winBet;
  24.     int maxTradeTime = 30;// max #of sleep cycles before blacklisting cfg item eventually
  25.     int runDistance = 30;//max distance from start tile cfg item eventually
  26.     String Roller;
  27.     boolean Rolling = false;
  28.  
  29.     Tile startTile;
  30.     List<Player> gamblerList = new ArrayList<Player>();
  31.     List<Player> blackList = new ArrayList<Player>();
  32.     List<Player> whales = new ArrayList<Player>();
  33.     Item[] theirTradeItems = null;
  34.     long minBet = 0;
  35.  
  36.  
  37.     public void onStart() {
  38.         startGP = getInventory().count("Coins");
  39.         getMouse().getMouseSettings().setWordsPerMinute(Calculations.random(60, 100));
  40.         timer = new Timer();
  41.         startTile = getLocalPlayer().getTile();
  42.     }
  43.  
  44.     private enum State {
  45.         TRADE, WAITING, PAYOUT, RETURN, BETTING, UNOWN,
  46.     }
  47.  
  48.     private State getState() {
  49.         if (getTrade().isOpen() && !winBet) {
  50.             return State.TRADE;
  51.         }
  52.         if (getClient().getDestination().distance(startTile) > runDistance || getLocalPlayer().getTile().distance(startTile) > runDistance) {
  53.             return State.RETURN;
  54.         }
  55.         if (gamblerList.isEmpty()) {
  56.             return State.WAITING;
  57.         }
  58.         if (winBet) {
  59.             return State.PAYOUT;
  60.         }
  61.  
  62.         return State.UNOWN;
  63.     }
  64.  
  65.     public void onExit() {
  66.  
  67.     }
  68.  
  69.     @Override
  70.     public int onLoop() {
  71.         if (!getClient().isLoggedIn()) {
  72.             return Calculations.random(300, 500);
  73.         }
  74.         int gp = getInventory().count("Coins");
  75.         if (getLocalPlayer().isMoving() && getClient().getDestination() != null && getClient().getDestination().distance(getLocalPlayer().getTile()) > 3)
  76.             return Calculations.random(200, 300);
  77.         switch (getState()) {
  78.             case TRADE:
  79.                 dealWithTrade();
  80.                 break;
  81.             case WAITING:
  82.                 sendGambleSpam();
  83.                 break;
  84.             case PAYOUT:
  85. //code to trade user 2x inital bet here
  86.                 break;
  87.             case RETURN:
  88.                 blackList.add(gamblerList.get(0));
  89.                 gamblerList.remove(0);
  90.                 getWalking().walk(startTile);
  91.                 break;
  92.             case UNOWN:
  93.                 log("sumtingwong");
  94.         }
  95.         return Calculations.random(500, 600);
  96.     }
  97.  
  98.     private void sendGambleSpam() {
  99.         tradeTimer = 0;
  100.         if (!gamblerList.isEmpty() && !getTrade().isOpen()) /*checks if there is a gambler & no trade open*/ {
  101.             getTrade().tradeWithPlayer(gamblerList.get(0).getName());
  102.             sleepUntil(() -> getTrade().isOpen() || !(getLocalPlayer().getTile().distance(startTile) > runDistance), Calculations.random(10000, 20000));
  103.         } else {
  104.             getKeyboard().type("spammessage here");
  105.         }
  106.     }
  107.  
  108.     private void dealWithTrade() {
  109.         if (!gamblerList.isEmpty() && getTrade().isOpen()) /*checks if there is a gamblerthere is a trade open open*/ {
  110.             if (tradeTimer == 0) /*checks is trade has taken too long, todo:: add maxsleepcycle to trade event & */ {
  111.                 tradeTimer = System.currentTimeMillis();
  112.             }
  113.             if (System.currentTimeMillis() - tradeTimer > maxTradeTime) {
  114.                 getTrade().declineTrade();
  115.                 tradeTimer = 0;
  116.                 blackList.add(gamblerList.get(0));
  117.                 gamblerList.remove(0);
  118.                 return;
  119.             }
  120.             if (getTrade().isOpen(2)) {
  121.                 if (getTrade().verifyTrade(false, theirTradeItems)) {
  122.                     getTrade().acceptTrade(2);
  123.                     //todo:: check if trade was successful? & run BetEnum
  124.                     WidgetChild secondTradeWidget =
  125.                             getWidgets().getWidget(334)
  126.                                     .getChild(4);
  127.  
  128.                     String tradeText = secondTradeWidget.getText();
  129.  
  130.                     if (tradeText != null) {
  131.                         if (tradeText.equalsIgnoreCase("Other player has accepted.")) {
  132.                             myGp = getInventory().get("Coins").getAmount();
  133.                             Roller = getTrade().getTradingWith();
  134.                             if (getTrade().acceptTrade(2)) {
  135.                                 sleepUntil(() -> !getTrade().isOpen(), 20000);
  136.                                 if (getInventory().get("coins").getAmount() == myGp + betAmmount) {
  137.                                     Rolling = true;
  138.                                 } else {
  139.                                     Roller = "0";
  140.                                     /*blackList.add(getPlayers().)*/
  141.                                     log("scam attempt adding to blacklist");
  142.                                 }
  143.  
  144.                             }
  145.  
  146.                         }
  147.  
  148.                     }
  149.                 } else {
  150.                     log("had a verification missmatch, they tried to yoinK?");
  151.  
  152.                 }
  153.                 if (getTrade().isOpen(1)) {
  154.                     WidgetChild firstTradeWidget =
  155.                             getWidgets().getWidget(335)
  156.                                     .getChild(30);
  157.  
  158.                     String tradeInterfaceText = firstTradeWidget.getText();
  159.                     if (tradeInterfaceText != null) {
  160.                         if (tradeInterfaceText.equalsIgnoreCase("Other player has accepted.")) {
  161.                             if (getTrade().contains(false, "Coins")) {
  162.                                 theirTradeItems = getTrade().getTheirItems();
  163.                                 if (theirTradeItems.length == 1) {// this might not work, array might be 28 by default
  164.                                     betAmmount = theirTradeItems[0].getAmount();
  165.                                     if (betAmmount < minBet) {
  166.                                         log("bet ammmount not high enough");
  167.                                         getKeyboard().type("bet ammmount not high enough");
  168.                                         //add softwarn
  169.                                         getTrade().declineTrade();
  170.                                         gamblerList.remove(0);
  171.                                         return;
  172.                                     } else {
  173.                                         getTrade().acceptTrade(1);
  174.                                     }
  175.  
  176.                                 } else {
  177.                                     log("no coins in trade");
  178.                                     getKeyboard().type("Coins only please");
  179.                                     getTrade().declineTrade();
  180.                                     gamblerList.remove(0);
  181.                                     return;
  182.                                     //add softwarn
  183.                                 }
  184.                             }
  185.                         } else {
  186.                             log("waiting on accept");
  187.                         }
  188.                     }
  189.                 }
  190.             }
  191.  
  192.  
  193.         }
  194.  
  195.     }
  196. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement