CoEmuv2

09/11/2009 00:52 blade911#1
What do I have to change in my coemu source to allow people to connect with my hamachi ip. Right now I'm connecting to my server with ip in server.dat 127.0.0.1 what do I need to change in the source so that I can put my hamachi ip in server.dat so I can connect with it and other people can connect as well?
09/11/2009 00:59 Zion~#2
Change the ip in master socket too 127.0.0.1 also
and in the packet processor make sure the ips are your external ip.
You can find that here, [Only registered and activated users can see links. Click Here To Register...]

Then change the ip in your server.dat too your external ip.
You can make your server.dat 127.0.0.1 and still be able to connect, just make sure others make it your external ip.

Hit thanks if I helped you.
If you need more help, add me on msn.
09/11/2009 01:01 blade911#3
Quote:
Originally Posted by Zion~ View Post
Change the ip in master socket too 127.0.0.1 also
and in the packet processor make sure the ips are your external ip.
You can find that here, [Only registered and activated users can see links. Click Here To Register...]

Then change the ip in your server.dat too your external ip.
You can make your server.dat 127.0.0.1 and still be able to connect, just make sure others make it your external ip.

Hit thanks if I helped you.
If you need more help, add me on msn.
I use hamachi so I can't make it my external ip. And idk your msn lol.
09/11/2009 01:18 Zion~#4
Quote:
Originally Posted by blade911 View Post
I use hamachi so I can't make it my external ip. And idk your msn lol.
[Only registered and activated users can see links. Click Here To Register...]

Try replacing your external ip with your hamachi ip then.
09/11/2009 01:24 blade911#5
Okay well I changed the packet processor IP but now when I try to connect it says "Please reinstall the game".

Quote:
/*
* Created by SharpDevelop.
* User: sams
* Date: 3/8/2009
* Time: 12:38 PM
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using CoEmu_v2_LoginServer.Connections;
using CoEmu_v2_LoginServer.Database;

namespace CoEmu_v2_LoginServer
{
/// <summary>
/// Allows for handling of packets from the client->loginserver or client->gameserver.
/// </summary>
public static class PacketProcessor
{
public static void ProcessPacket(byte[] Data, ClientSocket CSocket)
{
int Type = (Data[3] << 8) + Data[2];
switch(Type)
{
case 1086:
{
RequestLogin(Data, CSocket);
break;
}
default:
{
Console.WriteLine("[LoginServer] Unknown packet type: " + Type);
break;
}
}
}
public static void RequestLogin(byte[] Data, ClientSocket CSocket)
{
string AccountName = "";
string Password = "";
string ServerName = "";
if(Data.Length >= 276)
{
for (int i = 4; i < 0x114; i++)
{
if (i >= 0x14 && i < 0xf9)
{
if(Data[i] != 0x00)
Password += (Convert.ToString(Data[i], 16)).PadLeft(2, '0');
}
if (i < 0x14)
if (Data[i] != 0x00)
AccountName += Convert.ToChar(Data[i]);
if (i > 0xfa)
if (Data[i] != 0x00)
ServerName += Convert.ToChar(Data[i]);
}
}
else
{
return;
}
/* if(AccountName != "dsfreak")
{
CSocket.Disconnect();
return;
}*/
System.Random Random = new System.Random();
Console.WriteLine("[LoginServer] " + AccountName + " logging in to " + ServerName);
string DBPass = Database.Database.Password(AccountName);
//TODO: Check for ban.
if(DBPass != "ERROR")
{
if(DBPass == Password)
{
//OKAY to login!
uint Key = (uint)(Random.Next(10000000) << 32);
Key = Key << 32;
Key = (uint)(Key | (uint)Random.Next(10000000));
byte[] Key1 = new byte[4];
byte[] Key2 = new byte[4];
Key1[0] = (byte)(((ulong)Key & 0xff00000000000000L) >> 56);
Key1[1] = (byte)((Key & 0xff000000000000) >> 48);
Key1[2] = (byte)((Key & 0xff0000000000) >> 40);
Key1[3] = (byte)((Key & 0xff00000000) >> 32);
Key2[0] = (byte)((Key & 0xff000000) >> 24);
Key2[1] = (byte)((Key & 0xff0000) >> 16);
Key2[2] = (byte)((Key & 0xff00) >> 8);
Key2[3] = (byte)(Key & 0xff);
if(ServerName == "TazerCo")
{
/*if(AuthSocket.Authorize(AccountName, Key, false))
{
CSocket.Send(Packets.AuthResponse("66.187.101.86", Key1, Key2));
}
else
{
CSocket.Disconnect();
}*/
if(AuthSocket.Authorize(AccountName, Key, false))
{
CSocket.Send(Packets.AuthResponse("5.228.231.16", Key1, Key2));
}
else
{
CSocket.Disconnect();
}
}
else if(ServerName == "CoEmu.Nano")
{
if(AuthSocket.Authorize(AccountName, Key, true))
{
CSocket.Send(Packets.AuthResponse("70.190.77.101", Key1, Key2));
}
else
{
CSocket.Disconnect();
}
}
}
else if(DBPass == "")
{
Console.WriteLine("[LoginServer](Diagnostic) Set password for " + AccountName);
Database.Database.SetPass(AccountName, Password);
//OKAY to login!
uint Key = (uint)(Random.Next(10000000) << 32);
Key = Key << 32;
Key = (uint)(Key | (uint)Random.Next(10000000));
byte[] Key1 = new byte[4];
byte[] Key2 = new byte[4];
Key1[0] = (byte)(((ulong)Key & 0xff00000000000000L) >> 56);
Key1[1] = (byte)((Key & 0xff000000000000) >> 48);
Key1[2] = (byte)((Key & 0xff0000000000) >> 40);
Key1[3] = (byte)((Key & 0xff00000000) >> 32);
Key2[0] = (byte)((Key & 0xff000000) >> 24);
Key2[1] = (byte)((Key & 0xff0000) >> 16);
Key2[2] = (byte)((Key & 0xff00) >> 8);
Key2[3] = (byte)(Key & 0xff);
if(ServerName == "CoEmu")
{
/*if(AuthSocket.Authorize(AccountName, Key, false))
{
CSocket.Send(Packets.AuthResponse("66.187.101.86", Key1, Key2));
}
else
{
CSocket.Disconnect();
}*/
if(AuthSocket.Authorize(AccountName, Key, false))
{
CSocket.Send(Packets.AuthResponse("66.187.101.86", Key1, Key2));
}
else
{
CSocket.Disconnect();
}
}
else if(ServerName == "CoEmu.Nano")
{
if(AuthSocket.Authorize(AccountName, Key, true))
{
CSocket.Send(Packets.AuthResponse("70.190.77.101", Key1, Key2));
}
else
{
CSocket.Disconnect();
}
}
}
else
{
CSocket.Send(Packets.WrongPass());
CSocket.Disconnect();
}
}
else
{
Console.WriteLine("DBPass equals ERROR: " + DBPass);
CSocket.Disconnect();
}
}
}
}
Umm all I change is what's in red right? That's where 127.0.0.1 used to be.
09/11/2009 01:28 Zion~#6
Hmph!
Post your server.dat
09/11/2009 01:34 blade911#7
Here is my server.dat when I connected with 127.0.0.1 IP. It said "Please reinstall the game" when I changed mastersocket.cs to 5.228.231.16 and server.dat to that and tried to connect.

Quote:
<?xml version="1.0"?>
<mysqldump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<database name="cq2">
<table_structure name="outenserver">
<field Field="id" Type="smallint(1) unsigned zerofill" Null="NO" Key="PRI" Default="0" Extra="" />
<field Field="ServerName" Type="varchar(32)" Null="YES" Key="" Extra="" />
<field Field="ServerIP" Type="varchar(15)" Null="YES" Key="" Extra="" />
<field Field="ServerPort" Type="int(1) unsigned" Null="YES" Key="" Extra="" />
<field Field="FlashName" Type="varchar(32)" Null="YES" Key="" Extra="" />
<field Field="FlashIcon" Type="varchar(32)" Null="YES" Key="" Extra="" />
<field Field="FlashHint" Type="varchar(128)" Null="YES" Key="" Extra="" />
<field Field="Child" Type="tinyint(1) unsigned zerofill" Null="NO" Key="" Default="0" Extra="" />
<key Table="outenserver" Non_unique="0" Key_name="id" Seq_in_index="1" Column_name="id" Collation="A" Cardinality="97" Null="" Index_type="BTREE" Comment="" />
<options Name="outenserver" Engine="MyISAM" Version="10" Row_format="Dynamic" Rows="97" Avg_row_length="58" Data_length="5644" Max_data_length="281474976710655" Index_length="2048" Data_free="0" Create_time="2008-11-26 08:33:09" Update_time="2008-12-18 08:39:35" Collation="latin1_swedish_ci" Create_options="" Comment="" />
</table_structure>
<table_data name="outenserver">
<row>
<field name="id">0</field>
<field name="ServerName"></field>
<field name="ServerIP"></field>
<field name="ServerPort">0</field>
<field name="FlashName"></field>
<field name="FlashIcon"></field>
<field name="FlashHint"></field>
<field name="Child">1</field>
</row>
<row>
<field name="id">1</field>
<field name="ServerName"></field>
<field name="ServerIP"></field>
<field name="ServerPort">0</field>
<field name="FlashName">Group1</field>
<field name="FlashIcon">Group11.swf</field>
<field name="FlashHint"></field>
<field name="Child">1</field>
</row>
<row>
<field name="id">101</field>
<field name="ServerName">TazerCo</field>
<field name="ServerIP">127.0.0.1</field>
<field name="ServerPort">9958</field>
<field name="FlashName">TazerCo</field>
<field name="FlashIcon">Group3/server2.swf</field>
<field name="FlashHint"></field>
<field name="Child">0</field>
</row>
</table_data>
</database>
</mysqldump>
09/11/2009 01:45 blade911#8
Men respond.
09/11/2009 01:47 Zion~#9
Make your server.dat ip,
5.228.231.16
09/11/2009 01:51 danielachraf#10
Quote:
Originally Posted by blade911 View Post
Here is my server.dat when I connected with 127.0.0.1 IP. It said "Please reinstall the game" when I changed mastersocket.cs to 5.228.231.16 and server.dat to that and tried to connect.
if you are using hamachi you must use the 127.0.0.1 in your client and you must have the full server.dat..

Code:
	<row>
		<field name="id">102</field>
		<field name="ServerName">[COLOR="Red"]CoEternity[/COLOR]</field>
		<field name="ServerIP">127.0.0.1</field>
		<field name="ServerPort">9958</field>
		<field name="FlashName">[COLOR="red"]CoEternity[/COLOR]</field>
		<field name="FlashIcon">Group3/server2.swf</field>
		<field name="FlashHint"></field>
		<field name="Child">0</field>
	</row>
Edit your server name...
09/11/2009 01:51 Zion~#11
Reading this over I found the possible error.

Code:
if(ServerName == "[COLOR="Red"]CoEmu[/COLOR]")
{
/*if(AuthSocket.Authorize(AccountName, Key, false))
{
CSocket.Send(Packets.AuthResponse("[COLOR="Red"]66.187.101.86[/COLOR]", Key1, Key2));
}
else
{
CSocket.Disconnect();
}*/
if(AuthSocket.Authorize(AccountName, Key, false))
{
CSocket.Send(Packets.AuthResponse("[COLOR="Red"]66.187.101.86[/COLOR]", Key1, Key2));
}
else
{
CSocket.Disconnect();
}
}
else if(ServerName == "[COLOR="Red"]CoEmu.Nano[/COLOR]")
{
if(AuthSocket.Authorize(AccountName, Key, true))
{
CSocket.Send(Packets.AuthResponse("[COLOR="Red"]70.190.77.101[/COLOR]", Key1, Key2));
}
else
{
CSocket.Disconnect();
}
}
}
else
{
CSocket.Send(Packets.WrongPass());
CSocket.Disconnect();
}
}
else
{
Console.WriteLine("DBPass equals ERROR: " + DBPass);
CSocket.Disconnect();
}
}
}
}
It should be the name of your server in the server.dat
IP should be your hamachi ip.
Changing Comu.Nano doesn't matter but I always change it.
09/11/2009 01:52 blade911#12
daniel, but how do people connect to my server? they can't use IP 127.0.0.1
09/11/2009 01:53 danielachraf#13
Quote:
Originally Posted by blade911 View Post
daniel, but how do people connect to my server? they can't use IP 127.0.0.1
make hamachi rooms and in their server.dat they have your ip not 127.0.0.1
09/11/2009 02:00 blade911#14
Quote:
Originally Posted by danielachraf View Post
make hamachi rooms and in their server.dat they have your ip not 127.0.0.1
I know that -.- your the one that told me that..

Btw Zion I changed all those to my Hamachi's IP and still nothing.
09/11/2009 02:05 Zion~#15
Quote:
Originally Posted by blade911 View Post
I know that -.- your the one that told me that..

Btw Zion I changed all those to my Hamachi's IP and still nothing.
Port forward and get it over with.
Hamachi wont benefit your server in anyway.