ArcEmu: [lua] Global_var_management Rewrite (update) - ArcEmu

Jump to content

Toggle shoutbox Lastest Announcements

dfighter  : (07 December 2014 - 12:06 PM) Arcemu is in hibernation mode, please read http://arcemu.org/fo...showtopic=26903
dfighter  : (01 January 2013 - 05:56 PM) Arcemu wishes you all a happy new year!
Hasbro  : (12 September 2012 - 10:01 AM) Please excuse our outage from the web! Our web host had a major malfunction!
dfighter  : (01 September 2012 - 04:05 PM) Since the spam bots just don't want to stop, I've enabled admin verification when registering.
dfighter  : (23 January 2012 - 09:56 PM) Please note that from now on you will need to confirm your email on the wiki in order to edit it!
Hasbro  : (31 December 2011 - 12:50 PM) Happy New Years all!
Navid  : (26 December 2011 - 04:09 AM) Merry Christmas !!!!!! Happy holidays all :)
WAmadeus  : (24 December 2011 - 03:54 PM) Merry Christmas to all!
dfighter  : (24 December 2011 - 11:05 AM) The Arcemu team wishes y'all a Merry Christmukkah!
Hasbro  : (05 October 2011 - 12:53 PM) Looking for web designers for upcoming web related project. If you're interested in designing user interfaces contact me
dfighter  : (02 September 2011 - 03:47 PM) So who here wants vehicles in Arcemu? :P http://arcemu.org/fo...showtopic=25440
Hasbro  : (14 August 2011 - 03:25 PM) Join us on irc, grab an irc client and connect to irc.freenode.net join channel #arcemu /server irc.freenode.net:6667 /join #arcemu
jackpoz  : (03 August 2011 - 05:33 AM) to all Lua Engine (old one) users: please check http://arcemu.org/fo...showtopic=25274
Hasbro  : (20 May 2011 - 05:27 PM) Looking for people experienced with CMake configuration and setup! Contact me asap
Hasbro  : (15 May 2011 - 05:03 PM) ArcEmu is recruiting C++ programmers, contact Hasbro if interested.
paroxysm  : (03 May 2011 - 06:26 PM) Updated luabridge gossip example to describe the whole gossip creation process rather than just how to create menu. Gossip tutorial
paroxysm  : (23 April 2011 - 11:35 AM) Lua writers can refer to the Luabridge Tutorials section in the Wiki to learn how to write gossip code correctly.
Hasbro  : (20 April 2011 - 05:22 PM) Thank you for your continuous contribution of bug reports, we are working on them.
Hasbro  : (17 April 2011 - 03:20 AM) Please consider donating to support our bills. Donations can be sent using PayPal to donations@arcemu.org - Thank you for your support.
paroxysm  : (10 April 2011 - 12:43 AM) Refer to the Luabridge Tutorials section in the Wiki to learn the new syntax of luabridge.
Resize Shouts Area

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

[lua] Global_var_management Rewrite (update) A rewritten version of the management system.

#1 User is offline   Maroot 

  • Member
  • Pip
  • Group: Members
  • Posts: 73
  • Joined: 07-June 08

Posted 02 April 2011 - 02:44 AM

I've rewritten the management system that I released when I was with Lua++ awhile back, renamed and modularized it, and added some nice additions. A complete list of additions and help is located at the bottom of the file, with some comments throughout the script as well.
I rewrote the system when I joined LuaPPArc but the new system was never picked up by the ArcEmu team.

The new system is modular so requires the use of the require function in your scripts - examples and How-to are included in the file.

var_man.lua
0

#2 User is offline   paroxysm 

  • Chatty Cathy
  • Group: Retired
  • Posts: 320
  • Joined: 25-June 08
  • Gender:Male
  • Server OS:Windows

Posted 02 April 2011 - 04:06 PM

haha, Maroot, where did you disappear to. I haven't seen or talked to you in a long, long time.
Regarding the script, the new luabridge interpreter solved most of the variable collision that caused a need for global variable management via such scripts.(By spawning unique lua vms from every map instance created.)

(PS: I noticed you assign all global functions that you planned to use to local variables. Is there really a significant performance boost by using this approach? I ask because ircc, Lua used hash tables to perform look-ups which are O(1) complexity. So it seems to me the boost would negligible. )
0

#3 User is offline   Maroot 

  • Member
  • Pip
  • Group: Members
  • Posts: 73
  • Joined: 07-June 08

Posted 02 April 2011 - 07:30 PM

View Postparoxysm, on 02 April 2011 - 04:06 PM, said:

haha, Maroot, where did you disappear to. I haven't seen or talked to you in a long, long time.
Regarding the script, the new luabridge interpreter solved most of the variable collision that caused a need for global variable management via such scripts.(By spawning unique lua vms from every map instance created.)

(PS: I noticed you assign all global functions that you planned to use to local variables. Is there really a significant performance boost by using this approach? I ask because ircc, Lua used hash tables to perform look-ups which are O(1) complexity. So it seems to me the boost would negligible. )


There is a small speed increase by localizing all your functions you want direct access too, in this case because they are all now in the same namespace as the module so the lookup is faster. Also, it adds a "safety" factor in that the local functions are original copies, so other scripts down the road can not hook/hijack them and change their behavior. I miss understood you at first, I thought you asked why the entire modules functions were all localized, the reason for that is as I mentioned before, to keep the module off the global namespace and only directly accessible by scripts requiring it.

I was unaware, actually I just had a couple minutes one night and started looking around all my old stuff, found the management system changes and wondered if anyone used it at all. Then came to the forums and looked around and realized the first version I wrote was actually included in the ArcEmu source tree. Which was a real nice surprise I might add. I haven't looked at the source for ArcEmu in a very long time, nor have I read any change longs so I was unaware of the new luabridge, pleased to see those changes. I also noticed you can register functions directly now, and you can also register functions in tables now as well. That was something I tried to get changed a long, long time ago. I still have my C++ SVN patches I made for LuaPPArc to do just that, back in the day. hehe Anyway, I just thought I'd post up the changes I made because I didn't see it in the source tree's.
Incidentally, i didn't mean anything derogatory towards the ArcEmu team for my "didn't get picked up by the ArcEmu team" comment in my first post, just meant I didn't see it in the source tree (no big deal) so here it is.

I've actually not touched a line of code in over a year until a couple days ago. My girlfriend had a little girl so all my times been with them, but I'm getting nostalgic and missing all this again! So you'll probably see my floating around more often, good to hear from you again man, glad your still here though. ;)
0

#4 User is offline   paroxysm 

  • Chatty Cathy
  • Group: Retired
  • Posts: 320
  • Joined: 25-June 08
  • Gender:Male
  • Server OS:Windows

Posted 02 April 2011 - 10:46 PM

haha, congratz.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users