Jump to content

iMod

Elite user
  • Posts

    581
  • Joined

  • Last visited

Reputation Activity

  1. Like
    iMod reacted to reapler in CastSpell improvement   
    I guess that's a brilliant solution to overwrite guid for this purpose :) but it needs the mouseoverguid instead of mouseover for 3.3.5:
    public void CastSpell(string spellName, WoWUnit unit) { uint MouseOverGUID = 0x00BD07A0; wManager.Wow.Memory.WowMemory.Memory.WriteUInt64(MouseOverGUID, unit.Guid); SpellManager.CastSpellByNameOn(spellName, "mouseover"); } and @forerun i belive you need to search it couldn't find the offset myself currently :/
     
  2. Like
    iMod got a reaction from Matenia in CastSpell improvement   
    Never tried it with wrobot but i will give it a try later.

    Take a look at "Marshal.GetDelegateForFunctionPointer"

    [5.4.8 18414]
    CastSpell = 0x4F9983

    Update:
    Some problems with rebase the pointer.
  3. Like
    iMod got a reaction from eeny in spam profiles   
    I hope no one will do such stuff
  4. Like
    iMod reacted to Mykoplazma 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 )
  5. Like
    iMod reacted to Runaro in Heal Engine concept   
    Prioritize lowest health %, but if a tank is low too, prioritize him first. ( if there are multiple tanks, then prioritize the lowest one ) Every tank will have different healing settings. ( spells and % ) Check threat, so if a tank loses his aggro for X milliseconds, you can set a focus heal on the non tank player with the highest threat. ( shield, bubble, barkskin, quick heal etc. ) Pre hots and shields, if there are encounters of a boss, which will give players a decent amount of damage. ( debuffs, or a cast of the boss ) Check debuffs of all players and if you can dispell it. ( prioritize tank ofc. and avoid overheal, if there's a 100% healing reduced debuff, which can't get removed by overheal ) At some boss encounters, a certain healer will have to use his cooldown, which will get choosed before. ( example: At the 5th charge of the boss i have to use tranquility ) Different settings and spells at high and low mana %. Possibility of only healing certain groups and players, in a raid. ( if they're not alive anymore, switch to the other groups )
  6. Like
    iMod got a reaction from mercomy in Priest Wod   
    Have fun.
  7. Like
    iMod got a reaction from Runaro in Priest Wod   
    Have fun.
  8. Like
    iMod reacted to Droidz in Offmesh Connections   
    Hello,
    Sometime, WRobot cannot create path (navigation files are created from default maps, some quests/events open the doors, remove/add the stones,..., this can happen also if it's narrow, or sometime without reason).
    By sample, it is a narrow staircase, you get error like (navigation file tell at WRobot than he cannot walk in the staircase) (to get full pathfinding logs, in advanced general settings tab 'Path...' activate option "Server Logs")
    (to get detailed log, you need to activate option "Show server logs" in advanced general settings tab "Path-finding").

    Now, we will add offmesh connection (we will add staircase path):

    And we will try again to generate path:

     
     
     
     
    ref: http://www.pathengine.com/Contents/Overview/AdditionalFeaturesOverview/Off-MeshConnections/page.php https://docs.unity3d.com/Manual/class-OffMeshLink.html
  9. Like
    iMod reacted to Droidz in Offmesh Connections   
    This tool is not available on WRobot for the private servers for now, you need to wait next update of your WRobot version.
  10. Like
    iMod reacted to Runaro in free trial   
    I can't agree on that.
    It's enough in my opinion, that people can already use a trial key for private servers.
    For retail it would mean, the bot gets more attention from blizzard, then needed.
  11. Like
    iMod got a reaction from arkhan in I'm looking for Distance of target   
    Distance check:
    ObjectManager.Me.TargetObject.GetDistance Unit check:
    //Exists? if (ObjectManager.GetWoWUnitHostile().Where(u => u.Entry == 12345).Any()) { // Do something } You can easy extent the conditions for example "&& u.Distance < 40" ect.
  12. Like
    iMod got a reaction from cdub1990 in Mage Portal bot   
    You need to write a plugin for it. There is still one that reacts at chat messages, you could take a look at it.
    It should be not that complicated.
    1. Trade can be detected by event + name filter
    2. A text parser(Regex) should do the rest

    Here is a sample how i did it in one of my projects.
    public void Pulse(WaitChatCommand task) { // Log Log.WriteDebug($"Waiting for chat command \"{task.ChatCommand}\" from {task.UserName}."); // Create channel Channel chat = new Channel(); // Proceed until we have a match bool match = false; while (!match) { try { // Read chat while (chat.ActuelRead != Channel.GetMsgActuelInWow && Products.IsStarted) { // Get message Channel.Message message = chat.ReadMsg(); if (!string.IsNullOrWhiteSpace(message.Msg) && message.Channel == task.ChatType && message.UserName == task.UserName ) { // Is a known command? if (message.Msg == task.ChatCommand) { // Set match = true; } } // Wait Thread.Sleep(100); } } catch (Exception e) { // Log Logging.WriteError("[DungeonRobotActionCommand]: " + e); } } } I also took the existing one from @Droidz as sample.

    About the invite.
    public void Pulse(InviteToParty task) { // Still in the party? if (Party.GetParty().Any(p => p.Name == task.UserName)) { // Log Log.WriteDebug($"Skip invite player, because {task.UserName} is in the party."); return; } if ((Party.IsInGroup() && Party.CurrentPlayerIsLeader()) || !Party.IsInGroup()) { // Log Log.WriteDebug($"Invite {task.UserName} into the party."); // Invite player Lua.LuaDoString($"InviteUnit(\"{task.UserName}\");"); } else { // Log Log.WriteDebug($"Skip invite player, because we are not the leader."); return; } // Log Log.WriteDebug($"Wait until {task.UserName} is in the party."); // Wait until the player is in the party while (!Party.GetParty().Any(p => p.Name == task.UserName)) { // Wait Thread.Sleep(3000); // Invite player Lua.LuaDoString($"InviteUnit(\"{task.UserName}\");"); } } There is some more stuff in it that you don't need but its just an example and I was to lazy and just copied some of my code 
    Hope that helps a bit.
  13. Like
    iMod got a reaction from Hapiguy in Incentives for Profile Builders   
    No one wants wrobot at the same level as hb. If you are a dev just go ahead and write your own profile editor. It is not that hard if you learn how to manipulate and work with xml in any language you prefer.
  14. Like
    iMod reacted to loves2spooge in Incentives for Profile Builders   
    I understand what you are saying Demondog and I can't speak for Droidz, but where the bot currently is at is a REALLY great place. We are a little under Blizz's radar and kind of in the back of their mind. This means fewer bans and less effort on their part to detect us. I think the bigger we get and more all inclusive the more they will work to shut us down. Droidz has been operational now for a LOT of years with this mentality and I think it's perfect. I don't mind hand leveling/questing/dungeons then using the bot for very specific money making purposes. The toons then seem more real and less likely to get banned. 
    We are in a good place already. If you want a profile for 1-110 unattended leveling, spend the time and make it. For now, most of us use it for other purposes. I don't want a bot that performs ALL aspects personally. 
    I could be way off but I think most of the community feels similarly. Those of you that came over from HB and others are looking for a direct replacement, this product functions as well as it does BECAUSE it isn't a direct clone of those other bots. :)
  15. Like
    iMod got a reaction from tolwin in [MAGE] essen und trinken   
    Interessant wäre wie du es momentan löst. Im grunde musst du nur die richtige condition haben. Ex: ItemCount(id) < 20 ... stelle was her. Ich gehe mal davon aus das du den FightClassEditor benutzt, da kenn ich mich leider nicht so gut aus aber in C# wäre das über den ItemManager zu realisieren.
  16. Like
    iMod got a reaction from tolwin in [MAGE] essen und trinken   
    Dann gleich mal ein Tipp: Versuch am besten anhand der Tutorials eine eigenen Routine mit dem FightClass Editor zu erstellen, das bringt dir ein wenig Verständnis wie das ganze funktioniert.
    Fragen an sich versuche ich gerne zu beantworten, allerdings nur bedingt, weil ich selber den Editor nicht benutze, aber eine persönliche Erklärung bleibt leider aus. Dafuer haben wir hier in der Tutorial Sektion ganz tolle Video Tutorials, die das ganze beschreiben. Wenn ich mich nicht irre gibt es auch ein Plugin das sollch dinge löst.

    Ansonsten willkommen im forum ;)
  17. Like
    iMod got a reaction from tolwin in [MAGE] essen und trinken   
    Du denkst da glaube ich noch ein wenig falsch. Du musst dir das so vorstellen das essen ist auch nur ein "Skill" und die Liste wird einfach von oben nach unten durchgelaufen und schaut ob die Konditionen "true" ergeben oder nicht. Wenn true dann mach und wenn nicht geh zum nächsten in der skill liste.

    Was du also brauchst ist das benutzen von items(deinem essen / trinken) Du kannst das essen ect auch unter den Generell Settings einstellen und musst es nicht in deiner Routine machen. Dort musst du nur das herstellen abwickeln.

    Das er sich nicht heilt wird wahrscheinlich daran liegen das du in dem Heilskill nicht angegeben hast das er ihn auch benutzen soll wenn er nicht im Kampf ist(Siehe oben in SpellSettings)
  18. Like
    iMod got a reaction from tolwin in [MAGE] essen und trinken   
    Ich bin wie gesagt nicht so der Held in Sachen Editor ^_^ aber rein theoretisch einfach use item -> dazu brauchst du dann die item ID und dann condition wenn mana kleiner als 50. Kann auch sein das du das alles unter generell settings findest und es schon alles drin ist.
  19. Like
    iMod got a reaction from djdomrep in INSTANT BAN after 10 minutes bot us   
    Layer 8 issue. I bet you earned the ban from hb and after you bought wrobot they threw the bannhammer.
  20. Like
    iMod got a reaction from Runaro in Wrobot   
    Why should someone spend hours of creating profiles for free? ;) i think you got the point. Have fun with hb.
    Oh btw no one said you will get profiles. I remember the first time with hb they had nothing, too and there where also ppl like you xD
  21. Like
    iMod got a reaction from Runaro in Wrobot   
    The bot is legion ready. If you are too lazy to create profiles it is not wrobot fault. You paid for the bot not for profiles or stuff like that. If you buy something read the description before you buy and blame!
  22. Like
    iMod got a reaction from Runaro in Help WRobot to improve navigation mesh construction   
    So for private server it does not work, like WOTLK?
  23. Like
    iMod reacted to testingz in Quick question about How do you create a gathering profile?   
    I have already found that out. Thank you very much for helping out aswell. Works perfectly. Big thumb up for the creator(s) of wrobot.
  24. Like
    iMod got a reaction from RonSwanson in IsSpellUsable Always False   
    First tipp: Create a simple xml routine with one spell and the conditions you need and check the generated C# code.

    If you want to check items use:
    ItemsManager.GetItemCountById(1234) > 0 For your pet attack you could use lua:
    Lua.LuaDoString("PetAttack();"); You can check the target of the mob:
    WoWUnit target = ObjectManager.Me.TargetObject if (target.TargetObject != ObjectManager.Pet) { // Do something }
    If you want to check the debuff's at your target:
     
    Spell debuff = new Spell("DebuffName"); bool hasDebuff = ObjectManager.Me.TargetObject.HaveBuff(debuff.Ids);
    All that stuff is not tested but i hope it will help you out.
    Greez iMod
  25. Like
    iMod reacted to Hapiguy in Pay For Bot AND Profiles???   
    Also, I have to say that paying ~ 25-40  €  for a 10 year license is FAR cheaper than what you'd pay with another site.
    This bot is also capable of a far greater range of possibilities than HB or other providers, from what I've seen.
    Yes, there's some work involved to get it where you want it to be, but it's far from impossible if given some time, and the willingness to watch a tutorial or two and get on it.
×
×
  • Create New...