Some help with my problem about exp bar !

07/18/2012 10:48 Sp!!ke#1
[Only registered and activated users can see links. Click Here To Register...]

Code:
  static void AppendConnect(Connect appendConnect, Client.GameState client)
        {
            if (client.LoggedIn == true)
            {
                client.Disconnect();
                return;
            }

            if (client.JustCreated)
            {
                string Message = "NEW_ROLE";
                if (client.Account.EntityID != 0)
                    Message = "ANSWER_OK";
                if (client.Account.State == Database.AccountTable.AccountState.Banned)
                    Message = "You are banned.";
                if (client.Account.State == Database.AccountTable.AccountState.NotActivated)
                {
                    Message = "You cannot login until your account is activated.";
                }
                if (Message == "ANSWER_OK")
                {
                    if (ServerBase.Kernel.GamePool.ContainsKey(client.Account.EntityID))
                    {
                        Client.GameState aClient = null;
                        ServerBase.Kernel.GamePool.TryGetValue(client.Account.EntityID, out aClient);
                        if (aClient != null)
                        {
                            aClient.DoSetOffline = false;
                            aClient.Disconnect();
                        }
                        else
                            ServerBase.Kernel.GamePool.Remove(client.Account.EntityID);
                        aClient.Disconnect();
                    }
                    client.JustCreated = false;
                    DoLogin(client);
                    return;
                }
                client.Send(new Message(Message, "ALLUSERS", System.Drawing.Color.Orange, GamePackets.Message.Dialog));
            }
            Database.AccountTable Account = null;
            if (ServerBase.Kernel.AwaitingPool.ContainsKey(appendConnect.Identifier))
            {
                ServerBase.Kernel.AwaitingPool.TryGetValue(appendConnect.Identifier, out Account);
                ServerBase.Kernel.AwaitingPool.Remove(appendConnect.Identifier);
                if (Account != null)
                {

                    client.Account = Account;
                    string Message = "NEW_ROLE";
                    if (client.Account.EntityID != 0)
                        Message = "ANSWER_OK";
                    if (Account.State == Database.AccountTable.AccountState.Banned)
                        Message = "You are banned.";
                    if (Account.State == Database.AccountTable.AccountState.NotActivated)
                    {
                        Message = "You cannot login until your account is activated.";
                    }
                    if (Message == "ANSWER_OK")
                    {
                        if (ServerBase.Kernel.GamePool.ContainsKey(client.Account.EntityID))
                        {
                            Client.GameState aClient = null;
                            // ServerBase.Kernel.GamePool.Remove(client.Account.EntityID);
                            ServerBase.Kernel.GamePool.TryGetValue(client.Account.EntityID, out aClient);
                            if (aClient != null)
                            {
                                aClient.DoSetOffline = false;
                                aClient.Disconnect();
                            }
                            else
                                ServerBase.Kernel.GamePool.Remove(client.Account.EntityID);

                        }
                        if (ServerBase.Kernel.GamePool.ContainsKey(client.Account.EntityID))
                        {
                            Client.GameState aClient = null;
                            ServerBase.Kernel.GamePool.TryGetValue(client.Account.EntityID, out aClient);
                            if (aClient != null)
                            {
                                aClient.DoSetOffline = false;
                                aClient.Disconnect();
                            }
                            else
                                ServerBase.Kernel.GamePool.Remove(client.Account.EntityID);
                            aClient.Disconnect();
                            //  Client.GameState d = ServerBase.Kernel.GamePool[client.Account.EntityID];
                            // ServerBase.Kernel.GamePool.Remove(d.Account.EntityID);
                            // d.Disconnect();
                            //Message = "Your account logged in";
                            // DoLogin(d);
                            //return;

                        }

                        if (ServerBase.Kernel.GamePool.ContainsKey(client.Account.EntityID))
                        {
                            Client.GameState aClient = null;
                            ServerBase.Kernel.GamePool.TryGetValue(client.Account.EntityID, out aClient);
                            if (aClient != null)
                            {
                                aClient.DoSetOffline = false;
                                aClient.Disconnect();
                            }
                            else
                                ServerBase.Kernel.GamePool.Remove(client.Account.EntityID);
                            ServerBase.Kernel.GamePool.Remove(client.Account.EntityID);
                            client.Send(new Message("Account was in use! Relogin now.", "ALLUSERS", System.Drawing.Color.Orange, GamePackets.Message.Dialog));
                            return;
                        }
                        DoLogin(client);
                        client.Send(new Message(Message, "ALLUSERS", System.Drawing.Color.Orange, GamePackets.Message.Dialog));
                    }
                    else
                    {
                        string Messages = "NEW_ROLE";
                        client.Send(new Message(Messages, "ALLUSERS", System.Drawing.Color.Orange, GamePackets.Message.Dialog));
                    }
                }
            }
        }
        static void DoLogin(object _client)
        {
            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.EntityTable.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 Message(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 Message(Message, "ALLUSERS", System.Drawing.Color.Orange, GamePackets.Message.Dialog));
                return;
            }

            client.Send(new Message(Message, "ALLUSERS", System.Drawing.Color.Orange, GamePackets.Message.Dialog));

            client.Logger = new Logger(client.Entity.Name);
            ServerBase.Kernel.GamePool.Add(client.Entity.UID, client);

            if (!ServerBase.Kernel.WasInGamePool.ContainsKey(client.Account.EntityID))
                ServerBase.Kernel.WasInGamePool.Add(client.Entity.UID, client);

            Database.EntityTable.UpdateOnlineStatus(client, true);
 
            client.Send(new GamePackets.CharacterInfo(client));
            string IP = client.Socket.RemoteEndPoint.ToString().Split(':')[0].ToString();
            client.Account.IP = IP;
            client.Account.Save();


            if (!client.LoggedIn)
                Console.WriteLine(client.Entity.Name + " has logged on. {" + client.Account.IP + "}");
            client.LoggedIn = true;
            client.Action = 2;
        }
Impulse tell me the problem is because I don't receive Answer_OK , so I changed some here but not working ! any can tell me how I can solve that?
07/18/2012 20:59 turk55#2
Are you sure you receive the ANSWER_OK ?
07/19/2012 10:57 Sp!!ke#3
yes man , I thank you for the reply but I solve the problem !

Note: I will not help anyone to fix that because nobody help me..