public static void HandleWorldPortAck(IRealmClient client, RealmPacketIn packet) { client.TickCount = 0; var chr = client.ActiveCharacter; if (chr != null && chr.Map != null) { var zone = chr.Map.GetZone(chr.Position.X, chr.Position.Y); if (zone != null) { chr.SetZone(zone); } else { chr.SetZone(chr.Map.DefaultZone); } // resend some initial packets CharacterHandler.SendBindUpdate(chr, chr.BindLocation); CharacterHandler.SendTickQuery(client); SpellHandler.SendSpellsAndCooldowns(chr); CharacterHandler.SendActionButtons(chr); FactionHandler.SendFactionList(chr); CharacterHandler.SendTimeSpeed(chr); AuraHandler.SendAllAuras(chr); // SMSG_SET_PHASE_SHIFT // SMSG_PARTY_MEMBER_STATS // MSG_BATTLEGROUND_PLAYER_POSITIONS } }
/// <summary> /// Sends yet unknown information about a new object, /// such as Aura packets /// </summary> /// <param name="obj"></param> private void SendUnknownState(WorldObject obj) { if (obj is Unit) { var unit = (Unit)obj; if (unit.Auras.VisibleAuraCount > 0) { AuraHandler.SendAllAuras(this, unit); } } }
/// <summary> /// Called within Map Context. /// Sends initial packets /// </summary> private void OnLogin() { InstanceHandler.SendDungeonDifficulty(this); CharacterHandler.SendVerifyWorld(this); AccountDataHandler.SendAccountDataTimes(m_client); VoiceChatHandler.SendSystemStatus(this, VoiceSystemStatus.Disabled); // SMSG_GUILD_EVENT // SMSG_GUILD_BANK_LIST CharacterHandler.SendBindUpdate(this, BindLocation); TutorialHandler.SendTutorialFlags(this); SpellHandler.SendSpellsAndCooldowns(this); CharacterHandler.SendActionButtons(this); FactionHandler.SendFactionList(this); // SMSG_INIT_WORLD_STATES // SMSG_EQUIPMENT_SET_LIST AchievementHandler.SendAchievementData(this); // SMSG_EXPLORATION_EXPERIENCE CharacterHandler.SendTimeSpeed(this); TalentHandler.SendTalentGroupList(m_talents); AuraHandler.SendAllAuras(this); // SMSG_PET_GUIDS }