-
Posts
185 -
Joined
-
Last visited
-
Feedback
0%
Everything posted by Alakazizam
-
Client settings? "Launch game with mirror (beta)"
Alakazizam replied to osrsf2p's topic in General Help
Launch game with mirror is supposed launch the official client when you select an account in the osbot client. Just tested on my end and it works. In my experience though stealth is just as good as mirror unless you're doing tutorial island, even by hand. A bad script will get you caught regardless and a good script will get you by. Mirror hasn't been worth the extra computer resources in my experience. I use to test half mirror and half stealth back when I started and bans were pretty much even between the two. -
I'm finding the biggest factor for bans on my end is how often are you around other people. The more players that can see your bot, the more likely you are to be caught. VIP is worth it just to run enough accounts to figure out what you can get away with.
-
Awesome, I didn't think you had anything in there to zoom out. On the main post you have "Please set the mouse zoom to far away (to the left, like below) so that more obstacles can be seen in the view, and so the script can be more stable and reliable" So I figured it needed to be done manually.
-
I've been using proxy-seller but they've been giving me trouble recently and the customer support isn't being as helpful as they use to be so I'm looking for a new supplier. Most of what I can find charges by data used, I'm looking for something that charges a flat rate per IP address. Any suggestions would be appreciated.
-
This is pretty much what I do if I need to avoid people. It first checks to make sure no one but me is around, if so it does my task, otherwise it hops worlds. This HopRandomWorld() function will check if you are in F2P or P2P and hop to a random world accordingly, you can edit the world lists as you please. @Override public int onLoop() throws InterruptedException { if (getPlayers().getAll().size() == 1) { if (!myPlayer().isAnimating() && !myPlayer().isMoving()) { //MAIN PART OF YOUR CODE GOES HERE } } else { HopRandomWorld(); } return 602; } void HopRandomWorld() { int P2PWorlds[] = {303, 304, 305, 306, 307, 309, 310, 311, 312, 313, 314, 315, 317, 318, 319, 320, 321, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 333, 334, 336, 337, 338, 339, 340, 341, 342, 343, 344, 346, 347, 348, 350, 351, 352, 354, 355, 356, 357, 358, 359, 360, 362, 367, 368, 370, 374, 375, 376, 377, 378, 386, 387, 388, 389, 390, 395, 421, 422, 424, 443, 444, 445, 446, 463, 464, 465, 466, 477, 478, 480, 481, 482, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 531, 532, 534, 535}; int F2PWorlds[] = {308, 316, 335, 371, 382, 383, 384, 394, 397, 398, 399, 417, 418, 430, 431, 433, 434, 435, 436, 437, 451, 452, 453, 454, 455, 456, 470, 471, 475, 476, 483, 497, 498, 499, 500, 501, 537, 542, 543, 544, 545, 546, 547, 552, 553, 554, 556, 557, 562, 563, 571, 575}; if (getWorlds().isMembersWorld()) { int TargetIndex = random(0, P2PWorlds.length - 1); if (P2PWorlds[TargetIndex] != getWorlds().getCurrentWorld()) { getWorlds().hop(P2PWorlds[TargetIndex]); } else { HopRandomWorld(); } } else { int TargetIndex = random(0, F2PWorlds.length - 1); if (F2PWorlds[TargetIndex] != getWorlds().getCurrentWorld()) { getWorlds().hop(F2PWorlds[TargetIndex]); } else { HopRandomWorld(); } } } You can do a conditional sleep after you do whatever it is you're doing that requires you to sleep. This will stop sleeping when the condition is met or if another player is in ~minimap range. new ConditionalSleep(10000) { @Override public boolean condition() {return /**Your main condition**/ || getPlayers().getAll().size() > 1;} }.sleep();
-
I'm interested but my concern is needing to set the camera up manually. That's not something I can do with my bot manager and I'm worried it wont function right. I typically do this on my scripts and it seems to work well. if (getCamera().getScaleZ() > 200 || getCamera().getPitchAngle() < 65) { SetCam(); } void SetCam() { if (getCamera().getPitchAngle() < 65){ getCamera().movePitch(67); } if (getTabs().open(Tab.SETTINGS)) { if (getWidgets().get(116, 112) != null && getWidgets().get(116, 112).isVisible()) { getWidgets().get(116, 112).interact(); if (getWidgets().get(116, 92) != null && getWidgets().get(116, 92).isVisible()) { getWidgets().get(116, 92).interact(); } } } }
-
a sandbox is like a computer inside your computer. whatever you run in the sandbox will have its own instance of that program and any files it generates will be kept separately from other sandboxes and your own computers directories. It will appear as if the accounts are not being played on the same machine. But as stated above, you will very likely have a lot of accounts banned before you start coming out ahead, it is a learning process. I'm still fairly new myself.
-
Also some people swear by mirror mode, I don't get much better results in testing using it. If the script doesn't run well I get bans whether I'm on mirror mode or stealth, if the script is good, bans don't happen too often. The only thing is do not go through Tutorial Island on a stealth client, even by hand. They still catch it some sort of way.
-
Use a residential proxy for your botted account, you can get one for ~2$usd a month. I get mine from proxy-seller.com but they have pleanty of other providers. Get a sandbox program (I use sandboxie-plus, its free and good) bot inside the sandbox and run your main as normal. My best advice is do your best to avoid other players.
-
I've had the same happen, just used osbot to log in and played by hand so there is definitely some way they can see what client you're using. I immagine they pay special attention to tutorial island to try to wipe bots early. I've been using a multibox software that's built around runelite and uses proxies. I don't want to name it since it could be considered a 'competitor' but there's only really 1 good one out there, at least at the time I was looking for them a couple years ago, and it ran ~100$USD if I remember correctly. I run accounts through in waves of 10, suicide them to get the death office out of the way, and then run them to my mule spot and its all smooth sailing from there.
-
Need help crossing wilderness ditch with webWalking
Alakazizam replied to Alakazizam's topic in Scripting Help
Yeah, I couldn't wrap my head around that so I made a work around lol. I have a LOT of experience with blueprint coding in Unreal Engine, but when it comes to actually WRITING code, I get lost. I just made a massive area that covers the wilderness. If I'm not in the area I run to a designated area by the ditch and interact with it and the warning widget and then carry on going where I was going lol. -
Need help crossing wilderness ditch with webWalking
Alakazizam replied to Alakazizam's topic in Scripting Help
I've tried void WalkToWithBreak(Position MyPosition, boolean BreakCondition) { WebWalkEvent MyEvent = new WebWalkEvent(MyPosition); MyEvent.setHighBreakPriority(BreakCondition); execute(MyEvent); } And that did not work. -
I'm probably not doing this right but I'm trying to make a webWalking event that breaks when the caution message appears when crossing the wilderness ditch. As of now it stops at the ditch for a while and then attempts to cross again some time after. This is what I'm working with at the moment. My function. void WalkToWithBreak(Position MyPosition, boolean BreakCondition) { WebWalkEvent MyEvent = new WebWalkEvent(MyPosition); MyEvent.setBreakCondition(new Condition() { @Override public boolean evaluate() { return BreakCondition; } }); execute(MyEvent); } Calling my function. WalkToWithBreak(AssessmentZone.getRandomPosition(), getWidgets().get(475, 11, 1) != null && getWidgets().get(475, 11, 1).isVisible());
-
Good catch! thank you.
-
I've been trying to teach myself how to write my own scripts and I've been having trouble with hopToF2PWorld and hopToP2PWorld. It would randomly hang up on trying to select Speed Running worlds and occasionally there would just be a world that didn't want to let me connect for whatever reason and it would stop my scripts. I decided to try to make my own function. It takes note of whether you are in a F2P or P2P world and hops accordingly. I wanted to share incase anyone else is having this issue and more importantly incase someone who know a bit more can tell me why this would be bad to do lol. void HopRandomWorld() { int P2PWorlds[] = {303, 304, 305, 306, 307, 309, 310, 311, 312, 313, 314, 315, 317, 318, 319, 320, 321, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 333, 334, 336, 337, 338, 339, 340, 341, 342, 343, 344, 346, 347, 348, 350, 351, 352, 354, 355, 356, 357, 358, 359, 360, 362, 367, 368, 370, 374, 375, 376, 377, 378, 386, 387, 388, 389, 390, 395, 421, 422, 424, 443, 444, 445, 446, 463, 464, 465, 466, 477, 478, 480, 481, 482, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 531, 532, 534, 535}; int F2PWorlds[] = {308, 316, 335, 371, 382, 383, 384, 394, 397, 398, 399, 417, 418, 430, 431, 433, 434, 435, 436, 437, 451, 452, 453, 454, 455, 456, 470, 471, 475, 476, 483, 497, 498, 499, 500, 501, 537, 542, 543, 544, 545, 546, 547, 552, 553, 554, 556, 557, 562, 563, 571, 575}; if (getWorlds().isMembersWorld()) { int TargetIndex = random(0, P2PWorlds.length); if (P2PWorlds[TargetIndex] != getWorlds().getCurrentWorld()) { getWorlds().hop(P2PWorlds[TargetIndex]); } else { HopRandomWorld(); } } else { int TargetIndex = random(0, F2PWorlds.length); if (F2PWorlds[TargetIndex] != getWorlds().getCurrentWorld()) { getWorlds().hop(F2PWorlds[TargetIndex]); } else { HopRandomWorld(); } } }
-
$1000.00 in OSBot Credit Holiday Giveaway
Alakazizam replied to Maldesto's topic in Community Discussion
Got my son a skateboard, helmet, and pads. Probably too early because I'm too scared to let him actually get on by himself lol. -
Like I said, still pretty new and I may be misunderstanding how exactly things work. It was my understanding that stealth mode just tells the client to interact with the closest bank and mirror mode takes control of the official client and clicks where it's supposed to click. I've read that they have bank booths in game that exist in code but not actually rendered? Like they can be referenced by the stealth client but a legit client wouldn't be able to click on it so accessing that bank would get you flagged? Again I'm fairly new and my understanding of how this all works probably isn't that great but I find my stealth client bans are significantly higher when accessing banks. Just a thing I've taken notice to and decided to avoid doing and since I've started that my bans have been extremely low. On 3 weeks of pretty simple script that doesn't bank, running with 30-90 minuet bot time and 5-15 minuet breaks 24/7 and no bans yet.
-
I've had an account banned by doing tutorial island by hand in stealth mode before. I just used an afk script to punch in the username and password and then took over by hand. I'm pretty sure they can see what client your game is running on if they look at you for whatever reason. I think they have certain things in place to catch how stealth mode works and I pretty much avoid using stealth mode any time I'm accessing a bank because I feel like in my experience that's when I get banned in stealth. But someone may have also reported you for some reason or another and got you looked at? But mirror mode pretty much takes control of the official game client so if you get looked at you're showing as playing on that and from my understanding it doesn't inject code to access the bank like in stealth mode, it clicks on the bank on the official client. But I'm fairly new myself. Mirror mode is a lot more resource heavy though. I can run about 11-15 stealth clients on a machine that can handle 4-6 mirror clients depending on the script I'm running.
-
Thanks, I think I can make Khaleesi's advice work for now by checking time until break. I need to learn how to make my own break handler, but I have a lot to learn. Not even sure how to go about starting something like that lol.
-
Is there a way to have a function run when the break manager starts a break. I have a boolean I need reset whenever this happens.
-
Got it, thanks
-
I'm having trouble with a function to enter a friends POH. I'm familiar enough with using dialogue that involves simple continues and selecting options, but I can't find out how to enter text when asked for it. I do have a String variable MyHost I would like to use. Any help would be appreciated. void GoHome() throws InterruptedException { if (OutsideArea.contains(myPosition())) { if(getDialogues().inDialogue()) { //Not sure what to put here <<<------- } else { RS2Object MyPortal = getObjects().closest("Portal"); MyPortal.interact("Friend's house"); sleep(3000); } } else if (inventory.contains("Teleport to house")) { getInventory().getItem("Teleport to house").interact("Outside"); sleep(5000); } else { log("Stopping script... No way home"); stop(); } }
-
My script seems to stop immediately and I'm not sure why
Alakazizam replied to Alakazizam's topic in Scripting Help
Thanks. I'm familiar with them from Unreal Engine but I'm just getting my feet wet with Java. -
My script seems to stop immediately and I'm not sure why
Alakazizam posted a topic in Scripting Help
Trying to make a little script to pull equipment from bank and equip it based on attack and defense levels. The script stops as soon as I run it and I'm not exactly sure why. I've tried adding logs to various places but nothing is making it into the logger. Any help would be greatly appreciated. I am also getting some warnings and I don't see how this would be true ===WARNINGS=== Condition 'MyAttackLvl >= 5' is always 'true' Condition 'MyAttackLvl >= 20' is always 'true' Condition 'MyAttackLvl >= 30' is always 'true' Condition 'MyDefenceLvl >= 5' is always 'true' Condition 'MyDefenceLvl >= 20' is always 'true' Condition 'MyDefenceLvl >= 30' is always 'true' ===CODE=== package GearSetter; import org.osbot.rs07.api.ui.EquipmentSlot; import org.osbot.rs07.script.Script; import org.osbot.rs07.script.ScriptManifest; import org.osbot.rs07.api.ui.Skill; @ScriptManifest(name = "GearSetter", author = "Alakazizam",logo = "", version = 0.1, info = "Equips gear for level") public class Main extends Script { int MyAttackLvl = getSkills().getDynamic(Skill.ATTACK); int MyDefenceLvl = getSkills().getDynamic(Skill.DEFENCE); String MyWeapon = ""; String MyHelm = ""; String MyChest = ""; String MyLegs = ""; String MyShield = ""; String MyNecklace = "Amulet of power"; String MyGloves = "Leather gloves"; String MyBoots = "Leather boots"; String MyCape = "Black cape"; @Override public int onLoop() throws InterruptedException { log("Starting script");; SetMyWeapon(); SetMyArmor(); if (!CheckMyGear()) { GoGetGear(); } else { log("Stopping script, you have the proper gear."); stop(false); } return 602; } private void SetMyWeapon() { if (MyAttackLvl < 5) { MyWeapon = "Iron longsword"; log( "Weapon set to Iron longsword"); } else if (MyAttackLvl >= 5 && MyAttackLvl < 20) { MyWeapon = "Steel longsword"; log( "Weapon set to Steel longsword"); } else if (MyAttackLvl >= 20 && MyAttackLvl < 30) { MyWeapon = "Mithril longsword"; log( "Weapon set to Mithril longsword"); } else if (MyAttackLvl >= 30 && MyAttackLvl < 40) { MyWeapon = "Adamant longsword"; log( "Weapon set to Adamant longsword"); } else { MyWeapon = "Rune longsword"; log( "Weapon set to Rune longsword"); } } private void SetMyArmor() { if (MyDefenceLvl < 5) { MyHelm = "Iron full helm"; MyChest = "Iron platebody"; MyLegs = "Iron platelegs"; MyShield = "Iron kiteshield"; log( "Armor set to Iron"); } else if (MyDefenceLvl >= 5 && MyDefenceLvl < 20) { MyHelm = "Steel full helm"; MyChest = "Steel platebody"; MyLegs = "Steel platelegs"; MyShield = "Steel kiteshield"; log( "Armor set to Steel"); } else if (MyDefenceLvl >= 20 && MyDefenceLvl < 30) { MyHelm = "Mithril full helm"; MyChest = "Mithril platebody"; MyLegs = "Mithril platelegs"; MyShield = "Mithril kiteshield"; log( "Armor set to Mithril"); } else if (MyDefenceLvl >= 30 && MyDefenceLvl < 40) { MyHelm = "Adamant full helm"; MyChest = "Adamant platebody"; MyLegs = "Adamant platelegs"; MyShield = "Adamant kiteshield"; log( "Armor set to Adamant"); } else { MyHelm = "Rune full helm"; MyChest = "Rune chainbody"; MyLegs = "Rune platelegs"; MyShield = "Rune kiteshield"; log( "Armor set to Rune"); } } private boolean CheckMyGear() { return getEquipment().isWearingItem(EquipmentSlot.WEAPON, MyWeapon) && getEquipment().isWearingItem(EquipmentSlot.HAT, MyHelm) && getEquipment().isWearingItem(EquipmentSlot.CHEST, MyChest) && getEquipment().isWearingItem(EquipmentSlot.LEGS, MyLegs) && getEquipment().isWearingItem(EquipmentSlot.SHIELD, MyShield) && getEquipment().isWearingItem(EquipmentSlot.AMULET, MyNecklace) && getEquipment().isWearingItem(EquipmentSlot.HANDS, MyGloves) && getEquipment().isWearingItem(EquipmentSlot.FEET, MyBoots) && getEquipment().isWearingItem(EquipmentSlot.CAPE, MyCape); } private void GoGetGear() throws InterruptedException { WalkToBank(); WithdrawGear(); EquipGear(); BankInventory(); } private void WalkToBank() { log("Walking to closest bank"); getWalking().walk(getBank().closest()); log("Arrived at bank"); } private void WithdrawGear() throws InterruptedException { if (!getBank().isOpen()) { bank.open(); } if (!getEquipment().isWearingItem(EquipmentSlot.WEAPON, MyWeapon)) { bank.withdraw(MyWeapon, 1); log("Withdrawing " + MyWeapon); } if (!getEquipment().isWearingItem(EquipmentSlot.HAT, MyHelm)) { bank.withdraw(MyHelm, 1); log("Withdrawing " + MyHelm); } if (!getEquipment().isWearingItem(EquipmentSlot.CHEST, MyChest)) { bank.withdraw(MyChest, 1); log("Withdrawing " + MyChest); } if (!getEquipment().isWearingItem(EquipmentSlot.LEGS, MyLegs)) { bank.withdraw(MyLegs, 1); log("Withdrawing " + MyLegs); } if (!getEquipment().isWearingItem(EquipmentSlot.SHIELD, MyShield)) { bank.withdraw(MyShield, 1); log("Withdrawing " + MyShield); } if (!getEquipment().isWearingItem(EquipmentSlot.AMULET, MyNecklace)) { bank.withdraw(MyNecklace, 1); log("Withdrawing " + MyNecklace); } if(!getEquipment().isWearingItem(EquipmentSlot.HANDS, MyGloves)) { bank.withdraw(MyGloves, 1); log("Withdrawing " + MyGloves); } if (!getEquipment().isWearingItem(EquipmentSlot.FEET, MyBoots)) { bank.withdraw(MyBoots, 1); log("Withdrawing " + MyBoots); } if (!getEquipment().isWearingItem(EquipmentSlot.CAPE, MyCape)) { bank.withdraw(MyCape, 1); log("Withdrawing " + MyCape); } bank.close(); log("Closing bank"); } private void EquipGear() { if (!getEquipment().isWearingItem(EquipmentSlot.WEAPON, MyWeapon)) { getEquipment().equip(EquipmentSlot.WEAPON, MyWeapon); log("Equipping " + MyWeapon); } if (!getEquipment().isWearingItem(EquipmentSlot.HAT, MyHelm)) { getEquipment().equip(EquipmentSlot.HAT, MyHelm); log("Equipping " + MyHelm); } if (!getEquipment().isWearingItem(EquipmentSlot.CHEST, MyChest)) { getEquipment().equip(EquipmentSlot.CHEST, MyChest); log("Equipping " + MyChest); } if (!getEquipment().isWearingItem(EquipmentSlot.LEGS, MyLegs)) { getEquipment().equip(EquipmentSlot.LEGS, MyLegs); log("Equipping " + MyLegs); } if (!getEquipment().isWearingItem(EquipmentSlot.SHIELD, MyShield)) { getEquipment().equip(EquipmentSlot.SHIELD, MyShield); log("Equipping " + MyShield); } if (!getEquipment().isWearingItem(EquipmentSlot.AMULET, MyNecklace)) { getEquipment().equip(EquipmentSlot.AMULET, MyNecklace); log("Equipping " + MyNecklace); } if(!getEquipment().isWearingItem(EquipmentSlot.HANDS, MyGloves)) { getEquipment().equip(EquipmentSlot.HANDS, MyGloves); log("Equipping " + MyGloves); } if (!getEquipment().isWearingItem(EquipmentSlot.FEET, MyBoots)) { getEquipment().equip(EquipmentSlot.FEET, MyBoots); log("Equipping " + MyBoots); } if (!getEquipment().isWearingItem(EquipmentSlot.CAPE, MyCape)) { getEquipment().equip(EquipmentSlot.CAPE, MyCape); log("Equipping " + MyCape); } } private void BankInventory() throws InterruptedException { if (!getBank().isOpen()) { log("Opening bank"); bank.open(); } log("Depositing inventory"); bank.depositAll(); log("Closing bank"); bank.close(); } } -
Not sure how I didn't notice windows defender popping up, but sure enough... All I did was tell windows defender to allow it to run and now I'm good to go