예제 #1
0
        public static void SelectCharacter(Network.WorldClient client, string packet)
        {
            if (client.Character == null)
            {
                int id = int.Parse(packet.Substring(2));
                Database.Records.CharacterRecord character = client.Account.Characters.FirstOrDefault(x => x.ID == id);
                if (character != null)
                {
                    if (character.FirstConnection)
                    {
                        // Database.Cache.WorldItemCache.LoadItemsForCharacter(character);
                        character.FirstConnection = false;
                    }

                    StringBuilder selectPacket = new StringBuilder("ASK|");
                    selectPacket.Append(character.ID).Append("|").Append(character.Nickname).Append("|").Append(character.Level).Append("|")
                    .Append(character.Breed).Append("|").Append(character.Look).Append("|").Append(character.Color1)
                    .Append("|").Append(character.Color2).Append("|").Append(character.Color3).Append("||");
                    character.Items.Items.ForEach(x => selectPacket.Append(x.DisplayItem + ";"));
                    selectPacket.Append("|");

                    client.Character = character;
                    character.SetPlayer(client);
                    client.Send(selectPacket.ToString());
                    client.Send("BAPCrystal");
                }
            }
        }
예제 #2
0
 public GuildMember(Database.Records.CharacterRecord character, Guild guild)
 {
     this.OwnGuild  = guild;
     this.Character = character;
     this.ID        = character.ID;
     this.Rank      = (GuildRank)character.GuildRank;
     character.GuildRights.Split(',').ToList().FindAll(x => x != "").ForEach(x => this.Rights.Add(int.Parse(x)));
     this.CharacterName = character.Nickname;
     this.SetOffline();
 }
예제 #3
0
        public static void DeleteCharacter(Network.WorldClient client, string packet)
        {
            if (client.Character == null)
            {
                string[] data = packet.Substring(2).Split('|');
                int      id   = int.Parse(data[0]);

                Database.Records.CharacterRecord character = Helper.AccountHelper.GetCharacter(id);
                character.Items.Items.ForEach(x => x.DeleteAndFlush());
                Database.Cache.CharacterCache.Cache.Remove(character);
                client.Account.Characters.Remove(character);
                character.Delete();

                Communication.Realm.Communicator.Server.MainRealm.SendMessage
                    (new Communication.Realm.Packet.PlayerDeletedCharacterMessage(character.Nickname));

                SendCharacterList(client, packet);
            }
        }
예제 #4
0
 public StatsEngine(Database.Records.CharacterRecord character)
 {
     _character = character;
 }
예제 #5
0
 public SpellBook(Database.Records.CharacterRecord character)
 {
     this._character = character;
 }
예제 #6
0
 public StatsEngine(Database.Records.CharacterRecord character)
 {
     _character = character;
 }
예제 #7
0
 public SpellBook(Database.Records.CharacterRecord character)
 {
     this._character = character;
 }
예제 #8
0
        public static void CreateCharacter(Network.WorldClient client, string packet)
        {
            string[] data = packet.Substring(2).Split('|');
            if (!Helper.AccountHelper.ExistName(data[0]))
            {
                if (client.Account.Characters.Count < ConfigurationManager.GetIntValue("MaxCharacterPerServer"))
                {
                    if (data[0].Length > 4 && data[0].Length < 15 && HasValidNickname(data[0]) && int.Parse(data[1]) > 0 && int.Parse(data[1]) < 13 && int.Parse(data[2]) > -1 && int.Parse(data[2]) < 2)
                    {
                        Database.Records.CharacterRecord character = new Database.Records.CharacterRecord()
                        {
                            Nickname = data[0],
                            Breed = int.Parse(data[1]),
                            Gender = int.Parse(data[2]),
                            Color1 = int.Parse(data[3]),
                            Color2 = int.Parse(data[4]),
                            Color3 = int.Parse(data[5]),
                            Scal = ConfigurationManager.GetIntValue("StartScal"),
                            Kamas = ConfigurationManager.GetIntValue("StartKamas"),
                            Direction = ConfigurationManager.GetIntValue("StartDir"),
                            CaractPoint = (ConfigurationManager.GetIntValue("StartLevel") * ConfigurationManager.GetIntValue("RateCapitalPoints")) - 5,
                            SpellPoint = (ConfigurationManager.GetIntValue("StartLevel") * ConfigurationManager.GetIntValue("RateSpellPoints")) - 1,
                            Owner = client.Account.ID,
                        };

                        if (client.Account.Vip == 1)
                        {
                            character.Level = 1500;
                        }
                        else
                        {
                            character.Level = ConfigurationManager.GetIntValue("StartLevel");
                        }
                        character.Experience = Helper.ExpFloorHelper.GetCharactersLevelFloor(character.Level).Character;

                        if (Utilities.ConfigurationManager.GetBoolValue("EnableBreedsOriginalStartMap"))
                        {
                            Database.Records.OriginalBreedStartMapRecord originalMap = Helper.MapHelper.GetOriginalBreedStartMap(character.Breed);
                            character.MapID = originalMap.MapID;
                            character.CellID = originalMap.CellID;
                            character.SaveMap = originalMap.MapID;
                            character.SaveCell = originalMap.CellID;
                        }
                        else
                        {
                            character.MapID = ConfigurationManager.GetIntValue("StartMap");
                            character.CellID = ConfigurationManager.GetIntValue("StartCell");
                            character.SaveMap = ConfigurationManager.GetIntValue("StartMap");
                            character.SaveCell = ConfigurationManager.GetIntValue("StartCell");
                        }
                        character.FirstPlay = true;
                        character.Spells.LearnBaseSpell();
                        character.CurrentLife = character.Stats.MaxLife;
                        character.Look = Helper.AccountHelper.GetDefaultLook(character);

                        /* Add character */
                        character.SaveAndFlush();
                        Database.Cache.CharacterCache.Cache.Add(character);
                        client.Account.Characters.Add(character);

                        Communication.Realm.Communicator.Server.MainRealm.SendMessage
                            (new Communication.Realm.Packet.PlayerCreatedCharacterMessage(character));

                        SendCharacterList(client, packet);
                        Utilities.ConsoleStyle.Infos("'" + client.Account.Username + "' has created the character '" + character.Nickname + "'");
                    }
                    else
                    {
                        client.Send("AAEe");
                    }
                }
            }
            else
            {
                client.Send("AAEa");
            }
        }
 public PlayerCreatedCharacterMessage(Database.Records.CharacterRecord character)
     : base(Protocol.ForwardPacketTypeEnum.PlayerCreatedCharacterMessage)
 {
     Writer.Write(character.Owner);
     Writer.Write(character.Nickname);
 }
예제 #10
0
 public ItemEngine(Database.Records.CharacterRecord character)
 {
     _character = character;
 }
예제 #11
0
 public FactionEngine(Database.Records.CharacterRecord character)
 {
     this.Character = character;
 }
예제 #12
0
 public CharacterPattern(Database.Records.CharacterRecord character)
 {
     this._character = character;
 }
예제 #13
0
 public static int GetDefaultLook(Database.Records.CharacterRecord character)
 {
     return(int.Parse(character.Breed.ToString() + character.Gender.ToString()));
 }
예제 #14
0
 public ItemEngine(Database.Records.CharacterRecord character)
 {
     _character = character;
 }
예제 #15
0
 public CharacterPattern(Database.Records.CharacterRecord character)
 {
     this._character = character;
 }
예제 #16
0
        public static void CreateCharacter(Network.WorldClient client, string packet)
        {
            string[] data = packet.Substring(2).Split('|');
            if (!Helper.AccountHelper.ExistName(data[0]))
            {
                if (client.Account.Characters.Count < ConfigurationManager.GetIntValue("MaxCharacterPerServer"))
                {
                    if (data[0].Length > 4 && data[0].Length < 15 && HasValidNickname(data[0]) && int.Parse(data[1]) > 0 && int.Parse(data[1]) < 13 && int.Parse(data[2]) > -1 && int.Parse(data[2]) < 2)
                    {
                        Database.Records.CharacterRecord character = new Database.Records.CharacterRecord()
                        {
                            Nickname    = data[0],
                            Breed       = int.Parse(data[1]),
                            Gender      = int.Parse(data[2]),
                            Color1      = int.Parse(data[3]),
                            Color2      = int.Parse(data[4]),
                            Color3      = int.Parse(data[5]),
                            Scal        = ConfigurationManager.GetIntValue("StartScal"),
                            Kamas       = ConfigurationManager.GetIntValue("StartKamas"),
                            Direction   = ConfigurationManager.GetIntValue("StartDir"),
                            CaractPoint = (ConfigurationManager.GetIntValue("StartLevel") * ConfigurationManager.GetIntValue("RateCapitalPoints")) - 5,
                            SpellPoint  = (ConfigurationManager.GetIntValue("StartLevel") * ConfigurationManager.GetIntValue("RateSpellPoints")) - 1,
                            Owner       = client.Account.ID,
                        };

                        if (client.Account.Vip == 1)
                        {
                            character.Level = 1500;
                        }
                        else
                        {
                            character.Level = ConfigurationManager.GetIntValue("StartLevel");
                        }
                        character.Experience = Helper.ExpFloorHelper.GetCharactersLevelFloor(character.Level).Character;

                        if (Utilities.ConfigurationManager.GetBoolValue("EnableBreedsOriginalStartMap"))
                        {
                            Database.Records.OriginalBreedStartMapRecord originalMap = Helper.MapHelper.GetOriginalBreedStartMap(character.Breed);
                            character.MapID    = originalMap.MapID;
                            character.CellID   = originalMap.CellID;
                            character.SaveMap  = originalMap.MapID;
                            character.SaveCell = originalMap.CellID;
                        }
                        else
                        {
                            character.MapID    = ConfigurationManager.GetIntValue("StartMap");
                            character.CellID   = ConfigurationManager.GetIntValue("StartCell");
                            character.SaveMap  = ConfigurationManager.GetIntValue("StartMap");
                            character.SaveCell = ConfigurationManager.GetIntValue("StartCell");
                        }
                        character.FirstPlay = true;
                        character.Spells.LearnBaseSpell();
                        character.CurrentLife = character.Stats.MaxLife;
                        character.Look        = Helper.AccountHelper.GetDefaultLook(character);

                        /* Add character */
                        character.SaveAndFlush();
                        Database.Cache.CharacterCache.Cache.Add(character);
                        client.Account.Characters.Add(character);

                        Communication.Realm.Communicator.Server.MainRealm.SendMessage
                            (new Communication.Realm.Packet.PlayerCreatedCharacterMessage(character));

                        SendCharacterList(client, packet);
                        Utilities.ConsoleStyle.Infos("'" + client.Account.Username + "' has created the character '" + character.Nickname + "'");
                    }
                    else
                    {
                        client.Send("AAEe");
                    }
                }
            }
            else
            {
                client.Send("AAEa");
            }
        }