Jump to content

Matenia

Elite user
  • Posts

    2230
  • Joined

  • Last visited

Everything posted by Matenia

  1. How does wRobot turn in a quest using Lua? Can you give me an example, please? I wrote a hook in Lua to prevent wRobot from turning in fast. The problem is, it works perfectly if I "click" on the button (by mouse) ingame or call QuestFrameCompleteButton:Click() but it doesn't work when Quest product. Even calling QuestFrameCompleteQuestButton:Disable() - the bot will STILL turn the quest in. Edit: I found out wRobot uses GetQuestReward, so it's possible to hook it using this: _GetQuestReward = GetQuestReward; function GetQuestReward(index, force) if(force) then return _GetQuestReward(index); else C_Timer.After(1000, function() DEFAULT_CHAT_FRAME:AddMessage('Delay quest turn in by 1000ms'); return _GetQuestReward(index); end); end end Lua.LuaDoString(@" local C_Timer = CreateFrame(""Frame"", ""C_Timer"", UIParent); C_Timer:Show(); C_Timer.schedule = {}; C_Timer:SetScript(""OnUpdate"", function(self, elapsed) self = C_Timer; elapsed = 1/GetFramerate(); for timestamp, callback in pairs(self.schedule) do if tonumber(timestamp) <= GetTime() then callback(); self.schedule[timestamp] = nil; end end end); C_Timer.After = function(duration, callback) C_Timer.schedule[tonumber(GetTime() + (duration / 1000))] = callback; end _OriginalQuestCompleteOnClick = QuestFrameCompleteQuestButton:GetScript(""OnClick""); --_OriginalQuestCompleteClick = QuestFrameCompleteQuestButton.Click; function hook_QuestComplete(self, button, arg2, arg3) self = this; if (button == ""FORCE"") then DEFAULT_CHAT_FRAME:AddMessage('Forcing quest acceptance!'); --_OriginalQuestCompleteClick(self, button); _OriginalQuestCompleteOnClick(self, button); else C_Timer.After(1000, function() DEFAULT_CHAT_FRAME:AddMessage('Delay quest turn in by 1000ms'); --_OriginalQuestCompleteClick(self, button); _OriginalQuestCompleteOnClick(self, button); end); end end QuestFrameCompleteQuestButton:SetScript(""OnClick"", hook_QuestComplete); --QuestFrameCompleteQuestButton.Click = hookQuestComplete; DEFAULT_CHAT_FRAME:AddMessage('Quest hook initiated'); ");
  2. This does not work, because I rely in C# to parse item code from quest items. I will try to hook QuestFrameCompleteQuestButton.Click and see if I can prevent the original click by wRobot (does wRobot use memory writing or Lua to achieve this?).
  3. Hey @Droidz, currently, I'm trying to execute my own code instead of letting wRobot finish the quest (very last step - select item and complete quest). I've been doing it like this: EventsLua.AttachEventLua((LuaEventsId) Enum.Parse(typeof(LuaEventsId), "QUEST_COMPLETE"), QuestCompleteHandler); private static void QuestCompleteHandler(object context) { PluginLog.Log("About to complete quest - INTERCEPT!"); SelectQuestItem(); } private static void SelectQuestItem() { //my logic to turn in quest Lua.LuaDoString($@" QuestRewardItem{index}:Click(); QuestFrameCompleteQuestButton:Click(); "); } However, it seems wRobot will still be faster in turning in the quest and although I can correctly log which is the best item to choose, wRobot will select another item and finish the quest. If I run this code in wRotation and manually open the quest dialog, it works 100%. How can I stop the quester from turning it at that point? I've tried using Products.InPause = true and pausing the bot before selecting the quest item myself, but it doesn't seem to work.
  4. You will need to make Cheap Shot itself Lua. Then in one Lua execution, you put: StopAttack(); CastSpellByName("Cheap Shot"); of course you need to add condition so it doesn't try to stop your attacks while you're out of stealth etc. Rather check you're stealthed/cheap shot isUsable etc.
  5. The trial is only available for private server use.
  6. - removed
  7. Mount Distance 20 means if anything is 20 yards or further away, it will mount up instead of walking. There's no real way to prevent "right click" sine that's how Click To Move works. Instead, add Lua "StopAttack();" spam so that it won't break stealth with autoattack before cheap shotting.
  8. All paid fightclasses use C# instead of XML. One, so you can't easily modify them and two, because XML is very limited and inefficient. It's not a plugin, it's a fightclass. That's why it won't load, you put it in your plugin folder...
  9. Why not just buy more ammo automatically?
  10. RunCode is C#, RunLuaCode is correct. But this looks like you are using the quester, you should be using this as part of your fightclass. Also, if you are using " within a string, they need to be escaped, so it would be (in C#): Lua.LuaDoString("PetActionButton5:Click(\"RightButton\")");
  11. For now, I solved this by manually setting Fight.InFight = true and it will just continue working normally. But I have noticed that whenever you crowd control a mob in vanilla (fear, polymorph, repentance) it will un-target you adn the bot will stop fighting it and completely ignore it. I'll get back to you with memory info if I find the time.
  12. PetActionButton5:Click("RightButton") http://wowwiki.wikia.com/wiki/API_Button_Click https://github.com/ericraio/vanilla-wow-addons/tree/master/s/SmartPet
  13. You are either using a vanilla plugin (it's a .cs file) or fightclass for TBC. It's trying to call a function that doesn't exist in your TBC bot binaries.
  14. The code is already available on the forums. There's an entirey thread in the vanilla section on kiting (in regards to frost nova, but still).
  15. Hello @Droidz, I have the following problem. The bot doesn't recognize I am in fight (vanilla) after casting polymorph on another mob. Now I use this snippet of code to force it to attack polied targets. However it completely locks at Fight.StartFight UNTIL the mob is dead (from external sources) or I die. Check out the log below. What can cause this? if(!Fight.InFight || !Me.InCombat) { WoWUnit polyTarget = ObjectManager.GetObjectWoWUnit().FirstOrDefault(u => u.HaveDebuff("Polymorph") && u.GetDistance <= 20); if (polyTarget != null) { Logging.WriteFight("Found polied target " + polyTarget.Name); Logging.WriteFight("Polytarget Valid: " + polyTarget.IsValid); //Fight.StopFight(); Conditions.ForceIgnoreIsAttacked = false; CombatUtil.TargetUnit(polyTarget); Logging.WriteFight("Targeting poly"); Fight.StopFight(); Fight.StartFight(polyTarget.Guid, false); Logging.WriteFight("Starting fight again"); SpellManager.CastSpellByNameLUA(Frostbolt.Spell.Name); Logging.WriteFight("Casting Frostbolt on polied target! Already InFight: " + Fight.InFight); } } [F] 13:32:06 - Fightclass successfully casted: Frostbolt [F] 13:32:06 - Found polied target Highland Strider [F] 13:32:06 - Polytarget Valid: True [F] 13:32:06 - Targeting poly 13:32:07 - [HumanMasterPlugin] cancelling regen while in combat 13:32:07 - [Fight] Player Attack Highland Strider (lvl 31) [F] 13:32:36 - Starting fight again [F] 13:32:36 - Casting Frostbolt on polied target! Already InFight: False 13:32:37 - [HumanMasterPlugin] Looting Highland Strider 13:32:38 - [Fight] Player Attack Highland Strider (lvl 30)
  16. Hello, when developing my plugin cross-expansion, I noticed that in wManager for TBC WoWItem is missing MaxDurability property. Vanilla has it.
  17. Matenia

    !Me In Combat

    Try ObjectManager.Me.InCombatFlagOnly
  18. Version 1.3.1

    1446 downloads

    Disclaimer: This fightclass only works with the English client. It is possible, that I will add support for more later. DO NOT USE ON TBC+ For questions and bugreports, please reach out to me on Discord. The attached file is a simplified demo version. Installation instructions For questions and bugreports, please reach out to me directly. Creates Water/Food, so that you can use it for max level farming in highly contested areas too. It automatically sets your current water/food in general settings. You only need to activate drinking. You should utilize the Permafrost talent, it makes kiting more effective. Dynamic Rotation Polymorphs offtargets if you are attacked by more than 1 enemy Evocation during combat, only after kiting so that you aren't interrupted Kites away from your enemies if they are melee and will switch target if someone gets closer to you Uses Frostbolt+Fireblast at low levels and Shatter (Cone of Cold) at higher levels Wands if no mana is left Situational Spell Usage Uses all your spells, Evocation, Cold Snap, etc Humanized Uses spell rotation that are unlikely to make anybody recognize you as a bot No need to put anything on your bars Can buff players around you This profile uses frame lock. This means it freezes your game for a short amount of time to make sure no spells are skipped and the correct spell in the rotation is always selected. If you have problems with your FPS, deactivate frame lock in the profile settings. PURCHASE NOW - 6.50€ - limited to 2 IPs on 1 wRobot Key I, the owner and creator of this file, am in no way associated with the wRobot company. By purchasing this file, you agree to the contract of the purchasing website and that alone. Check out my other Fightclasses
  19. Version 1.0.1

    385 downloads

    Disclaimer: This fightclass only works with the English client. It is possible, that I will add support for more later. DO NOT USE ON TBC.For questions and bugreports, please visit my Discord channel. The attached file is a low-level demo version. Installation instructions Remember to do your totem quests and get a decent two-hander to start with! @eeny has a great quester profile for totems. Shamans are an unusual class to level with a bot. However, they deserve some love too, and here is just what you need to accomplish that task: Dynamic Rotation Based Upon Level Different rotations, depending on which new spells you've learned Uses different totems in different situations Uses Totemic Call when necessary to save mana Situational Spell Usage Uses all your spells when appropriate Stoneclaw to tank several mobs Ghost Wolf automatically set as your mount. @Marsbar has a great plugin for Ghost Wolf in vanilla too Rank 1 Earth Shock to interrupt casts while saving mana Highly Mana Efficient Totemic Call Rank 1 Spells where appropriate Always saves enough mana to heal yourself Automatic Skill Detection Automatically detects if you learn new spells while leveling, no need to restart the bot No need to put anything on your bars This profile uses frame lock. This means it freezes your game for a short amount of time to make sure no spells are skipped and the correct spell in the rotation is always selected. If you have problems with your FPS, deactivate frame lock in the profile settings. PURCHASE NOW (Rocketr) - 6.50€ - 2 IPs per wRobot license I, the owner and creator of this file, am in no way associated with the wRobot company. By purchasing this file, you agree to the contract of the purchasing website and that alone. Check out my other Fightclasses
  20. Version 1.0.1

    531 downloads

    Disclaimer: This fightclass only works with the English client. It is possible, that I will add support for more later. DO NOT USE ON TBC. The attached file is a low-level demo version. Installation instructions For questions and bugreports, please reach out to me on Discord. Ret Palas are a hard class to bot, but perhaps your love for the class is overwhelming and you just can’t help yourself. I’m here to help ease your frustration and to optimise the class for xp/hour efficiency and reduced downtime. You will need drinks, however. Dynamic Rotation Based Upon Level Uses different seals according to your level, as well as new spells whenever you learn them Allows you to choose between using Blessing of Might or Wisdom Situational Spell Usage Uses all your spells, including Repentance and Hammer of Justice against casters or if you drop low, Divine Protection (and later Divine Shield), Lay on Hands and more Highly Mana Efficient Uses Rank 1 Seal of Command if you go low on mana and stops judging Allows Blessing of Wisdom to deal with mana issues Automatic Skill Detection Automatically detects if you learn new spells while leveling, no need to restart the bot No need for anything on your action bars This profile uses frame lock. This means it freezes your game for a short amount of time to make sure no spells are skipped and the correct spell in the rotation is always selected. If you have problems with your FPS, deactivate frame lock in the profile settings. Purchase NOW - 6.50€ (Rocketr) - 2 IPs per wRobot license I, the owner and creator of this file, am in no way associated with the wRobot company. By purchasing this file, you agree to the contract of the purchasing website and that alone. Check out my other Fightclasses
  21. Version 1.0.0

    576 downloads

    Disclaimer: This fightclass only works with the English client. It is possible, that I will add support for more later. DO NOT USE ON TBC.For questions and bugreports, please visit my Discord channel. The attached file is a low-level demo version. Installation instructions If you use this fightclass to level, I recommend getting a Wand asap. Priest’s are a hard class to bot, but perhaps your love for the class is overwhelming and you just can’t help yourself. I’m here to help ease your frustration and to optimise the class for mana efficiency and reduced downtime. After coding for several weeks, I’m proud to present you with a priest fight class that contains the following: Dynamic Rotation Based Upon Level - 3 different fighting rotations for below 20, below 40 and above 40. Situational Spell Usage - Uses all your spells, including Silence, Fear and Devouring Plague in appropriate situations. Highly Mana Efficient - Tries to use as little mana as possible while leveling. The rotation was built with increased uptime in mind. Therefore it Wands whenever’s most beneficial. - Uses different heals at different percentages Automatic Skill Detection - Automatically detects if you learn new spells while leveling, no need to restart the bot - No need for anything on your action bars - Can buff players around you - Heals party members (can rezz them too) This profile uses frame lock. This means it freezes your game for a short amount of time to make sure no spells are skipped and the correct spell in the rotation is always selected. If you have problems with your FPS, deactivate frame lock in the profile settings. PURCHASE NOW (Rocketr) - 6.50€ - limited to 2 IPs on 1 wRobot Key I, the owner and creator of this file, am in no way associated with the wRobot company. By purchasing this file, you agree to the contract of the purchasing website and that alone. Check out my other Fightclasses
  22. Version 1.1

    5187 downloads

    Quickly thrown together plugin that creates a frame in game and shows what your bot is currently doing so you don't have to check the bot status all the time.
  23. Version 1.0.0

    226 downloads

    This is @reapler's AvoidIt plugin for vanilla. I noticed there were some errors thrown, related to the code it uses, as I was plaiyng around with similar pathfinding code myself. For some reason, I could also change the settings on 1 character out of many. So I decompiled his plugin and compiled it again with minor changes. For anyone who cares - apparently: PathFinder.Pather.ReportBigDangerArea(woWUnit.Position, radius); throws a NullReferenceException (even though Pather, wowUnit and radius are all not null) - this doesn't happen on EVERY character. PathFinder.ReportBigDangerArea(woWUnit.Position, radius); works fine, so that's basically the extent of my changes.
  24. Get LibStub (this addon requires Ace2).
×
×
  • Create New...