在吧里发了好多修改帖子,都听零散的,现在没有什么事,把自己修改的全部放出来。
都是入门级修改,一学就会。
但基础要求是必须知道什么是修改。
ps:修改前置操作请参考
解决修改文件后不能读取旧档
HTB的自检很烦吗?
- 一、首先是脚本文件
HTB:ROK\mods\htb806\data\world\maps\campaign\imperial_campaign中的imperial_campaign文件
重开生效!!!
说明一个语句问题。
【1】if
end_if(这个语句是条件触发语句,满足条件触发。只触发一次!!!!!)
【2】monitor
end_monitor(监控器触发语句,监控器监控到条件满足,则触发,无次数限制。重训一时爽,一直重训一直爽)
所以你们修改的时候,一定要在语句完结处添加新代码。由于很多时候if语句都包含在monitor中,所以你在文件中搜索end_monitor,看到的一定是语句的结尾。回车之后把你的语句粘贴上去就好了。不会影响原来的代码。
1.拜占庭三个法令同时开启。
【条件】 if I_SettlementOwner Constantinople = byzantium(君士坦丁堡属于拜占庭。这个条件可以任意修改)
and I_LocalFaction byzantium (玩家是拜占庭,【电脑无法触发这条语句】)
set_event_counter roma 1
set_event_counter militia1 1
set_event_counter legion1 1
set_event_counter tavern1 1
set_event_counter reform_b 0(三大buff的增益效果)
historic_event hetoi faction/hetoi.bik factions { byzantium, }
historic_event augustus faction/augustus.bik factions { byzantium, }
historic_event roma faction/Forever.bik factions { byzantium, }(三大终极法令的)
set_faction_banner
faction byzantium
banner saxons
end_set_faction_banner
end_if
;;;;;;;;;;;;;;;;;;;修改(拜占庭万分之王【灵活法令,不用短接】)---------
ps,开局立刻生效2.那么相应的,土耳其帝国的建立也就依葫芦画瓢。
【解释,前面篇幅太多了,这里再解释一下语句】
if I_SettlementOwner Constantinople = turks(君士坦丁堡属于土耳其,可以随便改)
and I_LocalFaction turks (玩家是土耳其)
;;;;;;;;;分割线,前半部分是条件,后半部分是结果
set_event_counter ottoman 1(增益buff)
historic_event ottoman faction/ottoman.bik factions { turks, }(奥斯曼成立的事件)
set_faction_banner
faction turks
banner new_turks
end_set_faction_banner(换新的旗帜)
end_if(语句结束)
;;;;;;;;;;;;;;;;;;;修改(奥斯曼土耳其帝国【灵活法令,不用短接】)---------
下面贴图。
基本常识:;之后的语句不生效,我这么做是为了快速定位到自己修改的东西。3.监控语句怎么用????
无限策略点怎么得?西班牙的上帝间谍怎么得?
monitor_event UnitDisbanded UnitType Swiss Guard(监控到有“瑞士卫队”被解散,则启动监控器)
and RandomPercent < 100 (限制:成功率<百分百)
inc_counter gwent 1(效果:+1策略点)
console_command toggle_perfect_spy(效果:间谍卫星)
console_command toggle_fow(效果:全图视野)
end_monitor(监控器结束。下一次监控到事件后,监控器重启)
ps:
1.Swiss Guard瑞士卫队可以替换成任意兵种。包括农民(法兰西农民重训就是这么来的)
2.限制条件可以无限添加,随意修改
例如:前面的这个,and I_LocalFaction byzantium就是限制语句。如果你删除了,那么电脑就可以直接万王了。
3.产生的效果自然也可以无限添加,随意修改
例如:console_command add_money 40000
总之就是,语句的长度是没有限制的!!!你想要什么效果都ok!!!
4.监控触发器还有很多种!!!!
最普遍的是下面这个,以法兰西和波兰的无敌buff为例。
重磅:
a.法兰西封臣永不枯竭
b.波兰永远黄金时代(天天打败仗,天天瘟疫都没关系)
下面这条代码就是我提到的if在monitor里面的情况
monitor_event FactionTurnEnd not FactionIsLocal(电脑回合结束,监控器启动)
and FactionType slave(派系类型叛军,合起来就是叛军行动之后)
if I_LocalFaction france(如果我是法兰西)
inc_counter feudal 100(封臣加满)
end_if
if I_LocalFaction poland(如果我是波兰)
inc_counter nobles 20(贵族满意加满,其实10就已经满了)
end_if
end_monitor
这条语句的优势在什么地方呢?
首先,这是一条被动语句,意思就是,ai自动触发你不需要做任何事。
其次,这个游戏的代码其实非常复杂,如果你在一条写法国的代码中加入波兰的增益,是会失败的。那么你就要分开写两个国家的代码(万一你玩了法国,又要玩波兰呢?)。或者玩一次改一次。
最后,这个代码在你切换国家时,不需要你动任何东西。
而且:代码只对玩家生效!!!!!!!!!!!!
5.火星钱怎么来的?
monitor_event PreFactionTurnStart FactionIsLocal(玩家回合开始)
and Treasury < 8000000 (限制:你的国库少于800万)
if I_WorldwideAncillaryExists knight_qizi true(如果你的势力范围内拥有:随从“旗子”。只要是你的势力,哪怕是外交官拥有都算数)
console_command add_money 40000(调动控制台,+4万)
console_command add_money 40000
end_if
end_monitor
说明一下,这么改的原因。
为什么要限制拥有旗子才触发呢?
因为国家太多了,你换一个国家玩就要改一下代码也太麻烦了。而且,你把代码改了再回去读取存档还是否有效真的不好说。
鉴于这个代码是所有势力生效的,免去了切换势力重复修改的问题,同时如果不加限制,那么电脑也会得到火星钱。
对威尼斯来说大家都这么有钱这可是灭顶之灾。对法兰西来说有钱可以为所欲为。
为了不破坏电脑之间相互的平衡,所以我的任何修改只对玩家生效。
所以,你只要开控制台,添加了旗子这个随从,代码立刻触发。电脑几乎不可能得到这个代码的。
而且,设定的扣钱代码很多。
所以你要写加很多钱才能抵消这个扣钱。
想要无敌富有就要写更多。(反正我写了800万)。
所以这就是不建议每个国家写一遍代码的原因。因为你要写。。。。。。。很长6.无敌的英雄来了
monitor_event HireMercenaries I_CharacterExists Donald(这位英雄“Donald”,雇佣佣兵时触发。名字可以改)
and AgentType = named character(限制条件,名字一样)
and FactionwideAncillaryExists knight_qizi true(限制条件,旗子。只要是你的势力,谁都可以。最好还是放在英雄身上。因为后面我会写道,怎么才能让英雄永生不死!!!!!)
and RandomPercent < 100 (限制条件:<100的机率,其实就是肯定触发)
replenish_units Donald(效果,战回)
replenish_action_points Donald (效果,回移动力)
end_monitor
当然,英雄回复不止有雇佣兵,还有。
解释几个语句:
and not WonBattle战败
and WonBattle战胜
console_command create_unit "Donald", "Swiss Guard", 5 7 7 7援军(这就是狮子王的天将雄师代码!!!!!打了败仗补充瑞士卫队,就问你慌不慌,当然兵种可以改)
下午讲,英雄永生。
吃饭了7.英雄怎么才能永生不死呢?
楼上写了怎么创造英雄,这样英雄会死。
我们看一下最难死的英雄是谁,是狮子。但狮子也会死,被淹死,的病死,老死。。。。
我们来看看,怎么才能永生。
【以下是,刷出英雄的代码,自己改的】
monitor_event FactionTurnEnd FactionIsLocal(回合结束)
and not I_WorldwideAncillaryExists knight_qizi true(你的世界范围内,没有旗子这个随从)
spawn_army (创造单位)
faction milan
character Donald, named character, age 15, x 136, y 112, family, hero_ability Byzantine_Politics
traits Noctophilia 3 , GoodCommander 3 , ContentGeneral 3 , GoodAmbusher 3 , GoodSiegeDefender 3 , BattleDread 5 , Bloodthirsty 2 , Gregarious 3 , GoodBuilder 3 , MathematicsSkill 3 , GoodTaxman 2 , PublicFaith 2 , Intelligent 2 , supply1 6 , gainsupply1 3 , college1 3 , win1000 9
unit Knights Templar exp 7 armour 9 weapon_lvl 1(第一个为将军卫队,知道怎么让巴巴罗萨当将军卫队了没)
unit Knights Templar exp 7 armour 9 weapon_lvl 1
unit Knights Templar exp 7 armour 9 weapon_lvl 1
unit Knights Templar exp 7 armour 9 weapon_lvl 1
unit Knights Templar exp 7 armour 9 weapon_lvl 1
end
end_monitor
至此,我的修改已经明了了。为了不使ai受到影响,以旗子这个随从为纽带。二、其次是建筑文件
D:\Games\HTB:ROK\mods\htb806\data文件中的export_descr_buildings
这个就比较简单了,大家都会改。我就发一下厉害的代码吧。
tower_level 3
;希腊火炮
armour 7
;洛林甲
weapon_melee_blade 1
weapon_missile_gunpowder 1
weapon_melee_simple 1
weapon_missile_mechanical 1
weapon_artillery_gunpowder 1
weapon_naval_gunpowder 1
;;;;;;;;;;;;;;;;;六大武器升级
recruits_exp_bonus bonus 6
;所有部队经验+6
recruits_morale_bonus bonus 6
;士气+6
recruitment_slots bonus 6
;征兵格+6
free_upkeep bonus 20
;免维护+20
law_bonus bonus 25
;市政(法律)
construction_time_bonus_stone bonus 80
;建筑时间(石头,米兰牛逼)
construction_time_bonus_wooden bonus 80
;建筑时间(木头)
population_health_bonus bonus 14
;健康100%
population_growth_bonus bonus 2
;人口加值(简单粗暴)
;;;;;;;;;;;;;;;;;---------------------修改事务官-------------------------------------------------
agent assassin 0
;可以招募刺客(这个数字翻译成最大)
agent spy 0
;可以招募盗贼
agent merchant 0
;可以招募商人
agent priest 0
;可以招募牧师
agent diplomat 0
;可以招募外交官
;;;;;;;;;;;;;;;;;---------------------修改兵种(各国通用兵种)--------------------------------------
recruit_pool "grande carrack" 8 8 8 8 requires factions { northern_european, middle_eastern, eastern_european, greek, southern_european, }
;卡拉克巨舰
recruit_pool "Swiss Guard" 2 2 2 1 requires factions { northern_european, mesoamerican, middle_eastern, eastern_european, greek, southern_european, }
;瑞士卫队
;;;;;;;;;;;;(海战陆战已经无敌了);;;;;;;;;;;;;;;;;---------------------修改(事务官的数量)-------------------
agent_limit merchant bonus 99
;商人+99人(商人限制消失)
agent_limit priest bonus 99
;牧师+99
agent_limit diplomat bonus 99
;外交官+99
agent_limit assassin bonus 99
;刺客+99
agent_limit spy bonus 99
;间谍+99
【以下为建议】目前建筑文件夹里面的东西只要建筑修好了就立刻生效。不分势力。
唯一的特殊建筑只有行会总部(刷行会总部的办法已经烂大街了)
所以我建议,修改行会总部添加这些属性。然后控制台刷行会,然后这些buff就出来了。
由于行会总部只能存在一个。所以电脑是不会获得这些增益的。关于4楼土耳其帝国成立的事儿,因为没料到if这个只判断一次的语句还有一个先决条件,那就是只在开局判断一次。就是说如果开局的时候条件不成了,也就不会再判断了。所以修改办法有两种:
1.把君宝Constantinople,改成土鸡开局就拥有的城市(比如首都Iconium),那么条件就成立了。
2.第二加一个监控器。(就加钱的那个脚本就可以,因为监控器是一直运转的)代码如下:
monitor_event PreFactionTurnStart FactionIsLocal
if I_SettlementOwner Constantinople = byzantium
and I_LocalFaction byzantium set_event_counter roma 1
set_event_counter militia1 1
set_event_counter legion1 1
set_event_counter tavern1 1
set_event_counter reform_b 0
historic_event hetoi faction/hetoi.bik factions { byzantium, }
historic_event augustus faction/augustus.bik factions { byzantium, }
historic_event roma faction/Forever.bik factions { byzantium, }
set_faction_banner
faction byzantium
banner saxons
end_set_faction_banner
terminate_monitor
end_if
;;;;;;;;;;;;;;;;;;;修改(拜占庭万分之王【灵活法令,不用短接】)---------
if I_SettlementOwner Aleppo = turks
and I_LocalFaction turks set_event_counter ottoman 1
historic_event ottoman faction/ottoman.bik factions { turks, }
set_faction_banner
faction turks
banner new_turks
end_set_faction_banner
end_if
;;;;;;;;;;;;;;;;;;;修改(奥斯曼土耳其帝国【灵活法令,不用短接】)---------
end_monitor
值得说明的是,监控其中加入了代码:terminate_monitor
意思是监控器终止。如果不加入这条代码,那么帝国会一直成立。。。。。会不会跳出。。。则不知道。。。
@491229462 感谢哈重拾修改,又有新的发现
关于八楼/九楼,打造无敌英雄脚本,鉴于需要手动添加随从增加了麻烦程度(火星钱也需要随从触发!)
经过研究之后,找到了开局赋予英雄随从的代码(英雄战死重生之后,随从会再度绑定到英雄身上)
增加的代码为:
if not I_WorldwideAncillaryExists knight_qizi true
console_command give_ancillary "Donald", knight_qizi 1
end_if(“Donald”里面的是英雄的名字,每个国家的名字库都不同,不过名字库可以改的)
代码为:
monitor_event PreFactionTurnStart FactionIsLocal
;and not I_CharacterExists Donald
and not I_WorldwideAncillaryExists knight_qizi true
spawn_army
faction milan
character Donald, named character, age 15, x 136, y 112, family, hero_ability Byzantine_Politics
traits Noctophilia 3 , GoodCommander 3 , ContentGeneral 3 , GoodAmbusher 3 , GoodSiegeDefender 3 , BattleDread 5 , Bloodthirsty 2 , Gregarious 3 , GoodBuilder 3 , MathematicsSkill 3 , GoodTaxman 2 , PublicFaith 2 , Intelligent 2 , supply1 6 , gainsupply1 3 , college1 3 , win1000 9
unit Knights Templar exp 7 armour 9 weapon_lvl 1
unit Knights Templar exp 7 armour 9 weapon_lvl 1
unit Knights Templar exp 7 armour 9 weapon_lvl 1
unit Knights Templar exp 7 armour 9 weapon_lvl 1
unit Knights Templar exp 7 armour 9 weapon_lvl 1
end
if not I_WorldwideAncillaryExists knight_qizi true
console_command give_ancillary "Donald", knight_qizi 1
end_if
end_monitor
【以上为英雄刷新的脚本,以下为英雄能力的脚本】:
;;;;;;现用名字:“Donald”,下次直接替换
monitor_event HireMercenaries I_CharacterExists Donald
and AgentType = named character
and FactionwideAncillaryExists knight_qizi tru
and RandomPercent < 100
replenish_units Donald
replenish_action_points Donald
end_monitor
;;;;;;;;;;;;;;;;雇佣佣兵时触发:回移动力,回兵力。限制:带随从旗子
monitor_event PostBattle I_CharacterExists Donald
and AgentType = named character
and FactionwideAncillaryExists knight_qizi true
and WonBattle
and RandomPercent < 100
replenish_units Donald
replenish_action_points Donald
end_monitor
;;;;;;;;;;;;;;;;战胜时触发:回兵力,回移动。
monitor_event PostBattle I_CharacterExists Donald
and AgentType = named character
and FactionwideAncillaryExists knight_qizi true
and not WonBattle
and RandomPercent < 100
console_command create_unit "Donald", "Swiss Guard", 5 7 7 7
replenish_units Donald
end_monitor
;;;;;;;;;;;;;;;;战败时触发:回兵力,补充瑞士卫队。
;;;;;;;;;;;;;修改(打造无敌英雄脚本)-----------------------------
楼上有格式图基本都说完了怎么修改的。现在放一下文件。
ps:进去搜索“修改”二字,就是我改过或者标记的地方。可以很方便的看到我改的地方。
【一定要看】:
解决修改文件后不能读取旧档
HTB的自检很烦吗?
里面包含的链接有以下四个:
1.第一个campaign_script就是脚本文件,放在:HTB:ROK\mods\htb806\data\world\maps\campaign\imperial_campaign
这就是脚本文件。说一下里面有些计数器没有没有讲,确实没有必要,好像作用也被我短接了。
然后各个国家开局送锻冶行会总部(不一定在首都毛子/拜拜/丹麦/法国都不在首都,别的应该都在首都了)
2.第四个export_descr_buildings是建筑文件,放在:HTB:ROK\mods\htb806\data这个文件只修改了锻冶行会总部,这就是脚本要送锻冶总部的原因。
3.第二个descr_names文件,放在:HTB:ROK\mods\htb806\data把【Donald(唐纳德)】这个名字添加在了每一个国家里面。目的是为了在改英雄的时候不用改国家的名字。(每个国家的名字库都不同,弄错了会跳出,所以我给每个国家都加入了这个名字)
4.第三个