您的位置 首页 知识

幻世录1秘籍(幻世录Ⅰ静态修改—入门篇(二))

幻世录1秘籍
上一节介绍了修改txt文件的工具,那么从本次开始,详细的讲一下各种txt文件的作用、格式,以及修改方法。

对于SRPG来说,角色是一个很重要的组成部分,也是游戏的基础,同时角色的数据格式在所有数据中是相对比较好理解的,所以我们先来研究下幻世录的角色定义方法。

游戏中的所有角色都定义在PLAYERS.TXT文件中,如果用RPGViewer(以下简称RV)导出,可以直接找到该文件;如果用HSLPATCH或者HSLSTAR,则文本会保存在HslData1.txt或者HslStar1.txt中,就在文件的顶部,原版共3800行,66个角色;如果是htt,文件和RV一样也是单独的,只是名字变成了9player.txt。用记事本即可编辑,推荐EditPlus。

如何分辨文件中的角色呢?首先我们要先了解这些数据文件的格式,它们大体可分为四类:标签、属性、引用和注释。以下面的文本为例:

这是文件最开始处的内容,[character]就是标签,因为它带有符号“[]”,里面的character是标签名称。标签的作用是定义一个“模块”,模块是游戏用数据描述各种事物的唯一格式,可以理解为一个表,或者一个字典。如果你完全不懂编程,那么可以具象化一点,在这里一个[character]就看成是一个角色(数据中共有66个[character],就是66个角色)。[character]下面的数据是属性,属性是用来描述模块的,比如角色会有HP、MP、攻击力这些数值,那么就需要用各种属性来表示。每个标签下面出现的属性都是针对这个模块的,直到遇到下一个标签为止,此时会生成新的模块,再从下面读取新模块的属性。注意图中有个属性的定义是无效的,就是“;sound_hit =  WAVHIT00004.WAV”,因为该行最前面有个“;”,这个符号就是注释,它可以使在其后面出现的数据(仅限本行)无效化,注释在文本中主要是用来做备注的,再有就是当你使用非RV工具时,可以用它控制文本大小。#include是引用,有编程经验的朋友应该很好理解,在数据文件中它主要是用来包含一些宏的声明;如果你不懂编程,那可以先不用管它,因为它引用的都是.h文件,我们现在只关心.txt。

既然已经知道了哪些是角色,哪些是角色的属性,那么我们就可以尝试修改这些数据了。首先我们要先知道自己修改的是游戏中的哪个角色,这个可以通过“code”属性来区分,code是角色的唯一标识,只要知道了这个值,就能知道他是谁了,下面是原版全部角色的code列表:

1 雷欧纳德  
2 缇娜  
3 琥  
4 汉克斯  
5 雪拉  
6 雷特  
7 嚎  
8 咕噜  
9 克罗蒂  
10~20还是这几个人,只是按职业循环  
21 拉尔斯战士  
22 拉尔斯骑士  
23 一般兵  
24 重装兵  
25 法兰克  
26 帝国法师  
27 沃斯菲塔法师  
28 山贼  
29 缇娜  
30 兽剑士  
31 兽人兵  
32 狂战士  
33 死灵骑士  
34 僵尸  
35 恶灵  
36 凶牙鬼  
37 血狱莽  
38 甲壳蜂  
39 海辉魔  
41 翼战士  
43 翼射手  
44 沃斯菲塔弓兵  
45 魔骑兵  
48 海斗士  
49 魔骑士  
50 守护者  
51 红龙  
52 迷之生命体  
53 克罗蒂  
54 塔克斯  
55 傲  
56 席徳尔  
57 魔神  
58 妖精王  
59 毁灭天使  
60 地劫神  
61 女村民  
62 村民  
64 克里夫  
65 黑暗法师  
66 守护者  
67 石柱  
68 怨念集合体  
69 拉尔斯骑士  
100门  
101船壳

然后再介绍一下属性的种类,目前已统计的有94种,其中明确用途的85种,属性可以缺省,在未定义的情况下视为0(与脚本语言中变量的声明同理)。属性的数值也有3种类型:数值型、布尔型和字符串。数值型好理解,就是一个数字;布尔型就是只有是否之分,1代表是,0代表否;字符串就是一小段文本,用来描述资源文件的名称。

角色属性详解:
code:数值型,角色的唯一标识,若有重复,后面的角色会覆盖掉前面的。
name:数值型,是一个索引,会到文字库中匹配一个字符串,用来描述角色姓名。
sound_dead:字符串,角色死亡时的音效。
sound_walk:字符串,角色移动时的音效。
sound_attack:字符串,角色攻击时的音效。
sound_miss:字符串,角色闪避时的音效。
sound_hit:字符串,角色被攻击时的音效。
sound_shoothit:字符串,角色击中对手时的音效。
sound_walkwater:字符串,角色在水中移动时的音效。
job:数值型,角色的职业。
job_show_name:数值型,是一个索引,会到文字库中匹配一个字符串,描述角色在UI中显示的职业。
job_up_code:数值型,角色转职后的职业(只对我方角色有效)
class:数值型,是一个索引,会到文字库中匹配一个字符串,角色的种族。
dead_message:数值型,会到文字库中索引,角色的遗言,可输入多个,以逗号分割。(见注解1)
mode:数值型,角色的阵营。
str:数值型,角色的初始力量。
dex:数值型,角色的初始反应。
mind:数值型,角色的初始精神。
con:数值型,角色的初始体质。
hit_point:数值型,角色的基础生命力。
magic_point:数值型,角色的基础魔法力。
attack_power:数值型,角色的基础攻击力。
defense:数值型,角色的基础防御力。
magic_attack_power:数值型,角色的基础魔击力。
speed:数值型,角色的基础敏捷度。
attack_damagex2:数值型,角色的基础痛恨一击率。
avoid_hit_ratio:数值型,角色的基础闪避率。
attack_back:数值型,角色的基础反击率。
kill_exp:数值型,打败角色后获得的基础经验。
gold:数值型,打败角色后获得的基础金钱。
stamina:数值型,角色测初始气力(我方角色只在第一次登场时有效)。
move_point:数值型,角色的移动力。
exp:数值型,角色的经验值(我方角色只在第一次登场时有效)。
resist_earth:数值型,角色的地系基础抗性。
resist_water:数值型,角色的水系基础抗性。
resist_air:数值型,角色的风系基础抗性。
resist_fire:数值型,角色的火系基础抗性。
resist_mind:数值型,角色的心灵系基础抗性。
weapon_equip:数值型,角色装备的武器code。
head_equip:数值型,角色装备的头盔code。
armor_equip:数值型,角色装备的护甲code。
foot_equip:数值型,角色装备的鞋code。
other1_equip:数值型,角色装备的饰品1code。
other2_equip:数值型,角色装备的饰品2code。
item1(2,3,4,5,6,7,8):数值型,角色携带的物品1(2,3,4,5,6,7,8)code。
move_fly:布尔型,角色是否能飞行。
double_attack:布尔型,角色是否能攻击两次。
move_magic_use:布尔型,角色是否能够移动施法。
st_x2:布尔型,角色气力是否2倍回复。
no_poison:布尔型,角色是否对毒免疫。
no_weaken:布尔型,角色是否对虚弱免疫。
no_disablemagic:布尔型,角色是否对封魔免疫。
no_paralyze:布尔型,角色是否对麻痹免疫。
size_type:布尔型,角色是否是大型生物(占地9格)。
size_type:布尔型,角色是否是大型生物(占地9格)。
special_earth:数值型,角色的地系特殊技,按位标记,可输入多个,以逗号分割。(见注解2)
special_water:数值型,角色的水系特殊技,按位标记,可输入多个,以逗号分割。
special_wind:数值型,角色的风系特殊技,按位标记,可输入多个,以逗号分割。
special_fire:数值型,角色的火系特殊技,按位标记,可输入多个,以逗号分割。
special_mind:数值型,角色的心灵系特殊技,按位标记,可输入多个,以逗号分割。
special_other:数值型,角色的无属性特殊技,按位标记,可输入多个,以逗号分割。
magic_earth:数值型,角色的地系魔法,按位标记,可输入多个,以逗号分割。
magic_water:数值型,角色的水系魔法,按位标记,可输入多个,以逗号分割。
magic_wind:数值型,角色的风系魔法,按位标记,可输入多个,以逗号分割。
magic_fire:数值型,角色的火系魔法,按位标记,可输入多个,以逗号分割。
magic_mind:数值型,角色的心灵系魔法,按位标记,可输入多个,以逗号分割。
magic_other:数值型,角色的无属性魔法,按位标记,可输入多个,以逗号分割。
picture:字符串,角色的头像。
level_adjust_range:数值型,角色等级提升范围(只对NPC有效),该值是相对初始等级而言的,两者相加是他的最高等级。
level_adjust_disp_range:数值型,角色等级提升范围的浮动范围。
carry_item:数值型,角色随机携带物品组合(只对敌人有效),组合内容定义在TOWNDEF.TXT中,这里只填code。
find_no_id:数值型,角色不会攻击的角色code(比如重装兵不会攻击法兰克)。
find_type:数值型,角色选择攻击目标的方针。
find_flag:数值型,角色优先攻击的职业。
ai_help_otherhp:数值型,角色回复己方生命力的几率。(NPC有效,最大值100)
ai_help_status:数值型,角色回复己方状态的几率。(NPC有效,最大值100)
ai_att_special:数值型,角色使用特殊技的几率。(NPC有效,最大值100)
ai_att_magic:数值型,角色使用魔法的几率。(NPC有效,最大值100)

注意:HP、MP、攻击力等数值并不是他们的初始值(等级1时),而是一个基数,即等级为0、装备为空、力量等四属性全为0时的数值,除非转职或吃力之源,否则是不会改变的.可以通过金山游侠等内存修改器查到 。比如上图中的雷欧纳德,生命力是6,但是第一关出场的雷HP是30,多出的那24点就是等级、力量和体质的加成。另外角色的等级是根据四围动态算出来的,所以无法主动填写,公式为:等级 = (四围合 – 45) / 5(向下取整)

*在原版的数据中,经常可以见到宏(比如雷初始的职业是jobSwordMan),宏可以理解为数值的别名,只要引用了.h文件,就可以使用里面的宏来代替数字,这样做的好处是可读性更高,便于理解。所以如果你也要使用宏的话,还是需要了解一下.h文件,不过这个操作略复杂,我放到后面详细介绍。
注解:
(1) 角色的遗言可同时设定多个,在角色死亡时,会从这些遗言中随机出一个,以对话的形式显示出来。

(2) 角色每个属性的魔法和特殊技都是用一个数值来描述的,数值的每一位(二进制)都代表一个技能,所以用16进制来表示比较好理解,比如0x1、0x2、0x4、0x8、0x10都是一个技能,数值永远是2的n次方,n就是技能的ID,如果角色有多个技能,就把这些数值相加(逢16进1,0x2+0x8=0xa),因为该值是int型,所以一个数值可以标记32个技能。

幻世录Ⅰ静态修改—入门篇(一)

幻世录1秘籍相关文章


返回顶部