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 09-25-2004, 06:13 PM
Malignus Wingnut
Hill Giant
 
Join Date: Sep 2004
Posts: 233
Default Idea using Timers and Signals

Was wondering if this would work, dont want to waste my time doing it if it wont.

Three quest scripts, one for a main boss mob, one for the untargetable version of the main boss, one a smaller mob.

Main Boss Script has a timer that loops around every 1 second. Each time the timer loops, it quest::signal the smaller mob script.


Smaller mob script when signaled checks if the x, y, and z coords of the mob are greater than or equal to a value, if true, it quest::signal both the Boss mob script AND the untargetable mob script.

Main boss script when signaled will despawn the main boss, and respawn with an untargetable version of itself.

Untargetable boss mob script when spawned will start two timers. One that will loop every 1 second, that will signal the Smaller Mob script, and one that will loop say every...60 seconds.

Since the untargetable mob script is now spawned, IF it is signaled by the smaller mob script, it will despawn itself and then respawn the exact same untargetable mob, resetting the 60second timer.

If the 60 second timer finishes without being reset, the untargetable mob will despawn, and spawn the original targetable boss mob.


In case I lost you anywhere in there here's a basic overview. NOT full quest scripts, just ideas.

MAIN BOSS MOB

Code:
sub EVENT_SPAWN
{
           quest::settimer(1,1);
}

sub EVENT_TIMER
{
        quest::signal(SmallerMob);
}

sub EVENT_SIGNAL
{
           quest::stoptimer(1);
           quest::spawn(UntargetableMob,0,0,$x,$y,$z);
           quest::depop();
}
SMALLER MOB

Code:
sub EVENT_SIGNAL
{
           if($x >= 50 && y <= 50 && z == 100)
            {
                   quest::signal(BossMob);
             }

}

UNTARGETABLE MOB

Code:
sub EVENT_SPAWN
{
           quest::settimer(1,1);
           quest::settimer(2,60);
}


sub EVENT_TIMER
{
          quest::signal(SmallerMob);
}

{
          quest::stoptimer(1);
          quest::stoptimer(2);
          quest::spawn(BossMob,0,0,$x,$y,$z);
          quest::depop();
}

sub EVENT_SIGNAL
{
         quest::stoptimer(1);
         quest::stoptimer(2);
         quest::spawn(UntargetableMob,0,0,$x,$y,$z);
}

I just thought this up tonight, dunno if it will work. Plz post feedback.
Reply With Quote
  #2  
Old 09-25-2004, 10:27 PM
smogo
Discordant
 
Join Date: Jan 2004
Location: 47
Posts: 339
Default

Hmm, not sure what this is meant to do :/
Could you explain more ?
__________________
EQEMu Quest Repository is down until something new :(
Reply With Quote
  #3  
Old 09-26-2004, 02:04 AM
Malignus Wingnut
Hill Giant
 
Join Date: Sep 2004
Posts: 233
Default

Ok basically imagine an event. There is one large boss mob that spawns, and then waves of smaller mobs spawn and being walking towards the main boss's room. If any of the smaller mobs make it into the main boss's room, the main boss becomes untargetable. The untargetable boss is then on a timer, the waves of smaller mobs still keep coming during this stage when the boss is untargetable. If you can keep the smaller mobs out of the main boss's room for long enough (when the timer runs out) He becomes targetable again.

This is similar to how the Manaetic Behemoth event works in PoI, however in EQ Live the boss poofs if any spiders make it to his room and the encounter is failed. I dont want to exactly copy EQ Live so i decided to just make him untargetable if a mob reaches his room.
Reply With Quote
  #4  
Old 09-26-2004, 04:53 AM
Cisyouc
Demi-God
 
Join Date: Jun 2004
Location: Heaven.
Posts: 1,260
Default

This can already be done with targlobal, timers and simple if statements =)
__________________
namespace retval { template <class T> class ReturnValueGen { private: T x; public: ReturnValueGen() { x = 0; }; T& Generator() { return x; }; }; } int main() { retval::ReturnValueGen<int> retvalue; return retvalue.Generator(); }
C++ is wonderful.
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 12:48 PM.


 

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 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3