3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 7398|回复: 2
打印 上一主题 下一主题

[原创] 手把手教你怎么让神谕的加伟人点数对所有城市有效

[复制链接]

1

主题

90

帖子

146

积分

中级玩家

Rank: 3Rank: 3

贡献度
0
金元
1460
积分
146
精华
0
注册时间
2016-11-8
跳转到指定楼层
主题
发表于 2018-5-31 18:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
      事先声明,此贴适合有修改经验的人观看!修改前请注意备份。
      相信网上已经有很多关于修改佩特拉等单城加产量改为全部有效的方法了。今天突发奇想,想改一下神谕的效果,结果发现不能用相同的改法。研究了一下午,终于成功了!亲测有效。
      好了,废话到此为止,进入正题。首先打开游戏目录下Base\Assets\Gameplay\Data里的buildings(废话!),我们找到神谕“BUILDING_ORACLE”,然后一直搜索,找到
   <BuildingType>BUILDING_ORACLE</BuildingType>
   <ModifierId>ORACLE_GREATGENERALPOINTS</ModifierId>

这里第一行是建筑名称,第二行是建筑产生的效果名称(注意!不是游戏内置的效果名称,只是一个代号!)。关于神谕的效果应该有7组(跟游戏描述的不一样,是不加大音乐家和大艺术家点数的,其他都加)。然后我们搜索“ORACLE_GREATGENERALPOINTS”,找到  
   <ModifierId>ORACLE_GREATGENERALPOINTS</ModifierId>
   <ModifierType>MODIFIER_SINGLE_CITY_DISTRICTS_ADJUST_GREAT_PERSON_POINTS</ModifierType>
   <SubjectRequirementSetId>DISTRICT_IS_ENCAMPMENT</SubjectRequirementSetId>

这里第一行就不解释了,跟上面一样,第二行是效果类型(单城区域加伟人点数),第三行是效果产生的条件(该区域是军营)。尝试过直接把MODIFIER_SINGLE_CITY_DISTRICTS_ADJUST_GREAT_PERSON_POINTS改为MODIFIER_PLAYER_CITIES_DISTRICTS_ADJUST_GREAT_PERSON_POINTS,但是这样会出错。搜了一下文件Modifiers,发现原来是内置的效果类型里并没有MODIFIER_PLAYER_CITIES_DISTRICTS_ADJUST_GREAT_PERSON_POINTS,所以这样修改是不行的。接下来我在Modifiers里搜了一下MODIFIER_SINGLE_CITY_DISTRICTS_ADJUST_GREAT_PERSON_POINTS,找到
   <ModifierType>MODIFIER_SINGLE_CITY_DISTRICTS_ADJUST_GREAT_PERSON_POINTS</ModifierType>
   <CollectionType>COLLECTION_CITY_DISTRICTS</CollectionType>
   <EffectType>EFFECT_ADJUST_DISTRICT_GREAT_PERSON_POINTS</EffectType>

这里我们可以看出来,这种加伟人的效果只检测单城的区域,无法覆盖玩家所有城市。怎么办呢?
回过头来再想想修改佩特拉的时候,有这样的段落
   <ModifierId>PETRA_DESERT_FOOD</ModifierId>
   <ModifierType>MODIFIER_PLAYER_CITIES_ATTACH_MODIFIER</ModifierType>和

   
   <ModifierId>PETRA_DESERT_FOOD_MODIFIER</ModifierId>
   <ModifierType>MODIFIER_CITY_PLOT_YIELDS_ADJUST_PLOT_YIELD</ModifierType>
   <SubjectRequirementSetId>FOOD_PLOT_HAS_DESERT_REQUIREMENTS</SubjectRequirementSetId>

这里我已经把一个需要“该城有佩特拉”的条件去掉了,同时把“所有城市”改成的“玩家城市”,第二段对应的是加沙漠产出的,不用动。注意看这里的效果类型,再结合后面的
   <ModifierId>PETRA_DESERT_FOOD</ModifierId>
   <Name>ModifierId</Name>
   <Value>PETRA_DESERT_FOOD_MODIFIER</Value>
  </Row>
  <Row>
   <ModifierId>PETRA_DESERT_FOOD_MODIFIER</ModifierId>
   <Name>YieldType</Name>
   <Value>YIELD_FOOD</Value>
  </Row>
  <Row>
   <ModifierId>PETRA_DESERT_FOOD_MODIFIER</ModifierId>
   <Name>Amount</Name>
   <Value>2</Value>

可以看出游戏实际上用了一个嵌套(摸过程序的都懂),就是先检测所有城市,哪个城市有佩特拉,就给其执行后面加地块产出的效果。我们的改法就是把有佩特拉的条件去了,
同时改为只检测造佩特拉的玩家城市,达到我们想要的效果。
看到这里,我想改神谕的答案就呼之欲出了。思路同样是嵌套,先新增一个效果,把原来直接执行单城加伟人点数的效果替换了。先检测建造神谕玩家的所有城市,然后再执行其本来单城加伟人的效果。
楼主首先将
   <BuildingType>BUILDING_ORACLE</BuildingType>
   <ModifierId>ORACLE_GREATGENERALPOINTS</ModifierId>

改为
   <BuildingType>BUILDING_ORACLE</BuildingType>
   <ModifierId>ORACLE_ALL_GREATGENERALPOINTS</ModifierId>

这里id的名字可以随意取,不影响(只是个代号),但是记住后面修改的也要名字对应起来。注意后面还有6组类似的全部要改。之后在
  <Row>
   <ModifierId>ORACLE_GREATGENERALPOINTS</ModifierId>
   <ModifierType>MODIFIER_SINGLE_CITY_DISTRICTS_ADJUST_GREAT_PERSON_POINTS</ModifierType>
   <SubjectRequirementSetId>DISTRICT_IS_ENCAMPMENT</SubjectRequirementSetId>
  </Row>

………………
  <Row>
   <ModifierId>ORACLE_GREATWRITERPOINTS</ModifierId>
   <ModifierType>MODIFIER_SINGLE_CITY_DISTRICTS_ADJUST_GREAT_PERSON_POINTS</ModifierType>
   <SubjectRequirementSetId>DISTRICT_IS_THEATER</SubjectRequirementSetId>
  </Row>

这里加上
  <Row>
   <ModifierId>ORACLE_ALL_GREATGENERALPOINTS</ModifierId>
   <ModifierType>MODIFIER_PLAYER_CITIES_ATTACH_MODIFIER</ModifierType>
  </Row>

…………
  <Row>
   <ModifierId>ORACLE_ALL_GREATWRITERPOINTS</ModifierId>
   <ModifierType>MODIFIER_PLAYER_CITIES_ATTACH_MODIFIER</ModifierType>
  </Row>

其实只要放在
<Modifiers>
……
</Modifiers>
这一长段里都行,放在这里只是为了方便查错。接这继续往下找到
  <Row>
   <ModifierId>ORACLE_GREATGENERALPOINTS</ModifierId>
   <Name>GreatPersonClassType</Name>
   <Value>GREAT_PERSON_CLASS_GENERAL</Value>
  </Row>

…………
  <Row>
   <ModifierId>ORACLE_GREATWRITERPOINTS</ModifierId>
   <Name>Amount</Name>
   <Value>2</Value>
  </Row>

这里加上
  <Row>
   <ModifierId>ORACLE_ALL_GREATGENERALPOINTS</ModifierId>
   <Name>ModifierId</Name>
   <Value>ORACLE_GREATGENERALPOINTS</Value>
  </Row>

…………
  <Row>
   <ModifierId>ORACLE_ALL_GREATWRITERPOINTS</ModifierId>
   <Name>ModifierId</Name>
   <Value>ORACLE_GREATWRITERPOINTS</Value>
  </Row>

同样放这里只是方便查错。


好了,到这里修改就结束了,进游戏试试效果吧,祝游戏愉快!








回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2026-3-23 13:01 , Processed in 0.025087 second(s), 15 queries , Memcached On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表