Jump to content

Matenia

Elite user
  • Posts

    2226
  • Joined

  • Last visited

Reputation Activity

  1. Like
    Matenia got a reaction from Lbniese in [Feature request/Help] Smart targeting/pulls   
    Hey @Droidz,
    currently in older expansions like vanilla/tbc/wrath the bot is lacking a few very important features that are probably not too hard for you to implement. 
    I could try fixing all of these through my plugin, but it's hard to do, because a lot of bot behavior is unpredictable I don't know the inner workings of your code, so for a lot I have to do guess work.
     
    So here are some suggestions that early expansions really need:
    regen takes priority BEFORE "Attack before being attacked", currently especially after rezzing the bot will keep attacking new targets after combat because they are in 20 yards, even if they wouldn't attack you (it's better to rely on IsAttacked state during regen) smart rezz (and small bug fix), try to REALLY find a save spot to rezz, but more importantly recognize when you can't rezz and move a bit closer to the corpse, some servers don't calculate distance 100% the same as the client and won't accept rezz if you aren't a bit closer. I use code to solve this1 smart target/pulls - before pulling check if any units are near by the pulled unit (20 yards + number from general settings), then ALSO check every Vector3 2 yards between you and your target  move around if the above conditions aren't met for any targets (find a line between you and target with no mobs between) (slightly improved AvoidIt plugin) If Conditions.ForceIgnoreIsAttacked is set, do NOT try to enter regen mode while you are still being attacked - keep running to the next waypoint or try to drop combat A way to avoid certain zones when doing long-travel (this is enough if we can add it through API) - for example if we are level 25, avoid Burning Steppes zone in all paths, but you can give an alternative "Task" or "Action" (where it would then take the tram, executing your own C# code, for example) ??? (reserved for more things)  
     
  2. Like
    Matenia reacted to Droidz in Trying to use portal   
    Hello, do you have "EndWhile" step? And are your sure that it is not "(ObjectManager.Me.Position.DistanceTo2D(new Vector3(-14470.6f, 468.559f, -30.71972f)) > 10)"
     
    EDIT: In "while" step you need to put position where the portal teleport your character (not the portal position)
  3. Like
    Matenia got a reaction from Dreamful in [Feature request/Help] Smart targeting/pulls   
    Hey @Droidz,
    currently in older expansions like vanilla/tbc/wrath the bot is lacking a few very important features that are probably not too hard for you to implement. 
    I could try fixing all of these through my plugin, but it's hard to do, because a lot of bot behavior is unpredictable I don't know the inner workings of your code, so for a lot I have to do guess work.
     
    So here are some suggestions that early expansions really need:
    regen takes priority BEFORE "Attack before being attacked", currently especially after rezzing the bot will keep attacking new targets after combat because they are in 20 yards, even if they wouldn't attack you (it's better to rely on IsAttacked state during regen) smart rezz (and small bug fix), try to REALLY find a save spot to rezz, but more importantly recognize when you can't rezz and move a bit closer to the corpse, some servers don't calculate distance 100% the same as the client and won't accept rezz if you aren't a bit closer. I use code to solve this1 smart target/pulls - before pulling check if any units are near by the pulled unit (20 yards + number from general settings), then ALSO check every Vector3 2 yards between you and your target  move around if the above conditions aren't met for any targets (find a line between you and target with no mobs between) (slightly improved AvoidIt plugin) If Conditions.ForceIgnoreIsAttacked is set, do NOT try to enter regen mode while you are still being attacked - keep running to the next waypoint or try to drop combat A way to avoid certain zones when doing long-travel (this is enough if we can add it through API) - for example if we are level 25, avoid Burning Steppes zone in all paths, but you can give an alternative "Task" or "Action" (where it would then take the tram, executing your own C# code, for example) ??? (reserved for more things)  
     
  4. Like
    Matenia got a reaction from eeny in [Feature request/Help] Smart targeting/pulls   
    Hey @Droidz,
    currently in older expansions like vanilla/tbc/wrath the bot is lacking a few very important features that are probably not too hard for you to implement. 
    I could try fixing all of these through my plugin, but it's hard to do, because a lot of bot behavior is unpredictable I don't know the inner workings of your code, so for a lot I have to do guess work.
     
    So here are some suggestions that early expansions really need:
    regen takes priority BEFORE "Attack before being attacked", currently especially after rezzing the bot will keep attacking new targets after combat because they are in 20 yards, even if they wouldn't attack you (it's better to rely on IsAttacked state during regen) smart rezz (and small bug fix), try to REALLY find a save spot to rezz, but more importantly recognize when you can't rezz and move a bit closer to the corpse, some servers don't calculate distance 100% the same as the client and won't accept rezz if you aren't a bit closer. I use code to solve this1 smart target/pulls - before pulling check if any units are near by the pulled unit (20 yards + number from general settings), then ALSO check every Vector3 2 yards between you and your target  move around if the above conditions aren't met for any targets (find a line between you and target with no mobs between) (slightly improved AvoidIt plugin) If Conditions.ForceIgnoreIsAttacked is set, do NOT try to enter regen mode while you are still being attacked - keep running to the next waypoint or try to drop combat A way to avoid certain zones when doing long-travel (this is enough if we can add it through API) - for example if we are level 25, avoid Burning Steppes zone in all paths, but you can give an alternative "Task" or "Action" (where it would then take the tram, executing your own C# code, for example) ??? (reserved for more things)  
     
  5. Like
    Matenia reacted to Arcangelo in NPC database for Vanilla   
    I have had a lot of trouble with the quester bot running into wrong factions to sell.
    So i created my own database with trainers, vendors, repair, flightmasters and so on.
    and i though i would share it with this awesome community, so we all don't have to make our own.
    It's still in bata - but try it out if you want - Note I have only tested it on Questing scripts!:
    Guilde to set it up:
    - open the file with notepad/visual studio or whatever you use to code in
    - find where it says something like this :
    <Npc> <Position X="-12414" Y="166.158" Z="3.393922" Type="Flying" /> <Entry>7485</Entry> <Name>Nargatt</Name> <GossipOption>-1</GossipOption> <Active>true</Active> <Faction>Neutral</Faction> <Type>Vendor</Type> <ContinentId>Azeroth</ContinentId> </Npc> - Override the NPC database in your script
    - and add this c-code to your script
    wManager.Wow.Helpers.NpcDB.AcceptOnlyProfileNpc = true; Save the profiles and it should now run on your own database :) !
    Alliance NPC DB.xml
    Horde - NPC DB.xml
  6. Like
    Matenia got a reaction from thakane in What's wrong with this code? Kills mob instead of using item   
    Try:
    Fight.StopFight();
    ItemsManager.UseItem(itemId); 
     
    instead of just ItemsManager.UseItem(itemId);
  7. Like
    Matenia got a reaction from eniac86 in C# Framework for wRobot 1.12.1 Fightclasses   
    Hey guys,
    I recently ported some of my fightclass framework to vanilla. I'm happy with where it currently is but will probably push updates.
    You can find a working version (and any future update) in my repository on GitHub. This framework is intended for all the developers on the wRobot Discord channel who keep working on the same issues over and over again. Hopefully this will encourage people to make pull requests and contribute to an overall community effort. 
    Also, hopefully it will help with some of the more regular Discord users not having to answer a lot of questions over and over.
    Enjoy:
    https://github.com/Schaka/VanillaFightclassFramework
  8. Like
    Matenia got a reaction from arkhan in C# Framework for wRobot 1.12.1 Fightclasses   
    Hey guys,
    I recently ported some of my fightclass framework to vanilla. I'm happy with where it currently is but will probably push updates.
    You can find a working version (and any future update) in my repository on GitHub. This framework is intended for all the developers on the wRobot Discord channel who keep working on the same issues over and over again. Hopefully this will encourage people to make pull requests and contribute to an overall community effort. 
    Also, hopefully it will help with some of the more regular Discord users not having to answer a lot of questions over and over.
    Enjoy:
    https://github.com/Schaka/VanillaFightclassFramework
  9. Like
    Matenia got a reaction from orls in C# Framework for wRobot 1.12.1 Fightclasses   
    Hey guys,
    I recently ported some of my fightclass framework to vanilla. I'm happy with where it currently is but will probably push updates.
    You can find a working version (and any future update) in my repository on GitHub. This framework is intended for all the developers on the wRobot Discord channel who keep working on the same issues over and over again. Hopefully this will encourage people to make pull requests and contribute to an overall community effort. 
    Also, hopefully it will help with some of the more regular Discord users not having to answer a lot of questions over and over.
    Enjoy:
    https://github.com/Schaka/VanillaFightclassFramework
  10. Like
    Matenia reacted to iMod in Dungeon Tool   
    If its that easy why you don't create something like that in your free time and give it out for free? I bet you get enough support in the forum to create such easy product. If you start converting the dungeon profiles please convert the quest one too many user would be greatefull :)
  11. Like
    Matenia reacted to Droidz in What does IsSpellUsable check for?   
    Hello, WRobot method "IsSpellUsable" check if spell is not gray in action bar (mana, cooldown, usable on target, ...: https://wow.gamepedia.com/API_IsUsableSpell and https://wow.gamepedia.com/API_GetSpellCooldown ).
    if it is not a spell at cast on self, you need to check if target is in "line of sight" and target distance:
    var notInLineOfSight = TraceLine.TraceLineGo(ObjectManager.ObjectManager.Target.Position); var isGoodDistance = spell.IsDistanceGood;  
  12. Like
    Matenia reacted to Avvi in Close game when Teleported --> Stop bot when Teleported   
    My recommendation is to take a look / decompile the WRobot code using dotPeek to figure out how Droidz does it. In his above snippet, he is omitting a lot - such as checking for when character is dead / character moved to different continent, etc.
     
  13. Like
    Matenia got a reaction from Ordush in Global Lua API   
    So basically:
    return GetSpellInfo(GetSpelInfo(1234)) ~= nil; get name by id, then use name to check if it's in spell book...
  14. Like
    Matenia reacted to Droidz in Close game when Teleported --> Stop bot when Teleported   
    Hello, I am not sure to understand what you want but:
    robotManager.Events.FiniteStateMachineEvents.OnRunState += delegate(robotManager.FiniteStateMachine.Engine engine, robotManager.FiniteStateMachine.State state, System.ComponentModel.CancelEventArgs cancelable) { if (state is wManager.Wow.Bot.States.StopBotIf && state.DisplayName == "Security/Stop game") { // sample to disable tp detection: wManager.wManagerSetting.CurrentSetting.CloseIfPlayerTeleported = false; wManager.Wow.Bot.States.StopBotIf.ForcePvpMode = true; wManager.Wow.Bot.States.StopBotIf.LastPos = wManager.Wow.ObjectManager.ObjectManager.Me.Position; // how to wrobot check if your char is tp: if (wManager.Wow.Bot.States.StopBotIf.LastPos != null && wManager.Wow.Helpers.Conditions.InGameAndConnectedAndAlive && wManager.Wow.ObjectManager.ObjectManager.Me.Position.DistanceTo(wManager.Wow.Bot.States.StopBotIf.LastPos) >= 450) { // close bot... } } };  
  15. Like
    Matenia reacted to reapler in Left click unit   
    It's also possible to do this on vanilla, but with mouseover guid:
    public void Target(ulong guid) { if (guid == 0) return; ulong tmp = wManager.Wow.Memory.WowMemory.Memory.ReadUInt64( (uint) wManager.Wow.Memory.WowMemory.Memory.MainModuleAddress + 0x74E2C8); wManager.Wow.Memory.WowMemory.Memory.WriteUInt64( (uint) wManager.Wow.Memory.WowMemory.Memory.MainModuleAddress + 0x74E2C8, guid); wManager.Wow.Helpers.Lua.LuaDoString("TargetUnit('mouseover');"); wManager.Wow.Memory.WowMemory.Memory.WriteUInt64( (uint) wManager.Wow.Memory.WowMemory.Memory.MainModuleAddress + 0x74E2C8, tmp); }  
  16. Like
    Matenia got a reaction from Skygirl779 in Left click unit   
    A SPECIFIC unit? You can take a look at (decompile) how Droidz does it in the "Interact" class in the Helper namespace (lots of memory writing).

    If not, use
    Lua.LuaDoString(TargetEnemy("name")) (I think) or
    Lua.RunMaroText("/target name")  
  17. Like
    Matenia reacted to Seminko in Prioritize Low HP targets   
    You need an OnFightLoop fight event.
    I'm not sure whether this is the correct way to handle events but it's the way I could come up with, since my knowledge of Csharp is very limited still... BUT, what I do is put the OnFightLoop event in a method and call it during initialization. Once it is called the events "are recognized" and will fire everytime you are in a fight loop.
    Disclaimer: this is not tested, put this together just now...
    public void TargetSwitcher() // needs to be called just once, ie during Initialize { FightEvents.OnFightLoop += (unit, cancelable) => { // this code will loop everytime you are fighting List<WoWUnit> attackers = ObjectManager.GetUnitAttackPlayer(); // gets all units attacking you if (attackers.Count > 1) // if you are attacked by more than one mob { Logging.WriteDebug("More than 1 attackers detected."); //WoWUnit highestHP = attackers.OrderBy(uo => uo.HealthPercent).LastOrDefault(); // sort the list based on HP from lowest to highest, pick highest WoWUnit lowestHP = attackers.OrderBy(ou => ou.HealthPercent).FirstOrDefault(); // sort the list based on HP from lowest to highest, pick lowest if (lowestHP != null && lowestHP.IsValid && lowestHP.IsAlive && !lowestHP.IsMyTarget) // if the lowest hp mob is valid, alive and NOT your current target { cancelable.Cancel = true; // not TOO sure about this one haha Interact.InteractGameObject(lowestHP.GetBaseAddress); // switch to it Fight.StartFight(lowestHP.GetBaseAddress); // start fighting it Logging.WriteDebug("Switched to lowestHP target."); } } }; }  
    As a bonus, check this post by Droidz. Might be usefull too.
     
    Let me know how it worked out for ya...
  18. Haha
    Matenia got a reaction from BetterSister in All my bots on Warmane Outland got banned   
    They probably finally started tracking popular Outland locations. Feral farming is pretty much just SCREAMING to get banned.
  19. Like
    Matenia reacted to Droidz in Specific vendor in profile   
    Hello,
    You cannot with default, but if you use custom code (plugin in this sample):
    using System; using System.Collections.Generic; public class Main : wManager.Plugin.IPlugin { public void Initialize() { // NPC list var npcs = new List<Tuple<int, int, wManager.Wow.Class.Npc>> // Item1=minlevel, Item2=maxlevel, Item3=npc { new Tuple<int, int, wManager.Wow.Class.Npc>(1, 5, new wManager.Wow.Class.Npc { Type = wManager.Wow.Class.Npc.NpcType.Repair, Name = "Npc name for level 1 to 5", Entry = 12345, ContinentId = wManager.Wow.Enums.ContinentId.Azeroth, Faction = wManager.Wow.Class.Npc.FactionType.Neutral, Position = new robotManager.Helpful.Vector3(1, 2, 3), CanFlyTo = true }), new Tuple<int, int, wManager.Wow.Class.Npc>(6, 9, new wManager.Wow.Class.Npc { Type = wManager.Wow.Class.Npc.NpcType.Repair, Name = "Npc name for level 6 to 9", Entry = 6789, ContinentId = wManager.Wow.Enums.ContinentId.Azeroth, Faction = wManager.Wow.Class.Npc.FactionType.Neutral, Position = new robotManager.Helpful.Vector3(6, 7, 8), CanFlyTo = true }), // ... }; // do: uint lastLevelCheck = 0; robotManager.Events.FiniteStateMachineEvents.OnBeforeCheckIfNeedToRunState += (engine, state, cancelable) => { var level = wManager.Wow.ObjectManager.ObjectManager.Me.Level; if (state != null && state.DisplayName == "To Town" && lastLevelCheck != level) { robotManager.Helpful.Logging.WriteDebug("Check NPC for current level"); wManager.Wow.Helpers.NpcDB.AcceptOnlyProfileNpc = true; wManager.Wow.Helpers.NpcDB.ListNpc.RemoveAll(n => n.CurrentProfileNpc); foreach (var npc in npcs) { if (npc.Item1 >= level && npc.Item2 <= level) { wManager.Wow.Helpers.NpcDB.AddNpc(npc.Item3, false, true); robotManager.Helpful.Logging.WriteDebug("Add npc: " + npc.Item3); } } lastLevelCheck = level; } }; } public void Dispose() { } public void Settings() { } } (not tested, tell me if this don't works)
    In this sample, wrobot will refresh npc list at all level (and add npcs by level), but you can add condition to check current charater zone (by position disdance), ...
    You can also run this code in quester step (put only content of method "Initialize()")
  20. Like
    Matenia got a reaction from y2krazy in Sell items before buy food/drink   
    @Droidz this could be done by just changing priorities in the ToTown state. 
    Make it SELL first, then purchase food/drink. 
     
    @maukor in general bot settings, just disable "automatically add new NPCs to database". 
    If your bot only uses NPCs from profile AND doesn't add any new NPCs, you're good to go. But you will also have to add your own mailboxes and such.
    @Droidz
    If NpcDB.AcceptOnlyProfileNpc = true; doesn't work, it's a bug imo. This could be only for vanilla, I haven't really had problems in TBC.
  21. Thanks
    Matenia got a reaction from Marsbar in Switch target, polymorph, switch to original target   
    Pretty much this. Plus, since the bot runs on another thread, sometimes it switches your target back BEFORE your poly cast even starts. Then you end up polying 2 targets back and forth and looking like a retard. Basically why Jasabi could never get polymorph to work correctly, I believe.
    cancelable.Cancel = true is correct. However, I recommend NOT breaking the OnFightLoop event handler UNTIL your target has been successfully polymorphed. You can solve this with a while loop (Thread.Sleep inside) until poly is on another target.
  22. Thanks
    Matenia got a reaction from Seminko in [SOLVED] Move after Frost Nova - is it really that hard?   
    You actually need to set isTooClose to false again after the while loop and maybe give it a short Thread.Sleep(500) or so at the end of each iteration.
    Does the bot interrupt movement and then starts strafing again? Or is the strafing itself just choppy?
     
    I highly recommend getting Visual Studio and doing a basic C# tutorial (or even Java, they're essentially the same
  23. Like
    Matenia reacted to Droidz in Use hearthstone when bags are full   
    Hello, use plugin like HearthstoneToGoToTown.cs (not tested):
    using System; using System.ComponentModel; using System.Threading; using System.Windows.Forms; using robotManager.Events; using robotManager.FiniteStateMachine; using robotManager.Helpful; using wManager.Wow.Helpers; using wManager.Wow.ObjectManager; public class Main : wManager.Plugin.IPlugin { public void Initialize() { FiniteStateMachineEvents.OnRunState += FiniteStateMachineEventsOnOnRunState; Logging.Write("[HearthstoneToGoToTown] Loadded."); } public void Dispose() { Logging.Write("[HearthstoneToGoToTown] Disposed."); } public void Settings() { MessageBox.Show("[HearthstoneToGoToTown] No settings for this plugin."); } private void FiniteStateMachineEventsOnOnRunState(Engine engine, State state, CancelEventArgs cancelable) { try { if (string.IsNullOrWhiteSpace(state.DisplayName) || state.DisplayName != "To Town") return; Logging.WriteDebug("[HearthstoneToGoToTown] Use Hearthstone."); var o = wManager.wManagerSetting.CurrentSetting.CloseIfPlayerTeleported; wManager.wManagerSetting.CurrentSetting.CloseIfPlayerTeleported = false; MovementManager.StopMove(); Thread.Sleep(Usefuls.Latency + 150); Lua.LuaDoString("local itemName, _, _, _, _, _, _, _ = GetItemInfo(6948); RunMacroText('/use ' .. itemName);"); Thread.Sleep(Usefuls.Latency + 500); if (ObjectManager.Me.IsCast) { Usefuls.WaitIsCasting(); Thread.Sleep(Usefuls.Latency + 10000); // wait load screen } wManager.wManagerSetting.CurrentSetting.CloseIfPlayerTeleported = o; } catch (Exception e) { Logging.WriteError("[HearthstoneToGoToTown] " + e); } } }  
  24. Like
    Matenia got a reaction from ScripterQQ in Huge banwave of bots 3.3.5   
    This happened on Outland every day since day 1. They ban at least 50 accounts a day. It means nothing, because the bot isn't detected.
    It's just manual reports adding up. If their GMs actually put in any real work, they'd be banning 200 accounts a day. I've been botting on Warmane since day 1, got banned twice after never really logging out and staying in one spot for days.
  25. Like
    Matenia got a reaction from nudl in Huge banwave of bots 3.3.5   
    This happened on Outland every day since day 1. They ban at least 50 accounts a day. It means nothing, because the bot isn't detected.
    It's just manual reports adding up. If their GMs actually put in any real work, they'd be banning 200 accounts a day. I've been botting on Warmane since day 1, got banned twice after never really logging out and staying in one spot for days.
×
×
  • Create New...