vmangos / core

Progressive Vanilla Core aimed at all versions from 1.2 to 1.12
GNU General Public License v2.0
648 stars 471 forks source link

🦂 [Bug] Position/behavior of rdps in the group #1820

Open xBarselonx opened 1 year ago

xBarselonx commented 1 year ago

🦂 Bug report - Dungeon

Mage, hunter and other rdps in case of switching to them mobs or bosses in dungeons run in different directions trying to get away from them. And chaos ensues. The tank starts running after these mobs and bosses and trying to take control, but it's a problem for him.

Expected behavior

I propose to review the tactics and behavior of rdps so that they in case of aggro all run to the tank and stay near him until he does not take them mobs and boss under his control. Only then rdps can return to its original position.

Steps to reproduce

1.Enter the game 2.Raid the group with the bots 3.Go to the dungeon

  1. ...
  2. Profit

Version & Environment

Client Version: 1.12.1

Commit Hash:

OS Client: win 10 OS Server:

Crashlog

gajet5 commented 1 year ago

In the proposed version, you need to stop the attack from the bot so that the tank can control them.

xBarselonx commented 1 year ago

Yes there is a command .partybot pause. But what if it's a raid 40? Or is there some kind of tactic?

mserajnik commented 2 months ago

I propose to review the tactics and behavior of rdps so that they in case of aggro all run to the tank and stay near him until he does not take them mobs and boss under his control.

This is already partially implemented via https://github.com/vmangos/core/commit/329bc4d7a3c4721b7507eae6ee701387faabef57; bots will under certain circumstances run towards a party member when they are being attacked.

However, there is currently a relatively strict distance condition for this: if the party member to run towards to is closer than 15ft or further away than 30ft it will not be considered a valid "target". Furthermore, the attacking mob also has to be at least 15ft away from that party member: https://github.com/vmangos/core/blob/f9b8bc532086352b11280b964bc7d48356640c78/src/game/PlayerBots/PartyBotAI.cpp#L135-L138

I am not sure those constraints are the best for most scenarios; maybe this could be configurable via some commands so it can be fine-tuned for each situation:

.partybot setdistancingtargetmindistance 15 # Set the minimum distance between an attacked bot (running away from an attacking mob) and a party member to 15ft for the party member to be considered a valid target for the attacked bot to run towards
.partybot setdistancingtargetmaxdistance 30 # Set the maximum distance between an attacked bot (running away from an attacking mob) and a party member to 30ft for the party member to be considered a valid target for the attacked bot  to run towards
.partybot setdistancingmobmindistance 15 # Set the minimum distance between an attacking mob (attacking a bot) and a party member to 15ft for the party member to be considered a valid target for the attacked bot to run towards

The distance check is done for each party member, with the priority being party leader, then tanks and then any other party member.

Personally, I would probably change this so only melee roles are considered (with tanks being prioritized, of course). And the party leader (= an actual player) might sometimes prefer to have mobs brought to them, sometimes not (depending on their class and playstyle). Maybe this could also be configurable:

.partybot setdistancingtargets leader,tank,meleedps # [Options: leader, tank, meleedps, rangeddps, healer] Consider the party leader as well as tanks and melee DPS roles as valid targets to run towards for bots that are running away from an attacking mob

If no party member is considered a valid target to run towards to, the bot will try to distance itself 15ft away from the attacking mob (thus resulting in the observed "chaos").

@gajet5 Since you seem to play with bots quite frequently, what is your experience with the current behavior? What changes would you make? Do you think making this configurable would be worth it?

gajet5 commented 2 months ago

@mserajnik

Yes, we often use bots on the server. They are a very powerful tool for gaining gaming experience in low-populated worlds. We also use them in raids.

We don't see a problem with the positioning that is described in this issue.

In groups, it is enough that bots are nearby, and when attacking, they can be paused "rdd". this will allow the "mdd" to get the distance. There is also a "pull" command.

In raids, most often bots hang on "rdd" or "healers", which are already far enough away.

On my server, I'm working on improving the "partybot" code, not too much, but I'm solving issues that worry the players.