|
You last visited: Today at 08:35
Advertisement
[Renewable] Downgrading co source 5520 to 5017 !!
Discussion on [Renewable] Downgrading co source 5520 to 5017 !! within the CO2 Private Server forum part of the Conquer Online 2 category.
09/16/2013, 01:01
|
#1
|
elite*gold: 0
Join Date: Mar 2010
Posts: 475
Received Thanks: 15
|
[Renewable] Downgrading co source 5520 to 5017 !!
Hello guys ... i am trying to downgrade Trinity Source v 5220 to 5017 and i started with auth and game sockets then with connect , receive and disconnect auth server [ that`s includes BlowFish, GameKey etc ] .. then i moved to game [incoming] new connection after then i moved to receive ...
when its move to this part
Code:
int Len = BitConverter.ToInt32(arg1, position); position += 4;
of
Code:
public static void GameServer_AnnounceReceive(byte[] arg1, Interfaces.ISocketWrapper arg2)
{
try
{
Client.GameState Client = arg2.Connector as Client.GameState;
try
{
Client.Cryptography.Decrypt(arg1);
}
catch (Exception e) { Console.WriteLine(e); }
if (Client != null)
{
if (Client.Exchange)
{
try
{
Client.Exchange = false;
Client.Action = 1;
ushort position = 7;
uint PacketLen = BitConverter.ToUInt32(arg1, position); position += 4;
int JunkLen = BitConverter.ToInt32(arg1, position); position += 4; position += (ushort)JunkLen;
int Len = BitConverter.ToInt32(arg1, position); position += 4;
byte[] pubKey = new byte[Len];
for (int x = 0; x < Len; x++)
pubKey[x] = arg1[x + position];
string PubKey = System.Text.ASCIIEncoding.ASCII.GetString(pubKey);
Client.Cryptography = Client.DHKeyExchance.HandleClientKeyPacket(PubKey, Client.Cryptography);
}
catch (Exception e) { Console.WriteLine(e); Client.Socket.Disconnect(false); }
}
else
{
if (!Client.Exchange && Client.Action != 0)
Network.PacketHandler.HandleBuffer(arg1, Client);
}
}
}
catch (Exception e) { Console.WriteLine(e); }
}
i get this error message :
and this error kills the client .. and i have no idea what shall i do in this case ..
any help with this ?
|
|
|
09/16/2013, 01:28
|
#2
|
elite*gold: 12
Join Date: Jul 2011
Posts: 8,282
Received Thanks: 4,190
|
5017 doesn't use Blowfish. Reference a source that's already out there.
|
|
|
09/16/2013, 01:33
|
#3
|
elite*gold: 0
Join Date: Mar 2010
Posts: 475
Received Thanks: 15
|
5017 doesn't use BlowFish ? O.o
so what it use then ?
and what source you suggest me to check and you think it will help me ?
I've done until i can connect to game server (after i done with auth server )
so that's mean i need to edit something ??
|
|
|
09/16/2013, 01:41
|
#4
|
elite*gold: 12
Join Date: Jul 2011
Posts: 8,282
Received Thanks: 4,190
|
|
|
|
09/16/2013, 02:10
|
#5
|
elite*gold: 153
Join Date: Mar 2011
Posts: 634
Received Thanks: 489
|
I got another better idea, why you don't just remove new things like NPC of Soul to make them can't make soul.. Remove all 140 items.. make it least 130.. Last level to be as you like and ....etc, i made that in my source it's 5530 but with the whole system like 5095, and better because it got Arena and New GUI and i can control it better than 5095!  (Also 5095 i think it's better, but i don't know how to change anything in it, so it's better for me to make the source like i said).
|
|
|
09/16/2013, 05:26
|
#6
|
elite*gold: 0
Join Date: Mar 2010
Posts: 475
Received Thanks: 15
|
Quote:
Originally Posted by GameHacker-PM-
I got another better idea, why you don't just remove new things like NPC of Soul to make them can't make soul.. Remove all 140 items.. make it least 130.. Last level to be as you like and ....etc, i made that in my source it's 5530 but with the whole system like 5095, and better because it got Arena and New GUI and i can control it better than 5095!  (Also 5095 i think it's better, but i don't know how to change anything in it, so it's better for me to make the source like i said).
|
is this thread for better source`s for you ?
omg or for what you can do or what you can't ?
Thanks for reply ... O.o
Quote:
Originally Posted by Fang
|
thank you Fang ..
but now i am getting the client being killed if i use
Code:
string Messages = "ANSWER_OK";
client.Send(new Message(Messages, "ALLUSERS", System.Drawing.Color.Orange, GamePackets.Message.Dialog));
OR
Code:
string Messages = "NEW_ROLE";
client.Send(new Message(Messages, "ALLUSERS", System.Drawing.Color.Orange, GamePackets.Message.Dialog));
but if i used this :
Code:
client.SendIt(PacketBuilder.SendMsg(client.MessageId, "SYSTEM", "ALLUSERS", "ANSWER_OK", 0x834));
its keep says (" Logging to server .. please wait a moment ") and no thing happens
Note : i am trying to send it to select a new character ...
|
|
|
09/16/2013, 13:04
|
#7
|
elite*gold: 153
Join Date: Mar 2011
Posts: 634
Received Thanks: 489
|
Quote:
Originally Posted by abdeen
is this thread for better source`s for you ?
omg or for what you can do or what you can't ?
Thanks for reply ... O.o
thank you Fang ..
but now i am getting the client being killed if i use
Code:
string Messages = "ANSWER_OK";
client.Send(new Message(Messages, "ALLUSERS", System.Drawing.Color.Orange, GamePackets.Message.Dialog));
OR
Code:
string Messages = "NEW_ROLE";
client.Send(new Message(Messages, "ALLUSERS", System.Drawing.Color.Orange, GamePackets.Message.Dialog));
but if i used this :
Code:
client.SendIt(PacketBuilder.SendMsg(client.MessageId, "SYSTEM", "ALLUSERS", "ANSWER_OK", 0x834));
its keep says (" Logging to server .. please wait a moment ") and no thing happens
Note : i am trying to send it to select a new character ...
|
Well, i was suggesting for you to do like what i did.. If you don't like it, you can say thanks only!~ << No need these first words.
Thanks!
|
|
|
09/16/2013, 13:12
|
#8
|
elite*gold: 0
Join Date: Oct 2009
Posts: 39
Received Thanks: 5
|
Just get the encryption of a 5017 source in the link that Fang gave you.
|
|
|
09/16/2013, 22:59
|
#9
|
elite*gold: 0
Join Date: Mar 2010
Posts: 475
Received Thanks: 15
|
Quote:
Originally Posted by TaiZer
Just get the encryption of a 5017 source in the link that Fang gave you.
|
now i am working on load character info .. but i wanna finish the character creation first but this issue stopping me at this point ...
|
|
|
09/17/2013, 00:30
|
#10
|
elite*gold: 0
Join Date: Dec 2010
Posts: 105
Received Thanks: 13
|
This should be the order the handle things, Client sends login details, use the password cipher from another 5017 and compare the password if they match and then you send the packet with the gameserver information(forgot the ID) you get the client id from the packet it sends back and then you check if there is an account with that id and character if there is not send the Message packet (1004 i think) with the message "NEW_ROLE" in tone 2101(Dialog) I think... The the client will then bring up the character creation window thing once you make the character on the client it will send the packet with all the information you need to make the account after that you save it to some kind of database and then disconnect the client and let them login again. Make sure you add checks on the information the character sends.
|
|
|
09/17/2013, 06:36
|
#11
|
elite*gold: 0
Join Date: Dec 2012
Posts: 1,761
Received Thanks: 950
|
Quote:
Originally Posted by Smallxmac
This should be the order the handle things, Client sends login details, use the password cipher from another 5017 and compare the password if they match and then you send the packet with the gameserver information(forgot the ID) you get the client id from the packet it sends back and then you check if there is an account with that id and character if there is not send the Message packet (1004 i think) with the message "NEW_ROLE" in tone 2101(Dialog) I think... The the client will then bring up the character creation window thing once you make the character on the client it will send the packet with all the information you need to make the account after that you save it to some kind of database and then disconnect the client and let them login again. Make sure you add checks on the information the character sends.
|
To add on this at login you send ANSWER_OK, characterinfo and the datetime packet within the 1052 packet @ the gameserver.
After that the client will request a lot of subtypes in generaldata for request things such as items, skills etc. (Not sure about the ID at 5017, because I know it changed at some point.)
The last subtype is for requesting guilds which you can also use to tell whether the client has been fully logged in.
|
|
|
09/17/2013, 12:57
|
#12
|
elite*gold: 0
Join Date: Mar 2010
Posts: 475
Received Thanks: 15
|
Quote:
Originally Posted by Super Aids
To add on this at login you send ANSWER_OK, characterinfo and the datetime packet within the 1052 packet @ the gameserver.
After that the client will request a lot of subtypes in generaldata for request things such as items, skills etc. (Not sure about the ID at 5017, because I know it changed at some point.)
The last subtype is for requesting guilds which you can also use to tell whether the client has been fully logged in.
|
Quote:
Originally Posted by Smallxmac
This should be the order the handle things, Client sends login details, use the password cipher from another 5017 and compare the password if they match and then you send the packet with the gameserver information(forgot the ID) you get the client id from the packet it sends back and then you check if there is an account with that id and character if there is not send the Message packet (1004 i think) with the message "NEW_ROLE" in tone 2101(Dialog) I think... The the client will then bring up the character creation window thing once you make the character on the client it will send the packet with all the information you need to make the account after that you save it to some kind of database and then disconnect the client and let them login again. Make sure you add checks on the information the character sends.
|
Ight and that's what i am working on it right now .. you know it's not easy .. but i am still trying and trying with it ... and i am not going to post ev problem i meet .. i can look into other versions of co source and learn how its works then i can edit mine .. that's all
thank you again every body ...
================================================== ======
here guys i meet i new problem and i don`t know even where is the problem
after this code run prefect :
Code:
static void DoLogin(object _client)
{
Console.WriteLine("Dologin");
Client.GameState client = _client as Client.GameState;
client.ReadyToPlay();
if (ServerBase.Kernel.GamePool.ContainsKey(client.Account.EntityID))
{
Client.GameState d = ServerBase.Kernel.GamePool[client.Account.EntityID];
ServerBase.Kernel.GamePool.Remove(d.Account.EntityID);
d.Disconnect();
}
Database.cq_userTable.LoadEntity(client);
string Message = "ANSWER_OK";
if (client.Entity == null || client.Entity.Name == null)
{
Message = "There is something wrong. You may not login.";
client.Send(new MessagePacket(Message, "ALLUSERS", System.Drawing.Color.Orange, GamePackets.Message.Dialog));
return;
}
if (ServerBase.Kernel.GamePool.Count == Program.PlayerCap && client.Entity.VIPLevel == 0)
{
Message = "Player limit exceeded. (Online players: " + ServerBase.Kernel.GamePool + "/" + Program.PlayerCap + ")";
client.Send(new MessagePacket(Message, "ALLUSERS", System.Drawing.Color.Orange, GamePackets.Message.Dialog));
return;
}
client.Send(new MessagePacket(Message, "ALLUSERS", System.Drawing.Color.Orange, GamePackets.Message.Dialog));
client.Logger = new Logger(client.Entity.Name);
ServerBase.Kernel.GamePool.Add(client.Entity.UID, client);
Console.WriteLine("Here we added cleint.entity.uid to game pool");
if (!ServerBase.Kernel.WasInGamePool.ContainsKey(client.Account.EntityID))
ServerBase.Kernel.WasInGamePool.Add(client.Entity.UID, client);
//Database.cq_userTable.UpdateOnlineStatus(client, true);
client.Send(new GamePackets.CharacterInfo(client));
string IP = client.Socket.Connection.RemoteEndPoint.ToString().Split(':')[0].ToString();
client.Account.IP = IP;
client.Account.Save();
if (!client.LoggedIn)
{
Console.WriteLine("IP Address: [" +client.Account.IP + "] - " + client.Entity.Name + " has logged on.");
client.LoggedIn = true;
client.Action = 2;
}
}
and after i receive this message on CS [Console Screen]
Code:
Console.WriteLine("IP Address: [" +client.Account.IP + "] - " + client.Entity.Name + " has logged on.");
client is killing it self .. i thought its shall go to packet 1010 and to set-location data id .. but its wont go there .. its stops at this point and kills the client ... any idea ???
|
|
|
All times are GMT +1. The time now is 08:36.
|
|