private void SendNewTick(RealmTime time)
        {
            var sendEntities = new List<Entity>();
            try
            {
                foreach (var i in _clientEntities.Where(i => i.UpdateCount > _lastUpdate[i]))
                {
                    sendEntities.Add(i);
                    _lastUpdate[i] = i.UpdateCount;
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
            if (questEntity != null &&
                (!_lastUpdate.ContainsKey(questEntity) || questEntity.UpdateCount > _lastUpdate[questEntity]))
            {
                sendEntities.Add(questEntity);
                _lastUpdate[questEntity] = questEntity.UpdateCount;
            }
            var p = new NewTickPacket();
            _tickId++;
            p.TickId = _tickId;
            p.TickTime = time.thisTickTimes;
            p.UpdateStatuses = sendEntities.Select(_ => _.ExportStats()).ToArray();
            Client.SendPacket(p);

            SaveToCharacter();
        }
示例#2
0
        void SendNewTick(RealmTime time)
        {
            var sendEntities = new List<Entity>();
            try
            {
                foreach (var i in clientEntities)
                {
                    if (i.UpdateCount > lastUpdate[i])
                    {
                        sendEntities.Add(i);
                        lastUpdate[i] = i.UpdateCount;
                    }
                }
            }

            catch { Console.ForegroundColor = ConsoleColor.DarkRed;
                Console.Out.WriteLine("Crash halted - Nobody likes death...");
                Console.ForegroundColor = ConsoleColor.White; }
            if (questEntity != null && (!lastUpdate.ContainsKey(questEntity) || questEntity.UpdateCount > lastUpdate[questEntity]))
            {
                sendEntities.Add(questEntity);
                lastUpdate[questEntity] = questEntity.UpdateCount;
            }
            NewTickPacket p = new NewTickPacket();
            tickId++;
            p.TickId = tickId;
            p.TickTime = time.thisTickTimes;
            p.UpdateStatuses = sendEntities.Select(_ => _.ExportStats()).ToArray();
            psr.SendPacket(p);

            SaveToCharacter();
        }
        void SendNewTick(RealmTime time)
        {
            if (tickPassed > 1)
            {
                tickPassed--;
                timePassed += time.thisTickTimes;
                return;
            }
            else
            {
                tickPassed = LogicTicker.TPS / TICK_PER_SECOND;
                tickIdTime = time.tickTimes;
            }

            var sendEntities = new List<Entity>();
            foreach (var i in clientEntities)
            {
                if (i.UpdateCount > lastUpdate[i])
                {
                    sendEntities.Add(i);
                    lastUpdate[i] = i.UpdateCount;
                }
            }
            if (questEntity != null && (!lastUpdate.ContainsKey(questEntity) || questEntity.UpdateCount > lastUpdate[questEntity]))
            {
                sendEntities.Add(questEntity);
                lastUpdate[questEntity] = questEntity.UpdateCount;
            }
            NewTickPacket p = new NewTickPacket();
            tickId++;
            p.TickId = tickId;
            p.TickTime = timePassed;
            timePassed = time.thisTickTimes;
            p.UpdateStatuses = sendEntities.Select(_ => _.ExportStats()).ToArray();
            psr.SendPacket(p);

            SaveToCharacter();
        }