Jump to content

Pasterke

Members
  • Posts

    165
  • Joined

  • Last visited

Posts posted by Pasterke

  1. 25fps is a realy good choice. It's not for a reason that it's the default. Higher than 30fps is not recommended. Look on google and search for fps and wow, it will be explained in details.

    If you have a long list with spells, it realy don't matter how you order your spells.

    The bot looks at your spells, and go down from top to bottom, and then start over again. If a skill is ready, he use it. This process is soo fast, that the order of your spells is not relevant.

    And that's the reason why the bot don't do things at the right moment.

    In his memory he keep the true actions. So when he starts over from the beginning, he will do the true actions from his memory and add new true conditions to this list.

    You never have a skill for the actually time. That's why it's hard to get a good healing class for this bot.

    The only solution to this problems, is working with coroutines, what they did in Honorbuddy.

    Droidz should look at the coroutines section of the Honorbuddy wiki to implent such a system.

    That's why wrobot will never compete with honorbuddy in terms of dps.

    I wrote alot of Routines for Honorbuddy with the same logic as I write routines for wrobot.

    for example : my honorbuddy routine for feral druid and the routine for feral druid in wrobot, the difference in dps is like 12k in favor of Honorbuddy. That's huge.

     

  2. Automaton is much safer to use than a grinder profile in terms to get get caught for botting.

    What are good places for Automaton, that's quit simple :

    are you full heirloom : you can handle mobs that are 3 levels higher than yours. Quit the place if your level is 3 levels higher than the mobs level.

    no heirlooms : areas where mobs are with 1 level higher than yours, leave area if your level is 4x higher than mob level.

    With automaton you don't follow a pre-defined route, so you don't come back to the previous location to continue the profile. It's less bottish.

    A good tip : for leveling take a profession like skinning, you will make alot of money. (my hunter had 32k gold on level 60)

    look at http://www.wow-professions.com/wowguides/wow-skinning-guide.html for the right places to be.

    A secondary good profession is herbalism. You can gather herbs on the places where you farm leathers. Herbs also selling good on AH.

    By farming on those places you have a chance to get rare drops like azure whelping and others that sells easy on AH between 5k and 15k.

    If you reach level 90, then if you want, you can drop those professions and choose others that you realy want. If you quest a little you get drops and quests that brings your profession skills to 600.

    That way, it's easier to gather the materials for your profession afterwards.

  3. Ok, here you go

    public static List<WoWUnit> getPartyPets()
            {
                Vector3 myPos = ObjectManager.Me.Position;
                var ret = new List<WoWUnit>();
                var pets = ObjectManager.GetObjectWoWUnit().Where(p => p != null
                    && p.IsPet).ToList();
                foreach (var m in pets)
                {
                    if (m.IsValid && m.IsAlive && m.InCombat && m.Target.IsNotZero() && m.Position.DistanceTo2D(myPos) <= 40 && !TraceLine.TraceLineGo(m.Position))
                    {
                        if (ret.All(u => u.Guid != m.Target))
                        {
                            var targetUnit = new WoWUnit(ObjectManager.GetObjectByGuid(m.Target).GetBaseAddress);
                            if (targetUnit.IsValid && targetUnit.IsAlive)
                            {
                                ret.Add(targetUnit);
                            }
                        }
                    }
                }
                return ret;
            }
            public static List<WoWUnit> GetPartyTargets()
            {
                Vector3 myPos = ObjectManager.Me.Position;
                var partyMembers = Party.GetPartyHomeAndInstance();
                
                var ret = new List<WoWUnit>();

                foreach (var m in partyMembers)
                {
                    if (m.IsValid && m.IsAlive && m.InCombat && m.Target.IsNotZero() && m.Position.DistanceTo2D(myPos) <= 40 && !TraceLine.TraceLineGo(m.Position))
                    {
                        if (ret.All(u => u.Guid != m.Target))
                        {
                            var targetUnit = new WoWUnit(ObjectManager.GetObjectByGuid(m.Target).GetBaseAddress);
                            if (targetUnit.IsValid && targetUnit.IsAlive)
                            {
                                ret.Add(targetUnit);
                            }
                        }
                    }
                }
                return ret;
            }

            public static int partyCount { get { return GetPartyTargets().Count(); } }

            public static bool buffExists(WoWUnit unit, string buff)
            {
                return unit.HaveBuff(buff);
            }

            public static bool petBuffExists(string buff)
            {
                return ObjectManager.Pet.HaveBuff(buff);
            }

            public HashSet<string> statsBuffs = new HashSet<string>()
            {
                "Mark of the Wild",
                "Blessing of Kings",
                "Gift of the Wild"
            };

            public bool checkBuff(WoWUnit unit)
            {
                var a = unit.GetAllBuff();
                foreach(var aura in a)
                {
                    if (statsBuffs.Contains(aura.ToString())) return false;
                }
                return true;
            }

            public bool needStatsBuff(string buff, bool reqs)
            {
                if (!reqs) return false;
                foreach(WoWUnit t in GetPartyTargets())
                {
                    if (!buffExists(t, buff) && !checkBuff(t))
                    {
                        try
                        {
                            SpellManager.CastSpellByNameOn(buff, t.Name);
                            Logging.WriteFight(buff + "on " + t.Name);
                            return true;
                        }
                        catch(Exception e) { Logging.WriteFight("Single StatsBuffs: " + e.Message); }
                    }
                }
                return false;
            }
           public bool petsNeedStats(string buff, bool reqs)
            {
                if (!reqs) return false;
                foreach (WoWUnit t in getPartyPets())
                {
                    if (!buffExists(t, buff) && !checkBuff(t))
                    {
                        try
                        {
                            SpellManager.CastSpellByNameOn(buff, t.Name);
                            Logging.WriteFight(buff + "on " + t.Name);
                            return true;
                        }
                        catch (Exception e) { Logging.WriteFight("Pet StatsBuffs: " + e.Message); }
                    }
                }
                return false;
            }
            private Spell motw = new Spell("Mark of the Wild");
            public void Routine()
            {
                if (partyCount > 0 && needStatsBuff("Mark of the Wild", motw.KnownSpell && motw.IsSpellUsable)) return;
                if (partyCount > 0 && petsNeedStats("Mark of the Wild", motw.KnownSpell && motw.IsSpellUsable)) return;
            }

    To check for other buffs make a new hashset and new bools, eg. needFortitude, petsNeedFortitude

  4. don't matter if it's 3.3.5, the code checks if you are in a party and if some1 doesn't have a stats buff, if not, cast it on yourself, and the others in your party get it also. Even buffs from MoP or Draenor, don't matter, they will not have it and cause no error.

  5. You don't need to cast it on the target, if you cast it on yourself, then everyone get the buff. Don't make things too complicate.

    private Spell MoTW = new Spell("Mark of the Wild");
        public bool needMotw(bool reqs)
        {
            if (!reqs) return false;
            if (!MoTW.KnownSpell) return false;
            if (!MoTW.IsSpellUsable) return false;
            var t = GetPartyMembers().Where(p => p != null

                && p.GetDistance <= 40
                && !p.HaveBuff(MoTW.Name)
                && !p.HaveBuff("Legacy of the Emperor")
                && !p.HaveBuff("Blessing of Kings")
                && !p.HaveBuff("Lone Wolf: Power of the Primates")
                && !p.HaveBuff("Bark of the Wild")
                && !p.HaveBuff("Blessing of Kongs")
                && !p.HaveBuff("Embrace of the Shale Spider")
                && !p.HaveBuff("Strength of the Earth"));
            if (t != null)
            {
                try
                {
                    SpellManager.CastSpellByNameOn(MoTW.Name, ObjectManager.Me.Name);
                    Logging.WriteFight(MoTW.Name);
                    return true;
                }
                catch (Exception e)
                {
                    Logging.WriteFight("MotW: " + e.Message);
                }
            }
            return false;
        }

     

    Then just look if you need it :

    if (needMotw(Party.GetPartyNumberPlayers() > 0)) return true;

  6. Select Gatherer.

    Product Settings

    Profile Creator

    Set Record Path on on. Minimize Window.

    Usefull addon : Gathermate2 and Gathermate2_data.

    In addon config  Gathermate2 choose import (check what you want to import)

    Open your map and put it in mini mode.

    You will see the ores on your map.

    Now fly araound making a circle (you end where you start)

    If you reach your startpoint again, maximize Profile Creator.

    Hit the save button, and give it a name.

    Close Profile Creator.

    Load your just created profile.

    Hit start.

    Realy easy to create your own profile.

  7. It's only the starting area quests that are different for each race.

    Once they are level 5, move them to a capital city and start a quest line for Alliance or Horde.

    example Alliance : goto SW, pick up Eversong Wood Quests, Westfall Quests, Redridge Mountain Quests, Duskwood Quests,  Strangleton Quests, Western(35-40) + Eastern Plaguelands Quests (40+), Burning Steppes, Swamp of Sorrow, Blasted Lands.

    You setup the same quest line for each faction, it's easier than setup different quest lines for each race.

     

  8. If you play WoW on an Linux or FreeBSD machine, you have to run WoW in 32-bit mode, otherwise you run into problems with wine.

    Only older computers can only run in 32 bit mode, but I think that playing WoW on such an older computer will be an pain in the ...

    Running an windows 32 bit version limits you in memory use, only 4GB of memory is available.

    I also think it's time to move to an 64-bits bot, but who am I ? :)

×
×
  • Create New...