Pasterke
-
Posts
165 -
Joined
-
Last visited
Reputation Activity
-
Pasterke got a reaction from Droidz in playing with wRobot
Hi guys,
I have my banned account back and for the moment I don't have any computer with windows installed. I play on my iMac or under Linux. wRobot works only under windows.
I made an account with a battle-chest and botted a while on that account. I had a new working restoration routine that worked very fine until lvl 90. After an HD crash I didn't replace the windows HD because I realy don't need it, I only used windows to play
WoW. And playing WoW in a virtual guest don't work well.
Maybe I will install windows again, but that's not an priority for the moment. I can play WoW manualy and thats enough. Further I wait for the next ban wave, don't want to loose my new account. If wrobot is'n affected, maybe I will play again with it. I only
botted on that battle chest account and only did dungeons, no materials farming and afk botting. See if this one survive an ban wave.
So, don't ask me to update fight routines for the moment. Just waiting for now. I only play the druid class and I had working routines for every spec.
Hope to survive the ban wave (think it's coming soon) and maybe I will back again then.
My main program language is C++ and I have alot of work as freelancer, that's why I dont need Windows.
-
Pasterke got a reaction from fragik in Dream of Cenarius Procs
The best method is to add spell condition to Healing Touch : isSpellOverlayed true.
-
Pasterke got a reaction from Hapiguy in INSTANT BAN after 10 minutes bot us
Think taura is a Bossland dev to scare out the users here, afraid to loose more HB users.
-
Pasterke got a reaction from loves2spooge in Purpose of wrotation
I wonder how i'm topping the dps with wrotation in raids and dungeons. You will not top dps if you use the fight class editor, but with a pure C# you will. Before you can top dps with wrotation, you need to know your class. If you top dps manualy, then you can have better dps with wrotation.
-
Pasterke got a reaction from kersh in Regarding subscription
Download the bot. Unzip it. Then you can update it. Choose your private server version and update.
Change the name of the folder to macth your private server version.
Then you can unpack the zip file again, and update it for another version of wow, etc...
So basically you can have mutltiple versions of wrobot. Just rename the folders with the version you updated. wrobotLK, wrobotTBC, wrobotLegal ....
Then just start the wrobot.exe in the folder you need for the game you play.
-
Pasterke got a reaction from iMod in DK Debuff Bug since update
Try that :
public static bool myDebuffExists(String debuff) { var auras = ObjectManager.Target.GetAllBuff(); foreach(var a in auras) { string aura = a.ToString(); if (aura.Contains(debuff) && (aura.Contains(ObjectManager.Me.Guid.ToString()) || aura.Contains(ObjectManager.Me.Guid128.ToString()))) return true; } return false; }
-
Pasterke got a reaction from Duskydandelions in Fight classe heal wrotation
Ainsi joint la fightclass que j'utilise pour le moment en solution vs2015.
Sorry, c'est celle la que j'utilise :
DruidRestoration.zip
-
Pasterke got a reaction from Duskydandelions in Fight classe heal wrotation
Oui, il faut C# pour une fightclass heal.
Mais vous avez ici un example. Ca marche tres bien pour druid restoration. Une fois que vous avez la mouture, c'est pas tres difficile pour l'adopter a une autre class heal.
-
Pasterke got a reaction from AudreyH in base framework C# for fightclasses
This is a base Framework in C# to develop a fightclass.
Everything is named Test, just rename Test to Disc, Warrior etc ....
I put some comments where needed.
Imoportant : CastSpellOn can't be used on unfriendly targets because the protected status of the WoW API !
Hope this is usefull :)
frameWork.zip
-
Pasterke got a reaction from BetterSister in Druid cat change.
private Spell catForm = new Spell("Cat Form");
If (!ObjectManager.Me.HaveBuff("Cat Form") && Fight.InFight) { catForm.launch(); }
-
Pasterke got a reaction from Droidz in Get debuffs/buffs
Sometimes it's difficult to check debuffs/buffs before casting a spell.
Example : Druid Guardian, if you have Faerie Swarm talent, you need to cast Faerie Fire; because Faerie Swarm is unknown spell. If you need to check if debuff faerie swarm exists, then you have a problem, for those who don't have Faerie Swarm.
To check the debuff I use following C# code :
public bool debuffExixts(string debuff) { /*[F] 11:09:45 - check Aura: Growl: ID=6795, Stack=0, TimeLeft=1082 ms, Owner=00000000079D3B1E0834FC0000000000*/ List<Aura> t = ObjectManager.Target.GetAllBuff(); foreach (var aura in t) { string[] checkAura = aura.ToString().Split(':'); //Logging.WriteFight("check Aura: " + checkAura[0].Trim()); if (ObjectManager.Me.Guid == ObjectManager.Target.BuffCastedBy(checkAura[0].Trim()) && checkAura[0].Contains(debuff)) return true; } return false; } Faerie Fire and Faerie Swarm have 1 common text, Faerie. Then you can use debuffExists("Faerie") to check.
-
Pasterke got a reaction from BetterSister in Get debuffs/buffs
Sometimes it's difficult to check debuffs/buffs before casting a spell.
Example : Druid Guardian, if you have Faerie Swarm talent, you need to cast Faerie Fire; because Faerie Swarm is unknown spell. If you need to check if debuff faerie swarm exists, then you have a problem, for those who don't have Faerie Swarm.
To check the debuff I use following C# code :
public bool debuffExixts(string debuff) { /*[F] 11:09:45 - check Aura: Growl: ID=6795, Stack=0, TimeLeft=1082 ms, Owner=00000000079D3B1E0834FC0000000000*/ List<Aura> t = ObjectManager.Target.GetAllBuff(); foreach (var aura in t) { string[] checkAura = aura.ToString().Split(':'); //Logging.WriteFight("check Aura: " + checkAura[0].Trim()); if (ObjectManager.Me.Guid == ObjectManager.Target.BuffCastedBy(checkAura[0].Trim()) && checkAura[0].Contains(debuff)) return true; } return false; } Faerie Fire and Faerie Swarm have 1 common text, Faerie. Then you can use debuffExists("Faerie") to check.
-
Pasterke got a reaction from reapler in A few questions about the CustomClass
what are you trying to do ? If your interact returns null, wrobot will crash.
public WoWPlayer getNearestPlayer
{
get
{
var t = ObjectManager.GetObjectWoWPlayer().Where(p => p != null //from here on you can add checks
&& p.IsAlive
&& p.IsHorde //or p.IsAlliance
&& !TraceLine.TraceLineGo(p.Position) //test if no objects between you and target (target is in line of sight)
&& p.GetDistance <= 40).OrderBy(p => p.HealthPercent).ThenBy(p => p.GetDistance).ToList(); //1st sort on healtpercent and if you want then by distance
if (t.Count() > 0) // check if t > 0, what means he find something you ask
{
WoWPlayer v = new WoWPlayer(t.FirstOrDefault().GetBaseAddress);
return v;
}
return null; //if t == 0 then return null
}
}
then yo can use getNearestPlayer to do something in your code
if (getNearestPlayer != null)
{
try
{
Interact.InteractGameObject(getNearestPlayer.GetBaseAddress);
spell.Launch();
}
catch (Exception e) { Logging.WriteError("ErrorDescription: " + e.ToString()); }
}
-
Pasterke got a reaction from leetdemon in Party Buffing
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
-
Pasterke got a reaction from leetdemon in Party Buffing
That's the c# programming language, not scripts.
Install visual studio (the free version) and learn how to work with it. It's not that difficult :)
You can load a .cs files in visual studio and see the code. With intellisense it helps you alot to add or change code.
-
Pasterke got a reaction from BetterSister in FightClass Condition help
This is only possible with c# code. Set your current position and add 5 yards, then cast freezing trap at that postion. Easy stuff.
-
Pasterke got a reaction from MrBottie in Finding nearby a player with specific name and helping it
You need to get wowplayer names instead of wowunit names, and then you need to check if the player has the same faction of you, check if he's in combat and then check his target.
-
Pasterke got a reaction from Droidz in base framework C# for fightclasses
This is a base Framework in C# to develop a fightclass.
Everything is named Test, just rename Test to Disc, Warrior etc ....
I put some comments where needed.
Imoportant : CastSpellOn can't be used on unfriendly targets because the protected status of the WoW API !
Hope this is usefull :)
frameWork.zip
-
Pasterke got a reaction from Dashia in Party Buffing
That's the c# programming language, not scripts.
Install visual studio (the free version) and learn how to work with it. It's not that difficult :)
You can load a .cs files in visual studio and see the code. With intellisense it helps you alot to add or change code.
-
Pasterke got a reaction from BetterSister in Party Buffing
That's the c# programming language, not scripts.
Install visual studio (the free version) and learn how to work with it. It's not that difficult :)
You can load a .cs files in visual studio and see the code. With intellisense it helps you alot to add or change code.
-
Pasterke got a reaction from Dashia in Party Buffing
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
-
Pasterke got a reaction from eeny in Party Buffing
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
-
Pasterke got a reaction from Dashia in Party Buffing
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;
-
Pasterke got a reaction from Droidz in anyone got a thorium ore profile for silithus?
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.
-
Pasterke got a reaction from BetterSister in anyone got a thorium ore profile for silithus?
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.