0644251 发表于 2016-8-25 20:21

[事件脚本]罗马2全面战争自创 通货膨胀事件、经济触底事件、强制外交事件、等等等(修改原理适用于幕府2、阿提拉、拿破仑)

本帖最后由 0644251 于 2016-8-25 20:25 编辑

7月份才开始玩罗马,不知道还有没有同好。
修改的初衷是,财富不可能无限堆叠,tmd派系资金超过三四万实在让我不爽。本人电脑小白,添加方法看看就会了。
需要的工具:PFM

事件添加地址:db中campaigns中的main_rome中的scripting.lua

--------------------------------------------------------------------------------------------------------------------
-- Add event callbacks
-- For a list of all events supported create a "documentation" directory in your empire directory, run a debug build of the game and see
-- the events.txt file
--------------------------------------------------------------------------------------------------------------------
之前添加即可。

经济通胀:

1.先修改db中的effect_bundles_tables和effect_bundles_to_effects_junctions
在effects_tables中找到可作为经济衰退的要素,再在effect_bundles_tables和effect_bundles_to_effects_junctions中找到匹配的事件。在本功能中为“subject_gdp_bad”

(注:effect_bundles_to_effects_junctions中的effect_key既是effects_tables中的对应项;effect_bundles_tables和effect_bundles_to_effects_junctions两者的第一列一一对应。)

2.注意effect_bundles_tables中bundle_target,既适用范围,在衰退事件中需要faction为标准方能生效。分别在effect_bundles_tables和effect_bundles_to_effects_junctions中复制并重命名subject_gdp_bad。

3.value为实际的效果。subject_gdp_bad复制为sy_subject_gdp_bad,在value中改为-90,既意味着毛收入减去90%。

4.scripting.lua中的成型样:local function ScriptMoney(context)            -----此处开启功能。“scriptmoney”为事件名
local current_faction = context.string;               -----current_faction为让当下的派系为行动对象。(注:注意末尾的分号)
local treasury_count = context:faction():treasury();       ----此处为定义treasury_count。context:faction():treasury();意味着faction功能下的treasury功能,既财富修改。
    if treasury_count >= 20000 then         -------如果派系资金大于20000
      scripting.game_interface:apply_effect_bundle("sy_subject_gdp_bad", current_faction, 5);    ------apply_effect_bundle为game名下的修改项目之一,使用方法是(具体的effect_bundles_to_effects_junctions, 派系, 回合数)在此处直接设置为current_faction,意味着当下的派系都经历事件,省去了大量派系复制工作。
    end       ---------if对应的结束

end   -----整个事件对应的结束

scripting.AddEventCallBack("FactionTurnStart", ScriptMoney)    -------添加事件,使得scriptmoney在每个派系开始运行时生效。


经济触底增长:

1.scripting.lua中的成型样:
local function ScriptMoneyIII(context)
local current_faction = context.string;
local treasury_count = context:faction():treasury();
    if treasury_count <= 500 then   -----如果派系本回合资金小于500,
      scripting.game_interface:treasury_mod(current_faction, 250);   -----treasury_mod只能增加金钱(派系,回合增加金钱数)
    end

end

scripting.AddEventCallBack("FactionTurnStart", ScriptMoneyIII)


好了。到此结束。


另外还有强制派系和派系间谈和的事件,内容为:当某个派系的兵力低到一定程度时自动求和。下次有空再列出。

大量的事件脚本元素请看:
http://www.twcenter.net/forums/s ... game-functions-list
http://www.twcenter.net/forums/s ... n-and-documentation
http://www.twcenter.net/forums/s ... nctions-used-by-NTW



P.S. 国外的论坛也找了好久,提问也没人回,还是自己琢磨靠谱。
另外黄龙骑士团,fuck U! 老子在那里勤勤恳恳发了好多有趣的事件脚本,没加精不谈,一阵子不上还把我的号删了,是可忍孰不可忍。



页: [1]
查看完整版本: [事件脚本]罗马2全面战争自创 通货膨胀事件、经济触底事件、强制外交事件、等等等(修改原理适用于幕府2、阿提拉、拿破仑)