Jump to content

Fay

Members
  • Posts

    420
  • Joined

  • Last visited

  • Days Won

    3
  • Feedback

    100%

Posts posted by Fay

  1.  

    Here's a lil' rewrite, hopefully you'll learn something(s) from it ^^

    Gl coding!

    import java.awt.Graphics2D;
    import java.awt.Point;
    import java.awt.Rectangle;
    import java.util.Arrays;
    import java.util.List;
    
    import org.osbot.rs07.api.model.Item;
    import org.osbot.rs07.input.mouse.InventorySlotDestination;
    import org.osbot.rs07.script.Script;
    import org.osbot.rs07.script.ScriptManifest;
    
    @ScriptManifest(author = "Botrepreneur", info = "HerbIdentifier", name = "HerbIdentifier", version = 0.0, logo = "")
    public class HerbIdentifier extends Script {
    
    	private enum Herb {
    		GUAM(199, 200),
    		MARRENTIL(201, 202),
    		TARROMIN(203, 204),
    		HARRALANDER(205, 206),
    		RANARR(207, 208),
    		IRIT(209, 210),
    		AVANTOE(211, 212),
    		KWUARM(213, 214),
    		CANDANTINE(215, 216),
    		DWARF_WEED(217, 218),
    		TORSOL(219, 220),
    		LANTADYME(2485, 2486),
    		SNAPDRAGON(3051, 3052);
    
    		private final Integer[] ids;
    
    		private Herb(final Integer... ids) {
    			this.ids = ids;
    		}
    
    		public List<Integer> getIds() {
    			return Arrays.asList(ids);
    		}
    
    	}
    
    	@Override
    	public int onLoop() throws InterruptedException {
    		return Integer.MAX_VALUE;
    	}
    
    	public void onPaint(Graphics2D paint) {
    		int slot = -1;
    		Item item = null;
    		Rectangle rectangle = null;
    		if (getBot().getClient().isLoggedIn()) {
    			Point point = getMouse().getPosition();
    			for (int i = 0; i < 28; i++) {
    				if ((InventorySlotDestination.getSlot(i)).contains(point)) {
    					slot = i;
    					break;
    				}
    			}
    			if (slot > -1 && (item = getInventory().getItemInSlot(slot)) != null && item.getDefinition() != null && (rectangle = InventorySlotDestination.getSlot(slot)) != null) {
    				int id = item.getId();
    				String string = null;
    				for (Herb herb : Herb.values()) {
    					if (herb.getIds().contains(id)) {
    						string = herb.toString();
    						break;
    					}
    				}
    				if (string != null) {
    					paint.drawString(string, rectangle.x, rectangle.y);
    				}
    			}
    		}
    	}
    	
    }
    

     

    Wow, thank you man. I was going to make an enum but I couldn't remember what it was called at 4 am, and I was having alot of trouble with dynamically setting i. This helps out alot :).

    • Like 1
  2. So I made this thing, it does what the title says. Hover your mouse over the herb in your inventory or someones trade window to see what it is.

     

    EDITED with the new script that supports trade windows.

     

    Special thanks to Botrepreneur for the help in dynamically finding the slot being hovered over and making a nice enumerable list of herbs smile.png.

     

    Due to popular opinion and request, the script is now back.

    Any errors please post here so that I and others may see them. 

     

    PLEASE LEAVE A LIKE, FEEDBACK or even a "THX"!!!!

    FaysHerbs.zip

    • Like 3
  3. Happens to me too. They changed my login name, no fix. Then a mod came around saying "Just restart the client a couple of times." He closed the thread but he was wrong and that didn't fix it. Honestly the only way I found to bypass the problem was to open a VM on the same machine and run it there or go use a different machine entirely. About 16-24 hours of no client opening on the main system you can use it again. Although here lately I can just restart the client 2 or 3 times and it works, but if you are having the issue I WAS having, those are your options.

  4. Bans are being handed out left and right, and bots are not surviving as long as they used to sad.png

     

    I seriously think I only got temp banned because I was stuck in a ScapeRune random for 4 hours.

  5. I made a couple mods to the script. Added CURSE_AREA so if the player is not the in the area it will log out. Not sure how that will do with randoms that run from combat, but it does prevent death standing and standing on the wrong side of the door. Also added current mage level and mages levels gained.

    package botScript;
    
    import java.awt.*;
    
    import org.osbot.rs07.api.ui.Skill;
    import org.osbot.rs07.api.ui.Spell;
    import org.osbot.rs07.api.ui.Tab;
    import org.osbot.rs07.script.Script;
    import org.osbot.rs07.script.ScriptManifest;
    import org.osbot.rs07.utility.Area;
    
    @ScriptManifest(author = "Mailinator/Fay", info = "Casts Curse on Monk of Zamorak", name = "MailCurseCaster/w Fay", version = 0.911, logo = "")
    public class Something extends Script
    {
    
    	private long startTime;
    	private int magicStartXP;
    	private int magicStartLvl;
    	final Area CURSE_AREA = new Area(3214,3473,3218,3476);
    
    	@Override
    	public void onStart()
    	{
    		startTime = System.currentTimeMillis();
    		antiBan.initializeModule();
    		magicStartXP = skills.getExperience(Skill.MAGIC);
    		magicStartLvl = skills.getStatic(Skill.MAGIC);
    		
    	}
    
    	@Override
    	public int onLoop() throws InterruptedException
    	{
    		tabs.open(Tab.MAGIC);
    		if(CURSE_AREA.contains(myPlayer()) && inventory.contains("Body rune")){
    			magic.castSpellOnEntity(Spell.CURSE, npcs.closest("Monk of Zamorak"));
    		}else{
                            //Realized that running from combat randoms would term a step before we entered into the CURSE_AREA so I threw in a sleep/recheck for it to have just enough time to walk into the zone.
    			sleep(random(300,550));
    			if(!CURSE_AREA.contains(myPlayer()) || !inventory.contains("Body rune")){
    			stop(true);
    			}
    		}
    
    		return random(1000, 1500);
    	}
    
    	@Override
    	public void onPaint(Graphics2D g)
    	{
    		long elapsed = System.currentTimeMillis() - startTime;
    		int magicCurrentLvl = skills.getStatic(Skill.MAGIC);
    		g.setColor(new Color(0, 0, 0, .7f));
    		g.fillRect(7, 345, 220, 65);
    		g.setColor(Color.WHITE);
    		g.drawString((new StringBuilder("Time: ")).append(format(elapsed)).toString(), 15, 357);
    		g.drawString((new StringBuilder("Magic level: ")).append(magicCurrentLvl).append(" (").append(magicCurrentLvl - magicStartLvl).append(")").toString(), 120, 357);
    		g.setColor(Color.BLACK);
    		g.fillRect(15, 366, 202, 15);
    
    		double delta = skills.getExperienceForLevel(skills.getStatic(Skill.MAGIC) + 1) - skills.getExperienceForLevel(skills.getStatic(Skill.MAGIC));
    		double percentage = (100 - skills.experienceToLevel(Skill.MAGIC) / (delta / 100));
    
    		g.setColor(new Color(79, 192, 24));
    		g.fillRect(16, 367, (int) (200 * (percentage / 100)), 13);
    
    		if (percentage < 55)
    		{
    			g.setColor(Color.WHITE);
    		}
    		else
    		{
    			g.setColor(Color.BLACK);
    		}
    
    		g.drawString(((int) percentage) + "%", 105, 378);
    
    		g.setColor(Color.WHITE);
    		g.drawString("XP and casts TNL: " + skills.experienceToLevel(Skill.MAGIC) + "XP (" + (int) (skills.experienceToLevel(Skill.MAGIC) / 29) + ")", 15, 398);
    
    	}
    
    	public String format(long time)
    	{
    		StringBuilder string = new StringBuilder();
    		long totalSeconds = time / 1000L;
    		long totalMinutes = totalSeconds / 60L;
    		long totalHours = totalMinutes / 60L;
    		int seconds = (int) totalSeconds % 60;
    		int minutes = (int) totalMinutes % 60;
    		int hours = (int) totalHours % 24;
    		if (hours > 0)
    		{
    			string.append((new StringBuilder(String.valueOf(hours))).append("h ").toString());
    		}
    		if (minutes > 0)
    		{
    			string.append((new StringBuilder(String.valueOf(minutes))).append("m ").toString());
    		}
    		string.append((new StringBuilder(String.valueOf(seconds))).append("s").toString());
    		return string.toString();
    	}
    }
    
×
×
  • Create New...