![]() |
EQ2Ext
I'm currently working on a library modules, that eases up scripting;
these are the features (not all is implemented yet) * lists with key/value pairs, it recycles old items =) * events (OnMouseMove OnTimer, OnTick, etc..) * for/while/foreach loops * select (if's with multiple choices) * if-statements (not only ? : ) * accurate timer measuring (not time of day though) * arrays * mouse position reading What do you think? * Worth to mention: This is written in XML, so this is not some kind of executable addon :) |
* more events (OnPlayerMove)
* utility functions * snake sample game :p * _somewhat_ dynamic listboxes and tables |
Sounds great, can't wait to see the code.
|
Don't do anything that'll get you banned or glared at by SOE. ;)
|
I don't think that should be a problem =) All of the things I mention
here is simple to implement, and in my opinion there should already be implemented by the UIBuilder engine itself =P The only "questionable" thing here is the timer, which would make it possible for people to make auto-macros. But if people wanted to cheat they would implement this anyway; without the help from eq2ext. Timers is something that some interface could use anyway =) Besides, it can be de disabled; and it is used by the core engine of eq2ext itself. I came the the conclusion that it would be good to collect all general functions to one library so UI modders wouldn't have to "re-invent the wheel" each single time each time they want to write something advanced. * Also who wouln't like to play a Snake game while waiting for all the raid members to appear ;) If someone disapproves to this please post below |
If you are doing this all in XML as you said in the your first post then /bow. And like stated above I can't wait to see the code.
|
First version, 0.1a is released for you all to look at :-p
If anyone want, I'd like you to try it out and see if there is any slowdowns when it comes to UI or gameplay. The core code is pretty much finished so this is how slow it should be.. if slow at all that is. I can't notice any difference on my own computer though. The RTF is rich-text documentation =) http://www.erahain.net/~erahain/eq2ext.rtf http://www.erahain.net/~erahain/eq2ext.xml |
Ok, I've looked at it, and it sure looks interesting... so, what next? :)
It's certainly going to take a while for me to figure out anything with this. You are one smart guy. Maybe when there's some examples using it, I'll be able to think my way through them, but what you're doing is so far beyond anything I've considered that it's hard to wrap my head around. |
The links are broken. Can anyone point me to where I can download this library?
|
Are these files still available anywhere?
|
I recently started working on it again as I returned to playing Everquest2 after some time doing other things. ;-)
The original files are still available, I'll upload them somewhere soon. Current features: (see first post) Once they are uploaded, I'll probably need someone running it to see how laggy it is. EQ2Ext is processing a lot, and has to be optimized. ;) |
Welcome back to the game. Unfortunately I never got to see your original library, at least from the description it sounds very interesting. I'll be sure to give it a try!
You can upload the files as attachments here, you'll just need to rename the .rtf to .doc :) |
The problem with this library might be performance, but we'll see.
I might also write a simple preprocessor in C, with including sources, so function calls and such doesnt have to be so complicated. Unfortunately, using EQ2Ext isn't "simple". '/EQ2Ext.D.For.Condition' = 'a == 1' '/EQ2Ext.D.For.Init' = 'a = 0' '/EQ2Ext.D.For.Next' = 'a = a + 1' '/EQ2Ext.D.For.Body' = 'do something...' '/EQ2Ext.D.For.Activated' = true Alternate way (depending on if I want to move out certain key features out from the EQ2Ext page): '/For.If' = 'a == 1' '/For.Next' = 'a = a + 1' ... ... with the preprocessor (suggestion)... $for(a = 0; a == 1; a = a + 1) { // block of code } |
While an external preprocessor would without a doubt improve performance, I would suggest you PM a dev regarding SOE's position in this regard.
Since your preprocessor would have to process game data and pass it back to the interface during runtime, they might wave the EULA at you which has some provisions in this regard. But if you explain to them that all your preprocessor is doing is perform the same functions that can already be done via UI modding - only much faster - they may make an exception. Just don't get yourself banned so shortly after your return. :D |
No the utility I'm talking about will only "compile" input xml-files once.
It wouldn't increase performance, but it would simplify the code a lot ;) Basically you write an XML file, and before you use it - you pass it through the preprocessor/compiler/whatever to generate a valid EQ2 ui xml. It would automatically use the EQ2Ext lib. However, it's also possible to try simplifying EQ2Ext as much as possible, giving lots of sample code for reference. ;) |
This project sounds very promising. Can't wait to see how well it works. Looking foward to it!
Awesome work! |
Ah. I don't think SOE will have any problem with the pre-processor (or what I'd call a compiler or something like that... sicne its taking human-easy code and transforming it into valid XML code).
So long as everything is in SOE's XML, and there are no programs running (which from my understanding there shouldn't be: You're just making scripts to do stuff and putting them in a library) I don't see SOE having any problem with it. By accurate timer, are you talking about something stop/startable (and even resetable) like a stopwatch? That would be so awesome =) |
Sounds like an on-the-fly UI builder that runs while the game does....similar to those combat trackers that parse the log files and copy the contents to the clipboard for you to manually paste into chat....only it seems to paste the data for you behind the scenes....very interesting indeed :)
Arre :D |
So, when do we get to see a current version? I managed to find the super-old one that you had posted in the way-back machine and make this:
Which incidentally, I'm not sure actually counts FPS as I don't have Fraps available for testing, but it does a reasonable knock-off of it :) Anyhow, I'd love to see a newer version especially if you've for for loops and the like working. Edit: Not to imply this is the best use of the module - I just remember looking at it when you first put it out and being confused by it, so I wanted to see if I could get it to do anything in preparation for when we get some more toys to play with. Edit #2: Well, I downloaded fraps and up to right about 30fps, the my little creation seems to be pretty accurate. (Well, it agrees with fraps who's accuracy I've neither seen questioned nor proven.) Beyond 30 fps, I think SOE might have some kind of govenor on the UI to prevent it from using too many resources. Just my personal theory, however, no facts to base it on. |
Interesting idea with the FPS window. Did you see any differences in actual FPS in Fraps when using your FPS meter and when not using it? Should be a good indicator of the lag caused by such loops in the XML.
And I never knew the Script Executor window actually works. I took a look at it a couple of month ago when I started modding but couldn't get it to work and then forgot about it. Thanks for the reminder. :D |
Quote:
As far as the FPS rates, I'll have to mess with different combinations. Just Fraps, just the mod, both at once. See if there's any impact. Unfortunately, I have 2 computers and the one where I ran the FPS window without FRAPS is not the same computer as the one where I ran both. (It's a whole work/home thing, I usually mod at work and play at home :) ) But if I feel industrious, I might mess with it this weekend. |
Links still don't work for eq2ext.xml ..
|
| All times are GMT -5. The time now is 03:58 AM. |
vBulletin® - Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
© MMOUI