Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Development

Development::Development Forum for development topics and for those interested in EQEMu development. (Not a support forum)

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 06-26-2013, 04:26 PM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default Lua Parser

Lua Parser has been the works for a while now.

We're getting close to release of it but it's still a couple days away while we clean up last minute build issues and such.

https://github.com/EQEmu/Server/tree/lua

Documentation:
https://github.com/EQEmu/Server/wiki/Lua-Parser

Right now it is turned OFF by default but eventually we want to get to the point where we turn it ON by default and perl OFF by default.

Also we've worked hard to reduce incompatible changes with the Perl parser but there are a few:

Code:
* templates quest folder has been renamed global.

* The items and spells quest folders need to be moved to the global folder.

* Item quests have been consolidated into a single type instead of the three types based on event_type.  
Now instead of three potential quests per item there is just one loaded as follows: 
	-if scriptfileid != 0 -> load script_<scriptfileid>.ext (eg: script_1000.pl)
	-else if charmfile != "" -> load <charmfile>.ext (eg: CHRMTest.pl)
	-else load <item_id>.ext (eg: 10001.pl)

* EVENT_PROXIMITY_SAY no longer occurs automatically. 
You need to call quest::enable_proximity_say() in perl
or call eq.enable_proximity_say() in lua at least once 
for the quest_manager to begin looking to process proximity events.

* quest::handleturnin has been removed

* quest::completehandin has been removed

* quest::resethandin has been removed

* quest::clearhandin has been removed

* Cazic Touch (982) is no longer hard coded to shout the target's name on cast.  
This can easily be scripted in now and we're looking to hard code as few things as possible.

* Spell quests that previously blocked effects no longer function as they did in perl due to a limitation of the perl parser.

* event_death no longer triggers after a death has occurred but before.
For the item quests it's very likely people wont have to modify a thing. Before we had 3 types of item quests based on the items charm, script and item_id that varied based on event type. This is now all in one quest according to that priority. If you have an item quest right now that has more than one script for the same item then you'll need to make some changes but odds are you do not. Eg: none of the PEQ quests afaik follow this pattern.

For the handin stuff things we wrote a plugin that duplicates the functionality of multiquesting for perl. Though if you make heavy use of the functions it might take a while to update.

The spell stuff is more tricky due to how we changed the underlying system and a limitation in our perl parser we simply cannot override the effects on perl. It's suggested that if you need scripted spells that have completely overridable effects and can't use lua to make the spells be basically blank.

For the event_death, the way to get the old functionality (which is required in a few circumstances) is to instead use the event: event_death_complete.

Last edited by KLS; 06-28-2013 at 12:30 AM..
Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 04:58 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3