Jump to content

Pudge

WRobot user
  • Posts

    347
  • Joined

  • Last visited

Reputation Activity

  1. Like
    Pudge reacted to Droidz in Check For Hostiles Unit(s) Behind Player   
    Hello, you need to use IsBehind like that:
    u.IsBehind(ObjectManager.Me.Position, ObjectManager.Me.Rotation); ObjectManager.Me.IsBehind(u.Position, u.Rotation); you can also use:
    MovementManager.IsFacing(Me.Position, Me.Rotation, u.Position, 2.20f)  
  2. Thanks
    Pudge got a reaction from zhxwbr8 in Complete condition Boss died?   
    return ObjectManager.GetWoWUnitByEntry(12345).Count == 0;// replace 12345 to your boss entry return ObjectManager.GetWoWUnitByName("Name").Count == 0; // replace "Name" to your boss name  
  3. Haha
    Pudge reacted to TheSmokie in Protection from SpellManager.CastSpellBy && LuaDoString (or what?)   
    best bet is find another server 
  4. Like
    Pudge reacted to Matenia in wManagerSetting.CurrentSetting.PathFinderFromServer   
    It will simply create a straight "path" without meshes if you disable that option.
  5. Like
    Pudge reacted to TheSmokie in wManagerSetting.CurrentSetting.PathFinderFromServer   
    There is old mesh and new mesh which the pathfinder uses. That pretty much is true for you to use new mesh 
  6. Like
    Pudge reacted to Droidz in Protection from SpellManager.CastSpellBy && LuaDoString (or what?)   
    Hi, if lua is modified only on MPQ file (and server don't check it after) you can try to call this code to reset CastSpell...:
    wManager.Wow.Memory.WowMemory.InjectAndExecute(new [] { wManager.Wow.Memory.WowMemory.CallWrapperCode(0x53B740), "ret" });  
  7. Like
    Pudge reacted to Matenia in Protection from SpellManager.CastSpellBy && LuaDoString (or what?)   
    If they don't check your IP (seems you're proxying) they might check your GetTime() (Lua) result because it is unique to your computer. You can modify this function by hooking it and adding a random offset. Search the forums.
  8. Thanks
    Pudge got a reaction from M4k5P0w3r in Relogger dont close wow window   
    You can add Wait task after Run

     
    you need to turn off

    and maybee turn off 
     
    or set the value to Run time in wait task 99999 

  9. Thanks
    Pudge got a reaction from M4k5P0w3r in Pathfinder server seem down   
    This is bug, it appears when you have bad internet connection/using poor proxy.  Ask @Droidz for fix it.

    As soon as this happens, the bot starts a pause-unpause cycle. The only solution is a full restarting the wrobot process. I made this function in my plugin, so when the entry "Pathfinder server seem down, pause bot for 20 secondes" appears in the log - wrobot process will be killed and restarted by relaunch in relogger.
  10. Like
    Pudge reacted to TheSmokie in Protection from SpellManager.CastSpellBy && LuaDoString (or what?)   
    Hello,
    This is the code they use for there custom MPQ and they check if the file is there and if its not then they download and replace the file with theres. @Droidz Might have to see if he can bypass it.
     
    the Mpq file  name : patch-ruRU-i.mpq
     
    -- Filename: Controller.lua -- Project: Sirus Game Interface -- Author: Nyll -- E-mail: [email protected] -- Web: https://sirus.su/ local _CastSpellByName = CastSpellByName local _CastSpellByID = CastSpellByID local _CastSpell = CastSpell local ignoreSpell = { 7620, 7731, 7732, 18248, 33095, 51294, 2550, 3102, 3413, 18260, 33359, 51296, 3273, 3274, 7924, 10846, 27028, 45542, 2259, 3101, 3464, 11611, 28596, 51304, 28677, 28675, 28672, 2018, 29844, 51300, 3538, 3100, 9785, 9788, 17039, 17040, 17041, 9787, 13262, 7411, 7412, 7413, 13920, 28029, 51313, 4036, 4037, 4038, 12656, 30350, 51306, 20222, 20219, 2366, 2368, 3570, 11993, 28695, 50300, 51005, 45357, 45358, 45359, 45360, 45361, 45363, 31252, 25229, 25230, 28894, 28895, 28897, 51311, 2108, 3104, 3811, 10662, 32549, 51302, 10656, 10660, 10658, 2656, 8613, 8617, 8618, 10768, 32678, 50305, 3908, 3909, 3910, 12180, 26790, 51309, 26798, 26797, 26801 } local blockSpell = { 306647, 306648, 306649, 306650, 306651, 306652, 306653, 306654, } local function GetSpellID( ... ) if ... then local link = GetSpellLink( ... ) if link then return tonumber(string.match(link, "spell:(%d*)")) end end end local function SendClientReport( name, ... ) SendServerMessage("ACMSG_PROTECTED_LUA_CALL_DETECTED", name.."|"..strjoin(" ", tostringall(...))) end function CastSpellByName( ... ) if not ... then return end local id = GetSpellID(...) if id and tContains(blockSpell, id) then return end if not UnitAffectingCombat("player") then _CastSpellByName(...) return end if id and tContains(ignoreSpell, id) then _CastSpellByName(...) return end SendClientReport("CastSpellByName", table.concat({..., id}, ", ")) end function CastSpellByID( ... ) if not ... then return end local id = GetSpellID(...) if id and tContains(blockSpell, id) then return end if not UnitAffectingCombat("player") then _CastSpellByID(...) return end if id and tContains(ignoreSpell, id) then _CastSpellByID(...) return end SendClientReport("CastSpellByID", ...) end function CastSpell( ... ) if not ... then return end local id = GetSpellID(...) if id and tContains(blockSpell, id) then return end if not UnitAffectingCombat("player") then _CastSpell(...) return end if id and tContains(ignoreSpell, id) then _CastSpell(...) return end SendClientReport("CastSpell", ...) end function JoinBattlefield( ... ) return nil end function AcceptBattlefieldPort( ... ) return nil end function AcceptTrade() return nil end function GuildInvite() return nil end function EventHandler:ASMSG_CLIENT_VERSION_REQUEST() SendAddonMessage("ACMSG_CLIENT_VERSION_VERIFICATION", 739, "WHISPER", UnitName("player")) end  
  11. Like
    Pudge reacted to Matenia in Protection from SpellManager.CastSpellBy && LuaDoString (or what?)   
    They probably disconnected you, because you didn't have their MPQs. 
    You can probably add a custom MPQ that's loaded at the very beginning that just loads FrameXML or something that copies CastSpellByName
     
    originalCastSpellByName = CastSpellByName -- later in wrobot use this code: originalCastSpellByName("Frostbolt") Maybe that will work. Otherwise - weird. THey definitely heavily modify the UI with their MPQs
  12. Like
    Pudge reacted to scsfl in Min value from list AuctionItem   
    Hi. Try this. Returns a dictionary where key is itemname and value is lowest price.
    private static Dictionary<string, int> GetLowestItemPrice() { Dictionary<string, int> CheapestItems = new Dictionary<string, int>(); List<AuctionHelpers.AuctionItem> ItemsList = new List<AuctionHelpers.AuctionItem>(); List<string> ItemsToCheck = /*your list of items*/ int LowestPrice = 0; if (AuctionHelpers.AuctionHouseIsShown()) foreach (string item in ItemsToCheck) { AuctionHelpers.BrowseNameSetText(item); Thread.Sleep(2000); AuctionHelpers.IsUsableCheckButtonSetChecked(false); if (AuctionHelpers.BrowseSearchButtonIsEnabled()) { AuctionHelpers.BrowseSearchButtonClick(); Thread.Sleep(2000); while (AuctionHelpers.BrowseNextPageButtonIsEnabled()) { if (AuctionHelpers.GetBrowsePageItems().Any()) { ItemsList.AddRange(AuctionHelpers.GetBrowsePageItems()); AuctionHelpers.BrowseNextPageButtonClick(); Thread.Sleep(1000); } } if (AuctionHelpers.GetBrowsePageItems().Any()) ItemsList.AddRange(AuctionHelpers.GetBrowsePageItems()); ItemsList.RemoveAll(i => (i.Name != item) || (i.BuyoutPricePerUnit == 0)); LowestPrice = ItemsList.Min(price => price.BuyoutPricePerUnit); CheapestItems.Add(item, LowestPrice); } } foreach (KeyValuePair<string, int> kvp in CheapestItems) { Logging.Write("Itemname = " + kvp.Key + "Itemprice " + kvp.Value); } AuctionHelpers.CloseAuctionHouse(); return CheapestItems; }  
  13. Like
    Pudge reacted to Droidz in Enter corpse in Dungeon   
    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("??"); } }  
  14. Thanks
    Pudge reacted to Matenia in Current step name   
    If you're looking into steps by name, you'll need the Quester.dll as a dependency, see custom code section here: 
     
  15. Like
    Pudge reacted to Droidz in Help with quester profile   
    try
    string stepName = "MyStepName"; var p = wManager.Wow.Helpers.Quest.QuesterCurrentContext.Profile as Quester.Profile.QuesterProfile; if (p != null) { for (int i = 0; i < p.QuestsSorted.Count; i++) { if (p.QuestsSorted[i].Action == wManager.Wow.Class.QuestAction.StepName && p.QuestsSorted[i].NameClass == stepName) { wManager.Wow.Helpers.Quest.QuesterCurrentContext.CurrentStep = i; break; } } }  
  16. Like
    Pudge reacted to Droidz in Go To Trainers command (for all classes)   
    wManager.Wow.Bot.States.Trainers.ForceGoClassTrainer();  
  17. Like
    Pudge reacted to Droidz in How to Get text from StaticPopup1   
    Hello, try 
    StaticPopup1Text:GetText()  
  18. Like
    Pudge reacted to Droidz in GetText() from wow interface elements   
    Hi,
    For popup: https://wrobot.eu/forums/topic/10936-how-to-get-text-from-staticpopup1/?do=findComment&comment=52116
    For error message I don't found, it is UIErrorsFrame but I don't found variable/function to get text. But you can do it in C# (code for worlk):
    string lastError = wManager.Wow.Memory.WowMemory.Memory.ReadStringUTF8(wManager.Wow.Memory.WowMemory.Memory.RebaseAddress(0x7CFB90), 200);  
  19. Like
    Pudge reacted to Droidz in wManager.wManagerSetting.CurrentSetting.IgnoreServerRoadsWater   
    Hello,
    if you disable this option, server will return the shortest path, if you enable this option server will try to use road (even if path is longer) (if continent have recorded road, it is case only for mains continents, and currently no water recorded)
    You can add water yourself, for that add blacklisted zone and change typearea to POLYAREA_WATER
  20. Like
    Pudge reacted to Schmeisser in Bambos Profile   
  21. Like
    Pudge reacted to Droidz in abnormal loot in combat   
    Hello,
    I think that problem is caused by "wManager.Wow.Helpers.Conditions.ForceIgnoreIsAttacked = true". Disable also "wManager.wManagerSetting.CurrentSetting.LootMobs = false;" and enable it sometime to loot killed mobs.
  22. Thanks
    Pudge got a reaction from Photogenic in Bot trying to mine RED ores   
    hi, for such cases there is a plugin
  23. Like
    Pudge reacted to Marsbar in C# Variable in Lua.DoString() gives lua error   
    Was just typing out a message lol. One can also use Environment.NewLine in C# if that's easier.
  24. Like
    Pudge reacted to Matenia in C# Variable in Lua.DoString() gives lua error   
    Why are you using @ in a non-multi-line string?
    This isn't a problem with LuaDoString.

     
    //next time take a look at your ingame Lua errors and you'll see what's actually appearing in the game and why it's a problem var name = "qq"; var subject = 123; var text = "1\n2\n3\n4\n5\n6"; Lua.LuaDoString("SendMail(\"" + name + "\", \"" + subject + "\", \"" + text + "\")"); // don't use @ in combination with \n otherwise at least double escape \n as \\n // also, don't mix ' with ", you're bound to run into issues with names containing ' eventually  
  25. Like
    Pudge reacted to Droidz in How to cast revive once?   
    your code is illogical, mouseover is in wrobot API you don't need to write in memory manually, why do "o.Name == o.Name" ? Why blacklist corpse in blacklist for hostile unit? (and search corpse without check if corpse is in this blacklist). 
    It's nice to help, but this type of code can mislead users.
     
     
    Code (not tested) with target should look like:
    var revive = new Spell("Revive", false); if (Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause && !ObjectManager.Me.IsCast && revive.KnownSpell && revive.IsSpellUsable) { var corpse = ObjectManager.GetObjectWoWCorpse().Where(c => !wManager.wManagerSetting.IsBlackListed(c.Guid)).FirstOrDefault(); if (corpse != null && corpse.IsValid) { Interact.ClearTarget(); // or Interact.InteractGameObject(corpse.GetBaseAddress); revive.Launch(); Interact.InteractGameObject(corpse.GetBaseAddress); wManager.wManagerSetting.AddBlackList(corpse.Guid, 1000 * 60 * 10); } } with focus should look like:
    var revive = new Spell("Revive", false); if (Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause && !ObjectManager.Me.IsCast && revive.KnownSpell && revive.IsSpellUsable) { var corpse = ObjectManager.GetObjectWoWCorpse().Where(c => !wManager.wManagerSetting.IsBlackListed(c.Guid)).FirstOrDefault(); if (corpse != null && corpse.IsValid) { var old = ObjectManager.Me.FocusGuid; ObjectManager.Me.FocusGuid = corpse.Guid; revive.Launch(true, true, false, "focus"); ObjectManager.Me.FocusGuid = old; wManager.wManagerSetting.AddBlackList(corpse.Guid, 1000 * 60 * 10); } }  
     
×
×
  • Create New...