Jump to content

Mykoplazma

Members
  • Posts

    183
  • Joined

  • Last visited

Reputation Activity

  1. Like
    Mykoplazma got a reaction from Apexx in Bot fly under water   
    So ask Droidz for water detection/dismount ... that problem is here very long time.
  2. Like
    Mykoplazma got a reaction from Renee in How to Pass Anti-Bot   
    You can detect when that pop up appear, make a screenshot then use autoit to extract only the part with a text and use tessreact to ocr it etc etc ( or google ocr or god knows what else )  there is many possibiities but if you are starting in programming it will be rather impossibru xD Sorry for repeating myself :). First watch for an event that is launching that crap window then hook that event to a screenshot, then prase the screenshot and paste the answer and press enter. Look for event tracker addon for the even that is lounching that crap. How to hook up an event to action you can find it there on forum etc. 
  3. Like
    Mykoplazma got a reaction from BetterSister in Sick of buying garbage profiles   
    The bot refuses to go through deadwind pass for whatever reason so it circles back - thats wrobot for you xD Usually the problem is not the profile but the pathing system. Dreaming about HB quality pathing system. But we have what we have here.
  4. Like
    Mykoplazma got a reaction from 79135 in Freeze screen   
    If you have Nvidia card you can use global fps limit for any directx game using program called NVIDIA Inspector. You can find how to do it on google.
  5. Like
    Mykoplazma got a reaction from Unknownxx in [TAURI] Wrobot detected   
    As @Droidz is on-line and is ignoring the subject completely - well good customer service. Can you behave as a grown up and answer to the simple question?
  6. Like
    Mykoplazma got a reaction from Matenia in CastSpell improvement   
    Ok I get it working 5.4.8 18414 offset.
    MouseGuid  = Wow.exe+D65B28
    After that all is ok and you can cast havoc on not current target without changing the current target and spam shadowburn without changing current target - useful thing. And I don't get strange behaviour nothing is blocked etc. I can run around cast shadwoburn and nuke main target in the same time.
     
  7. Like
    Mykoplazma got a reaction from Garub in Unofficial WRobot API Documentation   
    Yes adding ability to use http://ironpython.net if possible will be a great thing
  8. Thanks
    Mykoplazma got a reaction from Findeh in Creature type of WoWUnit   
    You must 'touch' the unit to get the info. For Development Tools:
    Lua.LuaDoString("DEFAULT_CHAT_FRAME:AddMessage(\"" + "-------------Start------------------" + "\")"); foreach (WoWUnit mob in wManager.Wow.ObjectManager.ObjectManager.GetObjectWoWUnit()) { var name = mob.Name; var baseAdress = mob.GetBaseAddress; wManager.Wow.Helpers.Interact.InteractGameObject(baseAdress,true,false); var type = mob.CreatureTypeTarget; Lua.LuaDoString("DEFAULT_CHAT_FRAME:AddMessage(\"" + name + " " + type + "\")"); } Lua.LuaDoString("DEFAULT_CHAT_FRAME:AddMessage(\"" + "-------------Stop------------------" + "\")"); There is another way to touch the unit ( without visible changing targets - nasty ye? ) You must use lua , focus and write the guid from scanning under focus then request the value. 
    Lua.LuaDoString("DEFAULT_CHAT_FRAME:AddMessage(\"" + "-------------Start------------------" + "\")"); foreach (WoWUnit mob in wManager.Wow.ObjectManager.ObjectManager.GetObjectWoWUnit()) { var name = mob.Name; var tmp = wManager.Wow.ObjectManager.ObjectManager.Me.FocusGuid; wManager.Wow.ObjectManager.ObjectManager.Me.FocusGuid = mob.Guid; string type = Lua.LuaDoString<string>(@"creatureType = UnitCreatureType(""focus"")", "creatureType"); wManager.Wow.ObjectManager.ObjectManager.Me.FocusGuid = tmp; Lua.LuaDoString("DEFAULT_CHAT_FRAME:AddMessage(\"" + name + " " + type + "\")"); } Lua.LuaDoString("DEFAULT_CHAT_FRAME:AddMessage(\"" + "-------------Stop------------------" + "\")"); And this is working solution for that problem. Credits for @reapler for showing the method with guid replacement. Tested on 2.4.3 nightbane and works here.
  9. Like
    Mykoplazma got a reaction from t00z in how to cast AOE spell like "Death and Decay"   
    SpellManager.CastSpellByIDAndPosition(49936, ObjectManager.Target.Position)
    Spell Id my vary you can get spell id from web or from wrobot methods ( it should be somewhere idk). Use some c# reflector to see methods by yourself or configure notepad++ with c# plugin.
  10. Like
    Mykoplazma got a reaction from 435 in Interrupt focus target if casting spell by name?   
    f = 0; spellName = "Flash Heal"; spell,_,_,_,_,_,_,_,_ = UnitCastingInfo("Focus"); if spell == spellName then f = 1 end; You must add that to Lua script part and check the f value. If f = 1 then you can cast the interrupt spell ( in that case that  will interrupt Flash Heal) If you need to interrupt anything that is interruptable or interrupt a list of spells or interrupt channeling well check the lua documentation ;)
  11. Like
    Mykoplazma got a reaction from Matenia in Force bot to attack tagged mobs?   
    Because you must do several states of the bots ( follow state , attack state etc ) when the bot recognize a state it will only do the part which is proper for current moment. Imagine you wanna sit, stand, and run in the same time in real life. The bot is doing exactly that ?
  12. Like
    Mykoplazma got a reaction from ScripterQQ in The WRobot rant (long)   
    Ahh well becuase you dont understand how the gathering bot works :) Everytime where node is in scan range ( you can set it in global settings ) the bot is breaking the standard route and searching routine is generating shortest way to the node. Sometimes between player and the node are trees rocks or other crap and well the pathfinding routine is 'blind' to that things sometimes? ) (well soooome times) and bot will try to get the node and stuck on that crap. The  solution? Reduce searching range to 20 yards and fly over the ground 20 yards when recording. ( i have a tool to set the point exactly 20 yards above the ground and only when I wish the point is added ) I created a perfect path and the bot can fly around 8 hours without any crazy ideas and the water - yest the water just fly higher to prevent some crazy water digging :P And all above all - the bot is for ground mount not for flying mount and the fly mount's landing procedures and avoiding are well - in beta.
  13. Like
    Mykoplazma got a reaction from Matenia in The WRobot rant (long)   
    Ahh well becuase you dont understand how the gathering bot works :) Everytime where node is in scan range ( you can set it in global settings ) the bot is breaking the standard route and searching routine is generating shortest way to the node. Sometimes between player and the node are trees rocks or other crap and well the pathfinding routine is 'blind' to that things sometimes? ) (well soooome times) and bot will try to get the node and stuck on that crap. The  solution? Reduce searching range to 20 yards and fly over the ground 20 yards when recording. ( i have a tool to set the point exactly 20 yards above the ground and only when I wish the point is added ) I created a perfect path and the bot can fly around 8 hours without any crazy ideas and the water - yest the water just fly higher to prevent some crazy water digging :P And all above all - the bot is for ground mount not for flying mount and the fly mount's landing procedures and avoiding are well - in beta.
  14. Like
    Mykoplazma got a reaction from Ordush in Can we use savedVariables?   
    I only use macro ingame to pass the value to the wrobot cs rotation. You can create a global variable assign a value to that variable and read it in wrobot.
    Lua.LuaDoString(@"SLASH_HELLOWORLD1, SLASH_HELLOWORLD2 =  ""/Lux"",""/lux""; local function handler(msg, editbox)  setglobal( ""Lux"", msg ) end SlashCmdList[""HELLOWORLD""] = handler; ");
    In that example when user in game write : /lux 1 the global value Lux will be set to 1 and then inside the cs you can read the value in something like that:
    var Lux = Lua.LuaDoString<int>("value = Lux;", "value");
    Of course if you make an addon which is setting the certain globals in certain way you will be able then to read the values from inside the wrobot. So something like that is possible and it was done in pqr with pqi.
     
     
     
  15. Like
    Mykoplazma got a reaction from Ordush in Can i set the 'timer' with lua?   
    if vUAflag==nil then vUAflag=0 end; -- If we're CURRENTLY casting UA and the timestamp isn't already set... if ({UnitCastingInfo("player")})[1]=="Unstable Affliction" and vUAts==nil then -- Record that UA is being cast and record the time at which we observed the ongoing cast. -- Setting the flag to 1 will prevent UA from being cast again. vUAflag=1 vUAts=GetTime() end; -- If the flag is set...but the time at which it was set was more than 2 seconds ago... if vUAflag==1 and GetTime()-vUAts>2 then -- Reset the flag and timestamp to allow UA again. vUAflag=0 vUAts=nil end Ripped example - here you see how to cast Unstable Affliction when the time difference between start and now is > 2.
    If vUaFlag=0 then cast
  16. Like
    Mykoplazma got a reaction from Matenia in Wrobot CPU usage   
    Well that depens. If you use grinder module or gathering module it has autoattack build inside. So there is no need to make targeting logic just write proper sequence of attack inside the plugin template ( make some checks if target is alive your are not mounted etc ) but this is not so diffucult. If you need to make some multibox action well - I presonally created custom addon which is doing exactly nothing ( 0% load ) and after enabling plugin with custom fighting routine I got multiboxing prupouse wrobot without that hog like fightclass thing. ( 1-2% max with auto follow , auto heal , auto shadowburn without targeting etc ... ) The next thing hogging is pathing system ( sadly ) but that is another story ;)
  17. Like
    Mykoplazma got a reaction from fragik in BG bot not queueing, freezing when joining   
    There is a problem with tauri because if they make a detection ( and they will sooner or later ) every user which will run the bot will get insta ban. So be aware and always test the bot on dummy account before main.
  18. Like
    Mykoplazma got a reaction from iMod in CastSpell improvement   
    Ok don't wanna be rude but
    0x00BD0798 Is static ? If so you need add wow base memory adress to that to work. On panda you need to do that because the base is different each time wow is executed so the final adress will be different. In the code above that thing is not present.
  19. Like
    Mykoplazma got a reaction from iMod in Heal Engine concept   
    The easiest way is to copy something that was working quite well ( top hps on raids ) from the pqr engine files.
     
    Nova_CustomT = { } PQR_WriteToChat("Custom Table is empty!", "Alert") function CalculateHP(t) incomingheals = UnitGetIncomingHeals(t) and UnitGetIncomingHeals(t) or 0 return 100 * ( UnitHealth(t) + incomingheals ) / UnitHealthMax(t) end function CanHeal(t) if UnitExists(t) and UnitInRange(t) and UnitIsFriend("player", t) and UnitIsConnected(t) and not UnitIsEnemy("player",t) and not UnitIsCharmed(t) and not UnitIsDeadOrGhost(t) and not PQR_IsOutOfSight(t) and not UnitDebuffID(t,104451) -- Ice Tomb and not UnitDebuffID(t,76577) -- Smoke Bomb then return true end end function SheuronEngine() local group, size = nil, nil lowhpmembers = 0 members = { { Unit = "player", HP = CalculateHP("player") } } -- Check if the Player is apart of the Custom Table for i=1, #Nova_CustomT do if UnitGUID("player") == Nova_CustomT[i].GUID then Nova_CustomT[i].Unit = "player" Nova_CustomT[i].HP = CalculateHP("player") end end --Find the Group Type and Size if GetNumRaidMembers() > 0 then group = "raid" size = GetNumRaidMembers() else group = "party" size = GetNumPartyMembers() end for i = 1, size, 1 do local member, memberhp = group..i, CalculateHP(group..i) if CanHeal(member) then if UnitGroupRolesAssigned(member) == "TANK" then memberhp = memberhp - 1 end if UnitThreatSituation(member) == 3 then memberhp = memberhp - 3 end if UnitBuffID(member, 53563) then memberhp = memberhp + 3 end -- Searing Plasma Check for i = 1, #PQ_SP do if UnitDebuffID(member, PQ_SP[i]) then memberhp = memberhp - 9 end end for i=1, #Nova_CustomT do if UnitGUID(member) == Nova_CustomT[i].GUID then Nova_CustomT[i].Unit = member Nova_CustomT[i].HP = memberhp end end -- If they are in the Custom Table add their info in table.insert(members, { Unit = member, HP = CalculateHP(member) } ) end if CanHeal(group..i.."pet") then local memberpet, memberpethp = nil, nil if UnitAffectingCombat("player") then memberpet = group..i.."pet" memberpethp = CalculateHP(group..i.."pet") * 2 else memberpet = group..i.."pet" memberpethp = CalculateHP(group..i.."pet") end for i=1, #Nova_CustomT do if UnitGUID(memberpet) == Nova_CustomT[i].GUID then Nova_CustomT[i].Unit = memberpet Nova_CustomT[i].HP = memberpethp end end table.insert(members, { Unit = memberpet, HP = memberpethp } ) end end table.sort(Nova_CustomT, function(x, y) return x.HP < y.HP end) table.sort(members, function(x,y) return x.HP < y.HP end) for i=1,#members do if members[i].HP < 85 then lowhpmembers = lowhpmembers + 1 end end if CanHeal("target") then table.sort(members, function(x) return UnitIsUnit("target",x.Unit) end) end end I  
    it looks like that - SheuronEngine() ( that was the standard system to calculate hp in pqr heal bot up to pandas and pqr ban )  will make global variable that will hold  the lowest hp player with priority on tank with incoming heal counted in. I translated it partially to c# and it's working quite well. ( a bit hacky whacky tho ) . In wrobot there is no translated function like unit threat situation and roles assigned and calling lua from c# is very power hogging process. Idk why but calling lua is eating a lot of  power.
    Something like that for example is working but sometimes bugging out ( the name of players sometime canno't be read from memory and you will get Unknown )
    public WoWPlayer FindLowestHealth() { Dictionary<WoWPlayer, double> players = new Dictionary<WoWPlayer, double>(); int playerHp = Convert.ToInt32(ObjectManager.Me.HealthPercent); if (playerHp < 100) { if (UnitThreatSituation(ObjectManager.Me.Name) == 3) { playerHp = playerHp - 3; } if (UnitGroupRolesAssigned(ObjectManager.Me.Name) == "TANK") { playerHp = playerHp - 1; } } players.Add(ObjectManager.Me, playerHp); foreach (var wowPlayer in ObjectManager.GetObjectWoWPlayer()) { if (wowPlayer.Name != null && wowPlayer.GetDistance < 40 && wowPlayer.IsAlive && !TraceLine.TraceLineGo(wowPlayer.Position) && UnitIsFriend(wowPlayer.Name) && UnitIsConnected(wowPlayer.Name) && !UnitIsEnemy(wowPlayer.Name) && !UnitIsCharmed(wowPlayer.Name)) { int otherPlayerHp = Convert.ToInt32(wowPlayer.HealthPercent); if (playerHp < 100) { if (UnitThreatSituation(wowPlayer.Name) == 3) { otherPlayerHp = otherPlayerHp - 3; } if (UnitGroupRolesAssigned(wowPlayer.Name) == "TANK") { otherPlayerHp = otherPlayerHp - 1; } } players.Add(wowPlayer, otherPlayerHp); } } WoWPlayer minHpPlayer = players.Aggregate((l, r) => l.Value < r.Value ? l : r).Key; players = null; return minHpPlayer; }  
    Calling FindLowestHealth() will return player with lowest hp. ( buggy and not the last version what I'm using now )
  20. Like
    Mykoplazma got a reaction from notme in Plugin for attacking specific mobs?   
    Just enable the plugin in plugins tab it should show up as GatheringMobSpawns.cs and set it to on. The second thing is this is plugin created to kill specific mobs with ids like
    new List<int> {98232, 98234, 98235 } }; To make the bot kill other kind of mob you must find the id on wowhead and add it to list.
    For now that list let the bot attack 3 mobs :
    www.wowhead.com/npc=98232
    www.wowhead.com/npc=98234
    www.wowhead.com/npc=98235
    To add mob you must go to wowhead find the mob id and add it to that list directly into the plugin code.
     
     
×
×
  • Create New...