Example #1
0
 /// <summary>
 /// 创建队伍
 /// </summary>
 /// <param name="player"></param>
 public PlayerTeam(PlayerBusiness player)
 {
     if (player.SetTeam(this, TeamJob.Captain))
     {
         int id = Interlocked.Increment(ref T) & 0x00ffffff;
         this.m_id = Sinan.Extensions.StringFormat.ToHexString(id);
         m_members[0] = player;
     }
 }
Example #2
0
 /// <summary>
 /// 添加成员
 /// </summary>
 /// <param name="player"></param>
 /// <returns></returns>
 public bool TryAddMember(PlayerBusiness player)
 {
     if (player.Team != null || player.Fight != null ||
         player.SceneID != Captain.SceneID)
     {
         return false;
     }
     for (int i = 1; i < m_members.Length; i++)
     {
         if (Interlocked.CompareExchange(ref m_members[i], player, null) == null)
         {
             player.SetTeam(this, TeamJob.Member);
             return true;
         }
     }
     return false;
 }
Example #3
0
 /// <summary>
 /// 请离成员
 /// </summary>
 /// <param name="id"></param>
 /// <returns></returns>
 public bool RemoveMember(PlayerBusiness player)
 {
     if (player != null)
     {
         for (int i = 1; i < m_members.Length; i++)
         {
             if (Interlocked.CompareExchange(ref m_members[i], null, player) == player)
             {
                 if (player.Team == this)
                 {
                     TeamJob oldJob = player.TeamJob;
                     player.SetTeam(null, TeamJob.NoTeam);
                     if (oldJob == TeamJob.Member)
                     {
                         player.X = Captain.X;
                         player.Y = Captain.Y;
                         player.Point = Captain.Point;
                     }
                 }
                 return true;
             }
         }
     }
     return false;
 }