if ($zavious == 0)
{ $zavious = undef; 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"); $zavious = undef; } } i don't know why u have $zavious == 0 in there ... the way u write it is a little bit confusing. |
wouldnt that be correct? I only want it to 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 one time, so when its 0 it doesnt have a variable there, but after you say it it doesnt say that anymore because it changes the variable to 1 so that it will now say: Have you retrieved the four books that the Ambassador requested from Crushbone? Is this not the proper way to do this? I kinda want this quest to progress step by step, and basically each player have to turn in the four books before they can turn in the battleplans to get the final reward, and get the item to give to the next npc to continue the main quest of our server. |
Any clue? Im still totally boggled with this, and this is the main thing holding me back atm. Any help would be appreciated.
|
can you repost what you have currently and ill take a look. too lazy to read all the other posts ;-)
|
Quote:
|
Code:
sub EVENT_SAY Code:
if ($zavious == 0) Code:
{ Code:
{ Code:
if ($text=~/hail/i && $zavious == 2) If theres a better way of doing this, please tell me. I just need my quest to progress so that people cant do it over and over again, or even repeat previous steps, to prevent wasted time by the player. I would appreciate any examples, or ideas with some kinda examples or fix. Thanks alot guys. I know you guys work hard, but if I can just figure this out, Id be willing to post my finished scripts, because this will help alot of newer people, Im positive:P |
sigh.. dont kno what to do.. think Im gonna rewrite everything.
|
2 little suggestions.
Add parenthesis to your tests : Code:
if (plugin::check_handin(\%itemcount, 51510 => 4) && ($zavious == 1)) Second one. This structure : Code:
if (plugin::check_handin(\%itemcount, 51510 => 4) && $zavious == 1) { The tests with check_handin remove items from the list of handed items if it succeded. In that case, lets say for your first test, if the player gives 4x51510 but $zavious is not set to 1, the test will fail and he WONT get his items back (because check_handin succeded). 2 possibilities : Code:
if (($zavious==1) && plugin::check_handin(\%itemcount, 51510 => 4)) { Code:
if ($zavious==1) { |
Quote:
I picked up a Gambling Script that used Quest::setglobal and it wouldn't reset them either. I ended up having to delete the global variable and reset them each time along with using ($variable=undef); Even if you set the Global Variable to last only 3 seconds, I could never change it without deleting it. It's probably ugly by script writers standards, but it works... :grin: I'm learning, but what a pain it is when your in the dark. Having to stop the server and restart it in order to change the quest (you DO have to do this, right) takes so much time. Oh well, once I get it under my belt, It won't take so long. |
don't need to restart the server, #reloadpl in the zone after you've made changes to the .pl file.
|
Thanks ylosh.. I'm printing out the # commands now so I don't make this mistake again.. What a time saver this would have been... lol
|
All times are GMT -4. The time now is 12:16 PM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.