FFXIV-CombatReborn / BossmodReborn

BossMod FFXIV dalamud plugin, but with modules
33 stars 32 forks source link

Add warnings to the Teleport Hack option #455

Closed zbee closed 4 days ago

zbee commented 4 days ago

Add warnings and more verbosity to try to deter public use of this feature.

Per discussion on #451 I specifically tried to align with how other contributors explained this option should be used.

CarnifexOptimus commented 4 days ago

you do seem really passionate about this topic

zbee commented 4 days ago

I am very much opposed to it yes; I assumed a removal PR had no chance, and that this may be merged and mitigate some of my worries.

CarnifexOptimus commented 4 days ago

Since you are a software engineer you could help to make a proper solution for temporary misdirection and spinning (b3 alzaadals legacy) so these kind of hacks are not needed

zbee commented 4 days ago

Thanks for the merge. I appreciate the suggestion; if the need is enough for this then yeah, I'll try to carve some time to contribute upstream to VBM 👍🏻

CarnifexOptimus commented 4 days ago

Would definitely be appreciated if something less cheaty than noclip or teleport hack could be used for this. But i believe the client structs have not reverse engineered these debuffs yet

zbee commented 2 days ago

The author of that mod was already on it when I asked, so I waited. There's a run-down of it below, hopefully that can replace the option I was adding a warning to here.

Check for misdirection here.

Then read the misdirection like so:

public static readonly float* ForcedMovementDirection = (float*)Service.SigScanner.GetStaticAddressFromSig("F3 0F 11 0D ?? ?? ?? ?? 48 85 DB");

And finally account for it here:

var currentDir = Angle.FromDirection(new(*sumLeft, *sumForward)) + ForwardMovementDirection();
var dirDelta = currentDir - ForcedMovementDirection->Radians();
CarnifexOptimus commented 2 days ago

can you ask if it also works for the spinning debuff in alzaadals legacy? it works a little different and i am too lazy to check right now (status IDs 2973 and 3702)

zbee commented 2 days ago

I would assume not, as it explicitly checks for if (sm->Status[i].StatusId is 1422 or 2936 or 3694 or 3909). Though, unless I misremember, I think that one is very different; I'll test and update this comment.

CarnifexOptimus commented 2 days ago

Probably not then, but maybe you can bring those status effects to his attention. Veyn blocked me some time ago so I can't do it.

zbee commented 2 days ago

Yes, it does, which is interesting. image

CarnifexOptimus commented 2 days ago

I wonder if it just detects the misdirection or if it can actively handle it? Afaik for temporary misdirection you have to wait until the hand points into the right direction while during spinning you can influence the direction somewhat

zbee commented 2 days ago

Would have to recommend looking at what I linked when you have the time. The third link I provided is what you could use for that. In VBM it currently just prevents you from providing input when that angle+your camera (accounting for movement settings) would result in you moving askew, for you, you could read once that's +-5 degrees or something, then move the player, for example.

I'll leave it there for now, since the conversation maybe isn't suited to this PR. But if you would like my help to develop a feature to replace the teleport hack options then you could ping me in an Issue-task once you have had a chance to look it over and have decided how you would like it implemented.