Jump to content

Droidz

Administrators
  • Posts

    12440
  • Joined

  • Last visited

Everything posted by Droidz

  1. Your setting seems good. You are sure it's not caused by Wow add-ons (you have add-ons for mailbox)?
  2. Hello, quest profile editor has tools to get current questlog, id is not in the result of it ?
  3. Hello, in advanced general settings you have the option to use only NPC of your profile (and not all NPCs of your NPCDB. If you want to activate it with a code, you can run : wManager.wManagerSetting.CurrentSetting.AcceptOnlyProfileNpc = true;
  4. Hello, I replied here https://wrobot.eu/forums/topic/15097-elevators-in-serpentshine-cavern/#comment-67987
  5. Hello, by default WRobot blacklists the dummies. Try to disable this option : wManager.wManagerSetting.CurrentSetting.BlackListTrainingDummy = false;
  6. Hello, give me the position and continent of the elevator, I'll add it.
  7. Hi, public static bool CheckArea(float x, float y, float z, int range) { if (!ObjectManager.GetObjectWoWUnit().Any(u => u.Type != WoWObjectType.Player && u.IsAlive && u.IsAttackable && u.Position.DistanceTo(new Vector3(x, y, z)) < range)) return true; return false; } The code is in the profile "Script" element.
  8. Good morning, In your log there is no error, just a warning because you are using Wow addons (and they often cause problems with the bot, especially on vanilla and tbc). Try to disable all addons. And share again your log if your issue is not solved.
  9. What you are asking is possible but you will need knowledge of C#, Lua and the bot API. But, the bot shouldn't go somewhere you didn't ask it to go. Rather than using 'Automaton' use the Grinder product https://www.youtube.com/watch?v=fA0xHUmZLnI (you will be able to have more control over what the bot should or should not do).
  10. When I look your screenshot, most repairmen seem to be limited to the Alliance faction. Cleared all entries to start on a good base. Target a 'repair' type NPC in game, in 'NPC DB' for 'type' select 'Repair' and click the 'Add...' button (with 'Name' empty). Then go close to the mailbox, in 'NPC DB' for 'type' also select 'Mailbox', in 'Name' enter the name of the mailbox (usually 'Mailbox') and click on the 'Add... '. In the advanced settings of the bot you can activate the sending of mail and choose what to send to whom.
  11. I'm sorry, I can't help you. Maybe try to contact him to find out if he agrees to share his code.
  12. Good morning, To detect teleportation there is an option in the advanced settings of WRobot. To detect zones there is nothing by default, there are several ways to do it up, but you have to know how to program (c#).
  13. Hello, It's this plugin https://wrobot.eu/files/file/1385-free-operator-multiboxing-multiboxing-assistance-plugin/ ?
  14. You need to add npc vendor/repair and mailbox in NPC DB. You can find NPC here :
  15. Hello, look https://wrobot.eu/files/file/414-multi-pull/ I added an option to be able to attack mobs already in combat : using System; using System.ComponentModel; using System.Configuration; using System.Collections.Generic; using System.IO; using System.Linq; using robotManager.Helpful; using wManager; using wManager.Plugin; using wManager.Wow.Helpers; using wManager.Wow.ObjectManager; public class Main : IPlugin { private bool _isLaunched; public void Initialize() { _isLaunched = true; MultiPullSettings.Load(); wManager.Events.FightEvents.OnFightLoop += FightEventsOnOnFightLoop; Logging.Write("[MultiPull2] Started."); } public void Dispose() { try { wManager.Events.FightEvents.OnFightLoop -= FightEventsOnOnFightLoop; } catch {} _isLaunched = false; Logging.Write("[MultiPull2] Stoped."); } public void Settings() { MultiPullSettings.Load(); MultiPullSettings.CurrentSetting.ToForm(); MultiPullSettings.CurrentSetting.Save(); Logging.Write("[MultiPull2] Settings saved."); } private void FightEventsOnOnFightLoop(WoWUnit woWUnit, CancelEventArgs cancelable) { if (_isLaunched && Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause && Fight.InFight && ObjectManager.Target.IsValid && ObjectManager.Target.IsTargetingMeOrMyPetOrPartyMember && ObjectManager.Me.HealthPercent >= MultiPullSettings.CurrentSetting.MinHealth && ObjectManager.GetNumberAttackPlayer() < MultiPullSettings.CurrentSetting.MobMax) { var mobs = new List<WoWUnit>(); if (MultiPullSettings.CurrentSetting.AllFactions) { mobs.AddRange(ObjectManager.GetWoWUnitAttackables(MultiPullSettings.CurrentSetting.PullRange)); } else { mobs.AddRange(ObjectManager.GetWoWUnitByEntry(MultiPullSettings.CurrentSetting.MobsList)); } var listGuidUnitAttackPlayer = ObjectManager.GetUnitAttackPlayer().Select(m => m.Guid).ToArray(); for (int i = mobs.Count - 1; i >= 0; i--) { if (!mobs[i].IsValid || !mobs[i].IsAlive || ((MultiPullSettings.CurrentSetting.CanAttackMobInCombat && mobs[i].IsTargetingMeOrMyPet) || (!MultiPullSettings.CurrentSetting.CanAttackMobInCombat && mobs[i].Target.IsNotZero())) || listGuidUnitAttackPlayer.Contains(mobs[i].Guid) || mobs[i].Guid == ObjectManager.Pet.Guid || MultiPullSettings.CurrentSetting.BListMobs.Contains(mobs[i].Entry) || mobs[i].GetDistance > MultiPullSettings.CurrentSetting.PullRange || wManagerSetting.IsBlackListedAllConditions(mobs[i]) || mobs[i].Level < MultiPullSettings.CurrentSetting.MinTargetLevel || mobs[i].Level > MultiPullSettings.CurrentSetting.MaxTargetLevel ) { mobs.RemoveAt(i); } } var unit = ObjectManager.GetNearestWoWUnit(mobs); if (unit.IsValid) { Logging.WriteDebug(string.Format("[MultiPull2] Pull {0} (distance: {1}).", unit.Name, unit.GetDistance)); if (ObjectManager.Target.IsValid) Lua.LuaDoString("ClearTarget();"); cancelable.Cancel = true; var m = Fight.StartFight(unit.Guid, false); //if (m.IsNotZero()) wManagerSetting.AddBlackList(m, 1000 * 50); } } } } public class MultiPullSettings : Settings { public MultiPullSettings() { MobMax = 3; PullRange = 35; MinHealth = 65; MinTargetLevel = 2; MaxTargetLevel = 110; AllFactions = true; MobsList = new List<int>(); BListMobs = new List<int>(); } public static MultiPullSettings CurrentSetting { get; set; } public bool Save() { try { return Save(AdviserFilePathAndName("MultiPull", ObjectManager.Me.Name + "." + Usefuls.RealmName)); } catch (Exception e) { Logging.WriteError("MultiPullSettings > Save(): " + e); return false; } } public static bool Load() { try { if (File.Exists(AdviserFilePathAndName("MultiPull", ObjectManager.Me.Name + "." + Usefuls.RealmName))) { CurrentSetting = Load<MultiPullSettings>(AdviserFilePathAndName("MultiPull", ObjectManager.Me.Name + "." + Usefuls.RealmName)); return true; } CurrentSetting = new MultiPullSettings(); } catch (Exception e) { Logging.WriteError("MultiPullSettings > Load(): " + e); } return false; } [Setting] [Category("Settings")] [DisplayName("Max Mobs")] [Description("Max number of mobs to fight at the same Time")] public int MobMax { get; set; } [Setting] [Category("Settings")] [DisplayName("Range")] [Description("Range for Pull")] public int PullRange { get; set; } [Setting] [Category("Settings")] [DisplayName("Min health")] [Description("Stop pulling if health smaller than %")] public int MinHealth { get; set; } [Setting] [Category("Settings")] [DisplayName("Min target level")] [Description("Minimum target level")] public int MinTargetLevel { get; set; } [Setting] [Category("Settings")] [DisplayName("Max target level")] [Description("Maximum target level")] public int MaxTargetLevel { get; set; } [Setting] [Category("Settings")] [DisplayName("Pulls all mobs")] [Description("Pulls all mobs type")] public bool AllFactions { get; set; } [Setting] [Category("Settings")] [DisplayName("Mobs list")] [Description("List of mobs at pull (to use this list don't forget to deactivate option 'Pulls all mobs') (you can found entry id of mobs in tab 'Tools' with 'Dev tools')")] public List<int> MobsList { get; set; } [Setting] [Category("Settings")] [DisplayName("Blacklist mobs")] [Description("List of mobs at ignore (you can found entry id of mobs in tab 'Tools' with 'Dev tools')")] public List<int> BListMobs { get; set; } [Setting] [Category("Settings")] [DisplayName("Can attack mob already in combat")] [Description("Can attack mob already in combat")] public bool CanAttackMobInCombat { get; set; } = true; } (no tested)
  16. Hello, Can you share your log file please ( https://wrobot.eu/forums/topic/1779-how-to-post-your-log-file-with-your-topic/ ). Do you have added NPC in your "NPC DB" (tab Tools) ?
  17. I think I found it, you have activated the FoodIsSpell option
  18. Hello, You must use the .cs file (or compile your .cs file into a dll file, renaming it is not enough).
  19. Hi, try to use this plugin : public class Main : wManager.Plugin.IPlugin { public void Initialize() { wManager.Wow.Helpers.Usefuls.ForceIsFlyableArea = true; } public void Dispose() { } public void Settings() { } } (and leaves in land mount the name of the flying mount)
  20. Hello, Disable all Wow addons, all WRobot plugins and share your log file please ( https://wrobot.eu/forums/topic/1779-how-to-post-your-log-file-with-your-topic/ ).
  21. I replied to your private message.
  22. Hello, https://wrobot.eu/forums/topic/15107-64-bit-client-change-to-32-bit/?do=findComment&comment=67894&_rid=1
  23. Hello, no, it's the list of supported versions : https://wrobot.eu/supported-wow-versions/
  24. Hello, In "playerName" argument you should pass arguments like "player", "target", "focus", "party1", "raid1" (if you pass real player/unit name that will no work). Your code should look like that if you want to use playerName (not tested) : public bool CanPurify(string playerName) { var units = ObjectManager.GetObjectWoWUnit(); units.AddRange(ObjectManager.GetObjectWoWPlayer()); var unitsByName = ObjectManager.GetWoWUnitByName(units, playerName); return CanPurify(unitsByName.FirstOrDefault()); } public bool CanPurify(WoWUnit wowUnit) { if (wowUnit == null || !wowUnit.IsValid) return false; string unit; long currentFocus; if (wowUnit.IsLocalPlayer) unit = "player"; else if (wowUnit.IsMyTarget) unit = "target"; else { currentFocus = ObjectManager.Me.FocusGuid; ObjectManager.Me.FocusGuid = wowUnit.Guid; unit = "focus"; } var lua = $@" canPurify = false for i = 1, 40 do local name, _, _, debuffAuraType, _, _, _, _, _ = UnitDebuff(""{unit}"", i); if (name and debuffAuraType) and (debuffAuraType == 'Magic' or debuffAuraType == 'Disease' or debuffAuraType == 'Poison') then canPurify = true break end end return canPurify "; if (unit == "focus") ObjectManager.Me.FocusGuid = currentFocus; Logging.Write($"Checking if {wowUnit} can be purified..."); bool result = Lua.LuaDoString<bool>(lua); Logging.Write($"Result: {result}"); return result; }
×
×
  • Create New...