public override void Active()
 {
     if (base.IsActive)
     {
         return;
     }
     if (DataReader <Monster> .Get(this.owner.TypeID).mode == 1)
     {
         return;
     }
     TimerHeap.DelTimer(this.timerID);
     this.GetAIDataByType();
     base.AIRoot = BTLoader.GetBehaviorTree(this.AIType);
     if (base.AIRoot == null)
     {
         return;
     }
     base.IsActive   = true;
     base.IsThinking = InstanceManager.IsAIThinking;
     this.owner.GetConditionManager().RegistThinkCondition(base.GetAIConditionMessage(base.AIRoot));
     if (base.IsFirstActive)
     {
         base.IsFirstActive = false;
         this.timerID       = TimerHeap.AddTimer((uint)DataReader <Monster> .Get(this.owner.TypeID).aiDelay, this.ThinkInterval, new Action(this.Think));
     }
     else
     {
         this.timerID = TimerHeap.AddTimer(0u, this.ThinkInterval, new Action(this.Think));
     }
 }
示例#2
0
    protected BTNode LoadBT(string type)
    {
        string fileName = "BT_" + type;
        BTNode btNode   = BTLoader.GetBehaviorTree(fileName);

        if (btNode != null)
        {
            return(btNode);
        }

        TextAsset textAsset = CResourceSys.Instance.LoadBehaviourTree(fileName);

        if (textAsset == null)
        {
            return(null);
        }

        btNode = BTLoader.LoadBtXml(fileName, textAsset.text);
        Resources.UnloadAsset(textAsset);
        if (btNode == null)
        {
            Debug.LogError("创建BTree失败 " + fileName);
        }
        return(btNode);
    }
示例#3
0
 private static void CheckeNode(SecurityElement securityElement)
 {
     if (securityElement.get_Children() != null)
     {
         for (int i = 0; i < securityElement.get_Children().get_Count(); i++)
         {
             SecurityElement securityElement2 = (SecurityElement)securityElement.get_Children().get_Item(i);
             BTLoader.CheckeNode(securityElement2);
         }
     }
 }
示例#4
0
 public static BTNode GetBehaviorTree(string _id)
 {
     if (!BTLoader.container.ContainsKey(_id))
     {
         BTLoader.LoadXML(_id);
     }
     if (BTLoader.container.ContainsKey(_id))
     {
         return(BTLoader.container.get_Item(_id));
     }
     return(null);
 }
示例#5
0
    public static BTNode TreeLoader(string xmlstring)
    {
        SecurityParser securityParser = new SecurityParser();

        securityParser.LoadXml(xmlstring);
        SecurityElement securityElement  = securityParser.ToXml();
        SecurityElement securityElement2 = (SecurityElement)securityElement.get_Children().get_Item(0);

        if (securityElement2.Attribute("Class").Equals("Brainiac.Design.Nodes.Behavior"))
        {
            BTNode bTNode = new BTNode();
            BTLoader.AddChildNode(bTNode, (SecurityElement)securityElement2.get_Children().get_Item(0));
            return(bTNode);
        }
        return(null);
    }
示例#6
0
    public static void LoadXML(string fileName)
    {
        TextAsset textAsset = AssetLoader.LoadAssetNow("BT/BT" + fileName, typeof(Object)) as TextAsset;

        if (textAsset == null)
        {
            return;
        }
        BTNode bTNode = BTLoader.TreeLoader(textAsset.get_text());

        BTLoader.container.Add(fileName, bTNode);
        AssetLoader.UnloadAsset("BT/BT" + fileName, null);
        if (bTNode == null)
        {
            Debuger.Error("创建BTree失败 " + fileName, new object[0]);
        }
    }
示例#7
0
 public virtual void Active()
 {
     if (this.IsActive)
     {
         return;
     }
     TimerHeap.DelTimer(this.timerID);
     this.GetAIDataByType();
     this.AIRoot = BTLoader.GetBehaviorTree(this.AIType);
     if (this.AIRoot == null)
     {
         return;
     }
     this.IsActive   = true;
     this.IsThinking = InstanceManager.IsAIThinking;
     this.owner.GetConditionManager().RegistThinkCondition(this.GetAIConditionMessage(this.AIRoot));
     this.timerID = TimerHeap.AddTimer(0u, this.ThinkInterval, new System.Action(this.Think));
 }
示例#8
0
 public override void Active()
 {
     if (base.IsActive)
     {
         return;
     }
     base.MoveSkipThinkCount = 0;
     base.MoveSkipTime       = 0f;
     TimerHeap.DelTimer(this.pressIconTimer);
     TimerHeap.DelTimer(this.timerID);
     this.GetAIDataByType();
     base.AIRoot = BTLoader.GetBehaviorTree(this.AIType);
     if (base.AIRoot == null)
     {
         return;
     }
     base.IsActive   = true;
     base.IsThinking = InstanceManager.IsAIThinking;
     this.owner.GetConditionManager().RegistThinkCondition(base.GetAIConditionMessage(base.AIRoot));
     this.timerID = TimerHeap.AddTimer(0u, this.ThinkInterval, new Action(this.Think));
 }
示例#9
0
 private static void AddChildNode(Command node, SecurityElement securityElement)
 {
     if (securityElement.Attribute("Class") != null)
     {
         Type type = Type.GetType(securityElement.Attribute("Class"));
         ConstructorInfo[] constructors    = type.GetConstructors();
         ConstructorInfo   constructorInfo = constructors[0];
         ParameterInfo[]   parameters      = constructorInfo.GetParameters();
         Type[]            array           = new Type[parameters.Length];
         for (int i = 0; i < array.Length; i++)
         {
             ParameterInfo parameterInfo = parameters[i];
             array[i] = parameterInfo.get_ParameterType();
         }
         constructorInfo = type.GetConstructor(array);
         object[] array2 = new object[parameters.Length];
         for (int j = 0; j < array.Length; j++)
         {
             ParameterInfo parameterInfo2 = parameters[j];
             Type          type2          = array[j];
             string        text           = (string)securityElement.get_Attributes().get_Item(parameterInfo2.get_Name());
             if (type2.Equals(typeof(string)))
             {
                 array2[j] = text;
             }
             else if (type2.Equals(typeof(int)))
             {
                 array2[j] = int.Parse(text);
             }
             else if (type2.Equals(typeof(float)))
             {
                 array2[j] = float.Parse(text);
             }
             else if (type2.Equals(typeof(bool)))
             {
                 if (text.Equals("True"))
                 {
                     array2[j] = true;
                 }
                 else
                 {
                     array2[j] = false;
                 }
             }
             else if (type2.Equals(typeof(LogicalOperator)))
             {
                 string[] array3 = text.ToString().Split(new char[]
                 {
                     ':'
                 });
                 array2[j] = (LogicalOperator)int.Parse(array3[1]);
             }
             else if (type2.Equals(typeof(ComparisonOperator)))
             {
                 string[] array4 = text.ToString().Split(new char[]
                 {
                     ':'
                 });
                 array2[j] = (ComparisonOperator)int.Parse(array4[1]);
             }
         }
         Command command = constructorInfo.Invoke(array2) as Command;
         node.AddChild(command);
         if (securityElement.get_Children() != null)
         {
             for (int k = 0; k < securityElement.get_Children().get_Count(); k++)
             {
                 BTLoader.AddChildNode(command, (SecurityElement)securityElement.get_Children().get_Item(k));
             }
         }
     }
     else if (securityElement.Attribute("Identifier") != null && securityElement.get_Children() != null)
     {
         for (int l = 0; l < securityElement.get_Children().get_Count(); l++)
         {
             BTLoader.AddChildNode(node, (SecurityElement)securityElement.get_Children().get_Item(l));
         }
     }
 }
示例#10
0
 public static void InitManagers()
 {
     FPSManager.Instance.Init();
     SoundManager.CreateInstance();
     SDKManager.Instance.Init();
     NativeCallManager.Instance.Init();
     VoiceSDKManager.Instance.Init();
     PushNotificationManager.Instance.Init();
     BTLoader.Init();
     AssetManager.AssetOfTPManager.Instance.Init();
     UIQueueManager.Instance.Init();
     UIStackManager.Instance.Init();
     GuideManager.Instance.Init();
     BadWordsFilter.Instance.Init();
     NetworkManager.Instance.Init();
     LoginManager.Instance.Init();
     ReconnectManager.Instance.Init();
     EntityWorld.Instance.Init();
     MySceneManager.Instance.Init();
     AOIService.Instance.Init();
     CityManager.Instance.Init();
     InstanceManager.Init();
     GangFightManager.Instance.Init();
     BountyManager.Instance.Init();
     DungeonManager.Instance.Init();
     DefendFightManager.Instance.Init();
     SurvivalManager.Instance.Init();
     PVPManager.Instance.Init();
     ServerGMManager.Instance.Init();
     ElementInstanceManager.Instance.Init();
     WildBossManager.Instance.Init();
     SpecialFightManager.Instance.Init();
     DarkTrialManager.Instance.Init();
     FashionManager.Instance.Init();
     RadarManager.Instance.Init();
     MemCollabManager.Instance.Init();
     GodWeaponProgressManager.Instance.Init();
     SystemOpenProgressManager.Instance.Init();
     BadgeManager.Instance.Init();
     ActorVisibleManager.Instance.Init();
     NPCManager.Instance.Init();
     WildBossManager.Instance.Init();
     TaskNPCManager.Instance.Init();
     WildBossNPCManager.Instance.Init();
     HearthNPCManager.Instance.Init();
     CollectionNPCManager.Instance.Init();
     PetManager.Instance.Init();
     BackpackManager.Instance.Init();
     EnergyManager.Instance.Init();
     BoxRewardManager.Instance.Init();
     GuildManager.Instance.Init();
     TeamManager.Instance.Init();
     MultiPlayerManager.Instance.Init();
     GoldBuyManager.Instance.Init();
     ElementManager.Instance.Init();
     ChangeCareerManager.Instance.Init();
     GlobalManager.Instance.Init();
     EquipmentManager.Instance.Init();
     SignInManager.Instance.Init();
     MainTaskManager.Instance.Init();
     DailyTaskManager.Instance.Init();
     CharacterManager.Instance.Init();
     UpgradeManager.Instance.Init();
     GuildWarManager.Instance.Init();
     VIPManager.Instance.Init();
     RechargeManager.Instance.Init();
     RankingManager.Instance.Init();
     SkillUIManager.Instance.Init();
     RoleTalentManager.Instance.Init();
     TipsManager.Instance.Init();
     EliteDungeonManager.Instance.Init();
     TeamBasicManager.Instance.Init();
     WildMonsterManager.Instance.Init();
     GodSoldierManager.Instance.Init();
     GodWeaponManager.Instance.Init();
     SkillRuneManager.Instance.Init();
     GuildBossManager.Instance.Init();
     RenameManager.Instance.Init();
     HuntManager.Instance.Init();
     RankUpManager.Instance.Init();
     RankUpChangeManager.Instance.Init();
     MultiPVPManager.Instance.Init();
     TramcarManager.Instance.Init();
     GuildSkillManager.Instance.Init();
     PetTaskManager.Instance.Init();
     GuildStorageManager.Instance.Init();
     MarketManager.Instance.Init();
     LimitTimeMarketManager.Instance.Init();
     GuildMarketManager.Instance.Init();
     XMarketManager.Instance.Init();
     TransactionNPCManager.Instance.Init();
     GlobalBattleNetwork.Instance.Init();
     BattleBlackboard.Instance.Init();
     LocalInstanceHandler.Instance.Init();
     LocalBattleHandler.Instance.Init();
     LocalAgent.Intergrate(LocalInstanceHandler.Instance, LocalBattleHandler.Instance);
     BattleCalculator.Init();
     WarningGraghHandler.Init();
     BattleTimeManager.Instance.Init();
     BattleDialogManager.Instance.Init();
     ChatManager.Instance.Init();
     FriendManager.Instance.Init();
     MailManager.Instance.Init();
     TitleManager.Instance.Init();
     BroadcastManager.Instance.Init();
     BillboardManager.Instance.Init();
     FloatTextAddManager.Instance.Init();
     GemManager.Instance.Init();
     Activity7DayManager.Instance.Init();
     ActivityCenterManager.Instance.Init();
     WingManager.Instance.Init();
     ConsumeRechargeManager.Instance.Init();
     LuckDrawManager.Instance.Init();
     NoticeManager.Instance.Init();
     OperateActivityManager.Instance.Init();
     AchievementManager.Instance.Init();
     StrongerManager.Instance.Init();
     FirstPayManager.Instance.Init();
     InvestFundManager.Instance.Init();
     GrowUpPlanManager.Instance.Init();
     ActivityTossDiscountManager.Instance.Init();
     NewPeoperGiftPackageManager.Instance.Init();
     CheckPlayerInfoManager.Instance.Init();
     OffHookManager.Instance.Init();
     MushroomHitManager.Instance.Init();
     BossBookManager.Instance.Init();
     GiftExchangeManager.Instance.Init();
     DayGiftManager.Instance.Init();
     VipTasteCardManager.Instance.Init();
     AcOpenServerManager.Instance.Init();
     RedBagManager.Instance.Init();
 }