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