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, 02:03 AM
Drakiyth's Avatar
Drakiyth
Dragon
 
Join Date: Apr 2012
Posts: 545
Default Quest to remove unwanted buffs.

I'm looking to create a quest that constantly removes unwanted buffs from players, but I have failed to come up with anything solid.

EDIT:

if ($client && $client->FindBuff(xxxx) && $ulevel <= (xxxx))

$client->BuffFadeAll(); is the syntax I'm using but can't seem to find a place to constantly check it. (This works)


Tried making this a player.pl in templates and can't get anything going. Tried sub EVENT_TARGET_CHANGE{ and a sub EVENT_TIMER so far but no luck.

Thanks all.
Reply With Quote
  #2  
Old 11-13-2012, 05:57 AM
lerxst2112
Demi-God
 
Join Date: Aug 2010
Posts: 1,742
Default

Why not just remove the spells that cast those buffs if you don't want players to have them?
Reply With Quote
  #3  
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
  #4  
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
  #5  
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
  #6  
Old 11-13-2012, 04:58 PM
Drakiyth's Avatar
Drakiyth
Dragon
 
Join Date: Apr 2012
Posts: 545
Default

Quote:
Originally Posted by lerxst2112 View Post
Why not just remove the spells that cast those buffs if you don't want players to have them?

They are only undesired at specific levels and the easy fix would be if the Effect: Min Level would actually work on spell creation. (Anybody know how to get this to actually work with Null's spell editor or even a navicat column/sql change?

I've decided to just make scripts for each buff; using the sub EVENT_SPELL_EFFECT_BUFF_TIC_CLIENT{ Checks for the level of the user and it works
like a charm.
Reply With Quote
  #7  
Old 11-13-2012, 05:04 PM
Caryatis
Dragon
 
Join Date: May 2009
Location: Milky Way
Posts: 539
Default

Effect: Min Level is a focus effect which requires the spell being cast to be at least that level to be affected by the focus, not that target of a spell must be such a level.
Reply With Quote
  #8  
Old 11-13-2012, 06:49 PM
Drakiyth's Avatar
Drakiyth
Dragon
 
Join Date: Apr 2012
Posts: 545
Default

Thank you Caryatis, I appreciate the response. I have a fix for it so this thread is pretty much done now.

Thank you guys.
Reply With Quote
  #9  
Old 11-19-2012, 09:19 AM
thepoetwarrior
Discordant
 
Join Date: Aug 2007
Posts: 307
Default

I have a mount with extra HP which has a level required to click / mount, but how would I force the player to get off the mount (no more buff) while doing a delevel quest?
Reply With Quote
  #10  
Old 11-19-2012, 09:29 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

I think that spell line uses this effect (from zone/spdat.h):

http://code.google.com/p/projecteqem...r/zone/spdat.h
Code:
#define SE_SummonHorse                                  113     // implemented
So, the following should work:

Code:
$client->BuffFadeByEffect(113);
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #11  
Old 11-19-2012, 09:42 AM
thepoetwarrior
Discordant
 
Join Date: Aug 2007
Posts: 307
Default

Thanks much!
Reply With Quote
  #12  
Old 11-19-2012, 10:19 AM
thepoetwarrior
Discordant
 
Join Date: Aug 2007
Posts: 307
Default

Now I don't have to list every spell or other methods of getting creative.

The BuffFadeByEffect + list of ids on spdat.h was extremely useful.

Thanks again Trevius!
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 05:26 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