EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Quests::Q&A (https://www.eqemulator.org/forums/forumdisplay.php?f=599)
-   -   Waypoints are hit and miss (https://www.eqemulator.org/forums/showthread.php?t=31088)

joligario 04-19-2010 12:12 PM

Are you reusing the same boat NPC? There is an issue about scripts across zones if you are using the same NPC. Only thing I could think of after that is code logic.

mixxit 04-19-2010 12:52 PM

I am yeah

I have two boats in OOT - 999184 that goes in one direction and 999185 that goes the other

999185 is also used in butcher and freeport

joligario 04-19-2010 02:00 PM

The scripts may be running into each other. You should have 1 ID number for each boat. So you should have 4 id numbers.

mixxit 04-19-2010 02:04 PM

Ok I am pretty sure that the issue is that NPCs do not path in static zones if there are no players in it. I am not 100% certain but I would guess this is the case. Scripts still seem to run though as qglobals get set and what not.

mixxit 04-19-2010 02:32 PM

Here's the current version that occurs when the boat spawns (which it is doing and is setting the global to val: 1)

Code:

#OOT - Boat from BB to FP
sub EVENT_SPAWN
{
        # I have spawned, inform the BoatSystem that I am moving towards freeport by setting the quest global
        quest::gmsay("BBFP Setting status 1");
        quest::setglobal("ootboatstatus",1,7,"F");
}
sub EVENT_WAYPOINT_ARRIVE
{
        # keep moving till i reach the last waypoint
        if($wp == 4)
        {
                quest::gmsay("BBFP Setting status 2");
                quest::setglobal("ootboatstatus",2,7,"F");
        }
       
        if($wp == 5)
        {
                quest::gmsay("BBFP Depopping");

                quest::depop();
        }
}


mixxit 04-19-2010 02:43 PM

here's the script that spawns the boat when the zone boots up for the first time.

Code:

sub EVENT_SPAWN {

  quest::shout("Boat system spawned and activated");
  quest::settimer("ootcheckboats",1);
  quest::gmsay("BS Setting status 0");
  quest::setglobal("ootboatstatus",0,7,"F");
 
 
}

sub EVENT_TIMER
{
  if($timer eq "ootcheckboats")
  {
      if(defined $qglobals{ootboatstatus})
      {
        if ($qglobals{ootboatstatus} == 0)
        {
            quest::spawn(999185,62,0,11124.2,446.575,-43);
        }
       
        # The boat has arrived at OOT from Freeport       
        if ($qglobals{ootboatstatus} == 5)
        {
            quest::spawn(999184,64,0,-10957.6,556.9,-43);
        }
       
      } else {
        quest::shout("DEBUG: Error, could not locate QGlobal");       
      }
  }

}


mixxit 04-20-2010 07:25 AM

I have implemented a unique ID for every spawn involved now with qglobals enabled on each

The situation is still the same. The NPC does not trigger an event when it reaches a waypoint (if it does) when nobody is in the zone.

Gaah! :-)

mixxit 04-20-2010 10:05 AM

Quote:

14:44 Mixxit • i have an npc that is doing a world emote but he never reaches his waypoint unless i go into the static zone
14:56 &Rogean • correct, the zone goes into a low resource state
14:57 Mixxit • bah but i need my boat to move!
14:57 Mixxit • is this just one line i could disable?
14:57 Mixxit • (please say yes)
15:01 &Rogean • void EntityList::MobProcess() {
15:01 &Rogean • #ifdef IDLE_WHEN_EMPTY
15:01 &Rogean • if(numclients < 1)
15:01 &Rogean • return;
15:01 &Rogean • #endif
15:02 Mixxit • fantastic!
15:02 &Rogean • features.h, uncomment that define
Now to test!

mixxit 04-20-2010 06:06 PM

Issue Resolved!


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

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.