LandSandBoat / server

:sailboat: LandSandBoat - a server emulator for Final Fantasy XI. Just an X-34 landspeeder out for a drive.

Home Page:https://landsandboat.github.io/server/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

πŸ› Wyvern missing "readies <> breath" message

MowFord opened this issue Β· comments

I affirm:

  • I understand that if I do not agree to the following points by completing the checkboxes my issue will be ignored.
  • I have read and understood the Contributing Guide and the Code of Conduct.
  • I have searched existing issues to see if the issue has already been opened, and I have checked the commit log to see if the issue has been resolved since my server was last updated.

OS / platform the server is running (if known)

Branch affected by issue

base

Steps to reproduce

Summon a wyvern with /rdm, set yourself to hp 1, then case cure. Wyvern will use healing breath but not give a message that it readies the move.

I believe the issue is due to the refactor here, but I messed with various flow, recompiled, and couldn't get the ready message back.

I ended up doing a workaround with a simple module, but am interested in getting it fixed here.

local m = Module:new("wyvern_adjustments")


m:addOverride("xi.pets.wyvern.onMobSpawn", function(mob)
    mob:addListener("ABILITY_START", "start", function(wyvern, ability)
        wyvern:injectActionPacket(
            wyvern:getID(),
            xi.action.WEAPONSKILL_START,
            121,
            0,
            xi.reaction.HIT + xi.reaction.ABILITY,
            326,
            0,
            ability:getID()
        )
    end)

    super(mob)
end)

return m

Expected behavior

Looks like CanUseAbility is returning false because the initial target is nullptr and it gets one later for some reason. That's actually kind of interesting. That's almost certainly a bug that wasn't noticed until now.