PDA

View Full Version : Quests Directory


Phantons
10-11-2011, 12:59 AM
Is there a way to change where the server accesses the quest folder? For example, it's accessing C:/EQ/quests. Is there a way to move the folder to C:/Open/quests and the server pull quests from the new directory instead?

joligario
10-11-2011, 11:04 AM
Check:
files.h
EQEmuConfig.cpp
embparser.cpp
QuestParserCollection.cpp

trevius
10-11-2011, 11:33 AM
I haven't actually tried setting these yet to verify they actually work, but these settings may be what you are looking for:


<!-- Directory locations. Defaults shown -->
<directories>
<!-- <maps>Maps</maps> -->
<!-- <quests>quests</quests> -->
<!-- <plugins>plugins</plugins> -->
</directories>

These would go in your eqemu_config.xml file. They aren't in the standard file, but you can see extra settings in the eqemu_config.xml.full file, which is where I got these. You should be able to set the path there and just uncomment the line you are setting by removing the <!-- and --> around it.

joligario
10-11-2011, 11:35 AM
Good point Trev

lerxst2112
10-11-2011, 01:26 PM
I looked at how the XML file values are used for those directories, and unless there's some trickery I'm not seeing, it's hardcoded and the values from the config file aren't used at all.

To test, I changed the config value for the quests directory to "questsdasdfasdf" and it still loaded them from "quests".

Phantons
10-11-2011, 02:58 PM
Alright, I'll mess around with those files then for now. I'll post back if I find it out.

Derision
10-11-2011, 04:01 PM
If you are using Windows 7 (and maybe Vista), you could try messing with NTFS junctions.

Move your quests folder from C:\EQ\quests to C:\Open\quests, then in a command prompt, create the junction:

C:\EQ>mklink /J quests c:\open\quests
Junction created for quests <<===>> c:\open\quests


Then any request for a file in C:\EQ\quests should be redirected to C:\Open\quests

Just Google NTFS junction, or Windows Junction for more info on their use. They look very similar to symlinks in the *nix world.

Phantons
10-11-2011, 04:18 PM
Alright, I'll try that next then lol. Was just about to post that what Trev posted doesn't seem to be working.

BooPlumb
10-12-2011, 11:12 AM
How do you give someone access to quests folder? I've been able to give people access to my navicat / peqeditor etc... but not really sure how I go about allowing remote access to my quests folder so people can write quests.

Phantons
10-12-2011, 09:17 PM
How do you give someone access to quests folder? I've been able to give people access to my navicat / peqeditor etc... but not really sure how I go about allowing remote access to my quests folder so people can write quests.

This is pretty much what I would like. I want access to his Quest folder so I can write quests without having to give him the files and him keep putting them in/updating them by himself. Makes creating quests a bit of a hassle.

trevius
10-13-2011, 03:24 AM
Lillu suggested a really nice tool to me a while back called Dropbox, and Kayen and I have been using it ever since. It basically works like a shared folder that is updated over the internet. You can setup public and private folders with it, and they even keep previous revisions available online so you can revert back to earlier files changes when needed. The only minor issue I have seen with it is occasionally it will have some delay between the time it updates all PCs sharing the folders, so saving the file and doing a quest reload might not work instantly. Generally, it is nearly instant though, especially if you remove the upload speed limit from it.

I use Dropbox along with the mklink function that Derision mentioned and it works very nice. Works on Linux and Windows and is pretty easy to setup. On Linux, I just use symlinks, but mklink on windows is basically the same thing.

I was thinking about adding this to the Wiki at some point, but here is what I currently use on the Windows server I am building:

mklink D:\Server\EMuShareMem.dll D:\Source\EQEmuServer\Build\EMuShareMem.dll
mklink D:\Server\World.exe D:\Source\EQEmuServer\Build\World.exe
mklink D:\Server\Zone.exe D:\Source\EQEmuServer\Build\Zone.exe
mklink D:\Server\Chatserver.exe D:\Source\EQEmuServer\Build\Chatserver.exe
mklink D:\Server\eqlaunch.exe D:\Source\EQEmuServer\Build\eqlaunch.exe

mklink D:\Server\patch_6.2.conf D:\Source\EQEmuServer\utils\patch_6.2.conf
mklink D:\Server\patch_HoT.conf D:\Source\EQEmuServer\utils\patch_HoT.conf
mklink D:\Server\patch_SoD.conf D:\Source\EQEmuServer\utils\patch_SoD.conf
mklink D:\Server\patch_SoF.conf D:\Source\EQEmuServer\utils\patch_SoF.conf
mklink D:\Server\patch_Titanium.conf D:\Source\EQEmuServer\utils\patch_Titanium.conf
mklink D:\Server\patch_Underfoot.conf D:\Source\EQEmuServer\utils\patch_Underfoot.conf
mklink D:\Server\mail_opcodes.conf D:\Source\EQEmuServer\utils\mail_opcodes.conf

mklink D:\Server\cleanipc.cpp D:\Source\EQEmuServer\utils\cleanipc.cpp

mklink /D D:\Server\templates D:\Source\EQEmuServer\utils\defaults\templates
mklink /D D:\Server\logs D:\Source\EQEmuServer\utils\defaults\logs

mklink D:\Server\commands.pl D:\Source\EQEmuServer\utils\defaults\commands.pl
mklink D:\Server\plugin.pl D:\Source\EQEmuServer\utils\defaults\plugin.pl
mklink D:\Server\worldui.pl D:\Source\EQEmuServer\utils\defaults\worldui.pl

mklink /D D:\Server\quests D:\Dropbox\quests
mklink /D D:\Server\plugins D:\Dropbox\plugins

Of course, you would need to adjust the paths in those commands as needed. Once you have the paths set to match your server, these commands will let you map your quests and plugins folder to Dropbox and also will map out the needed binary and other files so you can do server build updates without having to ever move files around. Works nicely in my testing so far.

Note that the mklink command is not available on all versions of Windows, I think it is just Server 2003 and Windows Vista on up. Also, adding symbolic links may not be available on all of the versions that do have the mklink command, but at the very least, they should be able to make Junctions like Derision shows an example of. I am running the above commands on Server 2008, so I can confirm they work fine on that OS at least. Though, it may require that you add the File Server Role to the server for the command to be available.

Phantons
10-13-2011, 01:45 PM
I'm getting the error:

mklink /D C:\eqemu\quests C:\Users\Boo\Dropbox\quests
Cannot create a file when that file already exists.

I moved the quests folder out of the Dropbox to see if that would change anything, but I got the same error. I am getting the error with trying to make a Junction as well.

mklink /J C:\eqemu\quests C:\Users\Boo\Dropbox\quests
Cannot create a file when that file already exists.

Also, both of our computers are on Windows 7.

EDIT: Ah, I see, nevermind. I got it working. Let me see if the server will work off of it. (After files are done copying.)
Yeah, it worked. Thanks for the help.

lerxst2112
10-13-2011, 03:17 PM
You could also put them into any of the various free SVN hosting services, and then you would be able to track changes, merge, etc.