Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Bug Reports

Development::Bug Reports Post detailed bug reports and what you would like to see next in the emu here.

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 09-22-2006, 05:25 AM
number6
Sarnak
 
Join Date: Sep 2006
Posts: 62
Default Lay on Hands and Harm Touch problem & fix

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.

Code:
--- 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.
Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 07:43 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3