forward prod Posted May 22, 2018 Share Posted May 22, 2018 (edited) So the first time I ran my script, in the if statement that returns State.MINE didn't have "miningArea.contains(myPosition())" included in it. The script ran fine and returned State.MINE when the criteria was met, but once I added "miningArea.contains(myPosition())" if went to the default return case State.WAIT every time. This seems to be the case anytime I use AREA.contains(myPosition()) in an if/else statement. I also double checked to make sure my player was in the area "mineArea". I'm new to scripting so I might be missing something completely obvious so please point anything out. private State getState() { Area miningArea = new Area(3221, 3150, 3226, 3143); Area bankArea = new Area(3205, 3223, 3212, 3214); bankArea.setPlane(2); /* * if (I'm at the mine) * if (My inventories empty and I'm not animating) * Mine Rocks */ if (!getInventory().isFull() && !myPlayer().isAnimating() && miningArea.contains(myPosition())) { log("mining. . ."); return State.MINE; /* * if (I'm at the mine and my inventory is full) * Run to the bank */ } else if (getInventory().isFull() && !bankArea.contains(myPosition())) { log("running to bank. . ."); return State.RUN_BANK; /* * if (I'm at the bank and my inventory is empty) Run to the mine */ } else if (bankArea.contains(myPosition()) && getInventory().isEmpty()) { log("running to mine. . ."); return State.RUN_MINE; /* * if (I'm at the bank and my inventory is full) * Bank Items */ } else if (bankArea.contains(myPosition()) && getInventory().isFull()) { log("banking. . ."); return State.BANK; /* * none of the other conditions are satisfied * Wait */ } else { log("waiting. . ."); return State.WAIT; } } Edited May 22, 2018 by forward prod solved Quote Link to comment Share on other sites More sharing options...