public static void ResetBot() { Logger.DBLog.InfoFormat("Preforming reset of bot data..."); BlacklistCache.ClearBlacklistCollections(); GoldInactivity.LastCoinageUpdate = DateTime.Now; PlayerMover.iTotalAntiStuckAttempts = 1; PlayerMover.vSafeMovementLocation = Vector3.Zero; PlayerMover.vOldPosition = Vector3.Zero; PlayerMover.iTimesReachedStuckPoint = 0; PlayerMover.timeLastRecordedPosition = DateTime.Today; PlayerMover.timeStartedUnstuckMeasure = DateTime.Today; PlayerMover.iTimesReachedMaxUnstucks = 0; PlayerMover.iCancelUnstuckerForSeconds = 0; PlayerMover.timeCancelledUnstuckerFor = DateTime.Today; //Reset all data with bot (Playerdata, Combat Data) Reset(); PlayerClass.CreateBotClass(); //Update character info! FunkyGame.Hero.Update(); //OOC ID Flags Targeting.Cache.ShouldCheckItemLooted = false; Targeting.Cache.CheckItemLootStackCount = 0; //ItemIdentifyBehavior.shouldPreformOOCItemIDing = false; //TP Behavior Reset TownPortalBehavior.ResetTPBehavior(); //Sno Trim Timer Reset ObjectCache.cacheSnoCollection.ResetTrimTimer(); //clear obstacles ObjectCache.Obstacles.Clear(); ObjectCache.Objects.Clear(); //EventHandlers.EventHandlers.DumpedDeathInfo = false; }
protected override Composite CreateBehavior() { return(new PrioritySelector ( new Decorator(ret => FunkyGame.GameIsInvalid, new Action(ret => { if (TownPortalBehavior.FunkyTPBehaviorFlag) { TownPortalBehavior.ResetTPBehavior(); } m_IsDone = true; })), //Return To Town new Decorator(ret => TownPortalBehavior.FunkyTPOverlord(null), new Action(ret => TownPortalBehavior.FunkyTPBehavior(null))), //Setup our Vector and SNO new Decorator(ret => !initalizedTownVars, new Action(ret => InitalizeTownVariables())), new Decorator(ret => MovementVector == Vector3.Zero || ObjectSNO == -1, new Action(ret => { if (TownPortalBehavior.FunkyTPBehaviorFlag) { TownPortalBehavior.ResetTPBehavior(); } m_IsDone = true; })), //Movement new Decorator(ret => !UpdateObject() || ZetaDia.Me.Position.Distance(MovementVector) > 10f || !Object.InLineOfSight, new Action(ret => Navigator.MoveTo(MovementVector))), new Decorator(ret => !Interact, new Action(ret => { if (TownPortalBehavior.FunkyTPBehaviorFlag) { TownPortalBehavior.ResetTPBehavior(); } m_IsDone = true; })), //Interaction new Decorator(ret => !DialogIsVisible(), new Action(ret => Object.Interact())), new Decorator(ret => DialogIsVisible(), new Action(ret => { if (TownPortalBehavior.FunkyTPBehaviorFlag) { TownPortalBehavior.ResetTPBehavior(); } m_IsDone = true; })) )); }
protected override Composite CreateBehavior() { return(new PrioritySelector( new Decorator(ret => ZetaDia.IsLoadingWorld, new Action() ), new Decorator(ret => Bot.Character.Data.bIsInTown && ZetaDia.CurrentLevelAreaId != 55313, new Action(ret => { ForceClearArea = false; AreaClearTimer.Reset(); _IsDone = true; //Logger.Logger.DBLog.InfoFormat("[TrinityTownPortal] In Town"); }) ), new Decorator(ret => !Bot.Character.Data.bIsInTown && !TownPortalBehavior.CanCastTP(), new Action(ret => { ForceClearArea = false; AreaClearTimer.Reset(); _IsDone = true; //Logger.Logger.DBLog.InfoFormat("[TrinityTownPortal] Unable to use TownPortal!"); }) ), new Decorator(ret => Bot.Character.Data.dCurrentHealthPct < _StartHealth, new Action(ret => { _StartHealth = Bot.Character.Data.dCurrentHealthPct; AreaClearTimer.Restart(); ForceClearArea = true; }) ), new Decorator(ret => AreaClearTimer.IsRunning, new PrioritySelector( new Decorator(ret => AreaClearTimer.ElapsedMilliseconds <= WaitTime, new Action(ret => ForceClearArea = true) // returns RunStatus.Success ), new Decorator(ret => AreaClearTimer.ElapsedMilliseconds > WaitTime, new Action(ret => { Logger.DBLog.DebugFormat("TownRun timer finished"); ForceClearArea = false; AreaClearTimer.Reset(); }) ) ) ), new Decorator(ret => !ForceClearArea, new PrioritySelector( new Decorator(ret => Bot.NavigationCache.IsMoving, new Sequence( CommonBehaviors.MoveStop(), new Sleep(1000) ) ), new Sequence( // Already casting, just wait new DecoratorContinue(ret => TownPortalBehavior.CastingRecall(), new Action() ), new Action(ret => { GameEvents.FireWorldTransferStart(); ZetaDia.Me.UseTownPortal(); }) ) ) ) )); }