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

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.

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. )

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.