I have test with pala.
In "Party" product settings don't forget to activate option "Healer".
In fight class by spell
- Activate option "For friends".
- Desactivate option "Combat only".
- Add condition "Target distance" (for spell range) and "Target health percent".
ps: sample in attached file
heal pala test.xml
Hello,
Your code can't work it doesn't have the good structure.
Here is some code with a correct structure (although I don't think it works, it would need to be debugged):
using System.Collections.Generic;
using System.Threading;
using robotManager.Helpful;
using wManager.Wow.Helpers;
using wManager.Wow.ObjectManager;
using wManager.Wow.Enums;
public class Main : wManager.Plugin.IPlugin
{
public void Initialize()
{
EventsLuaWithArgs.OnEventsLuaStringWithArgs += OnAuctionHouseShow;
}
private void OnAuctionHouseShow(string eventName, List<string> args)
{
if (eventName == "AUCTION_HOUSE_SHOW")
{
Logging.WriteDebug("Auction House is open");
Thread.Sleep(5000);
SellGreenItems();
}
}
public void SellGreenItems()
{
foreach (WoWItem item in Bag.GetBagItem())
{
if (item.GetItemInfo.ItemRarity == (int)WoWItemQuality.Uncommon)
{
Logging.WriteDebug($"Selling {item.Name}");
Bag.PickupContainerItem(item.Name);
Thread.Sleep(1500);
AuctionHelpers.StartAuction(50000, 50000, AuctionHelpers.Duration._12H, 1, 1); //Lua.LuaDoString($@"StartAuction(50000, 50000, 12, 1);");
}
}
}
public void Dispose()
{
EventsLuaWithArgs.OnEventsLuaStringWithArgs -= OnAuctionHouseShow;
}
public void Settings()
{
}
}
Hello,
Right-click on WRobot.exe and then click Properties. On the Compatibility tab, select Disable Display Scaling On High DPI Settings, and then click OK:
https://www.youtube.com/watch?v=0xS-UCuyq7s
using robotManager.Helpful;
using wManager.Wow.Helpers;
using wManager.Plugin;
using Timer = System.Threading.Timer;
public class Main : IPlugin
{
private bool _isEnabled;
public void Initialize()
{
Logging.Write("[JunkRemover] Plugin initialized and activated");
_isEnabled = true;
EventsLua.AttachEventLua("BAG_UPDATE", context => BagUpdateHandler());
}
public void Dispose()
{
_isEnabled = false;
Logging.Write("[JunkRemover] Plugin disposed");
}
private Timer _debounceTimer;
private void BagUpdateHandler()
{
Logging.Write("[JunkRemover] BAG_UPDATE");
if (_debounceTimer != null)
{
_debounceTimer.Change(System.Threading.Timeout.Infinite, System.Threading.Timeout.Infinite);
_debounceTimer.Dispose();
}
_debounceTimer = new Timer((state) =>
{
if (_isEnabled)
{
Logging.Write("[JunkRemover] Checking bags for junk");
var needToRunAgain = Lua.LuaDoString<bool>(@"
for i = 0, NUM_BAG_SLOTS do
for j = 1, C_Container.GetContainerNumSlots(i) do
local itemId = C_Container.GetContainerItemID(i, j)
if itemId then
local itemName, _, itemQuality = GetItemInfo(C_Container.GetContainerItemID(i, j))
if itemName and itemQuality == 0 then
print('Deleting ' .. itemName)
C_Container.PickupContainerItem(i, j)
DeleteCursorItem()
return true
end
end
end
end
return false
");
if (needToRunAgain)
{
BagUpdateHandler();
}
}
}, null, 1000, System.Threading.Timeout.Infinite);
}
public void Settings()
{
}
}
JunkRemover.cs
using robotManager.Helpful;
using wManager.Wow.Helpers;
using wManager.Plugin;
using Timer = System.Threading.Timer;
public class Main : IPlugin
{
private bool _isEnabled;
public void Initialize()
{
Logging.Write("[JunkRemover] Plugin initialized and activated");
_isEnabled = true;
EventsLua.AttachEventLua("BAG_UPDATE", context => BagUpdateHandler());
}
public void Dispose()
{
_isEnabled = false;
Logging.Write("[JunkRemover] Plugin disposed");
}
private Timer _debounceTimer;
private void BagUpdateHandler()
{
Logging.Write("[JunkRemover] BAG_UPDATE");
if (_debounceTimer != null)
{
_debounceTimer.Change(System.Threading.Timeout.Infinite, System.Threading.Timeout.Infinite);
_debounceTimer.Dispose();
}
_debounceTimer = new Timer((state) =>
{
if (_isEnabled)
{
Logging.Write("[JunkRemover] Checking bags for junk");
var needToRunAgain = Lua.LuaDoString<bool>(@"
for i = 0, NUM_BAG_SLOTS do
for j = 1, C_Container.GetContainerNumSlots(i) do
local itemId = C_Container.GetContainerItemID(i, j)
if itemId then
local itemName, _, itemQuality = GetItemInfo(C_Container.GetContainerItemID(i, j))
if itemName and itemQuality == 0 then
print('Deleting ' .. itemName)
C_Container.PickupContainerItem(i, j)
DeleteCursorItem()
return true
end
end
end
end
return false
");
if (needToRunAgain)
{
BagUpdateHandler();
}
}
}, null, 1000, System.Threading.Timeout.Infinite);
}
public void Settings()
{
}
}
JunkRemover.cs
Before request help, thank you to:
Make sure you start wow in 32-bit and run Wow in Windowed mode.
Make sure do you use WRobot on administrator Windows session.
Keep Windows updated.
Try to disable your antivirus/firewall, redownload and reinstall WRobot in empty folder.
Delete completely WRobot folder, download and install it again (you can try to download preinstalled version).
Try to put WRobot folder on your desktop and in root of the disc.
(Re)Install DirectX, Framework (minimum 4.5) (or Framework Repair Tool), SlimDX (4.0 X86), Redistributable Visual C + + 2010 (X86).
If the bot does not work at all, that WRobot freeze, change the version of DirectX that wow uses (do not forget to restart Wow) (if this don't resolve problem, you can try to launch WRobot with shortcut "WRobot No DX").
Reset key bindings Wow (the bot uses Forward, Backward, Jump, Sit / Stand, strafe right and left, but I suggest you reset everything).
Some wow addon can cause problems, so disable all.
Close Windows program like Skype, Teamviewer and all overlays e.g. Overwolf, Geforce Experience, raptr, AMD Gaming Evolved, teamspeak (these programs can cause problems at WRobot, also programs for record screen or programs which draw/write in game window).
Close/disable your VPN, Proxy and program like ProxyCap.
If you have already run WRobot, you can try to remove folde "WRobot\Data\Meshes\".
If WRobot window is not display correctly, you can you try to Right-click on WRobot.exe and then click "Properties". On the "Compatibility" tab, select "Disable Display Scaling On High DPI Settings", and then click "OK" ( https://www.youtube.com/watch?v=0xS-UCuyq7s ).
Some virus/malwares can block WRobot. Scan you computer AdwCleaner and/or Malwarebytes for remove malwares, and anti-virus like Eset or Kaspesky.
Disable "Bliz Streaming" feature, for it, on the Battle.net App, go to upper left corner, click the down arrow, go to Settings. From there, go to Streaming and uncheck Enable Streaming.
When WRobot is launched, you cannot minimize Wow, of course you can keep Wow in background and use your computer, but you cannot minize (put in taskbar) Wow (if minimized, WRobot don't works correctly).
Sometime, you need to put "full control" at "WRobot.exe" (and WRobot folder): https://www.windowscentral.com/how-take-ownership-files-and-folders-windows-10
Do a search to see if a solution exists: https://www.google.com/search?q=site:wrobot.eu+adding+mailbox or http://wrobot.eu/search/.
If you start to use bot, you can watch this video: http://wrobot.eu/forums/topic/3633-getting-started-with-wrobot-video/
If your problem is not resolved, request help on good forum, to get quick reply, don't forget to share your log file.
Hello,
No tested, but you can try this plugin : CastSpellByName to Cast Macro.cs
using robotManager.Helpful;
public class Main : wManager.Plugin.IPlugin
{
public void Initialize()
{
Logging.Write("CastSpellByName to /cast plugin loaded.");
robotManager.Events.Events.OnCustomEvent += OnEventsOnOnCustomEvent;
}
private void OnEventsOnOnCustomEvent(string name, object[] args, System.ComponentModel.CancelEventArgs cancelable)
{
if (name.StartsWith("SpellManager.CastSpellByName") &&
args.Length >= 1 &&
args[0] is string)
{
var spellName = (string)args[0];
if (!string.IsNullOrWhiteSpace(spellName)){
string luaUnit = null;
if (args.Length >= 2 &&
args[1] is string)
luaUnit = (string)args[1];
cancelable.Cancel = true;
if (!string.IsNullOrWhiteSpace(luaUnit) && luaUnit != "player")
{
Logging.WriteDebug("Casting " + spellName + " on " + luaUnit + " with macro /cast");
wManager.Wow.Helpers.Lua.RunMacroText("/cast [@" + luaUnit + "] " + spellName);
}
else
{
Logging.WriteDebug("Casting " + spellName + " with macro /cast");
wManager.Wow.Helpers.Lua.RunMacroText("/cast " + spellName);
}
}
}
}
public void Dispose()
{
robotManager.Events.Events.OnCustomEvent -= OnEventsOnOnCustomEvent;
}
public void Settings()
{
}
}
I haven't tested, but this plugin should enable fight classes that use the bot method "CastSpellByNameOn" (which is the case for most fight classes) to force the bot to use "/cast ..." instead. Therefore, use this plugin with your fight class configured normally (without using "/cast").
Hello, in "script can condition" put code like :
return wManager.Wow.ObjectManager.ObjectManager.Me.Level >= 5 && wManager.Wow.ObjectManager.ObjectManager.Me.Level <= 15;
Replace 5 by the minimum level, 15 by the maximum level (in the current code, the bot will buy your item if the level is equal to or bigger than 5 and equal to or lower than 15).
try
using System.Windows.Forms;
using robotManager.Helpful;
using wManager.Wow.Helpers;
using wManager.Wow.ObjectManager;
public class Main : wManager.Plugin.IPlugin
{
public void Initialize()
{
var badCorpsePos = new Vector3(-3362.286f, 4665.728f, -22.70619f);
var enterDungeonPos = new Vector3(-3362.163f, 4636.226f, -101.049f);
Logging.Write("[EnterCorpse] Started.");
wManager.Events.OthersEvents.OnPathFinderFindPathResult += (from, to, path, mpq, success) =>
{
if (ObjectManager.Me.IsDead && to.DistanceTo(badCorpsePos) < 10)
{
path.Clear();
path.AddRange(PathFinder.FindPath(enterDungeonPos));
}
};
}
public void Dispose()
{
Logging.Write("[EnterCorpse] Disposed.");
}
public void Settings()
{
MessageBox.Show("??");
}
}
Hello,
using System.Threading;
using robotManager.Helpful;
using wManager.Wow.Helpers;
using wManager.Wow.ObjectManager;
public class Main : wManager.Plugin.IPlugin
{
private bool _isStarted;
public void Initialize()
{
_isStarted = true;
var stopWatch = new System.Diagnostics.Stopwatch();
while (_isStarted)
{
if (Conditions.InGameAndConnectedAndProductStartedNotInPause)
{
if (ObjectManager.Me.IsDeadMe && stopWatch.Elapsed.TotalMinutes > 5)
{
Logging.Write("Bot is dead for more than 5 minutes, closing game.");
wManager.Wow.Memory.WowMemory.CloseHookedProcess();
_isStarted = false;
}
else if (ObjectManager.Me.IsDeadMe)
{
stopWatch.Start();
}
else
{
stopWatch.Reset();
}
}
Thread.Sleep(500);
}
}
public void Dispose()
{
_isStarted = false;
}
public void Settings()
{
}
}