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!

[RELEASE] code105 ol,server and client,but no sql

CATMAGEDDON
Loyal Member
Joined
Aug 17, 2014
Messages
1,661
Reaction score
292
Code105.sql creates tables only, not the database. In Navicat, create db, double click to select, then right click it and select execute script from there.
so i have to make all dbs then restore the sql in which one?
 
Skilled Illusionist
Joined
Apr 6, 2006
Messages
336
Reaction score
111
Create one DB, I named it code105, then execute .sql I uploaded to this DB. In ServerInfo.ini, point all 3 Databases to code105. It's easier creating all the tables in one database, they can be separated later once everything is running correctly.


UPDATE: Also, I use Chinese chars to create a new role, but DatabaseServer.exe still crashes with message:
FESPlayer::packetHandle Packet(ID=662) have not Handle...ERROR (12168)(T=58.2500)

AquaLung
 
Joined
Dec 10, 2011
Messages
476
Reaction score
27
Congratulations on you‘r login into game, thank you for your contribution.



Yes, turning MySQL logging on now, we'll see what happens...

UPDATE:

Fixed a few DB issue's but gives this message when creating char:
translate...
View attachment 158732

nice,a good start
the pic tip this:
your nick name contains some illegal characters. Please re-enter it.

but i don't know why the name "ragezone" contains illegal characters,maybe youcan use number or chinese name : 游戏 just copy and paste it .it means :game.
==============================


hm...

What's this?

you had not selecte the sql database,please select one,and then to import it.
 
Joined
Dec 10, 2011
Messages
476
Reaction score
27
@aqualung ,i use your code105v2.sql,and changeserverstate,so i can log in and login at the role's name UI,but it will broke down,so as you.
when it broke down,the Log_DatabaseServer log is:
2016-11-25 22:18:38 : [H:\Ark\Server\DatabaseServer\Player\FESPlayer.cpp][32][FESPlayer::packetHandle][handle] (10200)(T=1453.7180)
2016-11-25 22:21:22 : [H:\Ark\Server\DatabaseServer\Player\FESPlayer.cpp][37][FESPlayer::packetHandle][FALSE] (10200)(T=1618.0780)
2016-11-25 22:21:24 : [H:\Ark\Server\Common\Player\AsioPlayer.cpp][199][AsioPlayer::processCommand][FALSE] (10200)(T=1619.2180)
2016-11-25 22:21:24 : [H:\Ark\Server\Common\Net\AsioInputStream.cpp][85][AsioInputStream::ReadHandleCallback][FALSE] (10200)(T=1619.7650)
2016-11-25 22:21:25 : [H:\Ark\Server\DatabaseServer\Main\Server.cpp][79][Server::Loop][FALSE] (10200)(T=1620.2810)
2016-11-25 22:21:26 : [H:\Ark\Server\DatabaseServer\Main\Main.cpp][57][main][FALSE] (10200)(T=1621.1400)
---------------------
Log_DataCollectionServer 's log is:
2016-11-25 22:18:38 : [H:\Ark\Server\DataCollectionServer\PacketHandle\SDTranspondHandle.cpp][41][SDTranspondHandle][handle] (10576)(T=1454.1560)
2016-11-25 22:21:13 : [H:\Ark\Server\DataCollectionServer\PacketHandle\SDTranspondHandle.cpp][47][SDTranspondHandle][FALSE] (10576)(T=1609.0940)
2016-11-25 22:21:15 : [H:\Ark\Server\DataCollectionServer\Player\ServerPlayer.cpp][37][ServerPlayer::packetHandle][FALSE] (10576)(T=1610.8130)
2016-11-25 22:21:16 : [H:\Ark\Server\Common\Player\AsioPlayer.cpp][199][AsioPlayer::processCommand][FALSE] (10576)(T=1611.7030)
2016-11-25 22:21:16 : [H:\Ark\Server\Common\Net\AsioInputStream.cpp][85][AsioInputStream::ReadHandleCallback][FALSE] (10576)(T=1612.5630)
2016-11-25 22:21:18 : [H:\Ark\Server\DataCollectionServer\Main\Server.cpp][72][Server::Loop][FALSE] (10576)(T=1613.6250)
2016-11-25 22:21:18 : [H:\Ark\Server\DataCollectionServer\Main\Main.cpp][57][main][FALSE] (10576)(T=1614.1250)
----------------
--------------------
when i creat a new role,the login server log is:
2016-11-25 22:18:02 : ClientPlayerManager::AcceptHandleCallback(PID:2, IP:127.0.0.1, Port:54433, Count=1)...OK (10132)(T=1418.2190)
2016-11-25 22:18:03 : ClientPlayerManager::RemovePlayer(UserID=-1, Count=0), because: End of file...OK (10132)(T=1419.3590)
2016-11-25 22:18:24 : ClientPlayerManager::AcceptHandleCallback(PID:3, IP:127.0.0.1, Port:54434, Count=1)...OK (10132)(T=1440.1720)
2016-11-25 22:18:26 : User(Account=bunny0) login succeed (10132)(T=1442.1870)
2016-11-25 22:18:26 : ClientPlayerManager::RemovePlayer(UserID=1, Count=0), because: End of file...OK (10132)(T=1442.2030)
2016-11-25 22:18:26 : FLUpdateConnetCountHandle(SeverID=0, RemainConnectCount=99) (10132)(T=1442.4840)

i want to know maybe the sql's type is have wrong or not?? i find text "End of file" the sql.
after del the text in the sql,this is also appear in the log.i don;t know why.
 
Skilled Illusionist
Joined
Apr 6, 2006
Messages
336
Reaction score
111
I been busy with work and no time spend on these files. I left off with packet id errors, think it is wrong client. I noticed while searching the Web that shortly after the date of these server files, client version 2000 was available for download. Perhaps these are an early version for v2000 client. Maybe then the packet id's will match.

 
Last edited:
Elite Diviner
Joined
Apr 28, 2012
Messages
420
Reaction score
439
Hi guys)
thanks for your help,but maybe your pic are broken,why i see just some X X X pictures.
You were right)))

the first tool (only "Interface.zpk") - unpacks the archive (not decrypted!)

+


decryption - needed keys (as they are calculated, i will show below)

1. each file is encrypted with keys (piece = length of the file is divided by 5)
2. each piece file (length of the file is divided by 5) have a unique key (encryption = simple xor)
3. the first key is generated from the file name (the other keys are calculated from the first key)
4. The calculation of the keys:
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace decr_xpk
{
    class Program
    {
        static void Main(string[] args)
        {
            var ebx = 0x00;

            string test = "MyGUI_Core.xml";
            string up = test.ToUpper();
            Console.WriteLine(up);
            byte[] array = Encoding.UTF8.GetBytes(up);

            // search key1 (crazy Chinese developers )))  )

            for (int s = 0; s <= array.Length-1; s++ )
            {
                var t = array[s] * 0x7e79 + 0x2531abf;
                var t1 = t / 0x78fa;
                var tail = t % 0x78fa;
                var x = tail ^ array[s];
                ebx = ebx ^ x;
                Console.WriteLine(Convert.ToChar(array[s]) + ": t=" + t + " " + "t1=" + t1 + " " + "tail=" + tail + " " + "x=" + x + " " + "ebx=" + ebx);
            }
            Console.WriteLine();
            Console.WriteLine("first XOR key = low byte last ebx (" + ebx + " [dec], "+ ebx.ToString("X2")+" [hex])");
            Console.WriteLine("select the low byte...");
            byte key1 = (byte)(ebx & 0xff);
            Console.WriteLine("First key = " + Convert.ToInt32(key1) + " (Hex = 0x" + key1.ToString("X2") + ")");

            // search key2

                var t_1 = ebx * 0x7888 + 0x252341ab;
                var t1_1 = t_1 / 0x7f63;
                var tail_1 = t_1 % 0x7f63;
                ebx = ebx ^ tail_1;
       
                Console.WriteLine();
                Console.WriteLine("second XOR key = low byte ebx (" + ebx + " [dec], " + ebx.ToString("X2") + " [hex])");
                Console.WriteLine("select the low byte...");
                byte key2 = (byte)(ebx & 0xff);
                Console.WriteLine("Second key = " + Convert.ToInt32(key2) + " (Hex = 0x" + key2.ToString("X2") + ")");

           // search key3

                var t_2 = ebx * 0x7888 + 0x252341ab;
                var t1_2 = t_2 / 0x7f63;
                var tail_2 = t_2 % 0x7f63;
                ebx = ebx ^ tail_2;

                Console.WriteLine();
                Console.WriteLine("third XOR key = low byte ebx (" + ebx + " [dec], " + ebx.ToString("X2") + " [hex])");
                Console.WriteLine("select the low byte...");
                byte key3 = (byte)(ebx & 0xff);
                Console.WriteLine("Third key = " + Convert.ToInt32(key3) + " (Hex = 0x" + key3.ToString("X2") + ")");

          //search keyNNNN
                Console.WriteLine();
                Console.WriteLine("search keyNNNN");
                Console.WriteLine("see ^^ (key2 and key3)"); 

            Console.ReadKey();
        }
    }
}




(I deliberately did not do loops ("for" and etc. ) that would be easier to understand
can simplify the code (this code is very bad))))
p/s/ I have a little free time (sorry))
 
Last edited:
Joined
Dec 10, 2011
Messages
476
Reaction score
27
Hi guys)

You were right)))

the first tool (only "Interface.zpk") - unpacks the archive (not decrypted!)


decryption - needed keys (as they are calculated, i will show below)

1. each file is encrypted with keys (piece = length of the file is divided by 5)
2. each piece file (length of the file is divided by 5) have a unique key (encryption = simple xor)
3. the first key is generated from the file name (the other keys are calculated from the first key)
4. The calculation of the keys:
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace decr_xpk
{
    class Program
    {
        static void Main(string[] args)
        {
            var ebx = 0x00;

            string test = "MyGUI_Core.xml";
            string up = test.ToUpper();
            Console.WriteLine(up);
            byte[] array = Encoding.UTF8.GetBytes(up);

            // search key1 (crazy Chinese developers )))  )

            for (int s = 0; s <= array.Length-1; s++ )
            {
                var t = array[s] * 0x7e79 + 0x2531abf;
                var t1 = t / 0x78fa;
                var tail = t % 0x78fa;
                var x = tail ^ array[s];
                ebx = ebx ^ x;
                Console.WriteLine(Convert.ToChar(array[s]) + ": t=" + t + " " + "t1=" + t1 + " " + "tail=" + tail + " " + "x=" + x + " " + "ebx=" + ebx);
            }
            Console.WriteLine();
            Console.WriteLine("first XOR key = low byte last ebx (" + ebx + " [dec], "+ ebx.ToString("X2")+" [hex])");
            Console.WriteLine("select the low byte...");
            byte key1 = (byte)(ebx & 0xff);
            Console.WriteLine("First key = " + Convert.ToInt32(key1) + " (Hex = 0x" + key1.ToString("X2") + ")");

            // search key2

                var t_1 = ebx * 0x7888 + 0x252341ab;
                var t1_1 = t_1 / 0x7f63;
                var tail_1 = t_1 % 0x7f63;
                ebx = ebx ^ tail_1;
       
                Console.WriteLine();
                Console.WriteLine("second XOR key = low byte ebx (" + ebx + " [dec], " + ebx.ToString("X2") + " [hex])");
                Console.WriteLine("select the low byte...");
                byte key2 = (byte)(ebx & 0xff);
                Console.WriteLine("Second key = " + Convert.ToInt32(key2) + " (Hex = 0x" + key2.ToString("X2") + ")");

           // search key3

                var t_2 = ebx * 0x7888 + 0x252341ab;
                var t1_2 = t_2 / 0x7f63;
                var tail_2 = t_2 % 0x7f63;
                ebx = ebx ^ tail_2;

                Console.WriteLine();
                Console.WriteLine("third XOR key = low byte ebx (" + ebx + " [dec], " + ebx.ToString("X2") + " [hex])");
                Console.WriteLine("select the low byte...");
                byte key3 = (byte)(ebx & 0xff);
                Console.WriteLine("Third key = " + Convert.ToInt32(key3) + " (Hex = 0x" + key3.ToString("X2") + ")");

          //search keyNNNN
                Console.WriteLine();
                Console.WriteLine("search keyNNNN");
                Console.WriteLine("see ^^ (key2 and key3)"); 

            Console.ReadKey();
        }
    }
}




(I deliberately did not do loops ("for" and etc. ) that would be easier to understand
can simplify the code (this code is very bad))))
p/s/ I have a little free time (sorry))

nice job,and thank you very much.



I been busy with work and no time spend on these files. I left off with packet id errors, think it is wrong client. I noticed while searching the Web that shortly after the date of these server files, client version 2000 was available for download. Perhaps these are an early version for v2000 client. Maybe then the packet id's will match.


no,this v2000 is also the v1013.


lastfun but how to use the two files?? under dos or missing sth?
when i run t_zpk,it will tip:
could not find “C:\Users\Administrator\File_List.txt”
if i new a .txt.file named this ,it will tip:
could not find “C:\Users\Administrator\offsets.bin”
how can i get the right files:File_List.txt and offsets.bin??
 
Elite Diviner
Joined
Apr 28, 2012
Messages
420
Reaction score
439
@exe19890522
sorry, bro)
yesterday was about to sleep and forgot to add these files -
p.s. today (probably) finished a full unpacking
 
Joined
Dec 10, 2011
Messages
476
Reaction score
27
@lastfun Never mind, please ensure to keep the full sleep, this will help you better work and life, don't stay up and it will harm your health and future.
but when i unpack the Interface.zpk,it will unpack many files,but they are all broken,can't be open.
i just put the missing file in C:\Users\Administrator,and run t_zpk.exe.
may i have something wrong?
 
Last edited:
Elite Diviner
Joined
Apr 28, 2012
Messages
420
Reaction score
439
but when i unpack the Interface.zpk,it will unpack many files,but they are all broken,can't be open.
no broken)
just do not decrypted

===upd===
Ducking size)
 
Last edited:
Elite Diviner
Joined
Apr 28, 2012
Messages
420
Reaction score
439
no problem, bro - give a link to your website
 
Back
Top