Everything posted by LifezHatred
-
Infinity Paradox
I swear all logic is lost... Since its being flipped infinitely it will never stop flipping, therefor the answer will never come But to enlighten the situation if a coin is flipped infinitely amount of times there will be a infinite amount of heads flipped and a infinite amount of tails flipped of the same size
-
Saving a user profile for your scripts
System isn't bad... A platform dependent system running inside of a platform independent system is bad. Wait im confused what makes this only work on Windows? please clarify your statement
-
Saving a user profile for your scripts
System isn't bad...
-
Does .999999999999 (repeated) = 1?
Lol who? or is this just spam?
-
Does .999999999999 (repeated) = 1?
You are right that it does, but your proof is incorrect. 9/9 can not be .999.. if it also equals 1. Let X = 0.999... Then 10X = 9.999... Subtract X from each side to give us: 9X = 9.999... - X but we know that X is 0.999..., so: 9X = 9.999... - 0.999... or: 9X = 9 Divide both sides by 9: X = 1 X = 0.999... = 1 Therefore 0.999... = 1 That's like saying when my eyes are blue and yours are brown that: Eyes = Blue Eyes = Brown Blue = Brown Two different numbers can never be the same number, whatever flawed mathematical formulas you will use for it. I've read that explanation before and I'm sure that's technically the correct mathemetical answer, but it's just bullshit. Simple logic is that two different numbers are not the same number. Simple logic also shows us that there is no 'infinite' so this entire theory is an empty shell. Also, to give a reply which is someone on the same wave length: 10x = 9,9999... 9x= 9 8x = 9 - 0,999999.... 8x = ????????? Explain that one to me. Flawed method... if 10x = 9.999... then 9x ≠ 9 That's your own flawed method I quoted mate. Ehh this is something that is weird with the decimal system, which has to do with a number being smaller than one, we simply do a base ten system of a smaller amount. In other words, 1.2345 (2 is 2/10, 3 is 3/100, 4 is 4/1000, 5 is 5/10000) When you take (2/10) *10 you simply get 2 right? So The flawed part is a repetitive number, you have .9999(repeats 9 after forever) which is like saying the next number is always 9/10^(decimal place (in this case infinite)) when you simply times .9999(repeating) by 10 your first number becomes a whole number or 9 which leaves us with 9.999(repeating) so if X = .999(repeating) we times this by 10 we know 10X = 9.999(repeating) but if we do 10X - X we get 9X = 9, cuz X = .9999(repeating) it pretty much makes a infinite number finite and then we simply divide the equation by 9 (9X=9)/9 X = 1 but we started with X = .9999(repeating) but then again we should assume that .999(repeating) isn't a correct number because of this, we turned a finite number in the first place into a infinite number
-
Does .999999999999 (repeated) = 1?
You are right that it does, but your proof is incorrect. 9/9 can not be .999.. if it also equals 1. Let X = 0.999... Then 10X = 9.999... Subtract X from each side to give us: 9X = 9.999... - X but we know that X is 0.999..., so: 9X = 9.999... - 0.999... or: 9X = 9 Divide both sides by 9: X = 1 X = 0.999... = 1 Therefore 0.999... = 1 That's like saying when my eyes are blue and yours are brown that: Eyes = Blue Eyes = Brown Blue = Brown Two different numbers can never be the same number, whatever flawed mathematical formulas you will use for it. I've read that explanation before and I'm sure that's technically the correct mathemetical answer, but it's just bullshit. Simple logic is that two different numbers are not the same number. Simple logic also shows us that there is no 'infinite' so this entire theory is an empty shell. Also, to give a reply which is someone on the same wave length: 10x = 9,9999... 9x= 9 8x = 9 - 0,999999.... 8x = ????????? Explain that one to me. Hmm i don't get why people don't realize that humans came up with the math system and humans came up with the idea of infinite and that math is simply a definable pattern and the idea of infinite is simply expressing the fact that the pattern can always contain more or less or that it has no limited amount of expansion/contraction, it can always get larger and can always get smaller
-
Does .999999999999 (repeated) = 1?
He is saying that just because you found a pattern, it does not mean it is true forever. 2 does not equal 1 .9999 repeating does not equal 1 100000000 does not equal 9999999999 .9999 repeating does not equal 1 ehh, your logic is bleak
-
Does .999999999999 (repeated) = 1?
Its the other way around in actuality .999(repeating) is not a real number, 1/9 = .111(repating) but actually that number can't be expressed without the fraction form the whole repeating thing is just because it can't be defined, in .1111(repeating) there is always a small chunk that is more than what is expressed by the next number in the decimal and this goes on infinitely
-
Perfect Combat
This is a system to keep track of all entities, with this system you can define whether a entity is engaging combat, has actually landed an attack, and if the entity it attack attacked back (this allows the bot to attack npcs that are attacking other players but haven't attacked back, instantly attack the npc that attacked you, and will let you know instantly if someone else reached a monster before you reached it). This system is very useful in areas were monsters are aggressive, such as chaos druids, dragons, etc. Try and figure out exactly what this system is useful for/brings before you bring in something irrelevant (to what this system provides) saying its better. This is also an alternate to what the API provides, This just defines combat a little better than the API currently does
-
Creating A Scripting Group
I'll contribute work and help people if this happens
-
Perfect Combat
How is it over complicated O.o Because combat is very script specific. Some should let it auto attack. Some should walk and attack. Some should rotate the camera and attack. I was able to do all this in ~50 lines and it works flawlessly. And this simply keeps track of what is in combat and what isn't in combat, you can add your own attack methods in this hell i even provided 2
-
Who else fixed the hooks themselves?
Creating your own hooks isn't that hard, you just simply use reflection? but anyways hooks have nothing to do with why the client is not working
-
Music For Sub Woofers
and Play those with your subwoofer and tell me how it goes
-
How old are you be honest no one can see what you voted.
18, turn 19 in feb.
-
Dropping Out
If you are 100% sure and I do mean 100% sure that you don't plan on going to college, then drop out and start working. I don't advise this, but really up to you. I dropped out and i'm going to college (after i got my GED)
-
Dropping Out
Yeah just get your GED if you do, i dropped out when i was a senior cuz i was out living on my own already with roommates Got my GED by taking 10 tests
-
Bot Busting?
First ban botting in osrs Inbox Message Account Status I have over 100 hours botted on this account so i don't think thats bad for my first ban O.o
-
Project X (Recruiting)
Honestly im not going to buy paints, if you decide to join the project though you would get a cut of the profits based on how much work you do It takes about, a day or 2 at this point to write a fully functioning script so depending when i can get a gui designer will be pushing around 3-4 scripts a week that are flawless and more efficient than any other scripts of that kind It's been about 20 days since you posted this, and you're still in development on your first 2 scripts. Yew cutters are so easy and basic, I don't understand how you haven't finished that by now. Chaos druids are a little more difficult, but 20 days for a chaos druid script is just.. bad.. I watched my friend make a fully functional chaos druid script in two days, that includes walking to and from the chaos druids. you also said you'd be releasing 3-4 scripts per week... Well.. 3 weeks and you don't even have one.. I also noticed you're working on a cow killing bot... Still in development.. I think if you want to be successful at this, you don't state obviously fake ideas and have empty promises.. I hope you understand that I'm just trying to help, but at the same time you should probably pick up the pace if you're going to make up for the 8-10 scripts you still haven't released... Dude fuck off, for one the project hasn't even be established yet, secondly i've had some irl problems come up (such as my mom finding out she has cancer) it hasn't been 20 days since i started the chaos druids script, its finished btw... the yew cutter and cow killer were just basic scripts i made in like an hour out of sheer boredom and as i stated before they aren't a result of this project. They aren't "obviously fake ideas or empty promises", Don't know what you don't get about the recruiting statement. Your not helping, You just pointed at thing(s) and filled the emptiness afterwords negatively
-
OsBot needs a "Supreme Court"
Generally the people againts mods are the problematic people or the kind of people who cause problems/drama, Mods follow a strict guideline and perform actions based on this, if you don't break a rule you have nothing to worry about. Honestly admins do have logs of every action performed, and have access to all deleted posts. If an mod was abusing their powers an admin would be aware.
-
OsBot needs a "Supreme Court"
lol dude this aint your website, its a forum you come here on your own terms it is ran by the people who made it and the power and control is theirs not the people who visit it
-
Back2Growing
Yo your taking a picture of the harvest right O.o would love to see how these buds turn out after you harvest and cure them
-
Perfect Combat
How is it over complicated O.o
-
Perfect Combat
Np, let me know if you have any questions
-
Perfect Combat
no feedback =[ tip on antileech (it is in the update method and has to do with creating an object if it doesn't exists)
-
Perfect Combat
Made this a while ago and thought some people could make use of it What it does? Stores Data of Entities that are in combat or are initiating combat Uses this data to determine what to attack without any mistakes (Doesn't target any npcs already being attacked, or switches to a new target if another player reaches a npc before you. Also it targets npcs that target/attack you) Thought that this was a little bit more trustworthy than what the API provides and has many uses you can build into it (such as detecting players attacking you and other stuff) Also as fucked up as it sounds i plan to make a pking bot out of this system (Would rework some of the stuff in it) But anyways i am aware the code could be cleaned up a little bit but too lazy to go through it 3 classes, (or 2 classes and modify your main class) Main - (note have your loop set to 300 (runescape sends data to client every 600 ms, so having it at 300 ensures that no data is missed) package source; import org.osbot.script.Script; import org.osbot.script.ScriptManifest; @ScriptManifest(author = "Zach (LifezHatred)", info = "Combat info", name = "Combat", version = 1.0) public class Main extends Script { public Combat combat = new Combat(this); public int onLoop() { if(runCombatListener()) { combat.update(); } return 300; } public boolean runCombatListener() { return true; } } Combat Class (Factory) package source; import java.util.ArrayList; import java.util.List; import org.osbot.script.rs2.model.Character; import org.osbot.script.rs2.model.Entity; import org.osbot.script.rs2.model.NPC; import org.osbot.script.rs2.model.Player; public class Combat { public Main main; public List<CombatEntity> combatEntities; public Combat(Main main) { this.main = main; combatEntities = new ArrayList<CombatEntity>(); } public void update() { //Clean Up for(CombatEntity combat : combatEntities) { if(combat == null) { combatEntities.remove(combat); continue; } if(!combat.getEntity().exists()) { if(combat.hasAttacked) { CombatEntity cleanup = combat.getAttacking(); cleanup.attacker = null; if(cleanup.attacking == combat) { cleanup.setAttacking(null); cleanup.setHasAttacked(false); } } } } //add new entities for(NPC npc : main.client.getLocalNPCs()) { if(npc == null) { continue; } Entity facing = npc.getFacing(); if(facing != null) { if(!exists(npc)) { combatEntities.add(new CombatEntity(npc,facing)); } } else { if(exists(npc)) { CombatEntity remove = getCombatEntity(npc); combatEntities.remove(remove); } } } for(Player player : main.client.getLocalPlayers()) { if(player == null) { continue; } Entity facing = player.getFacing(); if(facing != null) { if(!exists(player)) { combatEntities.add(new CombatEntity(player,facing)); } } else { if(exists(player)) { CombatEntity remove = getCombatEntity(player); combatEntities.remove(remove); } } } //Updates state of the entities for(CombatEntity combat : combatEntities) { if(combat == null) { combatEntities.remove(combat); continue; } Entity facing = ((Character<?>) combat.getEntity()).getFacing(); if(combat.getFacing() != facing) { //switched to new target if(combat.getHasAttacked()) { CombatEntity entity = combat.getAttacking(); combat.setHasAttacked(false);//if switched to new target we do not know if he has fully attacked yet combat.setFacing(facing); entity.setAttacker(null); } } if(((Character<?>) combat.getEntity()).getAnimation() != -1) { //made a combat animation (if non combat animation has happened you would no longer be facing a target and wouldn't reach this point) combat.setHasAttacked(true); CombatEntity attacking = getCombatEntity(combat.getFacing()); attacking.setAttacker(combat); combat.setAttacking(attacking); } } } public boolean attack(int targetId) throws InterruptedException { Entity target = getClosestTarget(targetId); if(target == null) { return false; } target.interact("Attack"); return true; } public boolean attackRandomWithinDistance(int distance, int targetId) throws InterruptedException { Entity target = getRandomTarget(distance, targetId); if(target == null) { return false; } target.interact("Attack"); return true; } public boolean canAttack() { CombatEntity myPlayer = getCombatEntity(main.client.getMyPlayer()); if(myPlayer.isAttacking()) { return false; } if(myPlayer.getFacing() != null) { CombatEntity facing = getCombatEntity(myPlayer.getFacing()); if(facing.getAttacker() != myPlayer) { return true; } return false; } return true; } public Entity getRandomTarget(int targetId, int distance) { //will still return if being attacked by an aggressive npc CombatEntity myPlayer = getCombatEntity(main.client.getMyPlayer()); for(CombatEntity combat : combatEntities) { if(combat == null) { combatEntities.remove(combat); continue; } if(combat.getFacing() == main.client.getMyPlayer()) { if(combat.beingAttacked() && combat.getAttacker() != myPlayer) { continue; } return combat.getEntity(); //If being targetted by a npc in an aggressive area, checks if this npc is being attacked by another player } } List<NPC> attackables = new ArrayList<NPC>(); for(NPC npc : main.client.getLocalNPCs()) { if(npc == null) { continue; } if(npc.getId() != targetId) { continue; } if(exists(npc)) { CombatEntity combatEntity = getCombatEntity(npc); if(combatEntity.beingAttacked()) { continue; } } int distanceBetween = main.client.getMyPlayer().getPosition().distance(npc.getPosition()); if(distanceBetween < distance) { //checks if this entity is closer or not, if so sets it to the currently known closest npc attackables.add(npc); } } if(attackables.size() == 0) { return null; } NPC toReturn = attackables.get((int) (Math.random() * (attackables.size()-1))); return toReturn; } public Entity getClosestTarget(int targetId) { CombatEntity myPlayer = getCombatEntity(main.client.getMyPlayer()); for(CombatEntity combat : combatEntities) { if(combat == null) { combatEntities.remove(combat); continue; } if(combat.getFacing() == main.client.getMyPlayer()) { if(combat.beingAttacked() && combat.getAttacker() != myPlayer) { continue; } return combat.getEntity(); //If being targetted by a npc in an aggressive area, checks if this npc is being attacked by another player } } NPC closestAttackable = null; int distance = 20; //Max distance it'll attack (change if you want O.o) for(NPC npc : main.client.getLocalNPCs()) { if(npc == null) { continue; } if(npc.getId() != targetId) { continue; } if(exists(npc)) { CombatEntity combatEntity = getCombatEntity(npc); if(combatEntity.beingAttacked()) { continue; } } int distanceBetween = main.client.getMyPlayer().getPosition().distance(npc.getPosition()); if(distanceBetween < distance) { //checks if this entity is closer or not, if so sets it to the currently known closest npc closestAttackable = npc; distance = distanceBetween; } } return closestAttackable; //if returns null there is no npcs to attack O.o } public boolean exists(Entity entity) { for(CombatEntity check : combatEntities) { if(check == null) { combatEntities.remove(check); continue; } if(check.isEntity(entity)) { return true; } } return false; } public CombatEntity getCombatEntity(Entity entity) { for(CombatEntity check : combatEntities) { if(check == null) { combatEntities.remove(check); continue; } if(check.isEntity(entity)) { return check; } } return null; } } 3rd class CombatEntity (Object) package source; import org.osbot.script.rs2.model.Entity; public class CombatEntity { public Entity entity; public Entity facing; public boolean hasAttacked; public CombatEntity attacker = null; public CombatEntity attacking = null; public CombatEntity(Entity entity, Entity facing) { this.entity = entity; this.facing = facing; } public boolean isEntity(Entity entity) { if(this.entity == entity) { return true; } return false; } public boolean getHasAttacked() { return hasAttacked; } public void setHasAttacked(boolean bool) { hasAttacked = bool; } public Entity getEntity() { return entity; } public Entity getFacing() { return facing; } public void setFacing(Entity facing) { this.facing = facing; } public CombatEntity getAttacking() { return attacking; } public void setAttacking(CombatEntity entity) { attacking = entity; } public CombatEntity getAttacker() { return attacker; } public void setAttacker(CombatEntity attacker) { this.attacker = attacker; } public boolean beingAttacked() { if(attacker != null) { return true; } return false; } public boolean isAttacking() { if(attacking != null) { return true; } return false; } } To use this simply have this set to true when your bot is going to be entering combat public boolean runCombatListener() { if((methods to set true)) { return true; } return false; } And then for attacking, whatever system your using to perform actions use this to check if your character can attack canAttack() and if it can attack use these methods to attack an npc //note will always attack an npc attacking you even if its not the type of npc you declare in the npc id attackRandomWithinDistance(int distance, int targetId) or attack(int targetId) Good luck and have fun with making combat scripts with this code =D (note might remove for a little bit depending on some things) Also there is a small anti-leech (null pointer in there) simple fix