Left4Bots icon indicating copy to clipboard operation
Left4Bots copied to clipboard

Fix bots stuck in pickup loop

Open 4512369781 opened this issue 1 year ago • 5 comments

Based on Declan's feedback, I finally found the reason, but I don't know if there are other problems with this solution.

please tell me what you think.

fix bots stuck in pickup loop.zip

4512369781 avatar Mar 30 '24 16:03 4512369781

ok thanks.

smilz0 avatar Apr 03 '24 15:04 smilz0

Hey mate, i don't think i understand where the problem is, tbh. I mean i understand that the itemstoavoid logic is complicated and having 2 weapons configurations makes it even more complicated but in my opinion it is better to have 2 separate configurations for the vanilla and the l4b2 pick-up logics as it allows more control and more customization. In default itemstoavoid there's already "ammo" and "upgrade_item" and items_not_to_avoid is 1, which means that if you add a weapon in itemstoavoid.txt the vanilla AI will try to pick it up and will likely get stuck in a loop with the l4b2 weapon preference. This problem only occurs with weapons (inventory slots 1 and 2), not with the other items as the vanilla AI doesn't try to replace its current items for for the other slots, so for these slots you can have both the vanilla and l4b2 logics active. Did i miss something?

smilz0 avatar Apr 06 '24 08:04 smilz0

hey! I think, rather than being stuck between two logics, would better to choose one, and weapon preference could completely replace the vanilla logic for now.

The default l4b2 settings is fine, but if people add weapons to "itemstoavoid.txt" or change " items_not_to_avoid" to 0, thereby removing these weapon from the avoid list, vanilla bots will search these weapon and pickup it, but at the same time the weapon preference also forces bots pickup the highest priority weapon, which makes bots stuck in the loop.

And "ShouldAvoidItem" function can only make all bots like\dislike a weapon, but weapon preference is for each bot.

However, there is one situation where the two logics can work together, that is, following the vanilla logic. Taking Ellis as an example, his priority is: T2 weapons (sniper > shotgun = rifle) > T1 weapons (shotgun = smg) in coop mode. If the weapon preference is according to this priority, there is no need to put any weapons into avoid list, and no loop problems there. But this is only an ideal situation, and it is impossible to know how people would change the priority.

4512369781 avatar Apr 07 '24 14:04 4512369781

I honestly barely understand anything, but I'm trying to make the bots to not pick up sniper rifles, but for some reason they keep picking them up even though I added those weapons in itemstoavoid.

How can I do this in L4B2?

AsuToki360 avatar Apr 07 '24 16:04 AsuToki360

I honestly barely understand anything, but I'm trying to make the bots to not pick up sniper rifles, but for some reason they keep picking them up even though I added those weapons in itemstoavoid.

How can I do this in L4B2?

if "items_not_to_avoid" set to "1", weapons in "itemstoavoid.txt" will not avoid, so you should delete it from "itemstoavoid.txt". and goto "weapons" folder, remove "sniper" in the config file or move it to the line end.

4512369781 avatar Apr 07 '24 16:04 4512369781