scape2code 0 Share Posted October 1, 2018 New to this so if you have suggestions just going to practice a bit each day and have people critique my code so hopefully I learn something. I did some programming in college 4/5 years ago, all introductory classes, so I need to read up on it some. My eat method which I hoped would allow me to eat a trout if my hp percent was lower then 95 just as a test closest() returns null even tho I have trout in my inventory. I also never heard of a lambda today so if you could explain that better and also why keep the methods private instead of public I remember had something to do with data hiding. Also how does the paint method run when its not called and it also has a problem that sometimes it will attack a goblin that's not in area that I need to be in, I guess id have tochange that in the filter, and it runs off to attack it sometimes it does and then while being attacked by it I go and try to attack something else even tho im being attacked. import org.dreambot.api.methods.filter.Filter; import org.dreambot.api.methods.interactive.GameObjects; import org.dreambot.api.methods.map.Area; import org.dreambot.api.methods.skills.Skill; import org.dreambot.api.script.AbstractScript; import org.dreambot.api.script.Category; import org.dreambot.api.script.ScriptManifest; import org.dreambot.api.wrappers.interactive.GameObject; import org.dreambot.api.wrappers.interactive.NPC; import java.awt.*; @ScriptManifest(category = Category.MISC,name="goblin killer",description ="",author="scape2code",version=1.0) public class Main extends AbstractScript { private static final Area GOBLINAREA = new Area(3245,3232,3255,3239); private static final String GOBLIN ="Goblin"; private static final Filter<NPC>GOBLINFILTER = npc -> npc != null && npc.getName().equals(GOBLIN) && !npc.isHealthBarVisible(); public void onStart() { int state = 0; // was thinking about using int attackLevel = getSkills().getRealLevel(Skill.ATTACK); log("Attack Level: "+attackLevel); } @Override public int onLoop() { locationCheck(); if(!getLocalPlayer().isInCombat()) { killGoblin(); if(getCombat().getHealthPercent() < 95){ eat(); } } return 1000; } private void locationCheck(){ if (!GOBLINAREA.contains(getLocalPlayer())) { getWalking().walk(GOBLINAREA.getRandomTile()); } } private void killGoblin(){ NPC goblin = getNpcs().closest(GOBLINFILTER); goblin.interact("Attack"); } private void eat(){ if(getInventory().contains("Trout")){ log("Should be eating"); GameObject food = getGameObjects().closest("Trout"); log(""+food); food.interact("Eat"); } } @Override public void onPaint(Graphics graphics) { super.onPaint(graphics); int defenceLevel = getSkills().getRealLevel(Skill.DEFENCE); int healthPercent = getCombat().getHealthPercent(); graphics.drawString("Current defence level"+defenceLevel,20,40); graphics.drawString("Current Health Percentage" + healthPercent,20,55); } } Link to comment Share on other sites More sharing options...
Milasoft 202 Share Posted October 1, 2018 Well first off, items in the inventory aren't GameObjects. You would do: private void eat(){ if(getInventory().contains("Trout")){ getInventory().get("Trout").interact("Eat"); } } Which would get the Item from the inventory and interact with it. GameObjects are things like trees or doors. Making the method private only allows the method to be called inside the class it is in. For a one file script, you really don't need to worry about that. You can just put void eat(){ The onPaint method is called automatically behind the scenes. Lambdas are pretty hard to explain, this should give you a better idea. https://www.oracle.com/webfolder/technetwork/tutorials/obe/java/Lambda-QuickStart/index.html Link to comment Share on other sites More sharing options...
Nima 92 Share Posted October 1, 2018 Somehow I get this "ricks-tutorial-code"-vibe Link to comment Share on other sites More sharing options...
scape2code 0 Author Share Posted October 2, 2018 thx for the help is there a list of all the gameobjects anywhere? Link to comment Share on other sites More sharing options...
Milasoft 202 Share Posted October 2, 2018 54 minutes ago, scape2code said: thx for the help is there a list of all the gameobjects anywhere? Just anything like built into the map like I said trees and doors, a range, a furnace, a ladder, etc. Link to comment Share on other sites More sharing options...
ParaStyle 2 Share Posted October 3, 2018 12 hours ago, scape2code said: thx for the help is there a list of all the gameobjects anywhere? You can find nearby gameobjects by going to "tools->debugging->game debugger->game objects" in the client. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.