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.ScriptManifest;
- import org.dreambot.api.script.Category;
- import org.dreambot.api.wrappers.interactive.GameObject;
- import org.dreambot.api.script.*;
- import org.dreambot.api.wrappers.interactive.Player;
- import org.dreambot.api.wrappers.items.Item;
- 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;
- int betAmmount = 0;
- boolean acceptedBet = false;
- private long startGP = 0;
- int sleepCycles = 0;// # of times it will sleep before blacklisting
- int maxSleepCycles = 30;// max #of sleep cycles before blacklisting cfg item eventually
- int runDistance = 30;//max distance from start tile cfg item eventually
- Tile startTile;
- List<Player> gamblerList = new ArrayList<Player>();
- List<Player> blackList = new ArrayList<Player>();
- List<Player> whales = new ArrayList<Player>();
- Item[] theirTradeItems = null;
- int minBet = 0;
- public void onStart() {
- startGP = getInventory().count("Coins");
- timer = new Timer();
- startTile = getLocalPlayer().getTile();
- }
- private enum State {
- TRADE, WAITING, PAYOUT, RETURN, BETTING
- }
- private State getState() {
- if(true/*todo::check if a trade has been recieved or if a trade is in proccess*/) {
- return State.TRADE;
- }
- if(getClient().getDestination().distance(startTile) > runDistance){
- return State.RETURN;
- }
- return State.WAITING;
- }
- 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:
- if (!gamblerList.isEmpty() && !getTrade().isOpen()) /*checks if there is a gambler & no trade open*/{
- getTrade().tradeWithPlayer(gamblerList.get(0).getName());
- }
- //todo:: add a check for trade declining spam possibly with a list of soft warns, removed on successful gamble
- if (!gamblerList.isEmpty() && getTrade().isOpen()) /*checks if there is a gamblerthere is a trade open open*/{
- if (sleepCycles == 0) /*checks is trade has taken too long, todo:: add maxsleepcycle to trade event & */{
- getTrade().close();
- blackList.add(gamblerList.get(0));
- gamblerList.remove(0);
- sleepCycles = maxSleepCycles;
- }
- if (getTrade().isOpen(2)) {
- if (getTrade().verifyTrade(false, theirTradeItems)) {
- getTrade().acceptTrade(2);
- //todo:: check if trade was successful? & run BetEnum
- }else {
- log("had a verification missmatch, they tried to yoinK?");
- }
- }
- if (getTrade().contains(false, minBet, "Coins")) {
- theirTradeItems = getTrade().getTheirItems();
- if (theirTradeItems.length == 1) {
- betAmmount = theirTradeItems[0].getAmount();
- getTrade().acceptTrade(1);
- } else {
- log("too many items in trade cancling");
- }
- } else {
- log("minbet not met");
- }
- }
- break;
- case WAITING:
- //code to wait for a trade
- break;
- case PAYOUT:
- //code to trade user 2x inital bet here
- case RETURN:
- blackList.add(gamblerList.get(0));
- gamblerList.remove(0);
- getWalking().walk(startTile);
- break;
- }
- return Calculations.random(500, 600);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement