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 06-06-2006, 03:22 PM
ylosh
Sarnak
 
Join Date: Jan 2006
Posts: 39
Default

Code:
 sub EVENT_SAY {
   if ($text=~/hail/i && $flyer == 1) {
 	quest::say("May you travel with the Fives' blessing, $name.");
   }
   if ($flyer == 0) {
 	if ($text=~/Hail/i) {
 	  quest::say("Ahh, hello young $race, what brings you to the Orders Library? You wouldnt happen to be responding to one of the [flyers] I sent out now would you?");
 	}
 	if ($text=~/flyer/i) {
 	  quest::say("Ah good, good. Just give the flyer back to me and we shall begin.");
 	}
 	if ($text=~/ready/i) {
 	  quest::say("Here. This item will return you to our fair city. It holds enchantments that will make you more powerful as well. Ill start you off on something simple. The councils scouts have recently discovered a strange new race of humanoids dwelling in a place they call Crushbone. The council wishes to gain further information on the humanoids in Crushbone. An Ambassador was sent a few days ago. He returned with a few missing body parts. The scouts report seeing small books on a few of the more intelligent looking humanoids there. Bring back at least four of these books for the council to study. The council does not care how you obtain them. Feel free to get them by any means necessary. Upon your return, find my apprentice. He will handle the books accordingly.");
 	  quest::summonitem(1002);
 	  quest::setglobal("flyer",1,0,"M2");
 	}
   }
 }
Reply With Quote
  #2  
Old 06-06-2006, 09:35 PM
Adrianne
Fire Beetle
 
Join Date: Oct 2004
Posts: 20
Default

you rock! thanks alot it works perfectly.
Reply With Quote
  #3  
Old 06-07-2006, 09:26 AM
Adrianne
Fire Beetle
 
Join Date: Oct 2004
Posts: 20
Default

is there any problems with qglobal? Im trying to update the variable, and it doesnt work. heres example.

Code:
quest::setglobal("zavious",1,0,"M2");
that will create the variable zavious, and will set it to 1.. however when I try and create

Code:
quest::setglobal("zavious",2,0,"M2");
after a quest::say(""); and it wont update.. I even tried

Code:
quest::delglobal("zavious");
quest::setglobal("zavious",2,0,"M2"); #together
and

Code:
quest::delglobal("zavious"); #by itself
is this a bug that it wont delete the global variable or update it from 1 to 2.. it was originally 0.

Sory for bothering you again btw.. I just dont understand why its not updating.
Reply With Quote
  #4  
Old 06-07-2006, 09:36 AM
aza77
Hill Giant
 
Join Date: Dec 2004
Posts: 126
Default

http://www.eqemulator.net/wiki/wikka...torial#globals
__________________
- http://www.eqemu-paradigma.de -
Reply With Quote
  #5  
Old 06-08-2006, 03:51 AM
Adrianne
Fire Beetle
 
Join Date: Oct 2004
Posts: 20
Default

yes.. Ive read that tutorial several times, however what Im saying is the

quest::setglobal([varname],[value],[options],[duration]);


command, after used once, doesnt want to modify the value again.. like if it was originally 0.. then I change it to 1,.. when I change it to 1 it creates the variable and sets it to 1.. but when I try to use it again, and put in

quest::setglobal("zavious",2,0,"M2");

for instance, it doesnt change the variable zavious to 2 like it says in that tutorial..

Ill quote:

"setglobal
quest::setglobal([varname],[value],[options],[duration]); (perl format)

The setglobal command allows you to create or modify an existing global variable for the mob you are using the command on."

If the variable exists, and its currently set at 1, this command will not modify the variable and change it to 2.

Quote:
Originally Posted by ylosh
the quest tutorial wiki page explains everything else pretty well.
so yea.. like I said.. Ive done all the reading.. searching.. and everything on here.. Ive searched peq's site as well.. I wouldnt post unless I completely didnt understand, and have searched in every possible manner. I read in peq's site that its a problem with qglobal. Im wondering if this is true.

If I can figure out how to update a global variable up to like 5 different times on 1 npc I would be set. I need to make it where people can only do 1 step at a time, not skip steps and not do steps more than once in a single npc quest. I cant do that when quest::setglobal doesnt modify the variable like specified in the wiki..:( Is anyone else having problems with this? If so, is there any other way to do this if globals dont update more than 1 time?
Reply With Quote
  #6  
Old 06-08-2006, 05:12 AM
aza77
Hill Giant
 
Join Date: Dec 2004
Posts: 126
Default

at the quest tutorial:
Quote:
[varname] the name of the variable you want to save. Do not include the variable prefix as part of the name. When the quest for the npc who recieves this variable begins, a variable with the name that you here preceeded by a "$" will be available. For example, if [varname] is "genius" then a variable named $genius will be available to the quest script of the npc with whatever you specified in it. Variables are cached and won't be reloaded unless the cache cleared or the variable is undefined. So make sure to use $variable = undef; after the variable was used, especially if you have multiple persons using the quest.
this means in your case each time you use the variable make sure to use $variable = undef; so it gets reloaded
__________________
- http://www.eqemu-paradigma.de -
Reply With Quote
  #7  
Old 06-08-2006, 10:04 PM
Adrianne
Fire Beetle
 
Join Date: Oct 2004
Posts: 20
Default

Yea... that sucks.. Ive tried every possibility I could with $zavious = undef;.. nothing would update... tried quest::setglobal ($zavious = undef); Ive tried undef zavious, undef $zavious, quest::delglobal ("zavious"); wiht no sucess.. It was originally at 0, I used a coommannd to make it to 1 and it was sat at 1, and wont update to two.. with the commands specified by the program. I didnt knotice the part about $variable = undef; but Id like to see some sorta example here. Once I learn this, since there is very vague descriptions in all of this.. and no examples or documentation... well documentation that id like.. so I can learn this stuff.. but Ive spent 8+ hrs a day on this with no luc.. it wont go from 1 to 2.. Id be more tan willing to post both of my examples in order to help future people that come along that dont understand the stull that I didnt... I think it would be very helpful. So far heres what Im tryin to do. Its my last real step before I finally figure out the jist of qglobal. anyway, heres what i got. id like for someone to point out what Im doin wrong here, and ILl post alot more that you guys have helped with as well that I think a lot of newer scripters like me that catch on fast. I feel like a noob for not readin those few lines about $variable = undef; however Im catchin on pretty fast. for only learning this for about 2-3 weeks, Ive come prett yfar.At any rate, Im working on a smaller one first. Its pretty filled up with qglobals:P But like I said, I have some complex scripts, that I will utilate qglobal in once I get it sorted, that Im willing to share with the community... once I figure this one darn command out properly... Ive searched websites.. even non emu ones.. and have come up with stuff that doesnt work.. Ive read every script in peq quest database.. with little success.. they dont use $variable = undef; they use quest::delglobal("Zavious"), however.. delglobal wont delete it! very strange to me..at any rate Id like to thank everyone helping me fix this I need it to go from 0 to 1 to 2 to 3 to 4 in one script... I know thats extensive, but i need to make this part to where a player can only do this quest once.. well any player only do this quest once.. IM gonna go ahead and post my code here in hopes of some soultion someone can give me, because I am at a lose here.. Ive spend 8ish hours tryin to figure this out.. it seems like most of the peq quests dont use this function.. I saw 2 that used globals.. are they for advanced scripters? or is it new? Problem is our old coder is mia.. he said he would play, but wasnt gonna touch coding etc etc... so I decided to learn. IM a quick learner when it comes to this.. I think Ive got everything down pat now when it comes to quest npc's. But when my servers done, your more than welcome to come in and test any that wants to. Ill let come in and look. But anyway, I really hope Im not buggin you guys, and actually consider me as a new programmer keeping eqemu alive. So let me know what you think here

Code:
sub EVENT_SAY
  {
  if ($text=~/hail/i && $zavious == 1)
  {
    quest::say("Have you retrieved the four books that the Ambassador requested
    from Crushbone?");
  }
  if ($text=~/hail/i && $zavious == 2)
  {
    quest::say("Are you [willing] to perform another task for the council?");
  }
  if ($text=~/hail/i && $zavious == 3)
  {
    quest::say("Have you discovered what else the orcs are doing in Crushbone?");
  }
  if ($text=~/hail/i && $zavious == 4)
  {
    quest::say("Good luck on your journey $name. May the Five light your path.");
  }
  if ($text=~/willing/i && $zavious == 2)
  {
    quest::say("Good, then you shall set off immediately to Crushbone. Some of
    the adventurers that returned reported seeing a log cabin holding someone of
    importance. We wish you to seek this person out and discover what else the
    Orcs are doing. #summonitem 69977");
    quest::setglobal("zavious",3,0,"M2");
  }
  if ($zavious == 0)
  {
  if ($text=~/Hail/i)
  {
    quest::say("Hello $name. I have been expecting you. Ambassador Dumont told
    me you would be arriving shortly. Do you have the four books that the
    Ambassador told you to retrieve from Crushbone? If so, hand them to me.
    #summonitem 51510");
    quest::setglobal("zavious",1,0,"M2");
  }
  }
}


  sub EVENT_ITEM
  {
  if (plugin::check_handin(\%itemcount, 51510 => 4) && $zavious == 1)
  {
   quest::say("Ahhh you have returned with the books. You say the humanoids call
   themselves Orcs?  Hmmm.. Interesting.. The council will study these books to
   decipher what is written within them. Ambassador Dumont thanks you as do I,
   brave $race. If your still [willing] they have another task for you.");
   quest::setglobal("zavious",2,0,"M2");
  }
  elsif (plugin::check_handin(\%itemcount, 69977 => 1) && $zavious == 3)
  {
   quest::say("What is this $name? It appears to be some kind of battleplan. Is
   that Felwithe?! This truly is an amazing discovery my friend. Take this to
   Councillor Elandilira. I think she may like to hear of this discovery. It is
   a quick translation of the battleplans.");
   quest::summonitem(1004);
   quest::setglobal("zavious",4,0,"M2");
  }
  else
  {
   (plugin::return_items(\%itemcount));
   quest::say("This isn't what I'm looking for.");
  }
}
}
Once again, any help would be appreciated, I know Im probably bugging you guys at this point, but if theres anything I can do to help anyone, let me know and I will. Just being able to update the variable from 0 to 1 to 2 to 3 to 4 would be good, and I heard its through use of $variable = undef; if someone could help here.. Id worship them:P Thanks in advance.
Reply With Quote
Reply

Thread Tools
Display Modes

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 01:22 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