Log in

View Full Version : Event_Task_Complete question


Soak
10-04-2015, 08:24 AM
I have about 40 tasks that end in the same zone and have the same reward (in addition to the item/exp rewarded in the actual task). My player.pl looks like this:

sub EVENT_TASK_COMPLETE{
if($task_id == 311){
quest::ding();
$client->AddAAPoints(2);
$client->Message(4, "You receive two additional AA!");
}

if($task_id == 312){
quest::ding();
$client->AddAAPoints(2);
$client->Message(4, "You receive two additional AA!");
}

}

etc....

Can I simplify this so that the one event has multiple task_id's rather than filling up the player.pl with 40 different ones?

I know this is probably a simple PERL thing, but with all the info coming into my brain lately, I just can't seem to find it. The more I learn, the more respect I have for all you guys who have helped create this community. I'm also a little jealous of y'alls skills! Wish it came so easy to me.

Thanks for your help as usual!

Kingly_Krab
10-04-2015, 03:48 PM
Simply change 'MAXID' to your highest ID, assuming they're all in a range: sub EVENT_TASK_COMPLETE {
if($task_id ~~ [311..MAXID]) {
quest::ding();
$client->AddAAPoints(2);
$client->Message(4, "You receive two additional AA!");
}
}

~~ Is the smartmatch operator that attempts to match the left operand to the any data in the right operand, similar to a grep of an array.

Soak
10-04-2015, 04:35 PM
Awesome! Solved my issue and learned something new and useful! Thanks Kingly.

Kingly_Krab
10-04-2015, 04:53 PM
You're welcome, feel free to send me a private message if you have any further questions.