Matenia
-
Posts
2226 -
Joined
-
Last visited
Reputation Activity
-
Matenia got a reaction from Pudge 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
-
Matenia got a reaction from TheSmokie in Is there a way to blacklist an NPC by ID as opposed to current target?
Add the entry 23534 to the blacklist editor under entryid (name doesn't matter, but feel free to add it).
You can also open HMP's settings and add it to the trainer blacklist there (again, gotta add 23534)
-
Matenia got a reaction from TheSmokie in Fightclass Framework for 2.4.3/3.3.5a and more
There will be no updates for people who don't even own a wRobot license. Me telling you what to do to fix it was already generous. It's an incredibly easy fix in only 2 methods.
-
Matenia got a reaction from TheSmokie in Fightclass Framework for 2.4.3/3.3.5a and more
public string FullName() { return _rank != null ? ($"{_name}({RotationSpellbook.RankString} {_rank})") : _name; } public bool IsKnown() { return RotationSpellbook.IsKnown(_name, _rank ?? 1); } Change these lines in RotationSpell. I guess I accidentally messed this up when merging two frameworks.
If you use Spell.NameInGame instead of _name, it should use the localized name.
if (spell.Spell.Name == "Shoot" && IsAutoRepeating("Shoot")) { return true; } //IsAutoRepeating should use spell.Name.NameInGame As far as I can tell, everything else already uses the localized name.
There is also one more issue with something not localized (shouldn't matter too much):
// this error is not found through casting or combatlog events because it's caused by the client checking IsSpellInRange when using CastSpellByName // we could technically execute this check ourselves in CombatLogUtil but usually the client-side range check (memory based GetDistance) is enough) and cheaper! // therefore we're listening to error messages and executing this check lazily if (id == "UI_ERROR_MESSAGE" && (args[0] == "Out of range." || args[0] == "You are too far away!")) { RotationSpellVerifier.ClearIfOutOfRange(); } Also this should probably be reworked or use the non-Lua wRobot option:
public static bool CastingSpell(this WoWUnit unit, params string[] names) { return RotationCombatUtil.ExecuteActionOnUnit(unit, (luaUnitId) => { string luaString = $@" local isCastingSpell = false; local name = UnitCastingInfo(""{luaUnitId}"") if {LuaOrCondition(names, "name")} then isCastingSpell = true end return isCastingSpell;"; return Lua.LuaDoString<bool>(luaString); }); }
-
Matenia got a reaction from Kamogli in Fightclass Framework for 2.4.3/3.3.5a and more
public string FullName() { return _rank != null ? ($"{_name}({RotationSpellbook.RankString} {_rank})") : _name; } public bool IsKnown() { return RotationSpellbook.IsKnown(_name, _rank ?? 1); } Change these lines in RotationSpell. I guess I accidentally messed this up when merging two frameworks.
If you use Spell.NameInGame instead of _name, it should use the localized name.
if (spell.Spell.Name == "Shoot" && IsAutoRepeating("Shoot")) { return true; } //IsAutoRepeating should use spell.Name.NameInGame As far as I can tell, everything else already uses the localized name.
There is also one more issue with something not localized (shouldn't matter too much):
// this error is not found through casting or combatlog events because it's caused by the client checking IsSpellInRange when using CastSpellByName // we could technically execute this check ourselves in CombatLogUtil but usually the client-side range check (memory based GetDistance) is enough) and cheaper! // therefore we're listening to error messages and executing this check lazily if (id == "UI_ERROR_MESSAGE" && (args[0] == "Out of range." || args[0] == "You are too far away!")) { RotationSpellVerifier.ClearIfOutOfRange(); } Also this should probably be reworked or use the non-Lua wRobot option:
public static bool CastingSpell(this WoWUnit unit, params string[] names) { return RotationCombatUtil.ExecuteActionOnUnit(unit, (luaUnitId) => { string luaString = $@" local isCastingSpell = false; local name = UnitCastingInfo(""{luaUnitId}"") if {LuaOrCondition(names, "name")} then isCastingSpell = true end return isCastingSpell;"; return Lua.LuaDoString<bool>(luaString); }); }
-
Matenia got a reaction from Stresse in Fightclass Framework for 2.4.3/3.3.5a and more
If you've seen my 1.12 fightclass framework, this is basically the much enhanced version.
It should work for WoW 2.4.3 and 3.3.5a, possibly many more expansions. The only thing you would have to do is adjust the way combatlog events are parsed, if paramters have changed in your expansion. Everything else should be handled by wRobot.
Below you can find the GitHub repository. It also contains a very simple enhancement shaman fightclass as an example that you could change to fit your own needs.
This is for developers only. If you're a regular user, I recommend just buying my fightclasses. They are, in my opinion, fairly priced.
Features:
- checks with server if a spell was successful
- support for different types of spells
- no more double casts of any sort (heals, debuffs, damage)
- possibility to ignore server responses
- easy offtarget handling
- performant caching and rotation handling
- possibility to use as a healing framework
- support for wanding
- multilanguage support
- dispel by debuff type
https://github.com/Schaka/wRobotFightclassFrameworkEnhanced
@Droidz would be nice if you could sticky/pin this thread
-
Matenia got a reaction from justakeenz in Ban hammer - Frostmourne
If it was detected, no bot would ever escape and you'd get caught just for using wRotation. Detected means they can detect that the bot attaches to the game and alters the game's state in memory.
If people use repetitive behavior or are otherwise "easily" recognized as bots, they get caught in reports. I've botted on Warmane for long enough to know it's not detected.
They have employed "traps" in the past to make some things bots do harder. But wRobot usually worked around those.
-
Matenia got a reaction from Pudge 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:
-
Matenia got a reaction from Talamin in PVP rotations?
Because "people wanting scripts for PvP" isn't actually anything. It's the occasional hardstuck 1800 hoping scripts will make them Gladiator.
I've been trying to sell shit for PvP for ages - just to automate the boring honor grind. I sold a total of like 150 fightclasses since 2016. The silent masses buy PvE shit to level. There is no money in it. Whenever someone PMs me, they don't wanna pay 30€/hour, which is already a piss poor rate for freelance software development.
People just want free shit, but they can't even be bothered to use the fightclass editor to make an autokicker script.
Plus it's actually really scummy and you'll just stay hardstuck 1900 instead. Don't bring cheats to competitive environments. Just git gud, shitters.
-
Matenia got a reaction from Photogenic in PVP rotations?
Because "people wanting scripts for PvP" isn't actually anything. It's the occasional hardstuck 1800 hoping scripts will make them Gladiator.
I've been trying to sell shit for PvP for ages - just to automate the boring honor grind. I sold a total of like 150 fightclasses since 2016. The silent masses buy PvE shit to level. There is no money in it. Whenever someone PMs me, they don't wanna pay 30€/hour, which is already a piss poor rate for freelance software development.
People just want free shit, but they can't even be bothered to use the fightclass editor to make an autokicker script.
Plus it's actually really scummy and you'll just stay hardstuck 1900 instead. Don't bring cheats to competitive environments. Just git gud, shitters.
-
Matenia got a reaction from TheSmokie in PVP rotations?
Because "people wanting scripts for PvP" isn't actually anything. It's the occasional hardstuck 1800 hoping scripts will make them Gladiator.
I've been trying to sell shit for PvP for ages - just to automate the boring honor grind. I sold a total of like 150 fightclasses since 2016. The silent masses buy PvE shit to level. There is no money in it. Whenever someone PMs me, they don't wanna pay 30€/hour, which is already a piss poor rate for freelance software development.
People just want free shit, but they can't even be bothered to use the fightclass editor to make an autokicker script.
Plus it's actually really scummy and you'll just stay hardstuck 1900 instead. Don't bring cheats to competitive environments. Just git gud, shitters.
-
Matenia got a reaction from sidalibns in Go To Trainers command (for all classes)
Update hasn't been released yet. But then this will go to the class trainer in your database and force train all skills there.
-
Matenia got a reaction from Apexx in Fightclasses & Stuns
Your client blocks it from sending abilities to the server if you're stunned. So the spamming you see isn't visible to anyone and the server isn't receiving any info about it either.
-
Matenia reacted to Bambo in Bambos Profile
die profile sind schon seit langem wieder online und bei deiner art weiß ich schon warum ich zu dir nicht freundlich war, meine preise update ich nicht weil es im forum verboten ist threads zu updaten ohne content zu updaten, das gilt für paid profile threads nunmal, augen auf im forum, danke
Lies doch mal was der Schmeisser noch am selben tag gepostet hat ?
-
Matenia got a reaction from Pudge 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
-
Matenia got a reaction from Marsbar 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
-
Matenia 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); } }
-
Matenia got a reaction from Photogenic in How to cast revive once?
Use a timer you set when using SpellManager.CastSpellByName and add to the condiiton that the timer needs to be ready
Edit: Ideally you want one timer per unit guid you tried to rezz
-
Matenia reacted to Talamin in How to cast revive once?
Because you don´t have a cooldown on your revive ability and usefuls.waitiscast just wait until the Cast is done. So when the target don´t accept the ressurrection immediatly he get´s spammed over and over again. Therefore just use a timer for each target you already casted revive on, so it won´t spam revive on the same target again and again.
-
Matenia got a reaction from Photogenic in Improve dungeon pathing
PathFinder.OffMeshConnections.Add(new PathFinder.OffMeshConnection(new List<Vector3> { new Vector3(-861.2993, -3758.589, 19.47886, "None"), new Vector3(-849.3063, -3742.703, 22.49161, "None"), new Vector3(-842.8103, -3734.129, 19.89155, "None"), new Vector3(-849.7686, -3735.616, 19.88754, "None"), new Vector3(-848.3646, -3731.851, 21.27056, "None"), new Vector3(-843.2056, -3727.342, 25.23064, "None"), new Vector3(-839.3514, -3726.285, 26.32008, "None") }, (int) ContinentId.Kalimdor) { Type = PathFinder.OffMeshConnectionType.Bidirectional, Name = "Ratchet - Gazlowe", TryToUseEvenIfCanFindPathSuccess = true }); PathFinder.OffMeshConnections.Add(new PathFinder.OffMeshConnection(new List<Vector3> { new Vector3(1155.042, 182.7223, 3.134686, "None"), new Vector3(1157.968, 184.0907, 5.895848, "None"), new Vector3(1157.852, 185.0874, 6.79552, "None"), new Vector3(1169.146, 188.5145, 17.70432, "None"), new Vector3(1176.177, 183.1431, 21.6543, "None"), new Vector3(1174.764, 180.1774, 21.44643, "None"), new Vector3(1170.609, 182.9803, 23.67873, "None"), new Vector3(1167.625, 185.7788, 27.12425, "None"), new Vector3(1165.26, 188.2767, 28.77732, "None"), new Vector3(1161.465, 183.8654, 29.03481, "None"), new Vector3(1164.393, 176.3627, 31.69842, "None") }, (int) ContinentId.Kalimdor) { Type = PathFinder.OffMeshConnectionType.Bidirectional, Name = "Stonetalon - Big machine", TryToUseEvenIfCanFindPathSuccess = true }); PathFinder.OffMeshConnections.Add(new PathFinder.OffMeshConnection(new List<Vector3> { new Vector3(-9009.081, 851.679, 105.893, "None"), new Vector3(-9017.271, 864.8356, 109.8218, "None"), new Vector3(-9014.967, 882.9603, 112.9219, "None"), new Vector3(-8999.138, 890.7767, 115.9936, "None"), new Vector3(-8982.68, 880.2233, 119.937, "None"), new Vector3(-8982.612, 866.5609, 123.3268, "None"), new Vector3(-8992.165, 860.2961, 126.6532, "None"), new Vector3(-9001.312, 864.4201, 129.772, "None"), new Vector3(-9013.052, 873.2303, 132.0581, "None"), new Vector3(-9007.667, 877.3668, 135.9138, "None"), new Vector3(-9003.198, 874.1686, 139.3298, "None"), new Vector3(-9004.052, 868.6579, 142.6572, "None"), new Vector3(-9009.047, 867.0392, 145.7849, "None"), new Vector3(-9013.107, 871.0745, 148.6166, "None"), new Vector3(-9016.262, 884.7032, 29.6207, "None") }, (int) ContinentId.Azeroth) { Type = PathFinder.OffMeshConnectionType.Bidirectional, Name = "SW Mage Tower", TryToUseEvenIfCanFindPathSuccess = true });
-
Matenia got a reaction from Pudge in Manipulations in character selection menu
That should work. Lua.LuaDoString takes some extra arguments like "notInGame" or something, so maybe try those
-
Matenia got a reaction from Pudge in Manipulations in character selection menu
Extract GlueXML from your client's MPQ find out what everything is called and then use those names.
-
Matenia got a reaction from thebk150 in Calculate distance between totem and player target
Find totem in objectmanager by name or entry, then confirm it's your pet (IsMyPet property) and check unit.Position.DistanceTo(ObjectManager.Target.Position) <= 30
-
Matenia got a reaction from TheSmokie in Warmane Icecrown Bot Detection
Dude, you're completely uninformed. First of, it doesn't matter what right they have. Second, whether they or Blizzard have that right would make no difference. Warden is part of Wow's binary. You're checking part of the memory section that the process itself occupies, not scanning RAM at random. This is also how CRC checks work.
They aren't scanning your system at random either. The way this check works is that the client can be patched to execute Lua code as "secure" rather than tainted, the way it normally is. The client usually checks (in itself) if the function is allowed to be executed (for example, casting a spell from code can only be done using secure action buttons in a certain way, or macros). The server never knows if a spell was sent to it "legitimately".
They execute Lua code on your client and hook some functions that you would normally use. So if you cast a spell in a way that's against the rules, it will now notify them.
-
Matenia got a reaction from freaq in Bot wont start - error
You're loading a grinder profile in the quester product