topaz-next / topaz

💎 A server emulator for Final Fantasy XI.
GNU General Public License v3.0
56 stars 80 forks source link

Third Eye and Utsusemi should not stack. #2563

Closed gweivyth closed 3 years ago

gweivyth commented 3 years ago

I affirm:

Temporary:

image

Above image taken from retail. These effects shouldn't stack. Copy Image should wipe Third Eye, and Third Eye should have no effect when player is under the effect of Copy Image.

Xaver-DaRed commented 3 years ago

Tabs need to be converted to 4 spaces/formating, in general. I would also edit utsusemi_san, becouse theres no reason for it not removing third eye aswell if ichi and ni do. Sent you a DM to discord with the formated files

gweivyth commented 3 years ago

I totally blanked on San even existing cause of 75-brain, added the formatting you sent and the update for San as well, thanks!

zach2good commented 3 years ago

EDIT: Ah, yes, I can read. Ignore everything below. Third eye is the thing being cancelled!

Is checking for tpz.effect.COPY_IMAGE enough? I say this because on retail when my gearswap checks for and cancels shadows, I have to check for 4 things:

    -- Cancel Shadows
    if spell.english == "Utsusemi: Ichi" then
        if buffactive['Copy Image'] then
            send_command('@wait 2.2; cancel 66')
        elseif buffactive['Copy Image (2)'] then 
            send_command('@wait 2.2; cancel 444')
        elseif buffactive['Copy Image (3)'] then
            send_command('@wait 2.2; cancel 445')
        elseif buffactive['Copy Image (4+)'] then
            send_command('@wait 2.2; cancel 446')
        end
    end
TeoTwawki commented 3 years ago

EDIT: Ah, yes, I can read. Ignore everything below. Third eye is the thing being cancelled!

Is checking for tpz.effect.COPY_IMAGE enough? I say this because on retail when my gearswap checks for and cancels shadows, I have to check for 4 things:

    -- Cancel Shadows
  if spell.english == "Utsusemi: Ichi" then
      if buffactive['Copy Image'] then
          send_command('@wait 2.2; cancel 66')
      elseif buffactive['Copy Image (2)'] then 
          send_command('@wait 2.2; cancel 444')
      elseif buffactive['Copy Image (3)'] then
          send_command('@wait 2.2; cancel 445')
      elseif buffactive['Copy Image (4+)'] then
          send_command('@wait 2.2; cancel 446')
      end
    end

I believe the old ones cheated and used effect:setIcon() to use just one effect in reality while sending the correct effectID packets to the client to set the correct icon and tell the client "its multiple effects, honest!" in a similar manner to if we had used addStatusEffectEx().

TeoTwawki commented 3 years ago

Final commit.

Allegedly! :wink:

jokes aside safest to be descriptive even on short quick fixes, unless you intend to squash after.

zach2good commented 3 years ago

The content is there, but the formatting is off. I'll merge this into a branch and clean it up, then yeet it into release. Thanks for the contribution 👍