View Full Version : Quest questions
Excuses
01-02-2016, 08:18 PM
Hey guys, i have looked around but haven't found a topic yet, i have a question.
I am more experienced in php, perl seems quite similiar but it is a new feeling to fiddle with, if i already have an item from an npc after hailing,
is there a if (hasitem == 0) { etc etc }else{ moving onto next conversation } function already built inside?
tearinall
01-02-2016, 08:26 PM
Yes
if ($value == 5) {
## do this stuff
}
elsif ($value == 6) {
## do this stuff instead
}
elsif ($value == 8) {
## no no, do this stuff
}
else {
## no previous conditionals met so do this
}
Excuses
01-02-2016, 09:17 PM
Thanks mate, replacing $value with item related
tearinall
01-03-2016, 02:20 AM
Thanks mate, replacing $value with item related
Oh, sorry, I didn't catch the "hasitem"
if (plugin::check_hasitem($client, $itemnum)) {
Excuses
01-04-2016, 05:00 PM
Thanks mate!
Huppy
01-04-2016, 06:21 PM
This is a sample of something I am using for a handin right now, which works for me.
if (plugin::check_handin(\%itemcount, 13005 => 1) && ($ulevel > 14)) {
Excuses
01-04-2016, 07:22 PM
This is a sample of something I am using for a handin right now, which works for me.
if (plugin::check_handin(\%itemcount, 13005 => 1) && ($ulevel > 14)) {
Would there be a plugin that handles if taskiscomplete? e.x
if(quest::istaskcompleted(114)) {
if($text=~/Yissen/i) {
plugin::Whisper("Good! I hope he is doing his job, I have a $task for you.");
}elsif{
plugin::Whisper("Seek him out before me, friend.");
}
}
Making sure previous task is complete, to move on?
Kingly_Krab
01-04-2016, 08:02 PM
You'll want to do this backwards: if (plugin::check_handin(\%itemcount, 13005 => 1) && ($ulevel > 14)) {
Should be: if ($ulevel > 14 && plugin::check_handin(\%itemcount, 13005 => 1)) {
The reason being, you can meet the check_handin but fail the level check and the NPC will eat your items. So you want to check other criteria first.
Kingly_Krab
01-04-2016, 08:04 PM
Would there be a plugin that handles if taskiscomplete? e.x
if(quest::istaskcompleted(114)) {
if($text=~/Yissen/i) {
plugin::Whisper("Good! I hope he is doing his job, I have a $task for you.");
}elsif{
plugin::Whisper("Seek him out before me, friend.");
}
}
Making sure previous task is complete, to move on?
As for your question, check this page: http://wiki.eqemulator.org/p?Task_System_Perl_API&frm=Task_System_Main
Note: 'elsif' is invalid due to there being no conditional in parentheses. If you do not have an elsif condition just use 'else'.
Huppy
01-04-2016, 09:05 PM
You'll want to do this backwards: if (plugin::check_handin(\%itemcount, 13005 => 1) && ($ulevel > 14)) {
Should be: if ($ulevel > 14 && plugin::check_handin(\%itemcount, 13005 => 1)) {
The reason being, you can meet the check_handin but fail the level check and the NPC will eat your items. So you want to check other criteria first.
Oh, I see what you mean, but I have an else statement as well, which does indeed cause
the npc to eat the item if the level is not met. (along with a rude comment for player), haha
Kingly_Krab
01-04-2016, 09:49 PM
Oh, I see what you mean, but I have an else statement as well, which does indeed cause
the npc to eat the item if the level is not met. (along with a rude comment for player), haha
Haha, that's quite cruel.
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.