- Debug Assertion Failed!
- Program:
- ...
- File: f:\\dd\vctools\crt_bld\self_x86x\crt\src\tcscpy_s.inl
- Line 30
- Expression: (L "Buffer is to small" && 0)
Well since Circa and I wanted to work on the project, but on the iRose version I decided to make this thread.
What you need
A brain.
Visual studio 2010
Windows SDK if you use visual studio 2010 express
My project files: https://github.com/DragoonX6/R3E
Setting up and compiling
Ok, go to https://github.com/DragoonX6/R3E and checkout via msysgit or just download as zip.
Now go to folder where you extracted or checked out R3E and open Rose Client.sln
Once visual studio has finished loading and implementing all headers, right click Client and select Set as startup project.
Now expand Client and expand the sourcefolder misc, then open main.cpp.
Now press CTRL+G and go to line 56, which will look like this:
- BufferedFileSystem *fs = new BufferedFileSystem("C:\\Rose Servers\\SHO\\srvDATA");
And change it to the path where your FULLY extracted Rose client is, not just the extracted 3DDATA folder.
To make it load from the current folder change it to:
- BufferedFileSystem *fs = new BufferedFileSystem("./");
Then go to States->LoginState.cpp->line387
Which looks like this:
- gNetwork->Connect(LS, "127.0.0.1", 29000, 0);
And Change the ip of the ip of the machine where your server is located.
Please bear in mind that I don't know if it runs with an OsiRose server, I used arcturus myself and you would probably need that to make it run.
On the other hand I'm working on custom servers for this custom client, which will be completely opensource.
Anyway let's continue.
Right click on Client and select build.
It should build with around a hundred link warnings (this is because all the precompiled libraries where build with visual studio 2008), if not more, but it should succeed.
Okay, now in the Debug folder we have Client.exe.
Now copy the folders R3EFonts and R3EShaders to the debug folder and copy them to the folder where your extracted client is, NOT in the 3DDATA folder but in the folder where 3DDATA is located.
Now copy the xml folder of non-extracted client (eg: C:\Program Files\Ruff Rose\3DData\Control\Xml\) to the Debug folder and copy it over the Xml folder of your extracted client.
Okay, that part may be a little cofusing, so here is a picture.
Aaaah! Seriously! I've put in the wrong folder, it has to be R3EFonts instead of RECommon.
And...
CONGRATULATIONS!
You have succesfully setup the custom client!
Credits
Thanks to ExJam for his wonderful custom client! *Insert big applause here*
Thanks to lmame for his fixes! *Insert big applause here, cause we want OsRose to stay online, so just do it so lmame will not ragequit *
Thanks to me for this guide! *Insert regular applause here*
Thanks to me for a few lines of code. *Insert a whoohoo-if-we-need-to here*
TODO
Finish login server and start with world server and game server.
Make changes, fixes, implementations etc to the client.
***No particular order after here***
Finish CON tool.
Finish map viewer.
Finish workshop.
Finish launcher/patcher.
FAQ
Q: Why do alot features not work?
A: The custom client is still very very Alpha, it's in nowhere condition to be used as client for your private server.
Q: The login server does not work, what's going on??
A: The login server is also not completed, I'm almost done with the GUI part as far as I can remember.
Q: The Launcher and the tools are not working.
A: These project are faaar from done, consider them placeholders/reminders.
Q: The client shows a white screen when I open it.
A: There are a few answers to this problem,
1. The client is still loading.
2. You have the folders setup wrong.
3. Check the path in your main.cpp, make sure using double slashes eg. "C:\\Rose"
Q: I would like to contribute to the project,
A: That's cool, but you can't start coding out of the blue, there are some requirements/rules.
1. Please use a specific code style:
Putting brakets on a new line:
eg,
- void fn()
- {
- printf("lol\n");
- }
Not starting new code after a braket, put them on a new line instead. The only exception is with break;
- void foo()
- {
- switch(func())
- {
- case 1:
- {
- if(condition)
- {
- fn();
- }
- else
- {
- fn2();
- }
- }break;
- }
- }
Ok enough, readability improvement rules.
2. Please do not commit to the master branch (if that's possible, I don't know github that good yet), make a new branch (if possible) instead, or post your code here.
If you have any other questions please ask. Also please report bugs here if you find one.