Spell Haste and Client cap?
Hi all,
I've been experimenting with altering spell haste so that it works more like as melee haste. Standard emu code caps it at 50%, which matches a cap on live (from what I can see in old EQ posts). The cap is necessary, as the way it currently works all spell become instant cast once 100% spell haste is reached.
Changing the way it works required an updated calculation in Client::GetActSpellCasttime, and a data conversion for spell focus values so that cast times remain the same with existing focus effects. I've gotten both the calculation and data conversion completed without any real issues. However there is an issue with the client spell description still displaying as if it is capped at 50%. In addition, if a spell's casting time is reduced by more than 50% the spell cast timer starts no lower than 50% regardless of how high spell haste is (the timer will finish early instead).
The result is that with the new calculations spell cast times work as intended, but it's not pretty for the user once spell haste goes over 100%.
My assumption is now that the client is doing its own calculations and capping both the description and timer-start-point at 50%. However I'm keen to rule out any possibility that I've missed an update from the server to the client which is not calculated in the Client::GetActSpellCasttime function. If anyone knows more about this I'd be very grateful if you could share you findings.
-Jsr
Last edited by jsr; 02-08-2012 at 10:46 PM..
Reason: readability
|