-
Notifications
You must be signed in to change notification settings - Fork 222
Mobs engage player by casting a spell (if any present) despite of job #1479
Comments
its probably worth re-confirming retail behaviors for mobs that cast. tehre were some changes over the years to when a mob chooses to hang back or close for melee, and we need to consider DRK and PLD along with RUN for our "melee casters". IIRC PLD Orcs will open with a cast and them immediately close for melee. I can't think of any RUN mob I can easily check. The bug may have unintentionally been giving retail accurate behavior.. |
I watched a lot of different captures from the capture Discord and made a spread sheet anybody can comment on I believe to see the following: • BLM seems to depend on the family: • RDM seemed to behave mostly like worms but I've seen exceptions (summoned by NM and in range, opened with cast) • I did not observe BRD/NIN/BLU/GEO/RUN/SCH mobs More observations are welcome. |
I have some I am in the process of documentation. I'll post back later with the details. So far most everything that can cast or ranged attack opens with those unless player is already in melee range at the start. NMs break the "rules" and do whatever. A few mobs seems to heavily favor specific spells to open with.
which mobs were these specifically? I don't trust what wiki says for the jobs - wiki jobs are generally conjecture based on observed abilities a mob has |
Awesome Teo. Thank you for the shared interest. Sure wikis only estimate, actually in my sheet I was about to put "supposed retail job" but that would've simply been to long a line. |
K so both Apademek and Jailer of Faith are NMs, as mentions NMs don't always follow regular mob rules. For jobs I trust anything from Jimmayus' spreadsheet says over either wiki if they disagree. Lets hope they don't lol. Below are my own observations. All of the below are observations of mobs that had full HP. Behaviors changes when mob is weakened Magic casting mob checksCloses for melee before casting anything/will prioritize swinging over castings:
Opens with an immediate cast even if I am within melee range, does not close for melee until below 75% hp, spell chosen seems random:
Opens with an immediate cast even if I am within melee range, will close for melee immediately after initial cast, spell chosen seems random:
Have more to add, not done yet. Also checking mobs that do ranged attacks to see if they always fire off an arrow/bolt/whatever immediately, if they will stay back, or if they will run up and point blank you between swings. I recall some behavior in regards to standing back was changed in the past, so I'm making sure what the game does in the present day for both mages and ranged attackers. Ranged attack mob checksStands back and shoots:
Closes for melee, shoots between melee swings:
|
I have:
If a monster has a spell list and mp > 0 it will currently always instantly cast a spell when engaging its target despite of its job.
This is clearly a bug as
CMobController::Engage()
even explicitly creates an exception for jobs that have a value set inMOBMOD_MAGIC_DELAY
(note the comment!):topaz/src/map/ai/controllers/mob_controller.cpp
Lines 971 to 991 in f780862
The offending line here is Line 982 where
MAGIC_COOL
and a random number up toMAGIC_DELAY
get both multiplied by1000
, then added and the sum subtracted as milliseconds fromm_Tick
.The multiplier of
1000
fromgetBigModMod()
simply seems to make this result too small for the comparison withm_LastMagicTime
later inCMobController::IsSpellReady()
I confirmed this by messing around with this value and simply calling with
getMobMod()
instead and manually multiplying you can manually increase/decrease the after-engage-cast-timeout for jobs that haveMAGIC_DELAY
set. This also applies for the special ability check.It may be questioned how big this timeout should be to be retail accurate, to be able to re-write this formula.
Additional Information (Steps to reproduce/Expected behavior) :
It will always be a cast.
MAGIC_DELAY
unset should be able to behave this way.(On a side note, this could be questioned to only be the case while out of melee range anyways, after seeing the recently captured video on Kuftal Worm (BLM) behavior)
The text was updated successfully, but these errors were encountered: