拿破仑:全面战争scripting.lua脚本作弊浅释
2023-06-11 12:36:30
大中小
游侠会员:秋之回忆n 分享
1:世界地图迷雾全开
用记事本打开scripting.lua,然后用=>OnWorldCreated<=搜索
然后找到下面这个脚本事件..
local function OnWorldCreated()
scripting.game_interface:technology_osmosis_for_playables_enable_culture("european")
scripting.game_interface:technology_osmosis_for_playables_enable_all()
end
里面添加一行scripting.game_interface:show_shroud(false)
正确的话会变成这样...
local function OnWorldCreated()
scripting.game_interface:technology_osmosis_for_playables_enable_culture("european")
scripting.game_interface:technology_osmosis_for_playables_enable_all()
scripting.game_interface:show_shroud(false)
end
然后保存就可以了~~
OnWorldCreated()事件会在会战创建的时候触发~~~
要注意的是,迷雾全开后,所有AI动作都会被显示,如果不想看的话,把选项里的=>显示CPU移动<=关掉~~
----------------------------------------------------------------------------------------------------------------------------------------------------------------
2:平和的吞并
就在scripting.lua的开头,有个OnFactionTurnStart(context)事件.....
这个事件会在会战里每回合执行一次~~
里面的内容其实就是英国,西班牙和法国在会战里的殖民地小任务触发脚本~~
一些语句格式:
基本条件语句
(单个条件,单个指令)=>if 条件 then 执行指令 end
(多个条件,单个指令)=>if 条件1 and 条件2 and 条件3 then 执行指令 end
(多个条件,多个指令)=>if 条件 then 执行指令
elseif 条件 then 执行指令
elseif 条件 then 执行指令 end
conditions.TurnNumber(context) 获得当前的回合数
conditions.FactionName("国家代码", context) 检测某个国家是否存在(是否被消灭或未出现)
conditions.FactionIsHuman("国家代码", context) 检测某个国家是否由玩家控制
scripting.game_interface:trigger_custom_mission() 触发殖民地小任务(参数不建议修改)
scripting.game_interface:enable_auto_generated_missions(true) 自动触发小任务(用途不明)
scripting.game_interface:grant_faction_handover("吞并国", "被吞并国", 6, 触发回合, context) 今天的主角,强制某个国家获得另一个国家的全部领土
因为这个修改比较复杂,需要有编程或脚本编写基础...所以,除非你清楚了解你在做什么.否则,不建议自己修改~~
这里给个例子,目前偶使用的脚本:
local function OnFactionTurnStart(context) //当回合开始
if conditions.TurnNumber(context) == 2 then //如果当前回合是2(注意,是双等号,这个不是一般数学的等式,而是逻辑数学)
scripting.game_interface:enable_auto_generated_missions(true) //自动触发小任务
end //语句结束
if conditions.FactionName("portugal", context) and conditions.FactionIsHuman("portugal", context) then //如果葡萄牙存在,并且葡萄牙是由玩家控制的国家
scripting.game_interface:grant_faction_handover("portugal", "new_spain", 6, 7, context) //葡萄牙在第7回合获得新西班牙的全部领土,新西班牙被消灭
end //语句结束
end //事件结束
不建议把触发的回合数定于5回合之前,因为会战开始的前几回合,有其他的脚本在运行~~
可能会发生冲突,或者错误,造成跳出或坏档~~
吞并国和被吞并国关系可以是任意,并不必须是宗主,同盟或敌对....列强/龙套国家都行~~
如果其中一个国家不存在,就会出错跳出.这就是前面conditions语句的意义,用来避免上述错误的出现.至于conditions.FactionIsHuman(),不是必须~~
另外,不能凭空生出国家,所以,想靠这个命令来产生美国或墨西哥的人,可以死心了...会跳出的~~
而且,只能定义整个国家,不能单独获得某个地区~~
这样的语句可以无数条,也就是说.....让你数回合后立刻当球长都行....国家代码可以在patch.pack/db/factions_tables/faction里查到~~~ 《拿破仑:全面战争》游侠专题站:https://www.ali213.net/zt/ntw/
用记事本打开scripting.lua,然后用=>OnWorldCreated<=搜索
然后找到下面这个脚本事件..
local function OnWorldCreated()
scripting.game_interface:technology_osmosis_for_playables_enable_culture("european")
scripting.game_interface:technology_osmosis_for_playables_enable_all()
end
里面添加一行scripting.game_interface:show_shroud(false)
正确的话会变成这样...
local function OnWorldCreated()
scripting.game_interface:technology_osmosis_for_playables_enable_culture("european")
scripting.game_interface:technology_osmosis_for_playables_enable_all()
scripting.game_interface:show_shroud(false)
end
然后保存就可以了~~
OnWorldCreated()事件会在会战创建的时候触发~~~
要注意的是,迷雾全开后,所有AI动作都会被显示,如果不想看的话,把选项里的=>显示CPU移动<=关掉~~
----------------------------------------------------------------------------------------------------------------------------------------------------------------
2:平和的吞并
就在scripting.lua的开头,有个OnFactionTurnStart(context)事件.....
这个事件会在会战里每回合执行一次~~
里面的内容其实就是英国,西班牙和法国在会战里的殖民地小任务触发脚本~~
一些语句格式:
基本条件语句
(单个条件,单个指令)=>if 条件 then 执行指令 end
(多个条件,单个指令)=>if 条件1 and 条件2 and 条件3 then 执行指令 end
(多个条件,多个指令)=>if 条件 then 执行指令
elseif 条件 then 执行指令
elseif 条件 then 执行指令 end
conditions.TurnNumber(context) 获得当前的回合数
conditions.FactionName("国家代码", context) 检测某个国家是否存在(是否被消灭或未出现)
conditions.FactionIsHuman("国家代码", context) 检测某个国家是否由玩家控制
scripting.game_interface:trigger_custom_mission() 触发殖民地小任务(参数不建议修改)
scripting.game_interface:enable_auto_generated_missions(true) 自动触发小任务(用途不明)
scripting.game_interface:grant_faction_handover("吞并国", "被吞并国", 6, 触发回合, context) 今天的主角,强制某个国家获得另一个国家的全部领土
因为这个修改比较复杂,需要有编程或脚本编写基础...所以,除非你清楚了解你在做什么.否则,不建议自己修改~~
这里给个例子,目前偶使用的脚本:
local function OnFactionTurnStart(context) //当回合开始
if conditions.TurnNumber(context) == 2 then //如果当前回合是2(注意,是双等号,这个不是一般数学的等式,而是逻辑数学)
scripting.game_interface:enable_auto_generated_missions(true) //自动触发小任务
end //语句结束
if conditions.FactionName("portugal", context) and conditions.FactionIsHuman("portugal", context) then //如果葡萄牙存在,并且葡萄牙是由玩家控制的国家
scripting.game_interface:grant_faction_handover("portugal", "new_spain", 6, 7, context) //葡萄牙在第7回合获得新西班牙的全部领土,新西班牙被消灭
end //语句结束
end //事件结束
不建议把触发的回合数定于5回合之前,因为会战开始的前几回合,有其他的脚本在运行~~
可能会发生冲突,或者错误,造成跳出或坏档~~
吞并国和被吞并国关系可以是任意,并不必须是宗主,同盟或敌对....列强/龙套国家都行~~
如果其中一个国家不存在,就会出错跳出.这就是前面conditions语句的意义,用来避免上述错误的出现.至于conditions.FactionIsHuman(),不是必须~~
另外,不能凭空生出国家,所以,想靠这个命令来产生美国或墨西哥的人,可以死心了...会跳出的~~
而且,只能定义整个国家,不能单独获得某个地区~~
这样的语句可以无数条,也就是说.....让你数回合后立刻当球长都行....国家代码可以在patch.pack/db/factions_tables/faction里查到~~~ 《拿破仑:全面战争》游侠专题站:https://www.ali213.net/zt/ntw/