Jump to content

After a kill I want to loot first before attacking another monster.


Mokrocaan

Recommended Posts

I have read alot of other scripts and examples of how to loot before attacking again. I cannot understand this concept, could somebody explain me how to do this inside of my own code.

This is my code for now:

===============================================================================================

    NPC npc = getNpcs().closest(o -> o.getName().equals("Cow") && o.getInteracting() == null && !o.isUnderAttack());
        
        if (npc != null && npc.getName().equals("Cow") && npc.getHealthPercent() > 0 && 
                npc.isAttackable() && npc.hasAction("Attack") && map.canReach(npc) && !npc.isUnderAttack()) {
            
            if (npc.equals(myPlayer().getInteracting())) {
                            
            } 
            
            else {            
                npc.interact("Attack");        
                
                if (npc.interact("Attack")) {                
                    sleep(random(3500,5000));
                }
            }
        } 
        
        else {
            camera.toEntity(npc);
            npc = npcs.closest("Cow");
        }

==================================================================================================

 

Link to comment
Share on other sites

@Mokrocaan You can do what Nbacon did if you don't care about picking up other peoples loot they left. But if you want to only pick up your loot, then store the tile the npc health percent == 0 is and then check that tile is != null and if it contains items you want to loot, loot. Else make the tile == null so it can attack another monster. Can look something like this. Also if you haven't look into conditional sleeps.

if (lootTile != null) {
    if (items I want exist at tile) {
        loot the tile
    } else {
        lootTile == null;
    }
} else {
    find and attack the next monster
}
  • Like 1
  • Heart 1
Link to comment
Share on other sites

36 minutes ago, Mokrocaan said:

@Gunman

 

I am going to try this out. Do you mean that I have to store the position of the NPC when he is at 0 healthPercent? Like this:

If ( monster.healthPercent() == 0 ) {

        Position lootTile = monster.getPosition();

}

 

 

Yes right before he disappears, then you will probably have to wait about 3 seconds for the loot to spawn before checking the tile.

 

EDIT: You may find something useful in this video; It has no looting but it involves combat and may be useful to you. 

 

Edited by Gunman
  • Heart 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...