Esempio n. 1
0
 public DBExchangeOne IsHave(ExchangeBroadcast _this, long id)
 {
     foreach (var one in _this.LookList)
     {
         if (one.Id == id)
         {
             return(one);
         }
     }
     return(null);
 }
Esempio n. 2
0
 private void RemoveThis(ExchangeBroadcast _this)
 {
     _this.trigger = null;
     ExchangeManager.RemoveBroadcast(_this.characterId);
 }
Esempio n. 3
0
 public void Construct(ExchangeBroadcast _this, ulong cId)
 {
     _this.characterId = cId;
     _this.trigger     = TeamServerControl.tm.CreateTrigger(
         DateTime.Now.AddMinutes(ExchangeBroadcast.RefreshCDTime), () => RemoveThis(_this));
 }
Esempio n. 4
0
        //查询广播道具
        public void GetItems(int type, ulong characterId, int level, int count, StoreBroadcastList sbList)
        {
            ExchangeBroadcast findEB = null;
            var beginlevel           = ExchangeManager.FindLevel[level];
            var beginIndex           = ExchangeManager.FindIndex[level];
            var isEnd = false;

            //ExchangeManager.mBroadcasts.TryGetValue(characterId, out findEB);
            if (!ExchangeManager.mBroadcasts.TryGetValue(characterId, out findEB))
            {
                findEB = new ExchangeBroadcast(characterId);
                ExchangeManager.mBroadcasts[characterId] = findEB;
            }
            sbList.CacheOverTime = TeamServerControl.tm.GetNextTime(findEB.trigger).ToBinary();
            if (type != 0)
            {
                findEB.LookList.Clear();
                for (var i = 0; i != count; ++i)
                {
                    var item = GetNextItem(level, beginlevel, beginIndex, ref isEnd);
                    if (item == null)
                    {
                        break;
                    }
                    foreach (var one in sbList.Items)
                    {
                        if (one.Id == item.Id)
                        {
                            item = null;
                            break;
                        }
                    }
                    if (item == null)
                    {
                        break;
                    }
                    if (item.SellCharacterId != characterId) //是否要过滤自己的东西
                    {
                        findEB.LookList.Add(item);
                        sbList.Items.Add(GetConverNetData(item));
                    }
                    else
                    {
                        i--;
                    }
                    if (isEnd)
                    {
                        break;
                    }
                }
                return;
            }
            var nowCount = 0;

            foreach (var l in findEB.LookList)
            {
                sbList.Items.Add(GetConverNetData(l));
                nowCount++;
            }
            for (var i = nowCount; i < count; ++i)
            {
                var item = GetNextItem(level, beginlevel, beginIndex, ref isEnd);
                if (item == null)
                {
                    break;
                }
                foreach (var one in sbList.Items)
                {
                    if (one.Id == item.Id)
                    {
                        item = null;
                        break;
                    }
                }
                if (item == null)
                {
                    break;
                }
                if (item.SellCharacterId != characterId) //是否要过滤自己的东西
                {
                    if (findEB.IsHave(item.Id) == null)
                    {
                        findEB.LookList.Add(item);
                        sbList.Items.Add(GetConverNetData(item));
                    }
                }
                else
                {
                    i--;
                }
                if (isEnd)
                {
                    break;
                }
            }
        }