Esempio n. 1
0
        public void Send()
        {
            var msg = new MsgGuideInfo
            {
                Identity       = m_pOwner.Identity,
                TargetIdentity = m_dwIdentity,
                Type           = 1
            };

            msg.AddString(m_szName);
            msg.AddString(m_pOwner.Name);
            msg.RemainingTime = 999999;
            if (IsOnline)
            {
                msg.SharedBattlePower = SharedBattlePower;
                msg.TargetMesh        = Role.Lookface;
                msg.TargetLevel       = Role.Level;
                msg.TargetOnline      = true;
                msg.TargetPkPoint     = Role.PkPoints;
                msg.TargetProfession  = (ProfessionType)Role.Profession;
                msg.EnroleDate        = m_dwEnrole;
                msg.RemainingTime     = 999999;
                if (Role.Syndicate != null)
                {
                    msg.SyndicateIdentity = (ushort)Role.Syndicate.Identity;
                    msg.SyndicatePosition = Role.SyndicateMember.Position;
                }
                msg.AddString(Role.Mate);
            }
            m_pOwner.Send(msg);
        }
Esempio n. 2
0
        public void SendExpell()
        {
            var msg = new MsgGuideInfo
            {
                Identity = m_pOwner.Identity,
                Type     = 2
            };

            msg.RemainingTime = 0;
            m_pOwner.Send(msg);
        }
Esempio n. 3
0
        public static void HandleGuideInfo(Character pRole, MsgGuideInfo pMsg)
        {
            switch (pMsg.Type)
            {
            case 1:     // request mentor
            {
                if (pRole.Mentor == null)
                {
                    return;
                }
                pRole.Mentor.Send();
                break;
            }

            case 2:     // request apprentices
            {
                if (pRole.Apprentices != null && pRole.Apprentices.Count > 0)
                {
                    foreach (var appr in pRole.Apprentices.Values)
                    {
                        appr.Send();
                    }
                }
                break;
            }

            case 4:
            {
                break;
            }

            // not tested, probably asked after sending apprentices information to client
            // Mentor identity gets the value of the apprentices identity
            // which means that offset 8 isn't really the mentor identity, but a general identity :)
            // what would I call this? what about offset 12 that carries the student identity?
            default:
                ServerKernel.Log.SaveLog("Unhandled packet type 2066:" + pMsg.Type, true, "guide", LogType.DEBUG);
                GamePacketHandler.Report(pMsg);
                return;
            }
        }
Esempio n. 4
0
        public void Send()
        {
            var msg = new MsgGuideInfo
            {
                Identity             = m_pOwner.Identity,
                TargetIdentity       = m_dwIdentity,
                ApprenticeExperience = m_dwExperience,
                ApprenticeBlessing   = m_usBlessing,
                ApprenticeComposing  = (ushort)(m_usComposing > ushort.MaxValue ? ushort.MaxValue : m_usComposing),
                Type = 2
            };

            msg.AddString(m_pOwner.Name);
            msg.AddString(m_szName);
            msg.RemainingTime = 999999;
            if (IsOnline)
            {
                Role.FetchMentorAndApprentice();
                msg.TargetMesh           = Role.Lookface;
                msg.TargetLevel          = Role.Level;
                msg.TargetOnline         = true;
                msg.TargetPkPoint        = Role.PkPoints;
                msg.TargetProfession     = (ProfessionType)Role.Profession;
                msg.ApprenticeExperience = m_dwExperience = Role.StudentExperience;
                msg.ApprenticeBlessing   = m_usBlessing = Role.StudentBlessing;
                m_usComposing            = Role.StudentComposition;
                msg.ApprenticeComposing  = (ushort)(m_usComposing > ushort.MaxValue ? ushort.MaxValue : m_usComposing);
                msg.EnroleDate           = m_dwEnrole;
                if (Role.Syndicate != null)
                {
                    msg.SyndicateIdentity = (ushort)Role.Syndicate.Identity;
                    msg.SyndicatePosition = Role.SyndicateMember.Position;
                }
                msg.AddString(Role.Mate);
            }
            m_pOwner.Send(msg);
        }