Exemplo n.º 1
0
        public ActionResult AttackCharacter(int?characterId)
        {
            if (characterId == null || characterId == Convert.ToInt32(SessionManager.GetCharacterId()))
            {
                FlashMessage.Danger("Erro: ", "Você não não pode atacar o seu próprio personagem!!!");
                return(RedirectToAction("Ranking", "Home"));
            }


            Character challenger = CharacterDAO.GetAllInformations(Convert.ToInt32(SessionManager.GetCharacterId()));
            Character challenged = CharacterDAO.GetAllInformations(characterId);


            Character winner = MakeCombat(challenger, challenged);

            GiveBonusFromCombat(winner);

            CharacterDAO.Update(GiveBonusFromCombat(winner));

            if (winner.CharacterId != Convert.ToInt32(SessionManager.GetCharacterId()))
            {
                FlashMessage.Danger(":/ ", "Você perdeu o combate, tente bater em alguém mais noob!!!");
                return(RedirectToAction("Ranking", "Home"));
            }

            return(RedirectToAction("IsCharacterEnvolved", "Characters"));
        }
Exemplo n.º 2
0
        private void GameEnter() //TODO move this to player class
        {
            CharacterChoosePacket ccp = (CharacterChoosePacket)ReadPacket(new CharacterChoosePacket());

            _log.Info(ccp.Index.ToString(CultureInfo.InvariantCulture));

            //TODO Save characters in class
            CharacterDAO chrMgr    = new CharacterDAO(Server.ServerInstance.Database);
            AccountDAO   accMgr    = new AccountDAO(Server.ServerInstance.Database);
            int          accountID = accMgr.GetAccountID(AccountName);

            Character[]         chars = chrMgr.GetCharactersByAccount(accountID);
            CharacterListPacket clp   = new CharacterListPacket(chars,
                                                                accMgr.GetAccountEmpire(accountID));


            //TODO Everything wrong down here

            //inventario ->
            SendPacket(new InventoryItemsPacket());

            //stats
            SendPacket(new CharacterStatsPacket(chars[ccp.Index])); //TODO Check index

            //unknown 1
            ReadBuffer(8);

            //entity spawn
            SendPacket(new EntitySpawnPacket(chars[ccp.Index]));

            LauncherNamePacket lnp = new LauncherNamePacket();

            ReadPacket(lnp);
        }
        public ActionResult BuyItem(int itemId)
        {
            int       characterId = Convert.ToInt32(SessionManager.GetCharacterId());
            Character character   = CharacterDAO.GetAllInformations(characterId);

            Item itemToBuy = ItemDAO.Get(itemId);

            if (character.Coins < itemToBuy.Price || character.Level < itemToBuy.RequiredLevel)
            {
                FlashMessage.Danger("Erro: ", "Você não possuí moedas suficientes para realizar a compra ou não tem level suficiente para adquirir o item");
                return(RedirectToAction("Market", "Home", null));
            }

            foreach (var itemInBag in character.Bag.ItemsInBag)
            {
                if (itemInBag.Item == null)
                {
                    character.Coins -= itemToBuy.Price;
                    itemInBag.Item   = itemToBuy;
                    CharacterDAO.Update(character);
                    return(RedirectToAction("Index", "Home", null));
                }
            }
            FlashMessage.Danger("Erro: ", "Você não possuí slots vazios na mochila para armazenar o item");
            return(RedirectToAction("Market", "Home", null));
        }
Exemplo n.º 4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="client"></param>
        /// <param name="character"></param>
        private void CharacterDeletionExecute(WorldClient client, CharacterDAO character)
        {
            if (!CharacterRepository.Instance.Delete(character))
            {
                client.Send(WorldMessage.CHARACTER_DELETION_ERROR());
                return;
            }

            if (character.Guild.GuildId != -1)
            {
                var guild = GuildManager.Instance.GetGuild(character.Guild.GuildId);
                guild.MemberKick(GuildManager.Instance.GetMember(character.Guild.GuildId, character.Id), character.Name);
            }

            InventoryItemRepository.Instance.EntityRemoved((int)EntityTypeEnum.TYPE_CHARACTER, character.Id);
            InventoryItemRepository.Instance.EntityRemoved((int)EntityTypeEnum.TYPE_MERCHANT, character.Id);
            CharacterWaypointRepository.Instance.RemoveAll(character.Id);

            CharacterGuildRepository.Instance.ImplicitDeletion(character.Guild);
            CharacterAlignmentRepository.Instance.ImplicitDeletion(character.Alignment);
            foreach (var job in CharacterJobRepository.Instance.GetByCharacterId(character.Id))
            {
                CharacterJobRepository.Instance.ImplicitDeletion(job);
            }

            client.Characters.Remove(character);

            client.Send(WorldMessage.CHARACTER_LIST(client.Characters));
        }
Exemplo n.º 5
0
        public ActionResult CharacterDetails(int?characterId)
        {
            if (characterId == null)
            {
                return(RedirectToAction("Ranking"));
            }

            return(View(CharacterDAO.GetAllInformations(characterId)));
        }
Exemplo n.º 6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="characterDAO"></param>
        /// <returns></returns>
        public MerchantEntity CreateMerchant(CharacterDAO characterDAO)
        {
            var merchant = new MerchantEntity(characterDAO);

            m_merchantById.Add(merchant.Id, merchant);
            m_merchantByName.Add(merchant.Name.ToLower(), merchant);
            m_merchantByAccount.Add(merchant.AccountId, merchant);
            return(merchant);
        }
Exemplo n.º 7
0
        private void SaveCharacter([FromSource] Player player, string firstName, string lastName)
        {
            Debug.WriteLine("Adding character " + firstName + " " + lastName);
            Character character = new Character(AccountManager.GetAccount(player).Id, firstName, lastName);

            Debug.WriteLine("getaccount good " + character.AccountId.ToString());
            CharacterDAO characterDAO = new CharacterDAO();

            character = characterDAO.SaveOrUpdate(character);
            player.TriggerEvent("createdCharacter", character.Id, character.FirstName, character.LastName);
        }
        /// <summary>
        /// Queries the database and retrieves all valid users that can then be added to the campaign
        /// </summary>
        private void InitUsers()
        {
            // Retrieve list of all users
            UserDAO userDAO = new UserDAO();

            validUsers = userDAO.GetAllUsers();

            // Retrieve list of user characters
            CharacterDAO characterDAO = new CharacterDAO();

            userCharacters = userDAO.GetUserCharacters(validUsers[0].ID);
        }
        /// <summary>
        /// Saves character to the user's account
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void BtnSave_Click(object sender, EventArgs e)
        {
            Character character = (Character)Session["character"];

            UserDAO userDAO = new UserDAO();
            User    user    = userDAO.GetUser(Context.User.Identity.Name);

            CharacterDAO characterDAO = new CharacterDAO();

            character.DbID = characterDAO.UploadCharacter(user.ID, character);

            Response.Redirect("~/Users/Characters/SeeAllCharacters.aspx?newCharacter=true");
        }
Exemplo n.º 10
0
        public ActionResult Index()
        {
            int  userId = Convert.ToInt32(SessionManager.GetUserId());
            User user   = UserDAO.Get(userId);

            if (user.Character == null)
            {
                return(View("GenerateCharacter"));
            }
            Character character = CharacterDAO.GetAllInformations(user.Character.CharacterId);

            return(View(character));
        }
Exemplo n.º 11
0
        private void ListCharactersForAccount([FromSource] Player player)
        {
            CharacterDAO             characterDAO   = new CharacterDAO();
            List <Character>         characters     = characterDAO.GetCharactersForAccount(AccountManager.GetAccount(player).Id);
            IList <IList <dynamic> > charactersList = new List <IList <dynamic> >();

            foreach (Character character in characters)
            {
                charactersList.Add(new List <dynamic> {
                    character.Id, character.FirstName, character.LastName
                });
            }
            player.TriggerEvent("listCharacters", charactersList);
        }
Exemplo n.º 12
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="character"></param>
 public GenericStats(CharacterDAO character)
 {
     m_effects.Add(EffectEnum.AddAP, new GenericEffect(EffectEnum.AddAP, character.Ap));
     m_effects.Add(EffectEnum.AddMP, new GenericEffect(EffectEnum.AddMP, character.Mp));
     m_effects.Add(EffectEnum.AddProspection, new GenericEffect(EffectEnum.AddProspection, ((CharacterBreedEnum)character.Breed == CharacterBreedEnum.BREED_ENUTROF ? 120 : 100)));
     m_effects.Add(EffectEnum.AddPods, new GenericEffect(EffectEnum.AddPods, 1000));
     m_effects.Add(EffectEnum.AddInvocationMax, new GenericEffect(EffectEnum.AddInvocationMax, 1));
     m_effects.Add(EffectEnum.AddInitiative, new GenericEffect(EffectEnum.AddInitiative, 100));
     m_effects.Add(EffectEnum.AddVitality, new GenericEffect(EffectEnum.AddVitality, character.Vitality));
     m_effects.Add(EffectEnum.AddWisdom, new GenericEffect(EffectEnum.AddWisdom, character.Wisdom));
     m_effects.Add(EffectEnum.AddStrength, new GenericEffect(EffectEnum.AddStrength, character.Strength));
     m_effects.Add(EffectEnum.AddIntelligence, new GenericEffect(EffectEnum.AddIntelligence, character.Intelligence));
     m_effects.Add(EffectEnum.AddAgility, new GenericEffect(EffectEnum.AddAgility, character.Agility));
     m_effects.Add(EffectEnum.AddChance, new GenericEffect(EffectEnum.AddChance, character.Chance));
 }
Exemplo n.º 13
0
        public ActionResult SellItem(int characterId, int itemInBagId)
        {
            Character character = CharacterDAO.GetAllInformations(characterId);
            ItemInBag itemInBag = ItemInBagDAO.Get(itemInBagId);

            character.Coins += itemInBag.Item.Price;
            CharacterDAO.Update(character);

            itemInBag.Equipped = false;
            itemInBag.Item     = null;

            ItemInBagDAO.Update(itemInBag);

            return(RedirectToAction("Index", "Home", null));
        }
Exemplo n.º 14
0
        private void ChangeCharacter([FromSource] Player player, int id)
        {
            CharacterDAO characterDAO = new CharacterDAO();
            Character    newCharacter = characterDAO.GetCharacterByIdAndAccountId(id, AccountManager.GetAccount(player).Id);

            if (newCharacter != null)
            {
                playerCharacters.Remove(player.Handle);
                playerCharacters.Add(player.Handle, newCharacter);
                player.TriggerEvent("changedCharacter", newCharacter.Id, newCharacter.FirstName, newCharacter.LastName);
            }
            else
            {
                player.TriggerEvent("errorMessage", "Unable to change to character with id " + id.ToString());
            }
        }
Exemplo n.º 15
0
        public ActionResult AddAttributePointToAnCharacter(int characterId, int attributeInCharacterId)
        {
            Character character = CharacterDAO.Get(characterId);

            if (character.AttributePoints > 0)
            {
                AttributeInCharacter attributeInCharacter = AttributeInCharacterDAO.Get(attributeInCharacterId);

                attributeInCharacter.ProficiencyPoints++;
                character.AttributePoints--;

                CharacterDAO.Update(character);
                AttributeInCharacterDAO.Update(attributeInCharacter);
            }
            return(RedirectToAction("Index", "Home", null));
        }
        private void Awake()
        {
            this.DatabaseName       = "GameCode.db";
            this.isCopyDataBaseMode = false;

            WeaponDAO    = new WeaponDAO(this);
            CharacterDAO = new CharacterDAO(this);

            try
            {
                base.Awake();
            }
            catch (Exception e)
            {
                Debug.LogError(e.Message);
            }
        }
Exemplo n.º 17
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="client"></param>
        /// <param name="record"></param>
        private void CharacterCreateExecute(WorldClient client, CharacterDAO record)
        {
            if (CharacterRepository.Instance.GetByName(record.Name) != null)
            {
                client.Send(WorldMessage.CHARACTER_CREATION_ERROR_NAME_ALREADY_EXISTS());
                return;
            }

            CharacterRepository.Instance.Insert(record);

            client.Characters.Add(record);

            WorldService.Instance.AddMessage(() =>
            {
                client.Send(WorldMessage.CHARACTER_CREATION_SUCCESS());
                client.Send(WorldMessage.CHARACTER_LIST(client.Characters));
            });
        }
Exemplo n.º 18
0
        public ActionResult IsCharacterEnvolved()
        {
            Character character = CharacterDAO.Get(Convert.ToInt32(SessionManager.GetCharacterId()));

            if (character.Experience >= character.Level * 10)
            {
                character.Level           += 1;
                character.Experience       = 0;
                character.Coins           += 10;
                character.LifePoints      += 5;
                character.AttributePoints += 1;
                CharacterDAO.Update(character);
                FlashMessage.Confirmation("Evolução ", "Parabéns, você passou de level!!!");
                return(RedirectToAction("Index", "Home"));
            }

            FlashMessage.Confirmation(":) ", "Parabéns, você ganhou esse duelo!!!");
            return(RedirectToAction("Ranking", "Home"));
        }
    void CharacterTest(MySqlConnection connection)
    {
        List <Character> characters = new List <Character>();

        characters.Add(new Character(2, "Dan the awesome", "male", 3));

        CharacterDAO.InsertCharacters(connection, characters);

        List <Character> characters2 = CharacterDAO.GetCharacters(connection);

        characters2[1].Title = "Dan";

        CharacterDAO.UpdateCharacters(connection, characters2);

        characters2 = CharacterDAO.GetCharacters(connection);

        CharacterDAO.DeleteCharacters(connection, characters);

        characters2 = CharacterDAO.GetCharacters(connection);
    }
Exemplo n.º 20
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="account"></param>
        /// <param name="characterDAO"></param>
        /// <returns></returns>
        public CharacterEntity CreateCharacter(AccountTicket account, CharacterDAO characterDAO)
        {
            // Uniquement 1 marchant par compte par serveur
            var merchant = GetMerchantByAccount(characterDAO.AccountId);

            if (merchant != null)
            {
                RemoveMerchant(merchant);
            }

            var character = new CharacterEntity(account, characterDAO);

            m_characterById.Add(character.Id, character);
            m_characterByName.Add(character.Name.ToLower(), character);
            m_characterByAccount.Add(character.AccountId, character);
            m_characterByNickname.Add(account.Pseudo.ToLower(), character);
            OnlinePlayers++;
            Logger.Info("EntityManager online players : " + OnlinePlayers);
            return(character);
        }
Exemplo n.º 21
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="client"></param>
        /// <param name="character"></param>
        public void CharacterSelectExecute(WorldClient client, CharacterDAO character)
        {
            client.FrameManager.RemoveFrame(CharacterSelectionFrame.Instance);

            client.CurrentCharacter = EntityManager.Instance.CreateCharacter(client.Account, character);

            WorldService.Instance.AddUpdatable(client.CurrentCharacter);

            client.CurrentCharacter.AddMessage(() =>
            {
                client.CurrentCharacter.FrameManager.AddFrame(QuestFrame.Instance);
                client.CurrentCharacter.FrameManager.AddFrame(BasicFrame.Instance);
                client.CurrentCharacter.FrameManager.AddFrame(SocialFrame.Instance);
                client.CurrentCharacter.FrameManager.AddFrame(SpellFrame.Instance);
                client.CurrentCharacter.FrameManager.AddFrame(GameCreationFrame.Instance);
                CharacterConnectSend(client);
                client.Account.LastConnectionTime = DateTime.Now;
                client.Account.LastConnectionIP   = client.Ip;
            });
        }
Exemplo n.º 22
0
        private void VerifyAuth()
        {
            GameAuthorizationPacket gap = (GameAuthorizationPacket)ReadPacket(new GameAuthorizationPacket());

            _log.Info(gap.Username);
            _log.Info(gap.SessionID.ToString(CultureInfo.InvariantCulture));
            if (AuthService.CheckSession(gap.Username, gap.SessionID))
            {
                AccountName = gap.Username;
                AuthService.SendSessionAction(gap.Username, SessionAction.Login);

                //TODO Save characters in class
                CharacterDAO        chrMgr    = new CharacterDAO(Server.ServerInstance.Database);
                AccountDAO          accMgr    = new AccountDAO(Server.ServerInstance.Database);
                int                 accountID = accMgr.GetAccountID(gap.Username);
                CharacterListPacket clp       = new CharacterListPacket(chrMgr.GetCharactersByAccount(accountID),
                                                                        accMgr.GetAccountEmpire(accountID));
                SendPacket(clp);
            }
            else
            {
                Disconnect("Invalid session");
            }
        }
Exemplo n.º 23
0
 public ActionResult Ranking()
 {
     return(View(CharacterDAO.GetAll()));
 }
Exemplo n.º 24
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="guild"></param>
 /// <param name="character"></param>
 public GuildMember(GuildInstance guild, CharacterDAO character)
 {
     m_character = character;
     TaxCollectorJoinedId = -1;
     Guild = guild;
 }
Exemplo n.º 25
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="power"></param>
 /// <param name="characterDAO"></param>
 public MerchantEntity(CharacterDAO characterDAO)
     : base(null, characterDAO, EntityTypeEnum.TYPE_MERCHANT)
 {
     Buyers = new List<CharacterEntity>();
 }
Exemplo n.º 26
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="power"></param>
 /// <param name="characterDAO"></param>
 public MerchantEntity(CharacterDAO characterDAO)
     : base(null, characterDAO, EntityTypeEnum.TYPE_MERCHANT)
 {
     Buyers = new List <CharacterEntity>();
 }
Exemplo n.º 27
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="guild"></param>
 /// <param name="character"></param>
 public GuildMember(GuildInstance guild, CharacterDAO character)
 {
     m_character          = character;
     TaxCollectorJoinedId = -1;
     Guild = guild;
 }
Exemplo n.º 28
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="client"></param>
        /// <param name="message"></param>
        private void HandleCharacterCreate(WorldClient client, string message)
        {
            if (client.Characters == null)
            {
                client.Send(WorldMessage.CHARACTER_CREATION_ERROR());
                return;
            }

            var infos = message.Substring(2).Split('|');

            if (infos.Length < 6)
            {
                client.Send(WorldMessage.CHARACTER_CREATION_ERROR());
                return;
            }

            var name = infos[0];

            byte breed = 0;

            if (!byte.TryParse(infos[1], out breed))
            {
                client.Send(WorldMessage.CHARACTER_CREATION_ERROR());
                return;
            }

            bool sex = infos[2] == "1";

            var color1 = -1;

            if (!int.TryParse(infos[3], out color1))
            {
                client.Send(WorldMessage.CHARACTER_CREATION_ERROR());
                return;
            }

            var color2 = -1;

            if (!int.TryParse(infos[4], out color2))
            {
                client.Send(WorldMessage.CHARACTER_CREATION_ERROR());
                return;
            }

            var color3 = -1;

            if (!int.TryParse(infos[5], out color3))
            {
                client.Send(WorldMessage.CHARACTER_CREATION_ERROR());
                return;
            }

            if (client.Characters.Count > 4)
            {
                client.Send(WorldMessage.CHARACTER_CREATION_ERROR_FULL());
                return;
            }

            if (!Enum.IsDefined(typeof(CharacterBreedEnum), breed))
            {
                client.Send(WorldMessage.CHARACTER_CREATION_ERROR());
                return;
            }

            if (color1 < -1 || color2 < -1 || color3 < -1)
            {
                client.Send(WorldMessage.CHARACTER_CREATION_ERROR());
                return;
            }

            WorldService.Instance.AddMessage(() =>
            {
                var character = new CharacterDAO()
                {
                    Id = CharacterRepository.Instance.NextCharacterId,

                    // global
                    AccountId  = client.Account.Id,
                    Name       = name,
                    Experience = 0,
                    Level      = WorldConfig.CHARACTER_CREATION_LEVEL,
                    MaxLevel   = WorldConfig.CHARACTER_CREATION_LEVEL,

                    // stats
                    Ap           = WorldConfig.CHARACTER_CREATION_AP,
                    Mp           = WorldConfig.CHARACTER_CREATION_MP,
                    Chance       = WorldConfig.CHARACTER_CREATION_CHANCE,
                    Intelligence = WorldConfig.CHARACTER_CREATION_INTELLIGENCE,
                    Agility      = WorldConfig.CHARACTER_CREATION_AGILITY,
                    Strength     = WorldConfig.CHARACTER_CREATION_STRENGTH,
                    Vitality     = WorldConfig.CHARACTER_CREATION_VITALITY,
                    Wisdom       = WorldConfig.CHARACTER_CREATION_WISDOM,
                    CaracPoint   = WorldConfig.CHARACTER_CREATION_CARACPOINT,
                    SpellPoint   = WorldConfig.CHARACTER_CREATION_SPELLPOINT,

                    // emotes
                    EmoteCapacity = WorldConfig.CHARACTER_CREATION_EMOTE_CAPACITY,

                    // life status
                    Life       = WorldConfig.CHARACTER_CREATION_LIFE,
                    Dead       = false,
                    DeathCount = 0,
                    Energy     = WorldConfig.CHARACTER_CREATION_ENERGY,

                    // position
                    MapId  = WorldConfig.GetStartMap((CharacterBreedEnum)breed),
                    CellId = WorldConfig.GetStartCell((CharacterBreedEnum)breed),

                    // restricts
                    Restriction = (int)PlayerRestrictionEnum.RESTRICTION_NEW_CHARACTER,

                    // skin and color,
                    Breed    = breed,
                    Color1   = color1,
                    Color2   = color2,
                    Color3   = color3,
                    Skin     = breed * 10 + (sex ? 1 : 0),
                    SkinSize = 100,
                    Sex      = sex,

                    TitleId     = 0,
                    TitleParams = "",
                    Merchant    = false,
                    SavedMapId  = WorldConfig.GetStartMap((CharacterBreedEnum)breed),
                    SavedCellId = WorldConfig.GetStartCell((CharacterBreedEnum)breed),
                    Kamas       = 0,
                };

                WorldService.Instance.AddMessage(() =>
                {
                    CharacterCreateExecute(client, character);
                });
            });
        }
Exemplo n.º 29
0
 public CharacterController()
 {
     requestCode = RequestCode.Character;
     mCharacter  = new CharacterDAO();
     mImgDao     = new ImgDAO();
 }
Exemplo n.º 30
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="character"></param>
 public GenericStats(CharacterDAO character)
 {
     m_effects.Add(EffectEnum.AddAP, new GenericEffect(EffectEnum.AddAP, character.Ap));
     m_effects.Add(EffectEnum.AddMP, new GenericEffect(EffectEnum.AddMP, character.Mp));
     m_effects.Add(EffectEnum.AddProspection, new GenericEffect(EffectEnum.AddProspection, ((CharacterBreedEnum)character.Breed == CharacterBreedEnum.BREED_ENUTROF ? 120 : 100)));
     m_effects.Add(EffectEnum.AddPods, new GenericEffect(EffectEnum.AddPods, 1000));
     m_effects.Add(EffectEnum.AddInvocationMax, new GenericEffect(EffectEnum.AddInvocationMax, 1));
     m_effects.Add(EffectEnum.AddInitiative, new GenericEffect(EffectEnum.AddInitiative, 100));
     m_effects.Add(EffectEnum.AddVitality, new GenericEffect(EffectEnum.AddVitality, character.Vitality));
     m_effects.Add(EffectEnum.AddWisdom, new GenericEffect(EffectEnum.AddWisdom, character.Wisdom));
     m_effects.Add(EffectEnum.AddStrength, new GenericEffect(EffectEnum.AddStrength, character.Strength));
     m_effects.Add(EffectEnum.AddIntelligence, new GenericEffect(EffectEnum.AddIntelligence, character.Intelligence));
     m_effects.Add(EffectEnum.AddAgility, new GenericEffect(EffectEnum.AddAgility, character.Agility));
     m_effects.Add(EffectEnum.AddChance, new GenericEffect(EffectEnum.AddChance, character.Chance));
 }
Exemplo n.º 31
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="account"></param>
        /// <param name="characterDAO"></param>
        /// <param name="type"></param>
        public CharacterEntity(AccountTicket account, CharacterDAO characterDAO, EntityTypeEnum type = EntityTypeEnum.TYPE_CHARACTER)
            : base(type, characterDAO.Id)
        {
            m_lastRegenTime = -1;
            m_lastEmoteId = -1;

            Away = false;
            DatabaseRecord = characterDAO;
            Alignment = characterDAO.Alignment;

            Account = account;
            PartyId = -1;
            PartyInvitedPlayerId = -1;
            PartyInviterPlayerId = -1;
            GuildInvitedPlayerId = -1;
            GuildInviterPlayerId = -1;
            NotifyOnFriendConnection = true;

            Quests = new List<CharacterQuest>(characterDAO.Quests.Select(record => new CharacterQuest(this, record)));

            CharacterJobs = new JobBook(this);
            Statistics = new GenericStats(characterDAO);
            SpellBook = SpellBookFactory.Instance.Create(this);
            Waypoints = CharacterWaypointRepository.Instance.GetByCharacterId(Id);
            FrameManager = new FrameManager<CharacterEntity, string>(this);
            Inventory = new CharacterInventory(this);
            Bank = BankManager.Instance.GetBankByAccountId(AccountId);
            PersonalShop = new PersistentInventory((int)EntityTypeEnum.TYPE_MERCHANT, Id);
            Relations = SocialRelationRepository.Instance.GetByAccountId(AccountId);

            var guildMember = GuildManager.Instance.GetMember(characterDAO.Guild.GuildId, Id);
            if (guildMember != null)
                if (type == EntityTypeEnum.TYPE_CHARACTER)
                    guildMember.CharacterConnected(this);
                else
                    SetCharacterGuild(guildMember); // Merchant

            SetChatChannel(ChatChannelEnum.CHANNEL_GUILD, () => DispatchGuildMessage);
            SetChatChannel(ChatChannelEnum.CHANNEL_GROUP, () => DispatchPartyMessage);

            RefreshPersonalShopTaxe();
            CheckRestrictions();
            LoadEquippedMount();
        }
Exemplo n.º 32
0
        internal static Character Create(string accountName, CharacterCreatePacket characterCreatePacket)
        {
            CharacterDAO chrMgr = new CharacterDAO(Server.ServerInstance.Database);

            return(chrMgr.CreateNewCharacter(characterCreatePacket, accountName)); // Cosa fare con OnCreate()?
        }