topaz-next / topaz

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

Berserker's torque should not kill player #925

Open topaz-next-bot opened 3 years ago

topaz-next-bot commented 3 years ago

Issue by topaz-bot Wednesday Jan 08, 2020 at 14:44:18 Originally opened as: project-topaz/topaz - Issue 181


Issue by Deadwing888 Wednesday Jul 05, 2017 at 22:40 GMT Originally opened as DarkstarProject/darkstar - Issue 3928


I have:

Client Version (type /ver in game) not a client issue

Server Version (type revision in game) I looked at the sql files

Source Branch (master/stable) :

Additional Information (Steps to reproduce/Expected behavior) :

EDIT: issue completely re-written:

The rune weapons have a latent param for LATENT_WEAPON_DRAWN_MP_OVER which lets them function correctly. There is no LATENT_WEAPON_DRAWN_HP_OVER latent which would be a necessary check for the Berserker's Torque to not kill the player. (The latent param in this case would be 50)

topaz-next-bot commented 3 years ago

Comment by topaz-bot Wednesday Jan 08, 2020 at 14:44:20


Comment by teschnei Wednesday Jul 05, 2017 at 22:47 GMT


I think I understand what you are saying (when you give the Rune Chopper example, I assume you mean that's how it works on retail - the post isn't very clear and I'm not familiar with the weapon).

Both proposed solutions have their own problems, though. The first one can explode in complexity in a bad way if it's not careful. For the second one, I don't want to add any more bindings unless we really need it for a core mechanic. I don't really see how it would fix the problem though (adding an mp drain latent when weapon is drawn? It seems not very intuitive, compared to the rest).

topaz-next-bot commented 3 years ago

Comment by topaz-bot Wednesday Jan 08, 2020 at 14:44:21


Comment by Deadwing888 Wednesday Jul 05, 2017 at 22:58 GMT


I'll try to clarify:

The way the latent effects are currently setup, rune weapons will give positive effects as long as the weapons are drawn. On retail to achieve this effect you would have had to have refresh of some sort active because the positive effects checked both MP >0 and "Is Weapon Drawn?".

I agree neither solution is great. I think the first solution may be superior as it would only take I believe two additional latent effect types (one where latentparam checks mp for rune weapons, one where latentparam checks hp for Berserker's Torque).

The second solution could handle it by means of:

~~--item Berserker's Torque function onWeaponEngage(target) if (target:getHP()> 50) then target:addMod(MOD_REGAIN, 10) target:addMod(MOD_REGEN, -50) end end;~~

I guess you might need a second function for onWeaponDisengage to delete the effects? I'm not sure this would handle all instances such as dieing, zoning, deleveling and losing weapon etc. Probably makes this the inferior solution.

Edit: Maybe the function would have to check it each tick like onmobfight and just not give any effects otherwise?

Edit 2: I'm an idiot, they work fine outside of the .9 haste instead of 9 haste on rune chopper. Berserker's torque issue still at large

topaz-next-bot commented 3 years ago

Comment by topaz-bot Wednesday Jan 08, 2020 at 14:44:23


Comment by teschnei Wednesday Jul 05, 2017 at 23:02 GMT


Well, it would also have the exact same problem that you're reporting here, so it's definitely the inferior one :)

on tick checking is going to be bad, too.

Ideally - a way to compose latent effect trigger conditions such that a stat can require multiple conditions to be met before being active. Probably not that hard to implement, either, now that I think about it.

topaz-next-bot commented 3 years ago

Comment by topaz-bot Wednesday Jan 08, 2020 at 14:44:24


Comment by KnowOne134 Wednesday Jul 10, 2019 at 20:56 GMT


from wiki it says it can kill you "Drains 50 Hit Points in exchange for 10 TP each tick. This effect will cause death if HP is at or below 50 while the effect is active."

https://ffxiclopedia.fandom.com/wiki/Berserker's_Torque

topaz-next-bot commented 3 years ago

Comment by UynGH Monday Mar 09, 2020 at 21:33:27


Hello. As KnowOne stated, this is working as intended. Closing. Thank you.

Edit:

Came across a related issue while testing: while the Torque works as intended when you first draw your Weapon (it will kill you), the latent is still working after being raised without being engaged, putting you in a dying loop.

Tested while being a GM, used the !raise power Name command multiple times.

topaz-next-bot commented 3 years ago

Comment by TeoTwawki Monday Mar 09, 2020 at 22:01:23


A new entry in one million and one ways to die in ffxi!