MOD/作成情報
生産された特定のユニットにスキルを与える建物作りたい
788 :名無しさんの野望:2008/03/16(日) 22:54:25 ID:Ay46MjyB
CvEventManager.pyを自分のMODに適切な場所コピーして、
onUnitBuildメソッド(ユニット生産イベント)に以下みたいなこと書くといい。
以下は「市場があれば戦士に水陸両用をセットする」という内容
BUILDING_MARKET(市場)やUNIT_WARRIOR(戦士)とPROMOTION_AMPHIBIOUS(水陸両用)を適宜書き直してね。
def onUnitBuilt(self, argsList):
(中略)
player = PyPlayer(city.getOwner())
iMarket = gc.getInfoTypeForString("BUILDING_MARKET")
iWarrior = gc.getInfoTypeForString("UNIT_WARRIOR")
if city.isHasBuilding(iMarket) and unit.getUnitType() == iWarrior:
iPromotion = gc.getInfoTypeForString("PROMOTION_AMPHIBIOUS")
unit.setHasPromotion(iPromotion, true)
CvAdvisorUtils.unitBuiltFeats(city, unit)
(以下略)
スキルを複数つける場合
iPromotion = gc.getInfoTypeForString("PROMOTION_AMPHIBIOUS")
unit.setHasPromotion(iPromotion, true)
iPromotion = gc.getInfoTypeForString("PROMOTION_AMPHIBIOUS_1")
unit.setHasPromotion(iPromotion, true)
iPromotion = gc.getInfoTypeForString("PROMOTION_AMPHIBIOUS_2")
unit.setHasPromotion(iPromotion, true)
iPromotion = gc.getInfoTypeForString("PROMOTION_AMPHIBIOUS_3")
unit.setHasPromotion(iPromotion, true)
iPromotion = gc.getInfoTypeForString("PROMOTION_AMPHIBIOUS_9999")
unit.setHasPromotion(iPromotion, true)