Go Back   EQEmulator Home > EQEmulator Forums > Quests > Quests::Q&A

Quests::Q&A This is the quest support section

Reply
 
Thread Tools Display Modes
  #1  
Old 11-13-2012, 08:57 AM
c0ncrete's Avatar
c0ncrete
Dragon
 
Join Date: Dec 2009
Posts: 719
Default

EVENT_TIMER doesn't export the $client object, so your conditional never passes.

you can try to dynamically name the timer in player.pl like this:

Code:
quest::settimer('checkbuffs|' . $client->GetName(), 10);
and then split up the $timer name into parts so you can get the client in EVENT_TIMER like this:

Code:
if ( $timer =~ /^checkbuffs|/ ) {
    my ($timer, $name) = split(/\|/, $timer);
    my $client = $entity_list->GetClientByName($name);
    # do whatever with $client here
}
EDIT:
changed delimiter to pipe (|) instead of underscore (_), as some character names may have underscores to indicate spaces.
also, i'm not sure if you're going to have access to the entity list in global_player.pl, so you might have to use it in each zone's player.pl instead.

EDIT AGAIN:
sheesh... i'm having all sorts of syntax issues this morning. i blame the cold weather...

Last edited by c0ncrete; 11-13-2012 at 09:45 AM.. Reason: corrected syntax
Reply With Quote
  #2  
Old 11-13-2012, 10:02 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

If you want to remove specific buffs and not just all, you can probably use one of the following:

Code:
   BuffFadeByEffect(effectid, skipslot= -1)
   BuffFadeBySlot(slot, iRecalcBonuses= true)
   BuffFadeBySpellID(spell_id)
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #3  
Old 11-13-2012, 12:38 PM
c0ncrete's Avatar
c0ncrete
Dragon
 
Join Date: Dec 2009
Posts: 719
Default

oops... i was wrong about the $client object not being exposed to EVENT_TIMER in player.pl... that would only apply to npc scripts.

i've also found that quests\templates\global_player.pl runs in addition to quests\<zone>\player.pl (global_player events fire off first if there are duplications).

i was under the impression the global script only ran if the zone-specific script didn't exist.

hooray for learning.
Reply With Quote
Reply


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 04:49 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