Novice is botting for orange gooey mushroom and orange net mushroom at job_thief1 and map has fabre (aggro), chonchon (aggro), spore and mushroom.
Mon_control is set to:
Code: Select all
mushroom 1 0 0
fabre 0 0 0
chonchon 0 0 0
spore 0 0 0
When the bot is attacking the mushroom and an aggressive monster attacks me, the bot will not switch to the aggressive monsters and I die. This problem is only apparent when the bot is attacking monsters without an attack (eg: mushroom, pupa, plants) and another aggressive monsters engage it.
Suggested solutions:
Understandably this is a bug that is only replicated under a very specific circumstances and that the way the bot is designed is so that it does not switch from monsters to monsters when engaged by multiple aggressive monsters.
However discussing on IRC, a few of us have come up with a few ideas, from simple to complicated.
Solution 1: switching only when first monster dealt 0 damage in total.
Harvest suggested that kore be coded in a way that it will only switch to the new aggressive target when the first monster does not attack back (ie: dealt 0 damage in total).
While this would fix this specific problem, it might produce undesirable effects when the bot is engaged in situation where the monsters can attack back but does not engage the bot itself (ie: when someone is tanking for it). This might not be the effect we are looking for.
Solution 2: Respecting priority.txt after engaging monster
Harvest also suggested that kore can respect priority.txt after engaging the monster.
This also have an effect where the bot can become inefficient. Example 1: Kore is engaging Vadon and the vadon is 2 hits from dying. Hydra spawns and attacks kore. Kore switches to the hydra but the vadon follows and attacks the bot. The bot takes more damage than necessary.
It might:
- use more pots
- sit more often
- in worst case senario, die.
This is a complicated method but ultimately provides the most efficient solution universally. Kore takes the delta_hp of the monsters, the damage of the character and calculates a time-to-kill ratio based on those two variables on the monsters that are engaging it. It then attacks the monsters which has the lowest time-to-kill.
Issues surrounding this are:
- what I believe there is a lack of delta_hp database for monsters
- increase in processing power, especially when being mobbed by many monsters
- substantial effort in producing a bug free code