Exemplo n.º 1
0
        public override void Open()
        {
            base.Open();

            ContextRoleplayHandler.SendNpcDialogQuestionMessage(Character.Client, CurrentMessage, CurrentMessage == NpcBank.Message ?
                                                                new[] { NpcBank.ReplyInfos, NpcBank.ReplyConsult } : new[] { NpcBank.ReplyInfos }, Character.Bank.GetAccessPrice().ToString());
        }
Exemplo n.º 2
0
        public override void Execute(TriggerBase trigger)
        {
            var target   = GetTarget(trigger);
            var template = trigger.Get <SpellTemplate>("spell");
            var level    = trigger.Get <int>("level");

            var spell = target.Spells.GetSpell(template.Id);

            if (spell == null)
            {
                trigger.ReplyError("Spell {0} not found", trigger.Bold(spell));
                return;
            }

            if (!spell.ByLevel.ContainsKey(level))
            {
                trigger.ReplyError("Level {0} not found. Give a level between {1} and {2}", trigger.Bold(level),
                                   trigger.Bold(spell.ByLevel.Keys.Min()), trigger.Bold(spell.ByLevel.Keys.Max()));
                return;
            }

            spell.CurrentLevel = (byte)level;
            trigger.ReplyBold("{0}'s spell {1} is now level {2}", target, spell.Template.Name, level);

            ContextRoleplayHandler.SendSpellModifySuccessMessage(target.Client, spell);
        }
Exemplo n.º 3
0
        private void OnReady(Trader trader, bool isready)
        {
            InventoryHandler.SendExchangeIsReadyMessage(Crafter.Character.Client,
                                                        trader, isready);
            InventoryHandler.SendExchangeIsReadyMessage(Receiver.Character.Client,
                                                        trader, isready);

            if (Receiver.Kamas > Receiver.Character.Inventory.Kamas)
            {
                InventoryHandler.SendExchangeCraftResultMessage(Clients, ExchangeCraftResultEnum.CRAFT_FAILED);

                FirstTrader.ToggleReady(false);
                SecondTrader.ToggleReady(false);

                return;
            }

            if (Crafter.ReadyToApply && Receiver.ReadyToApply)
            {
                Craft();

                Crafter.Character.Inventory.AddKamas(-Receiver.Character.Inventory.SubKamas((int)Receiver.Kamas));
                Receiver.SetKamas(0);

                ContextRoleplayHandler.SendJobExperienceOtherPlayerUpdateMessage(Receiver.Character.Client, Crafter.Character, Job);

                FirstTrader.ToggleReady(false);
                SecondTrader.ToggleReady(false);
            }
        }
Exemplo n.º 4
0
        public override void Reply(short replyId)
        {
            if (replyId == NpcBank.ReplyConsult)
            {
                var accessPrice = Character.Bank.GetAccessPrice();

                if (Character.Kamas < accessPrice)
                {
                    Character.SendInformationMessage(TextInformationTypeEnum.TEXT_INFORMATION_ERROR, 82);
                }
                else
                {
                    Character.Inventory.SubKamas(accessPrice);

                    var dialog = new BankDialog(Character);
                    dialog.Open();
                }

                Close();
            }
            else if (replyId == NpcBank.ReplyInfos)
            {
                CurrentMessage = NpcBank.InfosMessage;
                ContextRoleplayHandler.SendNpcDialogQuestionMessage(Character.Client, CurrentMessage, new short[0]);
            }
            else
            {
                Close();
            }
        }
Exemplo n.º 5
0
        public int DowngradeSpell(CharacterSpell spell, bool send = true)
        {
            if (!HasSpell(spell.Id))
            {
                return(0);
            }

            if (spell.CurrentLevel <= 1)
            {
                return(0);
            }

            spell.CurrentLevel -= 1;
            Owner.SpellsPoints += spell.CurrentLevel;

            if (!send)
            {
                return(spell.CurrentLevel);
            }

            InventoryHandler.SendSpellListMessage(Owner.Client, true);
            ContextRoleplayHandler.SendSpellModifySuccessMessage(Owner.Client, spell);

            Owner.RefreshStats();

            return(spell.CurrentLevel);
        }
Exemplo n.º 6
0
        public static void SelectCharacter(Client client, int id)
        {
            CharacterRecord characterRecord = client.Account.Characters.FirstOrDefault(character => character.Id == id);

            if (characterRecord != null)
            {
                CharacterEngine character = new CharacterEngine(characterRecord, client);
                client.Character = character;
                client.Send(new CharacterSelectedSuccessMessage(character.GetCharacterBaseInformations));
                ContextRoleplayHandler.SendEmoteListMessage(client, new sbyte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 19, 21, 22, 23, 24 });
                ChatHandler.SendEnabledChannelsMessage(client, new sbyte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 });
                InventoryHandler.SendInventoryContentMessage(client, new ObjectItem[0], character.Kamas); //TODO Get the characters items
                InventoryHandler.SendInventoryWeightMessage(client, 0, character.MaxPods);
                InventoryHandler.SendSpellListMessage(client);
                PvPHandler.SendAlignmentRankUpdateMessage(client, 1);
                PvPHandler.SendAlignmentSubAreasListMessage(client);
                SendSetCharacterRestrictionsMessage(client);
                SendLifePointsRegenBeginMessage(client, 10);
                SendCharacterStatsListMessage(client);
                client.Character.SendLoginMessage();

                /*if (tutorial == true)
                 * {
                 *  character.CurrentMapId = 35651584; //mapid of the tutorial map
                 *  character.CellId = 324;
                 *  client.Send(new QuestStartedMessage(489)); //start the tutorial quest
                 * }*/
            }
            else
            {
                client.Send(new CharacterSelectedErrorMessage());
            }
        }
Exemplo n.º 7
0
        protected override void OnAccept()
        {
            ContextRoleplayHandler.SendGameRolePlayPlayerFightFriendlyAnsweredMessage(base.Source.Client, base.Target, base.Source, base.Target, true);
            Fight fight = Singleton <FightManager> .Instance.CreateDuel(base.Source.Map);

            fight.BlueTeam.AddFighter(base.Source.CreateFighter(fight.BlueTeam));
            fight.RedTeam.AddFighter(base.Target.CreateFighter(fight.RedTeam));
            fight.StartPlacement();
        }
Exemplo n.º 8
0
        public override void Open()
        {
            base.Open();

            ContextRoleplayHandler.SendNpcDialogQuestionMessage(Character.Client, CurrentMessage,
                                                                Character.Level >= 200
                                                                    ? new[] { PrestigeNpc.ReplyPrestigeAcceptId, PrestigeNpc.ReplyPrestigeDenyId }
                                                                    : new short[0]);
        }
Exemplo n.º 9
0
 public virtual void ChangeMessage(NpcMessage message)
 {
     this.CurrentMessage = message;
     System.Collections.Generic.IEnumerable <short> replies = (
         from entry in message.Replies
         where entry.CriteriaExpression == null || entry.CriteriaExpression.Eval(this.Character)
         select(short) entry.ReplyId).Distinct <short>();
     ContextRoleplayHandler.SendNpcDialogQuestionMessage(this.Character.Client, this.CurrentMessage, replies, new string[0]);
 }
Exemplo n.º 10
0
Arquivo: Job.cs Projeto: Mixi59/Stump
        private void OnLevelChanged(int lastLevel, int newLevel)
        {
            ContextRoleplayHandler.SendJobLevelUpMessage(Owner.Client, this);
            var sumLevel = Owner.Jobs.Sum(x => x.Level);
            var diff     = newLevel - lastLevel;

            var weightBonus = JobManager.Instance.GetWeightBonus(sumLevel - diff, sumLevel);

            Owner.Stats[PlayerFields.Weight].Base += weightBonus;
        }
Exemplo n.º 11
0
        public virtual void ChangeMessage(NpcMessage message)
        {
            CurrentMessage = message;

            var replies = message.Replies.
                          Where(entry => entry.CanShow(Npc, Character)).
                          Select(entry => (short)entry.ReplyId).Distinct();

            ContextRoleplayHandler.SendNpcDialogQuestionMessage(Character.Client, CurrentMessage, replies);
        }
Exemplo n.º 12
0
        public CharacterSpell LearnSpell(SpellTemplate template)
        {
            var record = SpellManager.Instance.CreateSpellRecord(Owner.Record, template);

            var spell = new CharacterSpell(record);

            m_spells.Add(spell.Id, spell);

            ContextRoleplayHandler.SendSpellModifySuccessMessage(Owner.Client, spell);

            return(spell);
        }
Exemplo n.º 13
0
        public override void Open()
        {
            base.Open();

            ContextRoleplayHandler.SendNpcDialogQuestionMessage(Character.Client, CurrentMessage,
                                                                Character.AlignmentSide !=
                                                                AlignmentSideEnum.ALIGNMENT_NEUTRAL
                                                                    ? new[] { NpcAlignement.ReplyBecomeNeutre }
                                                                    : new[]
            {
                NpcAlignement.ReplyBecomeAngel,
                NpcAlignement.ReplyBecomeEvil
            });
        }
Exemplo n.º 14
0
        private void OnReady(Trader trader, bool isready)
        {
            InventoryHandler.SendExchangeIsReadyMessage(Crafter.Character.Client,
                                                        trader, isready);
            InventoryHandler.SendExchangeIsReadyMessage(Receiver.Character.Client,
                                                        trader, isready);

            if (Receiver.Kamas > Receiver.Character.Inventory.Kamas)
            {
                InventoryHandler.SendExchangeCraftResultMessage(Clients, ExchangeCraftResultEnum.CRAFT_FAILED);
                return;
            }

            if (Crafter.ReadyToApply && Receiver.ReadyToApply)
            {
                ApplyAllRunes();

                if (Receiver.Kamas > 0)
                {
                    Crafter.Character.Inventory.AddKamas(-Receiver.Character.Inventory.SubKamas((int)Receiver.Kamas));
                    Receiver.SetKamas(0);
                }

                ContextRoleplayHandler.SendJobExperienceOtherPlayerUpdateMessage(Receiver.Character.Client, Crafter.Character, Job);
            }

            else if (trader == Receiver && !isready) // stop the trade
            {
                foreach (var item in Crafter.Items.OfType <PlayerTradeItem>().ToArray())
                {
                    if (Crafter.Character == item.Owner)
                    {
                        Crafter.MoveItemToInventory(item, 0);
                    }
                    else if (item.Owner == Receiver.Character)
                    {
                        RuneCrafter.MoveItemFromBag(item.PlayerItem, Receiver, 0);
                    }
                }

                /*
                 * if (Rune != null && Rune.Trader == Receiver)
                 *  Rune.Trader.MoveItem(Rune.Guid, (int) -Rune.Stack);
                 *
                 * var itemToImprove = ItemToImprove;
                 * Crafter.MoveItem(itemToImprove.Guid, (int) -itemToImprove.Stack);
                 * Receiver.MoveItem(itemToImprove.Guid, (int) itemToImprove.Stack);*/
            }
        }
Exemplo n.º 15
0
        public void Enter(WorldObject obj)
        {
            foreach (SimpleClient client in Clients)
            {
                ContextRoleplayHandler.SendSnapshotMessage(client, new Snapshot[] { new AddObjectSnapshot(obj.GetObjectType()) });
            }

            if (obj is Character)
            {
                Clients.Add((obj as Character).Client);
            }

            Objects.Add(obj);
            obj.Position.Map = this;
        }
Exemplo n.º 16
0
        public static void HandleGameRolePlayPlayerFightRequestMessage(WorldClient client, GameRolePlayPlayerFightRequestMessage message)
        {
            var target = client.Character.Map.GetActor <Character>((int)message.targetId);

            if (target == null)
            {
                return;
            }

            if (message.friendly)
            {
                var reason = client.Character.CanRequestFight(target);
                if (reason != FighterRefusedReasonEnum.FIGHTER_ACCEPTED)
                {
                    SendChallengeFightJoinRefusedMessage(client, client.Character, reason);
                }
                else
                {
                    var fightRequest = new FightRequest(client.Character, target);
                    fightRequest.Open();
                }
            }
            else // agression
            {
                var reason = client.Character.CanAgress(target);
                if (reason != FighterRefusedReasonEnum.FIGHTER_ACCEPTED)
                {
                    SendChallengeFightJoinRefusedMessage(client, client.Character, reason);
                }
                else
                {
                    foreach (var character in target.Map.GetAllCharacters().Where(x => x != target && x != client.Character))
                    {
                        ContextRoleplayHandler.SendGameRolePlayAggressionMessage(character.Client, client.Character, target);
                    }
                    //<b>%1</b> agresse <b>%2</b>

                    var fight = FightManager.Instance.CreateAgressionFight(target.Map,
                                                                           client.Character.AlignmentSide, target.AlignmentSide);

                    fight.ChallengersTeam.AddFighter(client.Character.CreateFighter(fight.ChallengersTeam));
                    fight.DefendersTeam.AddFighter(target.CreateFighter(fight.DefendersTeam));

                    fight.StartPlacement();
                }
            }
        }
Exemplo n.º 17
0
        protected override void OnAccept()
        {
            if (Source.Map != Target.Map)
            {
                ContextRoleplayHandler.SendGameRolePlayPlayerFightFriendlyAnsweredMessage(Source.Client, Target, Source, Target, false);
                return;
            }

            ContextRoleplayHandler.SendGameRolePlayPlayerFightFriendlyAnsweredMessage(Source.Client, Target, Source, Target, true);

            var fight = FightManager.Instance.CreateDuel(Source.Map);

            fight.DefendersTeam.AddFighter(Source.CreateFighter(fight.DefendersTeam));
            fight.ChallengersTeam.AddFighter(Target.CreateFighter(fight.ChallengersTeam));

            fight.StartPlacement();
        }
Exemplo n.º 18
0
        public static void HandleGameFightSpectatePlayerRequestMessage(WorldClient client, GameFightSpectatePlayerRequestMessage message)
        {
            if (client.Character.IsFighting())
            {
                return;
            }

            var player = World.Instance.GetCharacter((int)message.playerId);

            if (player == null)
            {
                return;
            }

            if (!client.Character.FriendsBook.IsFriend(player.Account.Id) && !client.Character.Guild.Members.Any(x => x.Character?.Id == player.Id))
            {
                return;
            }

            if (!player.IsFighting())
            {
                SendChallengeFightJoinRefusedMessage(client, client.Character, FighterRefusedReasonEnum.TOO_LATE);
                return;
            }

            var fight = FightManager.Instance.GetFight(player.Fight.Id);

            if (fight == null)
            {
                SendChallengeFightJoinRefusedMessage(client, client.Character, FighterRefusedReasonEnum.TOO_LATE);
                return;
            }

            if (!fight.IsStarted)
            {
                return;
            }

            if (!fight.CanSpectatorJoin(client.Character) || client.Character.IsInFight())
            {
                return;
            }

            ContextRoleplayHandler.SendCurrentMapMessage(client, fight.Map.Id);
            fight.AddSpectator(client.Character.CreateSpectator(fight));
        }
Exemplo n.º 19
0
        public void Open()
        {
            InventoryHandler.SendExchangeStartOkMulticraftCrafterMessage(Crafter.Character.Client, Skill.SkillTemplate);
            InventoryHandler.SendExchangeStartOkMulticraftCustomerMessage(Receiver.Character.Client, Skill.SkillTemplate, Job);

            ContextRoleplayHandler.SendJobExperienceOtherPlayerUpdateMessage(Receiver.Character.Client, Crafter.Character, Job);

            Crafter.Character.SetDialoger(Crafter);
            Receiver.Character.SetDialoger(Receiver);

            Crafter.ItemMoved  += OnItemMoved;
            Receiver.ItemMoved += OnItemMoved;

            Crafter.ReadyStatusChanged  += OnReady;
            Receiver.ReadyStatusChanged += OnReady;

            Receiver.KamasChanged += OnKamasChanged;
        }
Exemplo n.º 20
0
        public bool CanBoostSpell(Spell spell, ushort level, bool send = true)
        {
            if (Owner.IsFighting())
            {
                if (send)
                {
                    ContextRoleplayHandler.SendSpellModifyFailureMessage(Owner.Client);
                }

                return(false);
            }

            if (spell.CurrentLevel == level || level > 6)
            {
                if (send)
                {
                    ContextRoleplayHandler.SendSpellModifyFailureMessage(Owner.Client);
                }

                return(false);
            }

            if (Owner.SpellsPoints < CalculateSpellPoints(level, spell.CurrentLevel))
            {
                if (send)
                {
                    ContextRoleplayHandler.SendSpellModifyFailureMessage(Owner.Client);
                }

                return(false);
            }

            if (spell.ByLevel[level].MinPlayerLevel > Owner.Level)
            {
                if (send)
                {
                    ContextRoleplayHandler.SendSpellModifyFailureMessage(Owner.Client);
                }

                return(false);
            }

            return(true);
        }
        public static void CommonCharacterBasicInformations(WorldClient client)
        {
            CharacterHandler.SendCharacterSelectedSuccessMessage(client);
            ContextHandler.SendNotificationListMessage(client, new int[] { 2147483647 });
            InventoryHandler.SendInventoryContentMessage(client);
            ShortcutHandler.SendShortcutBarContentMessage(client, ShortcutBarEnum.GENERAL_SHORTCUT_BAR);
            ShortcutHandler.SendShortcutBarContentMessage(client, ShortcutBarEnum.SPELL_SHORTCUT_BAR);
            ContextRoleplayHandler.SendEmoteListMessage(client, (
                                                            from entry in Enumerable.Range(0, 21)
                                                            select(byte) entry).ToList <byte>());

            PvPHandler.SendAlignmentRankUpdateMessage(client);
            if (client.Character.Guild != null)
            {
                GuildHandler.SendGuildMembershipMessage(client, client.Character.GuildMember);
                GuildHandler.SendGuildInformationsGeneralMessage(client, client.Character.Guild);
                GuildHandler.SendGuildInformationsMembersMessage(client, client.Character.Guild);
                if (client.Character.Guild.Alliance != null)
                {
                    AllianceHandler.SendAllianceMembershipMessage(client, client.Character.Guild.Alliance);
                    AllianceHandler.SendAllianceInsiderInfoMessage(client, client.Character.Guild.Alliance);
                }
            }
            ChatHandler.SendEnabledChannelsMessage(client, new sbyte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13 }, new sbyte[0]);
            InventoryHandler.SendSpellListMessage(client, true);
            InitializationHandler.SendSetCharacterRestrictionsMessage(client);
            InventoryHandler.SendInventoryWeightMessage(client);
            FriendHandler.SendFriendWarnOnConnectionStateMessage(client, client.Character.FriendsBook.WarnOnConnection);
            FriendHandler.SendFriendWarnOnLevelGainStateMessage(client, client.Character.FriendsBook.WarnOnLevel);
            GuildHandler.SendGuildMemberWarnOnConnectionStateMessage(client, client.Character.WarnOnGuildConnection);
            AchievementHandler.SendAchievementListMessage(client, client.Character.Record.FinishedAchievements, client.Character.Achievement.GetRewardableAchievements());
            client.Character.SendConnectionMessages();
            ContextRoleplayHandler.SendGameRolePlayArenaUpdatePlayerInfosMessage(client);
            CharacterHandler.SendCharacterCapabilitiesMessage(client);

            client.WorldAccount.LastConnection     = new System.DateTime?(System.DateTime.Now);
            client.WorldAccount.LastIp             = client.IP;
            client.WorldAccount.ConnectedCharacter = new int?(client.Character.Id);

            client.Character.Record.LastUsage = new System.DateTime?(System.DateTime.Now);
            ServerBase <WorldServer> .Instance.DBAccessor.Database.Update(client.WorldAccount);

            ServerBase <WorldServer> .Instance.DBAccessor.Database.Update(client.Character.Record);
        }
Exemplo n.º 22
0
        public void Leave(WorldObject obj)
        {
            if (!Objects.Contains(obj))
            {
                return;
            }

            if (obj is Character)
            {
                Clients.Remove((obj as Character).Client);
            }

            Objects.Remove(obj);

            foreach (SimpleClient client in Clients)
            {
                ContextRoleplayHandler.SendSnapshotMessage(client, new Snapshot[] { new RemoveObjectSnapshot((uint)obj.GetHashCode()) });
            }
        }
Exemplo n.º 23
0
        public override void ExecuteRemove(TriggerBase trigger)
        {
            var gameTrigger = trigger as GameTrigger;
            var character   = gameTrigger != null ? gameTrigger.Character : null;

            if (character == null)
            {
                return;
            }

            var elementId   = trigger.Get <int>("elementId");
            var mapSrc      = character.Map;
            var interactive = InteractiveManager.Instance.GetOneSpawn(x => x.MapId == mapSrc.Id && x.Id == elementId);

            WorldServer.Instance.IOTaskPool.AddMessage(() =>
            {
                InteractiveManager.Instance.RemoveInteractiveSpawn(interactive);
                ContextRoleplayHandler.SendMapComplementaryInformationsDataMessage(character.Client);
            });
            trigger.ReplyBold("Delete Interactive {0} on map {1}", elementId, mapSrc.Id);
        }
Exemplo n.º 24
0
        public bool BoostSpell(int id, ushort level)
        {
            var spell = GetSpell(id);

            if (spell == null)
            {
                ContextRoleplayHandler.SendSpellModifyFailureMessage(Owner.Client);
                return(false);
            }

            if (!CanBoostSpell(spell, level))
            {
                return(false);
            }

            Owner.SpellsPoints -= (ushort)CalculateSpellPoints(level, spell.CurrentLevel);
            spell.CurrentLevel  = (byte)level;

            ContextRoleplayHandler.SendSpellModifySuccessMessage(Owner.Client, spell);

            return(true);
        }
Exemplo n.º 25
0
 public virtual void Open()
 {
     Character.SetDialog(this);
     ContextRoleplayHandler.SendNpcDialogCreationMessage(Character.Client, Npc);
 }
Exemplo n.º 26
0
        public static void HandleGameFightJoinRequestMessage(WorldClient client, GameFightJoinRequestMessage message)
        {
            if (client.Character.IsFighting())
            {
                return;
            }

            var fight = FightManager.Instance.GetFight(message.fightId);

            if (fight == null)
            {
                SendChallengeFightJoinRefusedMessage(client, client.Character, FighterRefusedReasonEnum.TOO_LATE);
                return;
            }

            if (client.Character.Map.Id != ArenaManager.KolizeumMapId && fight.Map != client.Character.Map)
            {
                SendChallengeFightJoinRefusedMessage(client, client.Character, FighterRefusedReasonEnum.WRONG_MAP);
                return;
            }

            if (message.fighterId == 0 && fight.CanSpectatorJoin(client.Character) && !client.Character.IsInFight())
            {
                if (client.Character.Map.Id == ArenaManager.KolizeumMapId)
                {
                    ContextRoleplayHandler.SendCurrentMapMessage(client, fight.Map.Id);
                }

                fight.AddSpectator(client.Character.CreateSpectator(fight));
            }

            if (fight.IsStarted)
            {
                return;
            }

            FightTeam team;

            if (fight.ChallengersTeam.Leader.Id == message.fighterId)
            {
                team = fight.ChallengersTeam;
            }
            else if (fight.DefendersTeam.Leader.Id == message.fighterId)
            {
                team = fight.DefendersTeam;
            }
            else
            {
                SendChallengeFightJoinRefusedMessage(client, client.Character, FighterRefusedReasonEnum.WRONG_MAP);
                return;
            }

            FighterRefusedReasonEnum error;

            if ((error = team.CanJoin(client.Character)) != FighterRefusedReasonEnum.FIGHTER_ACCEPTED)
            {
                SendChallengeFightJoinRefusedMessage(client, client.Character, error);
            }
            else
            {
                team.AddFighter(client.Character.CreateFighter(team));
            }
        }
Exemplo n.º 27
0
        public static void CommonCharacterSelection(WorldClient client, CharacterRecord character)
        {
            if (character.IsDeleted)
            {
                return;
            }

            // Check if we also have a world account
            if (client.WorldAccount == null)
            {
                var account = AccountManager.Instance.FindById(client.Account.Id) ??
                              AccountManager.Instance.CreateWorldAccount(client);
                client.WorldAccount = account;
            }

            // update tokens
            if (client.WorldAccount.Tokens + client.WorldAccount.NewTokens <= 0)
            {
                client.WorldAccount.Tokens = 0;
            }
            else
            {
                client.WorldAccount.Tokens += client.WorldAccount.NewTokens;
            }

            client.WorldAccount.NewTokens = 0;

            client.Character = new Character(character, client);
            client.Character.LoadRecord();

            ContextHandler.SendNotificationListMessage(client, new[] { 0x7FFFFFFF });
            BasicHandler.SendBasicTimeMessage(client);

            SendCharacterSelectedSuccessMessage(client);

            if (client.Character.Inventory.Presets.Any())
            {
                InventoryHandler.SendInventoryContentAndPresetMessage(client);
            }
            else
            {
                InventoryHandler.SendInventoryContentMessage(client);
            }

            ShortcutHandler.SendShortcutBarContentMessage(client, ShortcutBarEnum.GENERAL_SHORTCUT_BAR);

            ContextRoleplayHandler.SendEmoteListMessage(client, client.Character.Emotes.Select(x => (byte)x));

            // Jobs
            ContextRoleplayHandler.SendJobDescriptionMessage(client, client.Character);
            ContextRoleplayHandler.SendJobExperienceMultiUpdateMessage(client, client.Character);
            ContextRoleplayHandler.SendJobCrafterDirectorySettingsMessage(client, client.Character);

            PvPHandler.SendAlignmentRankUpdateMessage(client, client.Character);

            ChatHandler.SendEnabledChannelsMessage(client, new sbyte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13 }, new sbyte[] { });
            ChatHandler.SendChatSmileyExtraPackListMessage(client, client.Character.SmileyPacks.ToArray());

            InventoryHandler.SendSpellListMessage(client, true);
            ShortcutHandler.SendShortcutBarContentMessage(client, ShortcutBarEnum.SPELL_SHORTCUT_BAR);

            InitializationHandler.SendSetCharacterRestrictionsMessage(client, client.Character);

            InventoryHandler.SendInventoryWeightMessage(client);

            FriendHandler.SendFriendWarnOnConnectionStateMessage(client, client.Character.FriendsBook.WarnOnConnection);
            FriendHandler.SendFriendWarnOnLevelGainStateMessage(client, client.Character.FriendsBook.WarnOnLevel);
            GuildHandler.SendGuildMemberWarnOnConnectionStateMessage(client, client.Character.WarnOnGuildConnection);

            //Guild
            if (client.Character.GuildMember != null)
            {
                GuildHandler.SendGuildMembershipMessage(client, client.Character.GuildMember);
            }

            //Mount
            if (client.Character.EquippedMount != null)
            {
                MountHandler.SendMountSetMessage(client, client.Character.EquippedMount.GetMountClientData());
                MountHandler.SendMountXpRatioMessage(client, client.Character.EquippedMount.GivenExperience);

                if (client.Character.IsRiding)
                {
                    MountHandler.SendMountRidingMessage(client, client.Character.IsRiding);
                }
            }

            client.Character.SendConnectionMessages();

            //Don't know why ?
            ActionsHandler.SendSequenceNumberRequestMessage(client);

            //Start Cinematic
            if ((DateTime.Now - client.Character.Record.CreationDate).TotalSeconds <= 30)
            {
                BasicHandler.SendCinematicMessage(client, 10);
            }

            ContextRoleplayHandler.SendGameRolePlayArenaUpdatePlayerInfosMessage(client, client.Character);

            SendCharacterCapabilitiesMessage(client);

            ContextRoleplayHandler.SendAlmanachCalendarDateMessage(client);

            //Loading complete
            SendCharacterLoadingCompleteMessage(client);

            BasicHandler.SendServerExperienceModificatorMessage(client);

            // Update LastConnection and Last Ip
            client.WorldAccount.LastConnection     = DateTime.Now;
            client.WorldAccount.LastIp             = client.IP;
            client.WorldAccount.ConnectedCharacter = character.Id;

            WorldServer.Instance.DBAccessor.Database.Execute(string.Format(WorldAccountRelator.UpdateNewTokens, 0));
            WorldServer.Instance.DBAccessor.Database.Update(client.WorldAccount);
        }
Exemplo n.º 28
0
        public override void Open()
        {
            base.Open();

            ContextRoleplayHandler.SendNpcDialogQuestionMessage(Character.Client, CurrentMessage, new[] { (short)NpcDofus.ReplyId });
        }
Exemplo n.º 29
0
 protected override void OnOpen()
 {
     ContextRoleplayHandler.SendGameRolePlayPlayerFightFriendlyRequestedMessage(Source.Client, Target, Source, Target);
     ContextRoleplayHandler.SendGameRolePlayPlayerFightFriendlyRequestedMessage(Target.Client, Source, Source, Target);
 }
Exemplo n.º 30
0
 protected override void OnCancel()
 {
     ContextRoleplayHandler.
     SendGameRolePlayPlayerFightFriendlyAnsweredMessage(Target.Client, Source, Source, Target, false);
 }