每個種族對應一個AiInterace對象,這個對象有所有該族的所有角色對象指針,并擁有以下AiRule成員:
AiRuleWorkerHarvest
AiRuleRefreshHarvester
AiRuleScoutPatrol
AiRuleRepair
AiRuleReturnBase
AiRuleMassiveAttack
AiRuleAddTasks
AiRuleBuildOneFarm
AiRuleProduceResourceProducer
AiRuleProduce
AiRuleBuild
AiRuleUpgrade
AiRuleExpand
一。遍歷所有種族的AiInterace對象,進行AiRule的更新:
1. 在AiRuleXXXX的::test()測試該話是否要進行處理
2. 在AiRuleXXXX的::execute()中進行處理,為對應要處理的角色giveCommand(CommandType)
二。Command的更新:
每種cmd調用它成員UnitUpdater中對應的更新函數(比如HarvestCommandType::update中調用unitUpdater->updateHarvest),
在這更新中為對應角色指定對應的技能類形, 據技能類型進行處理。
AIRule-->CMD-->skilltype
另外操作一般都是以種族為類別進行的,所以選中一個單位后雙擊可以選中所有相同類型的角色。搜礦搜樹什么的也歸類搜索就減少消耗。
posted on 2010-11-03 23:12
flipcode 閱讀(175)
評論(0) 編輯 收藏 引用