At the moment, the situation seems a little fraught with trouble. You have to post a JS file, some DFNs, give instructions, and so on. Frankly, there has to be an easier way, and I think I've come up with a possible solution (or at least, am coming up with).
Initially, I'm prototyping this with C#, but nothing in there is too hard that couldn't be backported to a C++ utility (just faster for prototyping). What I'm looking at is an application which takes the concept of a 'package', and does the install for you.
This package would, in essence, just be a zip file with a couple of special files. A package would contain
- readme.txt
setup.info
*.dfn
*.js
The setup.info is where the developer's work will be. This will contain information about what files there are, how they're configured, and so on. A setup.info file would look something like:
Code: Select all
[DESCRIPTION]
{
NAME=Package Name
AUTHOR=Package Author
REVISION=Package Revision
tag/data pairings to detail description
}
[CONFIGURE]
{
COMMAND=a,b,c,d
MAGIC=a,b,c,d
CONSOLE=a,b,c,d
PACKET=a,b,c,d
SKILLUSE=a,b,c,d
GENERIC=a,b,c,d
}
[dfn_category] // eg, item, npc, maps, etc, etc
{
FILE=filename
}
[JS_FILES]
{
1=file1
2=file2
3=file3
}
[JS_ENVOKE]
{
ID=1
ID=3
ID=3
ID=3
}
[JS_TYPE]
{
Type=1
Type=2
Type=2
Type=3
}
By listing the files explicitly in this file, we essentially give them a uniqueness. And the idea is to have (somewhat) a custom value support in the DFNs. Basically, to avoid hardcoding script IDs. So you could put something like
SCRIPT=[[1]]
In your DFN file, and the tool would associate that with the JS file you listed at 1= in [JS_FILES]. The tool finds a free slot, and updates the assorted files to point to the right number, when it installs it.
Ultimately, this is not a Windows only tool. C# is just an initial prototyping tool, and nothing in this can't be backported fairly readily.
Thoughts, ideas, suggestions, are all welcome. I hope to have something working by the end of the week. I think it'll be useful to some of you, at least. Let me know your thoughts.