Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.dreambot.api.methods.Calculations;
- import org.dreambot.api.methods.map.Tile;
- import org.dreambot.api.script.AbstractScript;
- import org.dreambot.api.script.Category;
- import org.dreambot.api.script.ScriptManifest;
- import org.dreambot.api.wrappers.interactive.Player;
- import org.dreambot.api.wrappers.items.Item;
- import org.dreambot.api.wrappers.widgets.WidgetChild;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Timer;
- @ScriptManifest(author = "You", name = "Custom Script", version = 1.0, description = "Dicing Script", category = Category.MONEYMAKING)
- public class main extends AbstractScript {
- Timer timer;
- State state;
- long betAmmount = 0;
- boolean acceptedBet = false;
- private long startGP = 0;
- long tradeTimer = 0;
- private long myGp = 0;
- boolean winBet;
- int maxTradeTime = 30;// max #of sleep cycles before blacklisting cfg item eventually
- int runDistance = 30;//max distance from start tile cfg item eventually
- String Roller;
- boolean Rolling = false;
- Tile startTile;
- List<Player> gamblerList = new ArrayList<Player>();
- List<Player> blackList = new ArrayList<Player>();
- List<Player> whales = new ArrayList<Player>();
- Item[] theirTradeItems = null;
- long minBet = 0;
- public void onStart() {
- startGP = getInventory().count("Coins");
- getMouse().getMouseSettings().setWordsPerMinute(Calculations.random(60, 100));
- timer = new Timer();
- startTile = getLocalPlayer().getTile();
- }
- private enum State {
- TRADE, WAITING, PAYOUT, RETURN, BETTING, UNOWN,
- }
- private State getState() {
- if (getTrade().isOpen() && !winBet) {
- return State.TRADE;
- }
- if (getClient().getDestination().distance(startTile) > runDistance || getLocalPlayer().getTile().distance(startTile) > runDistance) {
- return State.RETURN;
- }
- if (gamblerList.isEmpty()) {
- return State.WAITING;
- }
- if (winBet) {
- return State.PAYOUT;
- }
- return State.UNOWN;
- }
- public void onExit() {
- }
- @Override
- public int onLoop() {
- if (!getClient().isLoggedIn()) {
- return Calculations.random(300, 500);
- }
- int gp = getInventory().count("Coins");
- if (getLocalPlayer().isMoving() && getClient().getDestination() != null && getClient().getDestination().distance(getLocalPlayer().getTile()) > 3)
- return Calculations.random(200, 300);
- switch (getState()) {
- case TRADE:
- dealWithTrade();
- break;
- case WAITING:
- sendGambleSpam();
- break;
- case PAYOUT:
- //code to trade user 2x inital bet here
- break;
- case RETURN:
- blackList.add(gamblerList.get(0));
- gamblerList.remove(0);
- getWalking().walk(startTile);
- break;
- case UNOWN:
- log("sumtingwong");
- }
- return Calculations.random(500, 600);
- }
- private void sendGambleSpam() {
- tradeTimer = 0;
- if (!gamblerList.isEmpty() && !getTrade().isOpen()) /*checks if there is a gambler & no trade open*/ {
- getTrade().tradeWithPlayer(gamblerList.get(0).getName());
- sleepUntil(() -> getTrade().isOpen() || !(getLocalPlayer().getTile().distance(startTile) > runDistance), Calculations.random(10000, 20000));
- } else {
- getKeyboard().type("spammessage here");
- }
- }
- private void dealWithTrade() {
- if (!gamblerList.isEmpty() && getTrade().isOpen()) /*checks if there is a gamblerthere is a trade open open*/ {
- if (tradeTimer == 0) /*checks is trade has taken too long, todo:: add maxsleepcycle to trade event & */ {
- tradeTimer = System.currentTimeMillis();
- }
- if (System.currentTimeMillis() - tradeTimer > maxTradeTime) {
- getTrade().declineTrade();
- tradeTimer = 0;
- blackList.add(gamblerList.get(0));
- gamblerList.remove(0);
- return;
- }
- if (getTrade().isOpen(2)) {
- if (getTrade().verifyTrade(false, theirTradeItems)) {
- getTrade().acceptTrade(2);
- //todo:: check if trade was successful? & run BetEnum
- WidgetChild secondTradeWidget =
- getWidgets().getWidget(334)
- .getChild(4);
- String tradeText = secondTradeWidget.getText();
- if (tradeText != null) {
- if (tradeText.equalsIgnoreCase("Other player has accepted.")) {
- myGp = getInventory().get("Coins").getAmount();
- Roller = getTrade().getTradingWith();
- if (getTrade().acceptTrade(2)) {
- sleepUntil(() -> !getTrade().isOpen(), 20000);
- if (getInventory().get("coins").getAmount() == myGp + betAmmount) {
- Rolling = true;
- } else {
- Roller = "0";
- /*blackList.add(getPlayers().)*/
- log("scam attempt adding to blacklist");
- }
- }
- }
- }
- } else {
- log("had a verification missmatch, they tried to yoinK?");
- }
- if (getTrade().isOpen(1)) {
- WidgetChild firstTradeWidget =
- getWidgets().getWidget(335)
- .getChild(30);
- String tradeInterfaceText = firstTradeWidget.getText();
- if (tradeInterfaceText != null) {
- if (tradeInterfaceText.equalsIgnoreCase("Other player has accepted.")) {
- if (getTrade().contains(false, "Coins")) {
- theirTradeItems = getTrade().getTheirItems();
- if (theirTradeItems.length == 1) {// this might not work, array might be 28 by default
- betAmmount = theirTradeItems[0].getAmount();
- if (betAmmount < minBet) {
- log("bet ammmount not high enough");
- getKeyboard().type("bet ammmount not high enough");
- //add softwarn
- getTrade().declineTrade();
- gamblerList.remove(0);
- return;
- } else {
- getTrade().acceptTrade(1);
- }
- } else {
- log("no coins in trade");
- getKeyboard().type("Coins only please");
- getTrade().declineTrade();
- gamblerList.remove(0);
- return;
- //add softwarn
- }
- }
- } else {
- log("waiting on accept");
- }
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement