PDA

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.