游侠NETSHOW论坛

标题: scripting.lua脚本作弊浅释 [打印本页]

作者: 秋之回忆n    时间: 2010-12-8 19:53:52     标题: scripting.lua脚本作弊浅释


原帖地址:http://ran2.uueasy.com/read-htm-tid-104.html

作者:百合星女王应该就是Roderna

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里查到~~~

[ 本帖最后由 秋之回忆n 于 2010-12-9 04:31 编辑 ]
作者: jiangyouge    时间: 2010-12-9 11:24:40

好东西 ,拿下了
作者: 呀灭碟    时间: 2010-12-9 11:25:55

就等着东西了, LZ好强啊 V5
作者: iogttyf    时间: 2010-12-9 11:28:17

喜欢,[幸福] [幸福]
作者: vaddda    时间: 2010-12-9 11:29:23

不错的东西,支持下
作者: 秋之回忆n    时间: 2010-12-9 11:32:58

作者并不是我,不必说我强大,我只转帖而已!

[ 本帖最后由 秋之回忆n 于 2010-12-9 04:34 编辑 ]
作者: 27181981    时间: 2010-12-22 11:56:41     标题: 回复 #1 秋之回忆n 的帖子

scripting.lua我找到6到7个 到底是那一个啊 教教吧
作者: 秋之回忆n    时间: 2010-12-22 11:59:16     标题: 回复 #8 27181981 的帖子

我只是单纯的转帖,自己都不会,怎么教你
作者: 戳白    时间: 2010-12-27 09:53:55

原帖由 27181981 于 2010-12-22 11:56 发表
scripting.lua我找到6到7个 到底是那一个啊 教教吧

   路径Napoleon Total War\data\campaigns\mp_eur_napoleon下的scripting.lua 这个是反法同盟的 右键用记事本可以打开编辑 但是发现战争迷雾哪项是没的local function OnWorldCreated 
国家全开是改Napoleon Total War\data\campaigns\mp_eur_napoleon下的startpos.esf

[ 本帖最后由 戳白 于 2010-12-27 09:56 编辑 ]




欢迎光临 游侠NETSHOW论坛 (https://game.ali213.net/) Powered by Discuz! X2