public void PickUp(IMapObject mapObject) { WalkInRange(mapObject.Position, 1); Logger.Info($"Picking up item {mapObject.ItemKey}"); Client.SendPacket($"get {EntityType.AsString()} {Id} {mapObject.Id}"); }
public void Attack(ISkill skill) { if (!Skills.Contains(skill)) { Logger.Warn($"Can't found skill {skill.SkillKey}"); return; } if (skill.IsOnCooldown) { Logger.Trace("Skill is in cooldown"); return; } if (skill.Target == SkillTarget.Target) { Logger.Warn($"Invalid target {skill.CastId} {skill.Category} {skill.Target} {skill.HitType}"); return; } Logger.Debug($"Using skill with id {skill.SkillKey} on self"); Client.SendPacket($"u_s {skill.CastId} {EntityType.AsString()} {Id}"); Thread.Sleep(skill.CastTime * 200); }
public void Rest() { Client.SendPacket($"rest 1 {EntityType.AsString()} {Id}"); IsResting = true; }
public void UseObject(IObjectStack objectStack) { Client.SendPacket($"u_i {EntityType.AsString()} {Id} {objectStack.Bag.AsString()} {objectStack.Slot} 0 0 "); }
public void Rotate(Direction direction) { Client.SendPacket($"dir {direction.AsString()} {EntityType.AsString()} {Id}"); }
public Task<string> LockResourceAsync(string lockType, string resourceId, EntityType resourceType, bool force, CancellationToken cancellationToken = default) => LockResourceAsync(lockType, resourceId, resourceType.AsString(), force, cancellationToken);
public Task<List<ResourceLock>> GetResourceLocksAsync(string resourceId, EntityType resourceType, CancellationToken cancellationToken = default) => GetResourceLocksAsync(resourceId, resourceType.AsString(), cancellationToken);
public Task<ResourceLock> GetResourceLockAsync(string lockId, string resourceId, EntityType resourceType, CancellationToken cancellationToken = default) => GetResourceLockAsync(lockId, resourceId, resourceType.AsString(), cancellationToken);