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 10-11-2012, 09:41 AM
chrismed0
Sarnak
 
Join Date: Aug 2010
Location: USA
Posts: 75
Default Ok Help Spawning my boats

Ok, I have worked on it, and read alot of stuff at the wiki about spawn_events, conditions, spawn2 and alot of different posts about simular stuff and even played around with it and I guess I'm either missing something or I just don't completely understand it yet.

I figure though if I can create it for one boat that I can duplicate it for the other so one boat at a time here.

What I have done...

I threw out what ever the jumping on the boat thing and zoning thing endless cycles the boats were going in and built a whole new grid for the boat in the OOT, Butcher and Freporte. I loaded the models into my global and am now using race # 404 which is a pritty solid ship. The ship in OOT goes in one big circle following the original path. Fixed the spawn and the glitchy pathing. Same boat as before just different race. Did the same to the boats in Butcher and Freporte.

npc_type:
69134 - OOT - SirensBane
10183 - freporte - SirensBane

Lets take a look at this.
What I want to do is as the ship in OOT is going around and around I was hoping to get it to trigger the boats in freporte and butcher when it hits a certain waypoint.

Waypoint for the triggered spawn in the OOT wuld be #35 to trigger the spawn of the boat in freporte.

Once it spawns, the boat in freporte follows it's grid and a quest::depop() on grid #5 (the depop quest works great so far once the boat in freporte is spawned)

I have tried several different things to make this work (yes, butcher, OOT and freporte I have static atm). I tried setting up a condition for freporte and I created a spawn2 for the 10183 boat in freporte and using the quest::spawn_condition and quest::toggle_spawn_event (I even tried creating an event in the spawn_events table) but I couldn't get it to work. I even tried quest::endable_spawn2 / disable_spawn2 for the spawn2 entry for the boat. Bad thing about that one is when the boat hit the waypoint in the OOT it would crash freporte (sometimes). Needless to say I'm not doing something write. I think I'm on the write track and will continue to work on this and eventualy get it... BUT if anyone can walk me through this or explain in a little greater detail how to accomplish what I'm trying to do I would appriciate it. I figure there has got to be an easy way to do this. I keep thinking this seems like alot of trouble just to trigger a spawn in another zone.
Thanks
Reply With Quote
  #2  
Old 10-11-2012, 11:05 AM
Caryatis
Dragon
 
Join Date: May 2009
Location: Milky Way
Posts: 541
Default

Lets see if I can do this without calling you an idiot...

ZoneA - Invis NPC with with a tight timer loop(say 5 seconds), every time the timer fires it checks the value of a global variable.

ZoneB - Boat hits waypoint and changes the value of the global that is being checked by the invis NPC in ZoneA.

When the invis NPC in ZoneA notices the global has changed value, it spawns a boat, assigns it to the grid and resets the value of the global.

Its pretty basic stuff.
Reply With Quote
  #3  
Old 10-11-2012, 05:21 PM
chrismed0
Sarnak
 
Join Date: Aug 2010
Location: USA
Posts: 75
Default

Hmm haven't looked at globals yet. Never messed with them before and not sure how they work or how to set them up. I have figured out alot of tenchnical things in game so far.. spawns, basic quests, setting up grids creating new ncs editing items, etc, etc, etc....
But there are alot of the quest side elements I'm not familuar with. Again have only written basic quests. There are alot of things that tell you what it does and examples out there just not alot of explanations. And besides messing with a server a year or so ago for maybe a week or so. This time around I have been doing it for just a couple of weeks. Before that, never messed with MySQL, Perl or any of EQEmu stuff. Yet in just a week (or less) I have managed to set up an entire server, setup an Apache Server, PEW database editor and set it up where I can edit it from anyplace that has internet, php, perl and get most of the other tools out there working and a Windows 7 x64 machine. This is after compiling a server and never have messed with any of this. Most of this possible from finialy understaning how alot of it works with detailed exlination and information about these things. So it's not from the lack of trying.. just the lack of understanding. So far how to set up these elements in the quests and a few things like the globals and a few things I haven't touched on yet isn't from not trying it's from the lack of understanding them and lack of explaining how and why the work and how you right them and what the different elements mean and how they make it work.
This coming from someone who has never written code or messed with a MySQL DB or apache or perl or even php. I don't think I'm doing to bad. I also wouldn't consider calling somoene an idiot before understanding someone or their possability.
Now, I like the idea. I thought there would be an easier way with the waypoint event since the boat in OOT is a constant. Simplisity. I will start looking into the "globals" and hopefully I find enough infformation on how they work and how to set them up that I can figure them out and how to write them into a quest. Any help with this would be great, unless someone has another idea.
Thanks
Reply With Quote
  #4  
Old 10-11-2012, 06:17 PM
Burningsoul
Banned
 
Join Date: Oct 2009
Posts: 312
Default

Jesus dude, I'm all for trying to help but maybe hit enter every now and then so I don't need bifocals to read your wall?
Reply With Quote
  #5  
Old 10-11-2012, 06:23 PM
Caryatis
Dragon
 
Join Date: May 2009
Location: Milky Way
Posts: 541
Default

I specifically said I was not calling you an idiot but you have literally THOUSANDS of examples of how to do this shit in your quests folder, I imagine even an idiot would eventually figure that out.
Reply With Quote
  #6  
Old 10-11-2012, 09:58 PM
sorvani
Dragon
 
Join Date: May 2010
Posts: 966
Default

name calling aside, it is pretty much impossible to open more than a handful of quest files without finding an example of the quest global usage.
Reply With Quote
  #7  
Old 10-12-2012, 09:55 AM
chrismed0
Sarnak
 
Join Date: Aug 2010
Location: USA
Posts: 75
Default

Ok got a cool little program call TextCrawler so I could load up all the quest files at once and see all thier globals instead of picking through each one indavidualy. Now after seeing the paterns and reading over and over the different posts and tutorials I think I'm starting to understand them. They aren't actualy attached to an NPC or what ever..
They are like a book mark. You create one with it's own unique name and give it a value. You can change that value like from 1 to 0 or what ever you want it to be set for.
Example you write a quest that has to be done before you start another quest. If that quest is complete you can have a global set to 5.
The next quest in the line you can have check that global and if it is 5. If it is, then that npc will allow you to do the quest. If it isn't 5 then he won't let you do it.
Same with the spawns. One NPC can change a global to 1 and in another zone the global can be checked and if it matches up then it will allow you to do his quest or will spawn a mob or what ever you want it to do.
And it is a global so it doesn't matter if it is in the same zone or not.
That is VERY cool. I was reading more into then what there actualy was (making it to complicated)
Thank you, I wish I could have more of an explination about them but it finaly clicked.
One question....
I see when you use something like this:
Code:
quest::setglobal("muadalet",5,5,"F");
I see the identifier "muadalet"

Tha value is next - 5

This one I can't find any information on which is the option... what is that?
I see some show 0 and some show 5 what do those do? Option for what?

Duration - the amount of time this variable will be available.
The global will be available? So, If I have something set the global to a duration of like S3 (3 sec) then that global would only be available for 3 sec? or the value I set it to for 3 sec then it would change?

Sorry have just a few questions.. again thank you.
Reply With Quote
  #8  
Old 10-12-2012, 01:22 PM
lerxst2112
Demi-God
 
Join Date: Aug 2010
Posts: 1,743
Default

http://www.eqemulator.net/wiki/wikka...=QuestTutorial

Read the quest global section.
Reply With Quote
  #9  
Old 10-13-2012, 11:25 PM
chrismed0
Sarnak
 
Join Date: Aug 2010
Location: USA
Posts: 75
Default

Ok, been working on this a couple of days now. played with different things. perl is so picky. Seems you make one little mistake or misplace one thing and it won't work. I'm assuming that is what is wrong in my case.

The set up:
I have the boat on a grid in freporte npc_type 10183
I have an npc in freporte that is on a timer to check the global
I have the waypoint set in OOT that when that boat reaches waypoint 3 that it sets a global.

I have inserted things to help me know what is and isn't working.
The waypoint seems to be working.
The timer is working in freporte but the global part isn't.

I have tried to follow the examples and write it in a way that makes sence.
I have played around with different parts of the global, options, value, duration.
I have used setglobal to change the value and tried delglobal (I figured that would del the global once the boat in freporte spawned since setglobal didn't seem to work and the boat in OOT would just set a new global each time it hits the waypoint).

This is what I have:

Freeport Harbor Authority (NPC in freporte)
Code:
sub EVENT_SPAWN {

	quest::settimer("spawnship",2);	
}

sub EVENT_TIMER {

	if ($timer == "spawnship") {
		
                 quest::say("timer is working");  # this part works
                 if (defined($qglobals{shipspawna}) && ($qglobals{shipspawna} == 1)) {  # this part doesn't work
            
                      quest::respawn(10183,30); # this part isn't working
                      quest::delglobal("shipspawna");
                      quest::shout("it works");    # this part isn't working
        
        }
    }
}
Ship in OOT:
Code:
sub EVENT_WAYPOINT_ARRIVE {
    
    if($wp == 3) {
    
            quest::setglobal("shipspawna",1,5,"F"); # not sure if this is right
            quest::say("I am here");  # this part seems to work
        }
}
Help?
I figure I'll eventualy figure this out but I'm sure it's probably just a simple mistake.
Thanks
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 08:48 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 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3