EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Quests::Q&A (https://www.eqemulator.org/forums/forumdisplay.php?f=599)
-   -   Event_Task_Complete question (https://www.eqemulator.org/forums/showthread.php?t=40069)

Soak 10-04-2015 08:24 AM

Event_Task_Complete question
 
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:

Code:

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:
Code:

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.


All times are GMT -4. The time now is 05:52 PM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.