Jump to content
This site uses cookies! Learn More

This site uses cookies!

By continuing to use this site, you agree to allow us to store cookies on your computer. :)

Matenia

Elite user
  • Content Count

    1862
  • Joined

  • Last visited


Reputation Activity

  1. Thanks
    Matenia got a reaction from scsfl in Forwarding lua events in C#   
    Don't create a frame locally and you'll find you can actually access globally. It's Lua 101.
  2. Thanks
    Matenia got a reaction from scsfl in Forwarding lua events in C#   
    Pro tip: There are no events being skipped.
    If you look at my framework it works perfectly.

    If you're running patch 6.x or higher, you need your own combatlog parser. Create a lua frame that subscribes to the event, get the payload, store it in a table and periodically empty the table and read the contents "line by line".
  3. Like
    Matenia got a reaction from pudge in wManagerSetting.CurrentSetting.PathFinderFromServer   
    It will simply create a straight "path" without meshes if you disable that option.
  4. Like
    Matenia got a reaction from pudge in Protection from SpellManager.CastSpellBy && LuaDoString (or what?)   
    If they don't check your IP (seems you're proxying) they might check your GetTime() (Lua) result because it is unique to your computer. You can modify this function by hooking it and adding a random offset. Search the forums.
  5. Haha
    Matenia got a reaction from Smokie in World explore lua problem   
    Did you just link him to a thread where the answer was his own?
  6. Haha
    Matenia got a reaction from Zan in World explore lua problem   
    Did you just link him to a thread where the answer was his own?
  7. Like
    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
  8. Like
    Matenia got a reaction from Smokie 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)
  9. Haha
    Matenia got a reaction from Smokie 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.
  10. Thanks
    Matenia got a reaction from Smokie 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 = [email protected]" local isCastingSpell = false; local name = UnitCastingInfo(""{luaUnitId}"") if {LuaOrCondition(names, "name")} then isCastingSpell = true end return isCastingSpell;"; return Lua.LuaDoString<bool>(luaString); }); }  
  11. Thanks
    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 = [email protected]" local isCastingSpell = false; local name = UnitCastingInfo(""{luaUnitId}"") if {LuaOrCondition(names, "name")} then isCastingSpell = true end return isCastingSpell;"; return Lua.LuaDoString<bool>(luaString); }); }  
  12. Thanks
    Matenia got a reaction from scsfl 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
  13. Like
    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.
  14. Thanks
    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: 
     
  15. Like
    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.
     
  16. Like
    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.
     
  17. Thanks
    Matenia got a reaction from Smokie 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.
     
  18. Thanks
    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.
  19. Like
    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.
  20. Haha
    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 😄
  21. Like
    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  
  22. Like
    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  
  23. Like
    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); } }  
     
  24. Thanks
    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
  25. Thanks
    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.
×
×
  • Create New...