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); } }
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); } }
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); }
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(); }