PDA

View Full Version : Lay on Hands and Harm Touch problem & fix


number6
09-22-2006, 05:25 AM
Hi all,

I've been running a little server at home for just over a week now for a few friends from the old EQ days so we can revisit some old haunts...

We noticed an issue with both Paladin "Lay On Hands" and SK "Harm Touch". Both these abilities have very long reuse timers, but when you zone, the ability button pops back up. If you then hit it, the client becomes locked, presumably because it is waiting for an event from the server. But the server simply sends an "Ability recovery time not yet met" message. From that point you can't issue commands, look at inventory, and so on. Zoning will fix it. This is all with the Titanium client.

This is probably a terrible hack but in client_packet.cpp I added a "InterruptSpell(castspell->spell_id);" after both the message outputs and it has at least meant I can carry on doing stuff now after hitting the button. Clearly the client needs a better way to keep in touch with the state of the ability after zoning though. Anyway I hope this might be of some little help.

--- client_packet.cpp 2006-09-22 15:51:57.000000000 +0100
***************
*** 2921,2926 ****
--- 2921,2928 ----
castspell->spell_id == SPELL_LAY_ON_HANDS && GetClass() == PALADIN) {
if(!p_timers.Expired(&database, pTimerLayHands)) {
Message(13,"Ability recovery time not yet met.");
+ InterruptSpell(castspell->spell_id);
+ // above number6 hack
return;
}
spell_to_cast = SPELL_LAY_ON_HANDS;
***************
*** 2935,2940 ****
--- 2937,2944 ----

if(!p_timers.Expired(&database, pTimerHarmTouch)) {
Message(13,"Ability recovery time not yet met.");
+ InterruptSpell(castspell->spell_id);
+ // above number6 hack
return;
}

***************

Be seeing you.

fathernitwit
10-02-2006, 02:57 PM
looks like a reasonable thing to do if you ask me. Will put it in.

calasoren
12-31-2008, 08:13 PM
im having this issue also and was looking for a fix but this fix is for the source files correct? how would i implement this into my current server i have it running pretty much perfect now :) need to change some mob agro and so far the ht, lay hands issue.

Loccochris
01-01-2009, 05:49 AM
To get the fix on your server you could do one of 2 things. First if you didn't code any special stuff for your server then you could just download the newest server source and run that. (this will not affect your database in any way or any custom spawns/levels and what not).

Pretty sure they have a SVN system up so you can actually just update the specific fix to your server without having to download the entire new source.

Other way is to just go in change the code in file above and recompile the source for your new server source executable.

Again it all depends on what you are comfortable with.