Thread: Multi-Questing?
View Single Post
  #12  
Old 05-26-2010, 12:55 PM
Bumamgar Bumamgar is offline
Sarnak


Join Date: Apr 2010
Posts: 284
Default

It would have to be done in the base code, not just the perl.

Basically, npc's would have to have to keep a list of all items handed to them, and then the EVENT_ITEM() call to perl would have to be modified to provide this list to the perl script. Then in the quest script you would have to scan the item list and see if the most recent item turned in to the NPC (the item that triggered EVENT_ITEM) combined with any combination of items in it's list, resulted in a quest reward. If so, then remove those items from the list and do the quest just as it currently does. If not, add the item to the list and exit out.

There would have to be sanity checks in place on the c++ side of things to keep the list small enough to not cause issues, and probably need some sort of timer (5 minutes?) after which items on the list would simply poof.

In other words, it's doable, but requires a fair bit of effort in both the core EMU code and then in re-writing all of the quest scripts. That last bit is extremely non-trivial.

Then again, maybe it could be done without changing the perl EVENT_ITEM() api... I'll have to think on it some more...
__________________
-Bumamgar
Last edited by Bumamgar; 05-26-2010 at 12:57 PM..