Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
        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;
            }))
                   ));
        }
Exemplo n.º 3
0
 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();
     })
                                      )
                                  )
                              )
                ));
 }