[事件脚本]罗马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]