示例#1
0
        public void Run(string pluginDir)
        {
            Chat.WriteLine("InfBuddy Loaded!");

            try
            {
                Config = Config.Load($"{Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)}\\AOSharp\\InfBuddy\\Config.json");
                ActiveGlobalSettings      = Config.GlobalSettings;
                _stateMachine             = new StateMachine(new IdleState());
                NavMeshMovementController = new NavMeshMovementController($"{pluginDir}\\NavMeshes", true);
                MovementController.Set(NavMeshMovementController);

                Chat.RegisterCommand("infbuddy", InfbuddyCommand);

                IPCChannel = new IPCChannel(10);
                IPCChannel.RegisterCallback((int)IPCOpcode.Start, OnStartMessage);
                IPCChannel.RegisterCallback((int)IPCOpcode.Stop, OnStopMessage);

                NpcDialog.AnswerListChanged += NpcDialog_AnswerListChanged;
                Team.TeamRequest            += OnTeamRequest;
                Game.OnUpdate += OnUpdate;
            }
            catch (Exception e)
            {
                Chat.WriteLine(e.Message);
            }
        }
示例#2
0
 protected void SetupMovementController()
 {
     if (this.movementController == null)
     {
         this.movementController = this.GetComponent <ActorMovementController>();
     }
     if (this.movementController != null)
     {
         this.movementController.ResetMovement();
         NavMeshMovementController navController = this.movementController as NavMeshMovementController;
         if (navController != null)
         {
             navController.MovementSpeed = this.runSpeed;
             navController.TurningSpeed  = this.turningSpeed;
         }
     }
 }
    public void SetPlayerCotrollerStatus(bool userControlled)
    {
        if (userControlled)
        {
            userMovementController                 = gameObject.AddComponent <UserMovementController>();
            userMovementController.moveSpeed       = speed;
            userMovementController.movementEnabled = false;
        }
        else
        {
            agent       = gameObject.AddComponent <NavMeshAgent>();
            agent.speed = speed;
            navMeshMovementController =
                gameObject.AddComponent <NavMeshMovementController>();
            navMeshMovementController.movementEnabled = false;
        }

        playerControlled = userControlled;
    }
示例#4
0
 private void Stop()
 {
     Running = false;
     _stateMachine.SetState(new IdleState());
     NavMeshMovementController.Halt();
 }