Jump to content

Mykoplazma

Members
  • Posts

    183
  • Joined

  • Last visited

Everything posted by Mykoplazma

  1. Sorry for addig myself in but is that thing working all the time or once per minute or somethig? After something like that: EventsLuaWithArgs.OnEventsLuaWithArgs += (id, args) => { if (id == wManager.Wow.Enums.LuaEventsId.UNIT_SPELLCAST_START) { for (int i = 0; i < 20; i++) { print("Arg" + i + " contains: " + args[i]); } } }; The result is printed once per minute?. Just wonna check when last immolate was casted to prevent duble casting but the result is not reported all the time but with huuuuge delay. ( 5.4.8 tauri )
  2. You must set the "Search radius" to low value ( 40 yards for example ) and record all your gathering route at max height 40 yards over ground. And when you are recording and you are over water you must be more than 40 yard over ( lets say 60 ) Then the bot will skip the water ones and pick up the ground ones. There is no other method for now and I use it and it's working ok.
  3. Anyway If I don't have bom and I don't have shou -t cast shout. If (!wManager.Wow.ObjectManager.ObjectManager.Me.HaveBuff(19835) && !wManager.Wow.ObjectManager.ObjectManager.Me.HaveBuff(shoutID) ) { cast shout or something ;) } I don't know how to put it into fightclass because my fightclass is cs type always.
  4. You can /cancelaura Blessing of Might Lua.RunMacroText("/cancelaura Blessing of Might")
  5. Yes try yourself delete wRotation.dll put rotation into plugin and the load should go down. But there is a bug which is causing to rotation it's not working anymore ( even as a form of plugin and you need to /reload - at least for private server ) that bug is caused by pathfinding module? Idk why but if I use pathfinding module after some time the rotation is not working anymore. Without it ( like on raid or something ) the problem is not there. So ;)
  6. 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 ;)
  7. Fly up using UP key and strafe right and left is so 'natural' ... The same thing is landing. Who use DOWN key to land at ore/herb? Is so 'natural' and sometimes in the middle of the flight the bot can't decide where to fly? And go once to the right once to the left in very fast rate it looks like a patient with cerberal palasy trying to play or something. Generally the whole gathering grinding bots are well they are working but they are so unnatural ( bruteforcing the way to the herb/ore/mob ) and other thing - when the ore/herb is underwater the bot will not dismount sometimes but dig in the water above the herb/ore that looks very funny too. Or even if you have 'don't dig inside or something' it will still try to 'dig' into the texture above. And the whole path generating system don't know how to fly from the point up to the point downhill or vice versa - it will simply go around above the ground. It looks like path genearting system for fliying mount is using path generating system for the ground mount. And this is very botish too. I can record all that situations which are nasty and put a video here but it will be not a good adertisement . ;) There is more bugs of course but I don't remember them all. Please just try to emulate honorbuddy system it was much more natural. That thing is working but it only looks natural on flat map like shimmering flats when the some hills appears ( or god forbid bridges to stuck under, or building ) the whole thing is far from perfect.
  8. Genarlly a biggest hog thing in wrobot is wrotatnion ^^. If you write rotation as a plugin (c# only ) and completely remove wrotation.dll file the wrobot load will be 1% max :) 3 x panda wow + 3 x wrobots with rotation autofollow scanning around all mobs etc on old athlon x2 250 and all is working quite well here. Wrotation is a hog ;)
  9. http://ilspy.net/ Decompile wrobot dll files and look inside. You will get all posible functions etc. To edit use visual studio ( bloaty laggy stuff ) or use notepad++ with plugin cs script.
  10. The simcraft rotation or other addon is not pefrect. You must write your own rotation and tune it in long run to get the proper high values of dps. Study the char , check all possible values which increase the dps etc etc. The priority system used by example by pqr can be easly simulated in c# using something like that. Pseudocodish way spellName = "fillerSpellName" if (something && something ) spellName = "spell1"; if (somethingElse && somethingElse ) spellName = "spell2"; if (somethingElse2 && somethingElse2 ) spellName = "spell3"; (..) Cast(spellName); The lowest spell in the program ( or higher in the line number ) will be executed first and then the rest if the condition from the lowest is not ready etc etc. I myself after a month of tunning and checking was able to make perfect destro lock rotation but well it was worth it ( conditions in that rotation are different than in simcraft tho ) About the automatic conversion - well there is no such program here and who knows maybe somebody will write it.
  11. To cast a spell over mouseover (any mouseover ) you must write the guid of target directly into mouseover adress and then cast the spell on mouseover. For pandaria that solution is working: string spellName = "Heal"; unit = ObjectManager.Target; var baseAdress = (uint)wManager.Wow.Memory.WowMemory.Memory.MainModuleAddress; uint s_MouseOver = baseAdress + 0xD65B28; wManager.Wow.Memory.WowMemory.Memory.WriteUInt64(s_MouseOver, unit.Guid); SpellManager.CastSpellByNameOn(spellName, "mouseover"); after digging on ownedcore I found the value of 2.4.3 mouse over adress ( I hope so: ulong mouseOverGuid: wow.exe + 0x86E950 ) so probably for 2.4.3 the function to cast somethin on mouseover will look like that: string spellName = "Heal"; unit = ObjectManager.Target; var baseAdress = (uint)wManager.Wow.Memory.WowMemory.Memory.MainModuleAddress; uint s_MouseOver = baseAdress + 0x86E950; wManager.Wow.Memory.WowMemory.Memory.WriteUInt64(s_MouseOver, unit.Guid); //WriteUInt64 or 32? SpellManager.CastSpellByNameOn(spellName, "mouseover"); But idk that guid is already 64 bit on tbc or 32? I don't have tbc here but I think this is a good solution maybe somebody skilled can check it? ;)
  12. Of course there is a solution. Change profle and don't fly over water or change height over water to so big that the robot will not detect item. It's bugged all the time.
  13. Of course there is a solution. Write that damn rotation in pure c# not in that crappy lagging and choking wrotation. ;) And it's quite easy to do.
  14. 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.
  15. Everything is possible. It will be easier to make plugin to do that. I have something like that so what you need exactly? to stop the bot we need : in_combat = false petMana < 20% and ( % chance to stop? ) to start it again we need? time interval? random time interval? external stimuli?
  16. 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.
  17. 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.
  18. Oh well something new but I don't dig in asm ( :( ) Can you write here how to do it for 5.4.8 pandaria ? Plz ;) I can manage c# but not how to use the internal function from wrobot level.
  19. Hey reapler do you know haw to cast the spell on guid without targeting ,focusing etc? It was possible on cata (wow+ hack ) to use spell on enemy unit ( like interrupt or something ) without targetting it so you don't loose your focus and target ( very nice for arenas etc ) it was like third focus and when you cast a spell it land on the target and it was in the combat log but there was no targeting the target whatsoever it was working thru simple CastSpellByName("spellname",characterGuid) but I thing there was some kind of internall wraper inside the wow+ or some modification to cast spell by name lua function.
  20. Well there is a bug with pathfinder and if you are near node but is somewhere off the path and pathfinder don't have enough time to calculate proper path before you arrive to the path point ( because is quite slow and uneffective ) it will pass the ore and go to the next path point. For me what is working that make a perfect path around using some kind of traveling salesman solution, each time where you over the ore make a descent in gathering profile 5yards over it and reduce the search in general setting to 20 yards. Just to disable the crappy pathfinding module and make the bot work like a bllind old lazy bot. But that is working quite nice. Other thing is sometimes even if the bot is flaying over the ore it will still not get it you must open the profille and manually add id of the ore/herb in the fourth tab and disable the gathering options completely in general settings. This is working for me.
  21. How to draw the circle using method from wManager Radar drawcircle ( I know how to draw a circle on the screen) but I have problem to make it permanent ( wanna make a permanent trail on the map for creating the best gathering route ). So how to make that circle permanent like when the 3d radar is on? ( orange circles and lines ). Is there an easy solution to do that? If I use the method once it will only blink and if I use it in loop after some time wrbot will crash ^^.
  22. 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 )
  23. D3D.TraceLine( x, y, z, rx1, ry1, rz1, Bit.Or( INTERSECT_TERRAIN ) or something like that possible? I need to know how exactly far I'm from the ground to make good gathering profile ( stable height = more speed )
  24. So you need to loot only mobs from the list and not any other? :D
×
×
  • Create New...