Page 1 of 1

Get actual RoM functions

Posted: Wed Jul 23, 2014 3:38 pm
by Ego95
Hey,

http://runesofmagic.gamepedia.com/List_of_Functions

This is the only webside, I acually know, where you can find functions of Runes of Magic.
The first sentence I read is: "Here's the list of all functions available on the global scope of client 3.0.0.2149.en:"

It's a few years ago the clients newest version was 3.0.0

I think since then, there have been are a lot of functions added. How could I read out all functions? Or who is the owner of that side who would be able to update that?

Re: Get actual RoM functions

Posted: Wed Jul 23, 2014 6:01 pm
by BlubBlab
I think the list is relative on up to date those function were extracted with the help of tools, I think there was an script for that.

The API is hosted by curse an anyone who has a curse ac can add thinks in it, it is a wiki.

Re: Get actual RoM functions

Posted: Wed Jul 23, 2014 10:39 pm
by rock5
That said, the place I find new functions (and how to use functions on the list that have no description) is in the "interface/worldxml" folder which I extract from the "fdb/interface.fdb" file.

Re: Get actual RoM functions

Posted: Sun Jul 27, 2014 2:23 am
by Ego95
Back from holiday. Thank, I'll look, if I can find something interesting in the fdb folder :)

Re: Get actual RoM functions

Posted: Fri Aug 15, 2014 8:50 pm
by BlubBlab
I had today an idea why not scan internal ? The _G has as a table all functions in it so I wrote a small add-on and a waypoint file. I'm sure that there are functions in ROM which aren't used and so invisible for the naked eye. Especially chat and unit functions were interesting.

Unfortunately the private rom servers are down so I could not test it :(

Re: Get actual RoM functions

Posted: Sat Aug 16, 2014 5:43 am
by rock5
Good idea. I can do something similar just using commandline and the next command.

Code: Select all

t={} k="nil" repeat k= RoMCode("k="..k.." repeat k,v=next(_G,k) until (k==nil or type(v)==\"function\") a={k}") if k then table.insert(t,k) k="\""..k.."\"" end until k == nil
Then you can sort it, print it or save it.

Code: Select all

table.sort(t)
table.print(t)
table.save(t,"filename")
Things to note:
  • - Seeing as we were talking about functions, I have it return only function names
    - It wont include table functions such as string.find.
    - It will include addon global functions as well. To create a clean game function list you would have to start the game with no addons.
    - It took about 8 minutes to run on my system.
The only problem now is this list wont tell you how to use the functions. I still think searching the worldxml folder is the best way to find functions and how they are used.

Re: Get actual RoM functions

Posted: Sun Aug 17, 2014 4:09 pm
by Ego95
Nice work :) So there are some functions which can't be found on theromwiki.Unfortunately I didn't found anything I was looking for :( I believe there isn't anything for what I wanted to do

Re: Get actual RoM functions

Posted: Sun Aug 17, 2014 6:38 pm
by lisa
Ego95 wrote:Nice work :) So there are some functions which can't be found on theromwiki.
Yeah theromwiki and updated by people just like you and me, no one has added every single function to the wiki.

Re: Get actual RoM functions

Posted: Mon Aug 18, 2014 1:17 am
by BlubBlab
I think the main thing about it is that the list here : http://runesofmagic.gamepedia.com/List_of_Functions were extracted with help of some tools form the xml and lua files which Rock5 mentioned.

Yeah clearly you don't get much information about functions which weren't used in those files, return values you can try out analysing the real problem are the parameters which those takes, you can only guess on similar functions and going through some try and errors.

Best thing would be copy& paste the list from gamepedia list in a file and compare with what you found and printing the new list.(and when I'm really growing wild I would try to use string.dump(func) and extract some additional information from the bytecode http://sourceforge.net/projects/unluac/ )