#request close
Problem solved thanks to Justin(lostsolder05), & everyone else who posted!
Problem solved thanks to Justin(lostsolder05), & everyone else who posted!
I did and my problem is coming from around here..Quote:
Set a breakpoint and trace through the source from login.
Kernel.AuthPool.Add(Hero.Identifier, Hero);
Hero.AuthPhase = AuthPhases.AuthComplete;
if (Sender.Connection.RemoteEndPoint.ToString().Split(':')[0] != "127.0.0.1")
Sender.Send(PacketBuilder.AuthResponse(Database.IP, Hero.Identifier, 255, 5816));
else
Sender.Send(PacketBuilder.AuthResponse("192.168.1.1", Hero.Identifier, 255, 5816));
Sender.Send(PacketBuilder.AuthResponse(Database.IP, Hero.Identifier, 255, 5816));
Thanks for your reply! Although I already port forwarded and tried my IP.. Still the same problem. So I tried hamachi, AGAIN. Still nothing :/ Is the md5 hash encryption required for client login at 5065->5071Quote:
127.0.0.1 Can very often cause problems.
Download hamachi and use that IP. :)
Thanks for your input Fang! Any clue what my problem could be?Quote:
Honestly, I would just keep the MD5 hash. Although it might not be necessary if you host the database on a vps that has closed ports for the service, it's a nice security to have for the members (staff members can't see their passwords). MD5 isn't required for login on those patches. Basically, the result of the decryption for the password is hashed using MD5, and if it matches the MD5 hash in the database (the password hash for the account), then it's correct.
I didn't really read into your current issue. It seems like it's connecting to the server but not making it past the password check to the server transfer (to the game server). Check your account server methods and step through it using breakpoints as Lateralus suggested.Quote:
Thanks for your input Fang! Any clue what my problem could be?
Your right, its completing the auth check but then failing atQuote:
I didn't really read into your current issue. It seems like it's connecting to the server but not making it past the password check to the server transfer (to the game server). Check your account server methods and step through it using breakpoints as Lateralus suggested.
Sender.Send(PacketBuilder.AuthResponse(Database.IP, Hero.Identifier, 255, 5816));
Yea its Arcos 5071.Quote:
If it fails after that packet is sent, then most likely the world server isn't configured correctly (because the ip address or port from the database is incorrect), or the packet is incorrect (which is doubtful if this is a public source). I recommend you google how to breakpoint in Visual Studio. It's a key component in debugging a project.
public static bool LoadEntity(GameClient Hero)
{
bool res = false;
MysqlCommand cmd = new MysqlCommand(CommandType.SELECT);
cmd.Select("Characters").Where("EntityID", Hero.Identifier).Done();
if (cmd.DataReader.Read())
[COLOR="SeaGreen"]//Connection ends after this line if it doesn't find a character.[/COLOR]
{
[COLOR="SeaGreen"]//Connection is successful and client logs in completely if character is found[/COLOR]
res = true;
Hero.Entity.UID = Convert.ToUInt32(cmd.DataReader["EntityID"]);
Hero.Entity.Name = Convert.ToString(cmd.DataReader["Name"]);
[COLOR="SeaGreen"] //Below I assume is where it checks if user was found and opens character creation. BUT it don't make it this far.. Why? I'm so lost.[/COLOR]
if (Hero.Entity.Name == "")
{
Hero.Send(new MessagePacket("NEW_ROLE", "ALLUSERS", 0xFFFFFF, MessagePacket.Dialog));
}
Managed to solve my problem. Lets just say this source needs a lot of work to even get started. Requires a couple checks in the auth -> game to determine if the user has created a character or not. Along with a couple of packets that needed to be updated;Mob;Name. And the screening had to be redone for mobs aswell. I managed to get these parts done with help from Justin.Quote:
What line in that code is throwing an error? Put a breakpoint on "bool res = false" and then use the "Step over" button until something weird happens.
I bet its the cmd.DataRead.Read()) :P