
本指南详细介绍了我在研究单位和职业.dat文件时所获得的观察结果和技巧。这些内容大多通过实验观察(例如多次重启游戏)得出,可能并非完全完整。 通用模组制作说明 .dat文件可在Steam的steamapps common Lost Technology LostTechnology script official文件夹中找到。开始制作模组前,请备份原始文件! 需要注意的重要文件: system context.dat - 包含游戏通用常量(例如最大单位数量、堆叠大小) spot.dat - 包含地区信息(例如允许的堆叠数量、收入) power.dat - 包含派系信息(例如允许的单位、领袖身份) class.dat - 包含单位类型信息(例如成本、能力、属性) unit.dat-包含英雄信息(例如:名称、基础单位类型) 本指南将重点介绍两个主要的.dat文件:class.dat和unit.dat。 所有.dat文件都可以用记事本等文本编辑器打开。推荐使用Notepad++。 //为行注释,游戏加载文件时会忽略此行。 已保存的游戏不会加载已编辑的.dat文件,它们似乎包含所有单位定义,因此你必须开始新游戏才能测试任何更改。 class.dat 此文件包含你的通用单位信息,如人类剑士、精灵弓箭手等。 还包含所有其他内容的信息,如中立怪物、召唤物、部分道具(例如:大门) 特别说明: - 【staff/friend】:控制堆叠中允许的内容 - 【merce】:控制可招募的职业 【staff】和【friend】必须包含种族和职业,而【merce】必须包含职业但不包含种族。(如果在【merce】中设置了种族,将会显示为红色不可招募的无名称、无图像单位,招募成本为0) 这既控制可招募的英雄,也控制可招募的单位。需要注意的是,这意味着英雄可招募的任何单位类型,也是你可以通过此功能招募的漫游英雄的单位类型。 此外,你还可以将英雄名称添加到【friend】属性中,这将覆盖所有其他要求,并允许你使用此功能将该特定英雄招募到你的阵营中。(例如,)铬拥有尼科勒姆、麦格劳、希萨,并且即使这些英雄是蜥蜴也能招募他们。在队伍属性中添加英雄名称,将允许该特定英雄加入此英雄的队伍,而不受其他条件限制。(例如,即使stig不是牧师,也允许加入gereon的队伍。以下是按种族分类的所有可能出现的种族和职业列表: 天使族:anm1、ank1 人类:hus1、hub1、hum1、hum1f、ghm1、pr1、huk1、drk1、dek1、pi1、rg1、rg1f、emi1、emk1、yo1、sam1、mu1、pom1、s_th1、s_elm1、s_lm1、s_mesho、s_doctor、s_pankration、s_fashiondesigner、s_bodybuilder 兽人族:tas1、tam1 蜥蜴族:lis1、lim1 妖精族:fyd1、fyd1f、fyw1、fyw1f 矮人族:dws1、dwm1、alm1 精灵族:elb1、els1 蛙人族:frs1、frm1 恶魔族:des1、dem1、ghm1 龙族:progenitor、ice_dragon1、red_dragon1、blue_dragon1、green_dragon1、black_dragon1、gold_dragon1、holy_dragon1 不死族:ud_skeleton1、ud_zombie1、ud_ghost1、ud_vampire1、ud_lich、ud_drg_s、ud_drg_g、ud_drg_z怪物,鼻涕虫1,蛇,野兽,野狼,猎犬,野生鱿鱼,野生莫夫勒,野生青蛙,野生乌龟,野生鱼,野生鳗鱼,野生红花,野生黄花,野生蓝花,鸡身蛇尾怪,独眼巨人,巨人,雪人,狮鹫元素,火元素1,水元素1,土元素1,风元素1,光元素1,暗元素1,音波元素1,冰雪元素1,雷电元素1,魔像元素1,史莱姆元素1,守护者元素1,棋子元素1,棋子元素2,棋子元素3,棋子元素4,棋子元素5,格里古里斯元素1奇美拉,奇美拉1铠甲,铠甲1机甲sc1,机甲sol1,机甲ac作为可复制粘贴的单个区块:在员工与朋友中天使,anm1,ank1,人类,hus1,hub1,hum1,hum1f,ghm1,pr1,huk1,drk1,dek1,pi1,rg1,rg1f,emi1,emk1,yo1,sam1,mu1,pom1,s_th1,s_elm1,s_lm1,s_mesho,s_doctor,s_pankration,s_fashiondesigner,s_bodybuilder,兽人,tas1,tam1,蜥蜴,lis1,lim1,妖精,fyd1,fyd1f,fyw1,fyw1f,矮人,dws1,dwm1,alm1,精灵,elb1,els1,青蛙,frs1,frm1,恶魔,des1,dem1,ghm1,龙,始祖,冰龙1,红龙1,蓝龙1,绿龙1,黑龙1,金龙1,圣龙1,不死族,ud_skeleton1,ud_zombie1,ud_ghost1,ud_vampire1,ud_lich,ud_drg_s,ud_drg_g,ud_drg_z,怪物,s_slug1,s_snake,野兽,野狼,猎犬,野生鱿鱼,野生moffle,野生青蛙,野生乌龟,野生鱼,野生鳗鱼,野生红花,野生黄花,野生蓝花,鸡蛇,独眼巨人,巨人,雪人,狮鹫,元素,el_fire1,el_water1,el_earth1,el_air1,el_light1,el_dark1,el_sonic1,el_snow1,el_lightning1,el_golem1,el_slime1,el_guardian1,el_chess1,el_chess2,el_chess3,el_chess4,el_chess5,el_grisguris1,奇美拉,chi1,mail,mai1,mecha_sc1,mecha_sol1,mecha_ac无法识别内容,已删除。anm1,ank1,s_th1,s_elm1,s_lm1,pom1,hus1,hub1,hum1,hum1f,ghm1,pr1,huk1,drk1,dek1,pi1,rg1,rg1f,emi1,emk1,yo1,sam1,mu1,tas1,tam1,lis1,lim1,fyd1,fyd1f,fyw1,fyw1f,dws1,dwm1,alm1,elb1,els1,frs1,frm1,des1,dem1,ghm1,ud_skeleton1,ud_zombie1,ud_ghost1,ud_vampire1,ud_lich,ud_drg_s,ud_drg_g,ud_drg_z,s_slug1,s_snake,chi1,mai1,progenitor,ice_dragon1,red_dragon1,blue_dragon1,green_dragon1,black_dragon1,gold_dragon1,holy_dragon1,wild_wolf,hound_dog,wild_squid,wild_moffle,wild_frog,wild_turtle,wild_fish,wild_eel,wild_flower_r,wild_flower_y,wild_flower_b,cockatrice,cyclops,giant,snowman,griffin,el_fire1,el_water1,el_earth1,el_air1,el_light1,el_dark1,el_sonic1,el_snow1,el_lightning1,el_golem1,el_slime1,el_guardian1,el_chess1,el_chess2,el_chess3,el_chess4,el_chess5,el_grisguris1,chi1,mai1,mecha_sc1,mecha_sol1,mecha_ac这将允许该英雄招募所有其他英雄(除了已定义的敌人)以及游戏中所有可招募的单位。这在任何方面都不平衡,尤其是单位方面——怪物没有等级版本,元素生物的招募成本为0。先祖(Progenitor)的招募成本为100万且没有技能(!!)。可选参数: level@sc1 - 控制游戏开始时的等级 learn - 控制获得技能的等级;注意每行技能会被下一行技能替换 diplomacy - 值为“off”时,表示若你带领此英雄漫游并建立势力,则无法进行外交;删除此项可取消该限制 loyal - 此属性中的英雄名称必须先被招募,之后才能招募该英雄。若在此处填入普通单位,具体效果尚不明确,但应遵循相同规则(即需要先招募该单位) enemy - 若你的领袖为指定值,则无法招募此英雄 leader_skill - 若此英雄为队伍领袖,且已掌握列表中的技能,则队伍中所有单位都将获得这些技能 delskill - 此英雄不具备列表中的技能 其他未知内容在佣兵团属性中添加英雄名称后,你可以像招募普通单位一样招募该英雄的多个复制体(!),且每个复制体的作用相当于附庸。 例如,将“短暂”添加到其自身的佣兵团属性中,就能招募她自己的复制体。这些复制体的行为与其他附庸完全一致,包括闲置时无法训练、拥有战斗语音、战斗中被击败时会撤退而非死亡等。 即便复制体与原单位相同,它们也不会成为派系领袖。 你还可以在佣兵团属性中添加一些特殊内容,比如s_mesho、s_doctor、s_pankration、s_fashiondesigner、s_bodybuilder,这有时会让你获得无形象单位或无技能单位。我将以示例单位【culverin】来说明我的发现:(该内容出现在class.dat文件约7600行处;搜索“culverin”即可跳转至相关位置) class culverin : culverin_l { //name = 大砲 image = culverin w = 48 h = 32 sex = neuter movetype = wheel no_regular = on multi = 10, attack, defense, magdef, dext, 10, hp hp = 1000 attack = 100 defense = 100 magic = 0 magdef = 50 speed = 50 dext = 50 move = 50 consti = sword*6,lance*6,arrow*7,club*2, toxin*10,dark*10,poi*10, para*10, ill*10, conf*10, sil*10, stone*10, fear*10, suck*10, magsuck*10, drain*10, death*10 skill = cannon_culverin,longcannon_culverin break = ef_mechabom no_knock = on satellite = 32 no_cover = on } 这个特定单位是在潘凯亚港与中立单位战斗时出现的加农炮。这样做是不是很酷?不过,如果你只是把【culverin】添加到英雄的招募列表中(因为没人一开始就拥有它们),你会发现它要么显示为红色(即无法招募),要么根本不出现。 让我们来修复这个单位。 要确保火炮可以被招募,其种族和职业需要出现在招募英雄的staff和friend列表中。其职业还必须在招募英雄的merce列表中。 第一个问题很明显,【culverin】是职业,但没有种族!添加: race = human到定义中。我把它放在性别上方,以便大致保持在相关区域。 现在你的招募英雄只需要拥有: staff = human,culverin friend = human,culverin merce = culverin就能招募火炮了!(将种族和职业添加到英雄已有的种族和职业中,参考unit.dat部分) 你还会注意到加农炮无法招募更多加农炮(与其他单位不同)。你需要添加: fkey = culverin 才能实现这一点。 但是等等,你会发现加农炮的成本为0。因此你必须为你的加农炮单位设定一个平衡的价格。添加: price = 200 使招募加农炮的成本为200。可根据喜好调整。 如果你开始使用你的加农炮,你会注意到一些有趣的事情发生。当加农炮射击目标或以其他方式升级后,它的等级会直接升至100级。 这是因为升级所需的经验值未被设定,默认为0。所以你的加农炮升级只需要0经验值。现在,你可以复制人类剑士的经验率: exp = 200 exp_mul = 120 exp_max = 0 但实际上这会让加农炮难以升级。它们的射击装填速度太慢,几乎不可能升级。你可以将其降低到exp = 50,这样可能会达到某种平衡。 现在你的加农炮在其他单位中看起来就不那么突兀了! 在游戏后期,你可能会想要雇佣已升级的加农炮,而不是从1级开始的新加农炮。为此,你需要创建一个衍生职业,将其命名为culverin2。 class culverin2 : culverin2_l 你在其{}块中定义的任何属性都将覆盖普通加农炮的属性,否则,culverin2将继承其前身的所有内容,因此它会非常简短。单位进化在10级间隔发生,由change属性控制。 例如,人类剑士的change属性为hus2*10。我推测但尚未验证,其中的*10控制进化发生的等级。 因此,需在culverin类(而非culverin2类!)中添加change=culverin2*10。 然后,应在culverin2类中添加level=10,使其初始等级为10,并添加merce=culverin,culverin2_psc,以便能从其他culverin2单位招募culverin2。(否则升级后的加农炮不会出现在招募列表中)但目前culverin2_psc并不存在。 如果仅在merce属性中填写culverin2,那么culverin2的招募成本将与culverin相同。因此,需要另一个culverin2的衍生单位来应用通常的成本增加。类culverin2_psc:culverin2 在此模块中,culverin2_psc继承culverin2的所有属性。只需将price设为2000即可完成设置。 若需设置更多等级,可复制此模式,参考hsc模块(人类剑士,即士兵)。 可选及其他相关属性 cost - 维护费用。可在drk1类(驯龙师,另一个有趣的单位)中查看。 line - "front"或"back",控制默认前排/后排设置。 consti - 控制对状态效果和伤害类型的抗性。以10%为单位;sword*6表示对剑类伤害有60%抗性。 multi - 控制每级的属性成长;预设"10, attack, defense, magdef, dext, 10, hp"表示每级增加10点攻击、防御、魔防、敏捷和100点生命值。若留空,则每级不会获得任何属性! 成员 - 控制游戏开始时出现的默认堆叠单位。 例如:若在属性中添加“member = culverin * 7”,将spot.dat中的z1s5属性修改为“member@sc1 = lars,meghnad,marguerite,crookes,culverin”,则火枪手单位将以8门火炮开始游戏。注意,这不一定必须是culverin类单位! 友方单位 - 控制哪些单位可以成为该单位堆叠的一部分。 默认情况下,友方单位为相同种族和职业。你可以添加其他单位,例如:为火炮单位添加“friend= human,culverin,hsc1,hub1”,将允许火炮堆叠的领袖能够在堆叠中纳入人类应征者和弓箭手单位。如果拥有“fkey = culverin”属性,友方属性中没有culverin不会造成影响,但如果没有fkey属性,加农炮可以与其他加农炮堆叠,但无法招募加农炮。 要让culverin(长炮)成为堆叠领袖,需要在所选势力的power.dat文件的staff属性中添加culverin职业。 例如,在power reinald中,设置staff = human, hum1, emi1, emk1, culverin,就能让雷纳德帝国拥有加农炮堆叠领袖。 unit.dat unit.dat用于控制特定单位的定义,包括英雄。 尽管存在差异,英雄本质上只是另一种职业。class.dat中的大多数属性同样适用于英雄。
2026-03-20 19:00:47 发布在
Lost Technology
说点好听的...
收藏
0
0
