Exemplo n.º 1
0
        public void QuitWatch(Character pUser)
        {
            if (pUser.MapIdentity < 900000)
            {
                return;
            }

            MsgArenicWitness pMsg = new MsgArenicWitness
            {
                Action = MsgArenicWitness.Leave
            };

            pUser.Send(pMsg);
            pUser.ChangeMap(pUser.RecordMapX, pUser.RecordMapY, pUser.RecordMapIdentity);
        }
 public void TeleportBack()
 {
     try
     {
         MsgArenicScore   pMsg      = new MsgArenicScore();
         MsgArenicWitness pWatchers = new MsgArenicWitness
         {
             Action = MsgArenicWitness.Leave
         };
         foreach (var plr in m_pMap.Players.Values)
         {
             plr.Send(pMsg);
             plr.Send(pWatchers);
             plr.ChangeMap(plr.RecordMapX, plr.RecordMapY, plr.RecordMapIdentity);
         }
     }
     catch
     {
     }
 }
        public static void HandleArenicWitness(Character pUser, MsgArenicWitness pMsg)
        {
            switch (pMsg.Action)
            {
            case 0:
            {
                if (!pUser.IsAlive)
                {
                    return;
                }
                ServerKernel.ArenaQualifier.WatchMatch(pUser, pMsg.UserIdentity);
                break;
            }

            default:
            {
                ServerKernel.ArenaQualifier.QuitWatch(pUser);
                break;
            }
            }
        }
        public void SendToMap()
        {
            if (m_pMap.Identity < 900000)
            {
                return;
            }
            MsgArenicScore pScore = new MsgArenicScore
            {
                Damage1         = Points1,
                Damage2         = Points2,
                Name1           = m_pPlayer1.Name,
                Name2           = m_pPlayer2.Name,
                EntityIdentity1 = Identity1,
                EntityIdentity2 = Identity2
            };
            MsgArenicWitness pWitness = new MsgArenicWitness
            {
                Action  = MsgArenicWitness.RequestView,
                Cheers1 = Waving1,
                Cheers2 = Waving2
            };

            try
            {
                foreach (var plr in m_pMap.Players.Values)
                {
                    plr.Send(pScore);
                    if (plr.IsWatcher)
                    {
                        plr.Send(pWitness);
                        if (plr.Identity != Identity1 && plr.Identity != Identity2)
                        {
                            MsgArenicWitness pWatchers = new MsgArenicWitness
                            {
                                Action  = MsgArenicWitness.Watchers,
                                Cheers2 = Waving2,
                                Cheers1 = Waving1
                            };
                            try
                            {
                                foreach (var plr0 in m_pMap.Players.Values)
                                //.Where(x => x.Identity != plr.Identity && x.Identity != Identity1 && x.Identity != Identity2))
                                {
                                    if (plr0.Identity == Identity1 || plr0.Identity == Identity2)
                                    {
                                        continue;
                                    }
                                    pWatchers.AppendName(plr0.Name, plr0.Lookface, plr0.Identity, plr0.Level,
                                                         plr0.Profession,
                                                         plr0.ArenaQualifier.Ranking);
                                }
                            }
                            catch
                            {
                            }
                            plr.Send(pWatchers);
                        }
                    }
                }
            }
            catch
            {
            }
        }