PDA

View Full Version : Game Mechanics: Archery (all ranged attacks?) non-functional near max range


Ciroco
08-29-2014, 12:42 AM
Occasionally when you attempt to fire an arrow near whatever your maximum archery range is, the ranged attack hotkey will depress/gray out, but no arrow will fire. This is separate from the "Error: timer not up" message.

I'm not entirely sure what's causing the problem, but it seems that I've been able to replicate it on mobs with large hitboxes (dragons, giants, etc). Since a patch or two ago, it has become impossible to hit dragons at >300 range.

kaev
08-29-2014, 12:35 PM
Yeah, it is annoying the way the server disagrees with the client on range calcs.

There's a similar issue with spells when Z-axis is involved, cast will happen and then get interrupted at end.

Zaela
08-29-2014, 02:26 PM
The fact that you mentioned big mobs with large hitboxes made me think that the range calc is supposed to be "edge to edge" rather than "center to center". Fired up my test server and tried it out: yep, the ranged attack button will grey out at much further distances against bigger targets. Can grey it out at ~190 distance with a 100 range bow and 25 range arrow against a size 50 target (dragons are size 25).

I'm surprised if that wasn't figured out a long time ago. There's a comment in the EQEmu code that kind of hints at it...

float range = RangeItem->Range + AmmoItem->Range + 5; //Fudge it a little, client will let you hit something at 0 0 0 when you are at 205 0 0

5 extra range would probably be enough to account for it against small targets.

Can't necessarily be sure that this is actually classic and not something that was introduced in later clients... but it's a pretty fundamental thing so it probably wouldn't have changed since the early days. And it makes sense; avoids the situation where a short range throwing weapon can only hit a huge dragon from within melee range and such.

Haynar
08-29-2014, 03:05 PM
I'm surprised if that wasn't figured out a long time ago. There's a comment in the EQEmu code that kind of hints at it...
So, figure it out then? Might vary by target size and size of shooter.

H

Zaela
08-29-2014, 03:29 PM
I assume it just adds the final range from the auto attack range calc on top or something like that. Will fiddle around with it a bit I guess.

Zaela
08-30-2014, 12:44 AM
I assume it just adds the final range from the auto attack range calc on top or something like that.

Seeming pretty consistent with that so far. Size of both mobs influences it; sizes less than 8 are all the same for the primary part of calculation, but not the abs height difference part; ranges from +16 at minimum to +75 at maximum, consistent with a dump someone was kind enough to show me and a similar "GetMeleeRange" func in the mq2 source.

Pulling out whatever math you've got in Mob::CombatRange or equiv and slapping it on top of the bow + arrow ranges (or throwing whatever, didn't test that though) should be enough for a quick fix, probably.

Haynar
09-02-2014, 09:11 AM
Will see if I can find the function in the client. Might be able to match it up exact.

H

Zaela
09-02-2014, 03:09 PM
The prettied-up dump I got looked like this... http://pastebin.com/vBShmVHc

Where "LoadAvatarHeight" returns size * 0.6f (confirmed through testing that each point of size difference is worth +0.6 range), and I suspect one of the two floats multiplied by "MultiMeleeRangeVars" is size again which would put the other typically in the vicinity of 1.2875... although it's not a constant so it may well vary (by race?). Dunno.

Haynar
09-02-2014, 03:21 PM
That looks like decompiled client exe. I can use stuff in that to find it if its same in titanium.

H

lecompte
09-02-2014, 03:24 PM
I've had this problem for a while and it is pretty consistent. Easy to replicate by walking towards a mob and spamming bow... button will grey but arrow won't shoot, no arrow consumed but you have to wait for refresh on bow.

Let me know if I can provide anything to assist.

Haynar
09-02-2014, 03:30 PM
Dont worry. With what Zaela dug up, will code a fix later. Will add another 5 server side too, to make up for any sync differences.

H

khanable
09-03-2014, 12:59 AM
This is very exciting

Jimjam
09-04-2014, 07:09 AM
The fact that you mentioned big mobs with large hitboxes made me think that the range calc is supposed to be "edge to edge" rather than "center to center". Fired up my test server and tried it out: yep, the ranged attack button will grey out at much further distances against bigger targets. Can grey it out at ~190 distance with a 100 range bow and 25 range arrow against a size 50 target (dragons are size 25).

I'm surprised if that wasn't figured out a long time ago. There's a comment in the EQEmu code that kind of hints at it...

float range = RangeItem->Range + AmmoItem->Range + 5; //Fudge it a little, client will let you hit something at 0 0 0 when you are at 205 0 0

5 extra range would probably be enough to account for it against small targets.

Can't necessarily be sure that this is actually classic and not something that was introduced in later clients... but it's a pretty fundamental thing so it probably wouldn't have changed since the early days. And it makes sense; avoids the situation where a short range throwing weapon can only hit a huge dragon from within melee range and such.

I remember in classic being able to stand in the melee range of a giant or treant but still being able to shoot my bow, which suggest for the minimum range of range attacks it is measured from the centre of the mob.

Ciroco
12-19-2014, 04:44 AM
bump

Ciroco
05-21-2015, 02:35 AM
Did this ever get implemented? Still seemed to be having this issue on elephants the other day.

Also:
http://i.imgur.com/A6TZt2K.png
I'm no math whiz, but that doesn't seem right.

Brocode
05-21-2015, 03:37 AM
usually when i shoot at max range(250), button greys out but no javelin is thrown and have to wait the delay to throw again, and thats why i avoid run and throw at the same time as this might happen and instead of instant tag, i get a 2 segs delay.

evilkorn
05-21-2015, 11:20 AM
It's still slightly buggy if you are at max range. It's not like there's a ring around the range distance to test it in game if you are on the edge or not. It is also pretty inconsistent and might have to do with throwing then backing up over the range too quickly or like you said running up and throwing I find to be an issue as well where I usually have to wait on the cooldown to throw again.

Nirgon
05-21-2015, 12:09 PM
Read entire thread

Goog

Haynar
05-21-2015, 12:53 PM
Due to time delays between server and client, there is no way to make this work 100% while either is moving.

Stationary, its working pretty good.

H

Nirgon
05-21-2015, 01:47 PM
archery, bolts and throwing were always a little wonky

no denying that

Divinitous
03-12-2022, 10:57 AM
Any resolution to this?

[Sat Mar 12 06:08:58 2022] Error: Timer not up. Attack 0, ranged 413

Happens when trying to use Shattering Hammer. Seems if I un/reequip the hammers they sometimes start working again.

Bard w/ throwing skill of 89.

-Cruner on Blue

Divinitous
06-12-2024, 08:19 PM
Curious about this. Still seems to be a problem. Throwing maxed at 113.

7thGate
06-13-2024, 11:26 AM
This does still happen. I hit this when trying to kill Sontalak with Archery from outside Dragon Fear range. There is enough wiggle room to fit between the edge of dragon fear and the range where this bug gets hit, but it does make it a little trickier since you won't get an out of range error and will gray out the button without attacking while moving from out of range into max range.

https://www.youtube.com/watch?v=XORm61GB5-I shows this bug between 1:02 and 1:13, where you can see there are no attacks showing up in the left hand text box, but the ranged attack button stays grayed out until I moved closer and started firing again.