请选择 进入手机版 | 继续访问电脑版
跳转到:
打印 上一主题 下一主题

[求助] 复刻类似原住民交易站对原住民建造限制的影响

[复制链接]
LV3 一等兵

阅读权限
30
积分
354
食物
121
木材
66
钱币
69
茶叶
0
钻石
0
经验
291
跳转到指定楼层
楼主
发表于 2021-7-26 12:46:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
游戏里,原住民战士建造限制和原住民交易站是有关的,比如,我在一个夏安部落建造交易站,可以获得10个夏安骑兵建造限制,造两个就可以建造20个骑兵,而当我删除掉一个之后限制又变回了10,这是前提。我想在其他建筑还原类似的功能,比如我希望让中国村民初始上限是20,每建造一个村落+15建造限制,而拆掉村落会让建造限制重新变回去。
我的实现思路:用十二个隐藏科技,其中六个负责+15限制,六个负责-15限制,都设置为无限研发,0秒科技,分别添加科技前提(大于等于/小于),例如,建造一个村落和拆毁一个村落的代码:
  1.   <tech name="ypSettlerAsian1" type="Normal">
  2.     <dbid>6343</dbid>
  3.     <researchpoints>0.0000</researchpoints>
  4.     <status>UNOBTAINABLE</status>
  5.     <flag>Shadow</flag>
  6.     <flag>YPInfiniteTech</flag>
  7.     <prereqs>
  8.       <typecount unit="ypVillage" count="1.00" state="noneState aliveState buildingState" operator="gte"/>
  9.     </prereqs>
  10.     <effects>
  11.       <effect type="TechStatus" status="obtainable">notypSettlerAsian1</effect>
  12.       <effect type="Data" amount="15.00" subtype="BuildLimit" relativity="Absolute">
  13.         <target type="ProtoUnit">ypSettlerAsian</target>
  14.       </effect>
  15.       <effect type="TechStatus" status="unobtainable">ypSettlerAsian1</effect>
  16.     </effects>
  17.   </tech>
复制代码
  1.   <tech name="notypSettlerAsian1" type="Normal">
  2.     <dbid>6343</dbid>
  3.     <researchpoints>0.0000</researchpoints>
  4.     <status>UNOBTAINABLE</status>
  5.     <flag>Shadow</flag>
  6.     <flag>YPInfiniteTech</flag>
  7.     <prereqs>
  8.       <typecount unit="ypVillage" count="1.00" state="noneState aliveState buildingState" operator="lt"/>
  9.     </prereqs>
  10.     <effects>
  11.       <effect type="TechStatus" status="obtainable">ypSettlerAsian1</effect>
  12.       <effect type="Data" amount="-15.00" subtype="BuildLimit" relativity="Absolute">
  13.         <target type="ProtoUnit">ypSettlerAsian</target>
  14.       </effect>
  15.       <effect type="TechStatus" status="unobtainable">notypSettlerAsian1</effect>
  16.     </effects>
  17.   </tech>
复制代码
我在中国初始科技中添加了<effect type="TechStatus" status="obtainable">ypSettlerAsian1</effect>,其余2-6个村庄的科技是一样的,此处不赘述。
我的逻辑是,建造一个村落之后,激活ypSettlerAsian1科技,然后让notypSettlerAsian1变为可用(obtainable),增加15建造限制,再禁用掉自己(因为我设置了无限研发并且是0秒科技,不禁用掉自己会一直研发(小羽说3次));当拆毁村落时,激活notypSettlerAsian1科技,让ypSettlerAsian1变为obtainable可用,减少15建造限制,再禁用掉自己(同样是无限0秒科技)。以期达到造一个+15,拆一个-15的效果。
————————
问题是,这样写完,当我建造完一个村落,能增加15建造限制,拆毁村落也的确能让限制重新变回20,但是当我再次建造村落时这个上限仍然是20,也就是说那个ypSettlerAsian1只产生了一次作用。同样地,当我第二次拆毁村落时也没有在20基础上再扣掉15,可以知道notypSettlerAsian1也只作用了一次。我不知道问题出在哪里,以及该如何解决。我添加了无限研发语句,也在拆毁后激活的科技里添加了obtainable选项,但是为什么那个+15限制的科技只能作用一次呢,这里的逻辑有什么问题?请大神指教!
LV20 ????

三好萌新

阅读权限
255
积分
30077
食物
3576
木材
1782
钱币
2861
茶叶
173
钻石
1325
经验
13072

幸运勋章

QQ
沙发
发表于 2021-7-26 21:02:58 | 只看该作者
此问题应该无解
回复
你们要相信我,我真的是萌新。
LV20 ????

三好萌新

阅读权限
255
积分
30077
食物
3576
木材
1782
钱币
2861
茶叶
173
钻石
1325
经验
13072

幸运勋章

QQ
板凳
发表于 2021-7-27 08:10:17 来自手机 | 只看该作者
关于两个科技来回运行,请参考https://www.aoebbs.net/thread-738-1-1.html
回复
你们要相信我,我真的是萌新。
LV3 一等兵

阅读权限
30
积分
354
食物
121
木材
66
钱币
69
茶叶
0
钻石
0
经验
291
地板
 楼主| 发表于 2021-7-27 12:00:19 | 只看该作者
啊这,那能不能告知这么写哪里有问题,因为无缘无故不可能无法实现呀,谢谢
回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则