Example #1
0
        private void _processListView_Clicked(HudList listView, int row, int col)
        {
            try
            {
                HudList.HudListRowAccessor acc = listView[row];
                string name   = ((HudStaticText)acc[1]).Text;
                Player player = _playerManager.GetByName(name);

                if (player == null)
                {
                    return;
                }

                _globals.Core.Actions.SelectItem(player.Id);

                if (player.Enemy)
                {
                    return;
                }

                if (col == 2)
                {
                    WorldObjectService.CastHeal(player.Id);
                }

                if (col == 3)
                {
                    WorldObjectService.CastSpell(2082, player.Id);
                }
            } catch (Exception ex) { _logger.Error(ex); }
        }
 private void _processPreSession(WorldObject obj)
 {
     if (WorldObjectService.IsPlayer(obj.Id))
     {
         _playerManager.CachePlayer(obj.Id);
         return;
     }
 }
        private void _processPlayerKilled(NetworkMessageEventArgs e)
        {
            _logger.Info("_processPlayerKilled()");
            int    killed       = e.Message.Value <int>("killed");
            int    killer       = e.Message.Value <int>("killer");
            string deathMessage = e.Message.Value <string>("text");

            if (WorldObjectService.IsValidObject(killer) && WorldObjectService.IsPlayer(killer))
            {
                _deathManager.ProcessPkDeath(killer, killed, deathMessage);
            }
        }
        private void _processPostSession(WorldObject wo)
        {
            if (WorldObjectService.GetSelf().Id != _loginSessionManager.Session.Id)
            {
                _loginSessionManager.Clear();
                _processPreSession(wo);
                return;
            }

            if (WorldObjectService.IsPlayer(wo.Id))
            {
                _processPlayerObject(wo);
            }
        }
Example #5
0
        private void _playerManager_PlayerUpdated(object sender, Player player)
        {
            try
            {
                PlayerIcon playerIcon = _playerIcons.Find(icon => icon.Id == player.Id);
                float      fade       = player.LowHealth ? 0.2f : 0;
                playerIcon.Icon.PFade = fade;

                Predicate <DebuffObj> debuffed = obj => obj.Id == player.Id;
                foreach (var obj in _debuffObjects.FindAll(debuffed))
                {
                    obj.D3DObject.Visible = false;
                    obj.D3DObject.Dispose();
                    _debuffObjects.Remove(obj);
                }

                int index = 0;
                foreach (DebuffInformation info in player.Debuffs)
                {
                    int spell = info.Spell;
                    if (info.MapDebuffToIcon(spell) != null && WorldObjectService.IsValidObject(player.Id))
                    {
                        int    icon = (int)info.MapDebuffToIcon(spell);
                        D3DObj obj  = CoreManager.Current.D3DService.MarkObjectWithIcon(player.Id, icon);
                        float  dz   = _globals.Host.Actions.Underlying.ObjectHeight(player.Id) + ((float)0 * 0.5f);
                        obj.Scale(0.5f);
                        obj.Anchor(player.Id, 0.2f, 0.0f, 0.0f, dz);
                        obj.PBounce   = 0.0f;
                        obj.Autoscale = false;
                        obj.HBounce   = 0.0f;
                        obj.OrientToCamera(true);
                        obj.POrbit = 2f;
                        obj.ROrbit = 0.5f;
                        obj.AnimationPhaseOffset = index * ((2f / 8f));
                        obj.Visible = true;
                        DebuffObj debuffObj = _debuffObjFactory(
                            player.Id,
                            info.Spell,
                            icon,
                            obj);

                        _debuffObjects.Add(debuffObj);
                        ++index;
                    }
                }
            } catch (Exception ex) { _logger.Error(ex); }
        }
Example #6
0
        private void VitaeTimerChecker(object sender, ElapsedEventArgs e)
        {
            _logger.Info("VitaeTimerChecker[EVENT]");
            Settings settings = _settingsManager.Settings;
            bool     logOnVit = settings.LogOnVitae;
            int      limit    = settings.VitaeLimit;
            int      vit      = WorldObjectService.GetVitae();

            if (logOnVit && (vit >= limit))
            {
                string message = $"Logging off, due to vitae limit of {limit.ToString()} being reached";
                _logger.WriteToChat(message);
                _logger.WriteToWindow(message);
                WorldObjectService.Logout();
                _vitaeTimer.Stop();
            }
        }
        private void _processObjectEnemy(WorldObject wo)
        {
            Settings settings = _settingsManager.Settings;

            bool relogging = _globals.Relogging;
            bool relog     = settings.Relog;

            _playerManager.Add(_playerFactory(wo, true));

            if (relog && !relogging)
            {
                _logger.WriteToChat($"Logged by: {wo.Name}");
                _globals.Relogging = true;
                _relogManager.Init(wo.Name);
                WorldObjectService.Logout();
            }
        }
        private void _processApplyVisual(NetworkMessageEventArgs e)
        {
            int id     = e.Message.Value <int>("object");
            int effect = e.Message.Value <int>("effect");

            if (
                !WorldObjectService.IsValidObject(id) ||
                !WorldObjectService.IsPlayer(id) ||
                !Enum.IsDefined(typeof(Debuff), effect))
            {
                return;
            }

            Player player = _playerManager.Get(id);

            if (player != null)
            {
                _processApplyVisualOnPlayer(player, effect);
            }
        }
        private void _processIndentifyObject(NetworkMessageEventArgs e)
        {
            int id = e.Message.Value <int>("object");

            if (!WorldObjectService.IsValidObject(id))
            {
                return;
            }

            if ((e.Message.Value <int>("flags") & 256) <= 0)
            {
                return;
            }

            Player player = _playerManager.Get(id);

            if (player != null)
            {
                _processPlayerIdentified(e, player);
            }
        }
        private void _processPlayerObject(WorldObject wo)
        {
            Settings     settings = _settingsManager.Settings;
            LoginSession session  = _loginSessionManager.Session;

            int    woMonarch = wo.Values(LongValueKey.Monarch);
            string woName    = wo.Name;
            int    woId      = wo.Id;
            int    id        = session.Id;
            int    monarch   = session.Monarch;
            bool   enemy     = woMonarch != monarch;
            bool   self      = woId == id;

            if (self)
            {
                return;
            }

            if (_playerManager.Get(woId) != null)
            {
                //WorldObjectService.RequestId(woId);
                return;
            }

            double distance       = WorldObjectService.GetDistanceFromPlayer(woId, id);
            int    playerDistance = Convert.ToInt32(distance);

            if (playerDistance > 300)
            {
                return;
            }

            if (enemy)
            {
                _processObjectEnemy(wo);
                return;
            }

            _processObjectFriendly(wo);
        }
Example #11
0
        private void _handleCachedPlayers()
        {
            LoginSession session = _loginSessionManager.Session;

            foreach (int id in _playerManager.GetCache())
            {
                if (!WorldObjectService.IsValidObject(id))
                {
                    return;
                }

                WorldObject wo        = WorldObjectService.GetWorldObject(id);
                int         woMonarch = wo.Values(LongValueKey.Monarch);

                bool enemy = session.Monarch != woMonarch;
                bool self  = session.Id == id;
                if (!self)
                {
                    _playerManager.Add(_playerFactory(wo, enemy));
                }
            }

            _playerManager.ClearCache();
        }