mael 1 Posted June 5, 2017 Share Posted June 5, 2017 Hello, this is not bot-breaking but case of performance. I had my gatherer run in Netherstorm - While I play Feral tank I can take down even elites solo(slower though). Well I don't die often, but I checked my druid and saw he was dead running to corpse.... then after 10min check him again and same thing over.... what happened was that my druid died falling from the side of Netherstorm... either it was one of those movements that sometimes occur when u mine or NPC knockback. Well every time my character went after corpse he ended up jumping and then being teleported to spirit healer. This behaviour can be fixed by using "use spirit Healer" but if you are using this in High level zone you have to use the wait for resurrection sickness to go off. So potentially you can loose a lot of time this way - bad performance. My question is whether I could set it up so I would res at Spirit Healer in condition that I cannot reach my character or I have been teleported to Spirit healer in ghost form(when you fall) and then condition on waiting on sickness depending on the level and zone. I imagine if it is even possible .. it requires scripting. So most of you advanced in this surely don't have time to do something like this for free - that's why I want to ask you whether you could point me to some direction where I could learn about this. I have been programming for quite a while before so I think I shouldn't have a problem to learn and work on it when I will have more time. Link to comment Share on other sites More sharing options...
Arcangelo 105 Posted June 9, 2017 Share Posted June 9, 2017 Hmm - I guess you should make it an open if while statement. If -> check if you are ghost. While -> check the time spend as ghost (let's say 300000ms) While -> distance to spirit healer (you are in range for resurrection) Run code -> resurrection Link to comment Share on other sites More sharing options...
reapler 154 Posted June 9, 2017 Share Posted June 9, 2017 I would write a plugin & register a few events, so you can control your character & block actions from the bot itself or execute your own behavior. This is how it could look like (not tested): private bool _died; private List<string> _WaitonContinent = new List<string> { "Netherstorm", "otherzones" }; public void Initialize()//method from WRobot's plugin interface { MovementEvents.OnMovementPulse += MovementEventsOnOnMovementPulse; EventsLua.AttachEventLua(LuaEventsId.PLAYER_DEAD, m => Event_PLAYER_DEAD()); //... } public void Dispose()//method from WRobot's plugin interface { MovementEvents.OnMovementPulse -= MovementEventsOnOnMovementPulse; } private void MovementEventsOnOnMovementPulse(List<Vector3> points, CancelEventArgs cancelable) { if (_died && ObjectManager.Me.Position.DistanceZ(ObjectManager.Me.PositionCorpse) > 250)//use spirit healer if corpse has a z-distance over 250 { wManagerSetting.CurrentSetting.UseSpiritHealer = true; if (_WaitonContinent.Contains(Usefuls.MapZoneName))//check if it is correct you can either use .SubMapZoneName { robotManager.Helpful.Logging.Write("We are in zone "+Usefuls.MapZoneName + "\n=>Wait"); wManagerSetting.CurrentSetting.WaitResurrectionSickness = true; } cancelable.Cancel = true; _died = false; } if (wManager.Wow.ObjectManager.ObjectManager.Me.IsValid && wManager.Wow.ObjectManager.ObjectManager.Me.IsAlive && !wManager.Wow.ObjectManager.ObjectManager.Me.HaveBuff(15007) && wManagerSetting.CurrentSetting.WaitResurrectionSickness) { Thread.Sleep(1000); wManagerSetting.CurrentSetting.WaitResurrectionSickness = false; } } public void Event_PLAYER_DEAD() { _died = true; } Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now