Jump to content

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


Recommended Posts

Posted

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");
        }

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

 

Posted

@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
Posted (edited)
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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

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