-
Posts
218 -
Joined
-
Last visited
Content Type
Forums
Articles
Bug Tracker
Downloads
Store
Posts posted by Zer0
-
-
Create a new text file. Copy/paste the code into it. Rename the file something like DungeonAccept.cs (make sure you change the extension). Move the file to your wrobot plugin folder.
-
I remember having the exact same issue with Matenia's HMP. If at any point during the session you change your public IP (for example by connecting/disconnecting to a VPN), you get locked out of the product for a time. This is a vendor protection to ensure that only one of their product is active at a time per key/IP. It has nothing to do with WRobot itself.
-
I'm refactoring my inventory plugin from the grounds up and there's still one lasting issue that I can't seem to figure out after days of investigating.
For context, I'm testing in dungeons, with high drop rates and I occasionally get a LUA error "stack overflow (table too big to unpack)". I can't trace back to its origin. I have only 3 LUA calls that unpack tables on return in the entire plugin. I'm positive they're not the issue, so something else is happening. I've noticed that it happens mostly on group rolls (but not only) and not on all characters. My only way to confirm this is by using BugGrabber and BugSack to get the time stamp of the LUA error, and outputting the time stamp in the chat before each LUA call, but even that is not very reliable since you don't get milliseconds precision, only seconds.
The LUA call I make when rolling is the following:
Lua.LuaDoString($"ConfirmLootRoll({rollId}, 2)");
It's exactly the same as before the rework (which was working flawlessly). As you can see, it's extremely simple. the rollId parameter is always checked in the log and always correct.
I've never had this issue before, so any input is appreciated. Have you ever seen this issue? What could cause it? Is there any way at all to reliably detect which LUA call in the plugin is faulty?
-
It is possible, but you'd have to write your own plugin. It would simply subscribe to either wManager.Events.LootingEvents.OnLootSuccessful or wManager.Events.LootingEvents.OnLootingPulse. The first argument of both handlers being the unit, you can add it to the WRobot blacklist directly from here, or manage your own blacklist.
-
This issue is sometimes caused by a faulty/broken xml file from the WRobot/Settings folder. Make a backup of this folder and try removing the files in this folder containing your character name.
-
There's no simple solution for that. The targeting/following behaviors are handled by the party product. Ideally, you'd need a custom made product.
-
It's possible but hard to implement. You would have to come up with an algorithm that tests positions around you and find one that is both reachable by the pathfinder and out of sight from your target. Once it's done you'd have to stop the rotation and move you character there.
You can use TraceLine.TraceLineGo to test LoS between positions and your target. Be aware that it's counterintuitive as it returns false when in sight, and therefore true when out of sight.
-
That's a really cool trick for the ObjectManager blacklist, thanks
-
Blacklist events do exist and I checked them, but the "mob seems bugged" thing doesn't fire anything, as far as I know.
I confirm that there is a GUID blacklist in wManager, and that's what I'm using, but I need to do it dynamically. I can also confirm that Trinity does not generate GUIDs on the fly, it just extracts preset GUIDs from the database for each creature/game object instance. But I suspect not every private server uses the same GUID for each npc , especially if they run on different cores so that would be unreliable.
-
Thanks for the answer. I thought about that, and that would work but I hope there's a more elegant solution out there.
-
Hey guys,
I'm working on a product and sometimes, for various reasons, I'll come across a bugged mob or a mob that cannot be reached (ex: the Volatile Mutation that is in a cage, in the Draenei starting zone).
The WRobot Fight method seems to at least detect that there is a problem. I call Fight.StartFight(guid), the character moves to the mob, and if it's bugged, after a while, I'll get a debug message in the log stating "[Fight] Mob seem bugged". Then it stops the fight... and then my product tries to fight it again. No Blacklist message or anything.
I've looked everywhere in the forums and can't find anything about it. I've seen a few logs where after this message, the mob gets blacklisted, so I assume this part is handled by the WRobot default products.
So in short, when a mob is detected as bugged, is there any way to trigger a guid blacklist? Or maybe it fires an event and I missed it?
Thanks in advance.
-
Qui est le vendeur ? Je pense que c'est à lui qu'il faut demander en cas de doute.
Sinon j'imagine qu'il s'agit de l'URL de ton profil sur ce site qui est unique et qui permettra au vendeur de t'affecter une clé d'activation chiffrée. Clique sur ton avatar en haut à droite du site puis Profile.
Et ton username, mxg87.
-
Some FCs have specific movements, lilke a rogue moving behind a target, or a hunter backing up to be in shoot range. This is something you can't prevent, unless you modify the code of the FC.
If it's a simpler XML routine, then as long as you're under the FC set range, you're free to move.
-
You're probably using the demo version. If you want to use it without restriction, you can buy a key here: https://wrobot.eu/store/category/2-wrobot/
-
For your information, I used to subscribe to OnEventsLuaStringWithArgs in 2 places.
First in Hunter.Initialize() and then in the constructor of another class called Cast.Cast()
in both places I could only get COMBAT_LOG_EVENT and COMBAT_LOG_EVENT_UNFILTERED. now that I've moved the hunter autoshot event catcher to the Main.Initialize() method, I can get all events from there.
For the sake of testing I've logged the Cast.Cast() event catcher and I still only catch COMBAT_LOG_EVENT and COMBAT_LOG_EVENT_UNFILTERED (Which in this case doesn't matter because I don't need anything else)
I hope it helps.
-
I have found what the issue is.
So my AIO first selects a rotation class in Main.Initialize(), and then launches the Initialize() method of the selected class (which also derives from the IClassRotation interface), for example Hunter.Initialize().
For some reason, subscribing to OnEventsLuaStringWithArgs inside Hunter.Initialize() only gets me COMBAT_LOG EVENT and COMBAT_LOG_EVENT_UNFILTERED. I've moved the code to Main.Initialize() and it works perfectly now. I have no idea why it happens like that, but I'm glad it's fixed.
Thanks everyone for your help ?
-
I don't doubt your words. If it works for you, then it works, but I feel like I've tried everything, and I'm still having this issue.
So, to recap what I've tried:
Catching the event with no args works:
EventsLua.AttachEventLua("UNIT_SPELLCAST_SUCCEEDED ", c => HandleAutoAttackEvent(c)); ... private void HandleAutoAttackEvent(object context) { Logger.Log("AUTO"); }
Catching the event directly in the client works:
Lua.LuaDoString($@" AIOAutoHunt = CreateFrame('Frame') AIOAutoHunt:RegisterEvent(""UNIT_SPELLCAST_SUCCEEDED"") AIOAutoHunt:SetScript('OnEvent', function(self, event, unit, spell) if unit == 'player' and spell == 'Auto Shot' then DEFAULT_CHAT_FRAME:AddMessage(spell); end end )");
Catching events with args only returns COMBAT_LOG_EVENT and COMBAT_LOG_EVENT_UNFILTERED
EventsLuaWithArgs.OnEventsLuaStringWithArgs += (eventid, args) => { if (eventid == "UNIT_SPELLCAST_SUCCEEDED") Logging.WriteDebug("[EVENT] " + args[0] + " > " + args[1]); }; ------ OR ------ EventsLuaWithArgs.OnEventsLuaStringWithArgs += AutoShotEventHandler; ... private void AutoShotEventHandler(string id, List<string> args) { Logger.Log($"******************** {id} ********************"); for (int i = 0; i < args.Count; i++) { Logger.Log($"{i} -> {args[i]}"); } Logger.Log($"******************** END ********************"); }
I'm using a freshly installed WRobot (no plugin) and I've ran those tests on 2 different WoW clients (no addon). I've made sure I compiled my FightClass with the fresh WRobot dlls as references. Do you have any idea what could possibly be different between your setup and mine? Could it be caused by the client? Something in my code?
-
7 hours ago, Droidz said:
Hey, I tested this code he works for me:
wManager.Wow.Helpers.EventsLuaWithArgs.OnEventsLuaStringWithArgs += (eventid, args) => { if (eventid == "UNIT_SPELLCAST_SUCCEEDED") Logging.WriteDebug("[EVENT] " + args[0] + " > " + args[1]); };
It is not the case for you?
It doesn't work for me. I've ran more tests. I thought it was an issue with my WRobot so I've downloaded a fresh install. No plugin, no addons. Same problem. I have also tried with 2 different TBC clients (Excalibur/Netherwing), same result on both clients. I only get COMBAT_LOG_EVENT_UNFILTERED and COMBAT_LOG_EVENT out of EventsLuaWithArgs.OnEventsLuaStringWithArgs.
On both clients I'm still able to catch the event directly with LUA.
-
Also fore reference, I've tried logging all the events
private void AutoShotEventHandler(string id, List<string> args) { Logger.Log($"******************** {id} ********************"); for (int i = 0; i < args.Count; i++) { Logger.Log($"{i} -> {args[i]}"); } Logger.Log($"******************** END ********************"); }
You can have a look at the log joined to this post and see what happens (the character is only auto attacking).
-
Thanks for the answer.
I do get the event in the client. I have tried this:
Lua.LuaDoString($@" AIOAutoHunt = CreateFrame('Frame') AIOAutoHunt:RegisterEvent(""UNIT_SPELLCAST_SUCCEEDED"") AIOAutoHunt:SetScript('OnEvent', function(self, event, unit, spell) if unit == 'player' and spell == 'Auto Shot' then DEFAULT_CHAT_FRAME:AddMessage(spell); end end )");
and it catches my auto attacks successfully (I get the message in the chat every time an auto shot is fired).
I'm not using your framework, I'm using WRobot's EventsLuaWithArgs.OnEventsLuaStringWithArgs (wManager.Wow.Helpers). So I guess something else is wrong, but I'm not sure what.
-
I'm trying to catch the UNIT_SPELLCAST_SUCCEEDED event for Auto Shots.
I've tried
EventsLua.AttachEventLua("UNIT_SPELLCAST_SUCCEEDED", c => HandleAutoAttackEvent(c));
It does work, but for all spells, and I'm only interested in my own auto attacks (so at least, I know this event is the correct one).
EventsLuaWithArgs.OnEventsLuaStringWithArgs += AutoShotEventHandler;
This one is the one I would need, but it doesn't catch any UNIT_SPELLCAST_SUCCEEDED. It only catches COMBAT_LOG_EVENT_UNFILTERED and COMBAT_LOG_EVENT events. I'm on TBC, I've been told that in WotLK, EventsLuaWithArgs.OnEventsLuaStringWithArgs does catch UNIT_SPELLCAST_SUCCEEDED.
Does anyone know how I can do that?
-
CustomClass.ResetCustomClass() reloads the current FightClass. Most products call it when the PLAYER_LEVEL_UP Lua event is fired.
- happiness7 and Pudge
-
1
-
1
-
28 minutes ago, balu3 said:
AIO.dll crash error- flight class menu
Tauri WoW – Evermoon is a MoP server.
AIO.dll is a WotLK fightclass.
-
No, it only works with private servers.
Video tutorial - Create a plugin from scratch
in Tutorials - WRobot
Posted
Hi guys, I've created a video showing how to create a C# plugin from scratch. If you have questions or need more info, don't hesitate to ask.