Jump to content

Matenia

Elite user
  • Posts

    2230
  • Joined

  • Last visited

Everything posted by Matenia

  1. Suspicion: This happens if the DoNotSellList contains the same item twice. For example, I call this method multiple times: wManagerSetting.CurrentSetting.DoNotSellList.Add(waterName); Full list of items: Refreshing Spring Water (ID= 159 ) Hearthstone (ID= 6948 ) Hallowed Letter (ID= 9548 ) Broken Fang (ID= 7073 ) Ruined Pelt (ID= 4865 ) Ice Cold Milk (ID= 1179 ) Broken Boar Tusk (ID= 3171 ) Chunk of Boar Meat (ID= 769 ) William's Shipment (ID= 957 ) Flimsy Chain Bracers (ID= 2651 ) Stringy Wolf Meat (ID= 2672 ) Linen Cloth (ID= 2589 ) Chipped Boar Tusk (ID= 771 ) Chipped Bear Tooth (ID= 3169 ) Ruined Leather Scraps (ID= 2934 ) Rabbit's Foot (ID= 3300 ) Copper Ore (ID= 2770 ) Shiny Seashell (ID= 779 ) Loose Chain Gloves (ID= 2645 ) Withered Staff (ID= 1411 ) Haunch of Meat (ID= 2287 ) Crystal Kelp Frond (ID= 1256 ) Magic Candle (ID= 1399 ) Full list of memory info:
  2. Hello, is this for vanilla? I use the following function to check if I can wand: public static bool IsAutoRepeating(string name) { string luaString = @" local i = 1 while true do local spellName, spellRank = GetSpellName(i, BOOKTYPE_SPELL); if not spellName then break; end -- use spellName and spellRank here if(spellName == ""{0}"") then PickupSpell(i, BOOKTYPE_SPELL); PlaceAction(1); ClearCursor(); return IsAutoRepeatAction(1) end i = i + 1; end return false;"; return Lua.LuaDoString<bool>(string.Format(luaString, name)); }
  3. Can confirm this code example works, btw. I'm combining it with @reapler's WowDb335 and can handpick NPCs for every state like ToTown, Trainers, etc
  4. [E] 15:22:22 - SpellInfo GetSpellInfo(uint id): System.MissingMethodException: Method not found: 'SpellRec wManager.Wow.Helpers.DBC`1.GetRowByIndex(Int32)'. at wManager.Wow.Helpers.DBC`1..ctor(UInt32 offset) at wManager.Wow.Helpers.SpellDBC..ctor(UInt32 id) at wManager.Wow.Helpers.SpellManager.SpellInfoCreateCache(List`1 listId)
  5. [E] 15:17:57 - WoWFactionTemplate(uint id): System.MissingMethodException: Method not found: 'FactionTemplateDbcRecord wManager.Wow.Helpers.DBC`1.GetRowByIndex(Int32)'. at wManager.Wow.Helpers.DBC`1..ctor(UInt32 offset) at wManager.Wow.Helpers.WoWFactionTemplate..ctor(UInt32 id) [E] 15:15:48 - WoWFactionTemplate(uint id): System.MissingMethodException: Method not found: 'FactionTemplateDbcRecord wManager.Wow.Helpers.DBC`1.GetRowByIndex(Int32)'. at wManager.Wow.Helpers.DBC`1..ctor(UInt32 offset) at wManager.Wow.Helpers.WoWFactionTemplate..ctor(UInt32 id)
  6. [E] 15:15:48 - WoWFactionTemplate(uint id): System.MissingMethodException: Method not found: 'FactionTemplateDbcRecord wManager.Wow.Helpers.DBC`1.GetRowByIndex(Int32)'. at wManager.Wow.Helpers.DBC`1..ctor(UInt32 offset) at wManager.Wow.Helpers.WoWFactionTemplate..ctor(UInt32 id) Since last update. Just keeps erroring. I'm not sure what causes this. It was fine before.
  7. disable your addons and/or get a clean WoW client apparently the function to cast spells through in vanilla (Lua function) doesn't exist in your setup.
  8. I think it was missing trainers in the database for some reason. I added some more and it seemed to work then, thanks.
  9. I looked into the Trainers state, but it's highly obfuscated. I know the TrainLevel plugin that just keeps overwriting the wRobot setting, but sometimes it misses out and then you have to wait for 6 levels, so I'm not happy with that. So I have tried this code, but it doesn't exactly work either. Can you maybe give some more info @Droidz? public static void Start() { FiniteStateMachineEvents.OnBeforeCheckIfNeedToRunState += TrainingEventHandler; } public static void Stop() { FiniteStateMachineEvents.OnBeforeCheckIfNeedToRunState -= TrainingEventHandler; } private static void TrainingEventHandler(robotManager.FiniteStateMachine.Engine engine, robotManager.FiniteStateMachine.State state, System.ComponentModel.CancelEventArgs cancelable) { if (state.GetType() == typeof(Trainers)) { bool hasToTrain = LevelsToTrain.Contains(ObjectManager.Me.Level); Logging.WriteDebug("Checking if we have to go to trainer: " + (hasToTrain ? "yes" : "no")); if (!hasToTrain) { cancelable.Cancel = true; } } }
  10. This can be caused by 2 things: - faulty meshes, it can't find any longer path (it tries to run at least 200 yards away) - Light's Hope not dropping after over 200 yards so it can't find any longer path Edit: Added the option to ignore pathfinder and just use LoS checks to find your path. This could potentially help.
  11. Do it so: CastSpellByName("Mangle Cat()()") then mark "Is Lua script, not spell".
  12. Hey, just a small addition. This is C# code you can use to add items (westfall stuff) to your DoNotSell-List: wManager.wManagerSetting.CurrentSetting.DoNotSellList.Add("Okra");
  13. Thanks for the response. I just had the same issue on Vanilla recently. Even though I managed to target -> cast -> target last target within a split second, it would sometimes really mess up targeting and just go back and forth too many times. The way I solved it now is to add a boolean to an OnFightLoop handler that (just for the time I need to target -> target -> target) blocks the OnFightLoop wRobot runs.
  14. Hello, I can confirm this is bugged. It will interact with the NPC but not go through with it.
  15. Matenia

    Wrong Lua events

    After testing, it seems it is fired more often in C# events than ingame.
  16. OnFightLoop doesn't actually loop anything. It's a function that is contiously called (like maybe 10 times a second - probably one per new frame, so 60 times per second). You are registering an event handler that is called from within wRobot code, by another wRobot spawned thread. So think of it this way: //wRobot code calls fight stuff here List<EventHandler> OnFightLoopEventHandlers; Target(unit); //puts it in ObjectManager.Target, targets it ingame etc while(true){ Execute(combatRotation); //for XML fightclasses or something foreach(handler in OnFightLoopEventHandlers){ handler.call(unit, cancelable); } Thread.Sleep(50); } //more wRobot code here Of course this is pseudo code. But if you call Thread.Sleep and keep the thread locked in a while loop within one of the OnFightLoopEventHandlers, then obviously the bot can't call Target(unit) again (assuming my pseudo code is called again and again as well). So you're really just blocking default behavior of the bot through event handlers that aren't executed asynchronously.
  17. You did not buy the file (if you're using the free version attached to the wRobot forums). You can use a DLL file just like any XML or C# file (.cs) in your fightclass folder.
  18. So basically: return GetSpellInfo(GetSpelInfo(1234)) ~= nil; get name by id, then use name to check if it's in spell book...
  19. Hey @Droidz I tested on 1.12: EventsLuaWithArgs.OnEventsLuaWithArgs += CastingEventHandler; private void CastingEventHandler(LuaEventsId id, List<string> args) { if (id == LuaEventsId.SPELLCAST_STOP) { _LastSpell = args[1]; _LastCastTimeStamp = DateTime.Now.AddMilliseconds(double.Parse(args[0])); if (_LastSpell == "Polymorph") { _LastPoly = DateTime.Now.AddMilliseconds(double.Parse(args[0])); } Logging.WriteDebug("Last cast spell " + args[1] + " with cast time: " + args[0]); } if(id == LuaEventsId.SPELLCAST_DELAYED) { _LastCastTimeStamp = _LastCastTimeStamp.AddMilliseconds(double.Parse(args[0])); if(_LastSpell == "Polymorph") { _LastPoly = _LastPoly.AddMilliseconds(double.Parse(args[0])); } } } but my code is never even called. I think the handler just doesn't receive info on those events in wRobot vanilla.
  20. Not in TBC it doesn't. If you use the name, NOT THE ID, then it will ONLY return info if you have it in your spell book. I've been using this for months...
  21. IsSpellKnown is super easy. Just call GetSpellInfo("spellName") It will only give you shit from your spell book. Or here's my vanilla implementation: public bool IsKnown() { //not a great runtime solution, but spellbook should get updated on newly learned spells //this SHOULD check if we have the rank available string luaString = @" local i = 1 while true do local spellName, spellRank = GetSpellName(i, BOOKTYPE_SPELL); if not spellName then break; end -- use spellName and spellRank here if(spellName == ""{0}"" and spellRank == ""Rank {1}"") then --DEFAULT_CHAT_FRAME:AddMessage( spellName .. '(' .. spellRank .. ')' ); return true; end i = i + 1; end return false;"; return Lua.LuaDoString<bool>(string.Format(luaString, Name, GetRank())); }
  22. Matenia

    Wrong Lua events

    Test on Vanilla 1.12.1 and TBC 2.4.3 Following code is executed all the time during combat (especially on Vanilla - not so much going wrong on TBC). EventsLua.AttachEventLua(LuaEventsId.PLAYER_DEAD, m => { LastDeath = DateTime.Now; Logging.WriteDebug("Died, set new timestamp for last death"); });
  23. Fixed skinning and (hopefully) fixed Vanilla looting. Please redownload through your purchase links.
  24. That is definitely not an issue with the plugin. What expansion are you using the plugin on? Correct your latency in your general settings (wRobot). Make sure autoloot is enabled. Might have to turn skinning off. Mabye one of the recent wRobot updates broke something. I'll upload a version today that has skinning disabled, so you can just re-download.
×
×
  • Create New...