Thread: [830] Better Herblore

Page 1 of 2 12 LastLast
Results 1 to 10 of 15
  1. #1 [830] Better Herblore 
    Registered Member
    Join Date
    Sep 2017
    Posts
    29
    Thanks given
    0
    Thanks received
    3
    Rep Power
    11
    Hey guys so I was recently messing around with an 830 server and I realised that the herblore interface created looked like a big mess! I'm not sure if this interface is actually hidden inside the source but I basically used the smithing interface to create this, by create i dont literally mean create btw (just the change of words and i'ds and stuff).

    The old interface was basically using the "Choose a Tool" interface but that interface looks really ugly and its its key bindable but I guess you could make it key bindable but I just thought it would look better like the real RS3 interface.



    Old interface:

    Spoiler for Image:
    ]




    So far with the new interface I've only added the attack potion but I will be all the potions.

    Spoiler for Image:
    ]


    Also I will be doing this for the crafting interface because it is all wrong, and the tanning interface needs to be replaced because idk why the releasers of MX3 used Choose a Tool interface as a good interface for more stuff, anyways I will be updating this thread with all the fixes I've made
    Thanks!
    Reply With Quote  
     

  2. Thankful user:


  3. #2  
    Mug Club


    Join Date
    Jul 2011
    Age
    23
    Posts
    1,667
    Thanks given
    480
    Thanks received
    774
    Rep Power
    146
    You can load the entire interface and all of its information as well as whatever the player has selected to create completely from the cache. Utilizing this information, you can get the entire herblore skill down to this short with the new interface:

    Code:
    package com.rs.plugin.impl.skills;
    
    import com.rs.game.player.actions.CreationActionD;
    import com.rs.game.player.content.SkillsDialogue.CategoryTypes;
    import com.rs.plugin.Plugin;
    import com.rs.plugin.events.ItemClickEvent;
    import com.rs.plugin.events.ObjectClickEvent;
    
    public class Herblore extends Plugin {
    	
    	@Override
    	public boolean onObjectClick(ObjectClickEvent e) {
    		if (e.getObject().getDefinitions().name.equals("Portable well") && e.isAtObject()) {
    			e.getPlayer().getDialogueManager().execute(new CreationActionD(CategoryTypes.HERBLORE, 227, 363, 2));
    			return true;
    		}
    		return false;
    	}
    	
    	@Override
    	public boolean onItemClick(ItemClickEvent e) {
    		if (e.getItem().getDefinitions().getItemCategory().equals("Herblore")) {
    			e.getPlayer().getDialogueManager().execute(new CreationActionD(CategoryTypes.HERBLORE, e.getItem().getId(), 363, 2));
    			return true;
    		}
    		return false;
    	}
    }
    Reply With Quote  
     

  4. Thankful users:


  5. #3  
    Registered Member
    Join Date
    Sep 2017
    Posts
    29
    Thanks given
    0
    Thanks received
    3
    Rep Power
    11
    Quote Originally Posted by Makar View Post
    You can load the entire interface and all of its information as well as whatever the player has selected to create completely from the cache. Utilizing this information, you can get the entire herblore skill down to this short with the new interface:

    Code:
    package com.rs.plugin.impl.skills;
    
    import com.rs.game.player.actions.CreationActionD;
    import com.rs.game.player.content.SkillsDialogue.CategoryTypes;
    import com.rs.plugin.Plugin;
    import com.rs.plugin.events.ItemClickEvent;
    import com.rs.plugin.events.ObjectClickEvent;
    
    public class Herblore extends Plugin {
    	
    	@Override
    	public boolean onObjectClick(ObjectClickEvent e) {
    		if (e.getObject().getDefinitions().name.equals("Portable well") && e.isAtObject()) {
    			e.getPlayer().getDialogueManager().execute(new CreationActionD(CategoryTypes.HERBLORE, 227, 363, 2));
    			return true;
    		}
    		return false;
    	}
    	
    	@Override
    	public boolean onItemClick(ItemClickEvent e) {
    		if (e.getItem().getDefinitions().getItemCategory().equals("Herblore")) {
    			e.getPlayer().getDialogueManager().execute(new CreationActionD(CategoryTypes.HERBLORE, e.getItem().getId(), 363, 2));
    			return true;
    		}
    		return false;
    	}
    }
    I'm not really sure how that works could you please explain it a little?
    Thanks
    Reply With Quote  
     

  6. Thankful user:


  7. #4  
    Registered Member Mr. Snow's Avatar
    Join Date
    Feb 2015
    Age
    20
    Posts
    220
    Thanks given
    36
    Thanks received
    30
    Rep Power
    37
    Cool. How do you handle the potions data? Enum?


    “On two occasions I have been asked, ‘Pray, Mr. Babbage, if
    you put into the machine wrong figures, will the right answers
    come out?’ […] I am not able rightly to apprehend the kind of
    confusion of ideas that could provoke such a question.”
    —Charles Babbage, Passages from the Life of a Philosopher
    (1864)
    Reply With Quote  
     

  8. #5  
    Registered Member
    Join Date
    Sep 2017
    Posts
    29
    Thanks given
    0
    Thanks received
    3
    Rep Power
    11
    Quote Originally Posted by mushroom tip View Post
    Cool. How do you handle the potions data? Enum?
    Yeah that is correct, I use enums to handle data for the potions.
    Reply With Quote  
     

  9. #6  
    Registered Member
    clem585's Avatar
    Join Date
    Sep 2013
    Posts
    3,278
    Thanks given
    506
    Thanks received
    572
    Rep Power
    188
    Quote Originally Posted by Makar View Post
    You can load the entire interface and all of its information as well as whatever the player has selected to create completely from the cache. Utilizing this information, you can get the entire herblore skill down to this short with the new interface:

    Code:
    package com.rs.plugin.impl.skills;
    
    import com.rs.game.player.actions.CreationActionD;
    import com.rs.game.player.content.SkillsDialogue.CategoryTypes;
    import com.rs.plugin.Plugin;
    import com.rs.plugin.events.ItemClickEvent;
    import com.rs.plugin.events.ObjectClickEvent;
    
    public class Herblore extends Plugin {
    	
    	@Override
    	public boolean onObjectClick(ObjectClickEvent e) {
    		if (e.getObject().getDefinitions().name.equals("Portable well") && e.isAtObject()) {
    			e.getPlayer().getDialogueManager().execute(new CreationActionD(CategoryTypes.HERBLORE, 227, 363, 2));
    			return true;
    		}
    		return false;
    	}
    	
    	@Override
    	public boolean onItemClick(ItemClickEvent e) {
    		if (e.getItem().getDefinitions().getItemCategory().equals("Herblore")) {
    			e.getPlayer().getDialogueManager().execute(new CreationActionD(CategoryTypes.HERBLORE, e.getItem().getId(), 363, 2));
    			return true;
    		}
    		return false;
    	}
    }
    This is beautiful.
    Project thread
    [Only registered and activated users can see links. ]
    Reply With Quote  
     

  10. Thankful user:


  11. #7  
    Mug Club


    Join Date
    Jul 2011
    Age
    23
    Posts
    1,667
    Thanks given
    480
    Thanks received
    774
    Rep Power
    146
    Quote Originally Posted by aNamedSoul View Post
    I'm not really sure how that works could you please explain it a little?
    Thanks
    Just look through the ItemDefinitions and CS2 Enum/Struct types. It's absolutely revolting just how much information is in there nowadays that is just freely given to RSPS developers. Would have literally killed for this shit when I started my 718 remake but now I can just dump it all.

    Examples:

    In ItemDefinitions alone you can dump the clientscript maps which contain nutty data such as level requirements in various skills to interact, etc.

    219 - Grimy torstol - {537=4170, 770=15, 2195=13, 771=75, 23=85}

    Just these simply has enough data to complete almost any enum in the game that people have been manually writing out for ages. Even down to the NPC id of the npc attached to the summoning pouch/pet.

    Code:
    	public int getCreationSkillId() {
    		return ClientScriptMap.getMap(681).getIntValue(getCraftingType());
    	}
    	
    	public int getPetNPCId() {
    		return getCSOpcode(74, -1);
    	}
    	
    	public int getCraftingType() {
    		return getCSOpcode(2696);
    	}
    	
    	public int getCreationLevelReq() {
    		return getCSOpcode(2645);
    	}
    	
    	public int getToolBeltReqItem() {
    		return getCSOpcode(2650, -1);
    	}
    
    	public int getCreationAmount() {
    		return getCSOpcode(2653, 1);
    	}
    	
    	public double getCreationExperience() {
    		return getCSOpcode(2697)/10;
    	}
    That's just item definitions too. Shit tons of opcodes link to maps in the struct and enum defs in the cache too.

    I beg people to utilize this information when working on RS3 servers. It saves (not even exaggerating here) nearly hundreds of hours of work manually making arrays and enums.
    Reply With Quote  
     

  12. Thankful user:


  13. #8  
    Registered Member
    Join Date
    Sep 2017
    Posts
    29
    Thanks given
    0
    Thanks received
    3
    Rep Power
    11
    Quote Originally Posted by Makar View Post
    Just look through the ItemDefinitions and CS2 Enum/Struct types. It's absolutely revolting just how much information is in there nowadays that is just freely given to RSPS developers. Would have literally killed for this shit when I started my 718 remake but now I can just dump it all.

    Examples:

    In ItemDefinitions alone you can dump the clientscript maps which contain nutty data such as level requirements in various skills to interact, etc.

    219 - Grimy torstol - {537=4170, 770=15, 2195=13, 771=75, 23=85}

    Just these simply has enough data to complete almost any enum in the game that people have been manually writing out for ages. Even down to the NPC id of the npc attached to the summoning pouch/pet.

    Code:
    	public int getCreationSkillId() {
    		return ClientScriptMap.getMap(681).getIntValue(getCraftingType());
    	}
    	
    	public int getPetNPCId() {
    		return getCSOpcode(74, -1);
    	}
    	
    	public int getCraftingType() {
    		return getCSOpcode(2696);
    	}
    	
    	public int getCreationLevelReq() {
    		return getCSOpcode(2645);
    	}
    	
    	public int getToolBeltReqItem() {
    		return getCSOpcode(2650, -1);
    	}
    
    	public int getCreationAmount() {
    		return getCSOpcode(2653, 1);
    	}
    	
    	public double getCreationExperience() {
    		return getCSOpcode(2697)/10;
    	}
    That's just item definitions too. Shit tons of opcodes link to maps in the struct and enum defs in the cache too.

    I beg people to utilize this information when working on RS3 servers. It saves (not even exaggerating here) nearly hundreds of hours of work manually making arrays and enums.
    Thanks for the detailed reply, I will look into this and give it shot and see the outcomes
    Thanks a lot.
    Reply With Quote  
     

  14. #9  
    I don't speak Spanish
    Daron's Avatar
    Join Date
    Feb 2012
    Age
    22
    Posts
    193
    Thanks given
    1
    Thanks received
    18
    Rep Power
    25
    As said above, everything is obtainable from cache as long as you find the right scripts

    Reply With Quote  
     

  15. #10  
    Mug Club


    Join Date
    Jul 2011
    Age
    23
    Posts
    1,667
    Thanks given
    480
    Thanks received
    774
    Rep Power
    146
    Quote Originally Posted by Daron View Post
    As said above, everything is obtainable from cache as long as you find the right scripts

    Nice "Pick Category" section hehehehe
    Reply With Quote  
     

Page 1 of 2 12 LastLast

Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. [PI] Better Herblore
    By vavbro in forum Tutorials
    Replies: 4
    Last Post: 07-04-2013, 01:45 AM
  2. Herblore Identifying (Better) [ANY]
    By Hybris in forum Snippets
    Replies: 3
    Last Post: 01-19-2013, 05:03 AM
  3. [PI] Better Herblore Skill
    By Treq in forum Tutorials
    Replies: 37
    Last Post: 01-10-2013, 04:18 PM
  4. [delta] better herblore
    By Oliver Sykes in forum Snippets
    Replies: 8
    Last Post: 01-12-2012, 12:30 AM
  5. which one of the halo sigs do u like better?
    By man777 in forum Showcase
    Replies: 0
    Last Post: 04-01-2007, 05:22 PM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •