分享

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

 勤奋不止 2022-02-17

幻世录Ⅰ中有两个经常用到,但是在游戏中看不到的模块,就是范围和物品组。这两个模块的用途很广,但是“看不见摸不着”,所以很抽象,不太好理解。

范围就是在攻击或发动某种能力时可以生效的距离,武器、魔法、特殊技都会用到范围。比如长剑的攻击范围就是邻接1格,长枪的攻击范围是邻接2格(十字),魔法和特殊技还会有更广阔的范围,这些都是范围。范围定义在RANGE.TXT文件中;用HSLPATCH或HSLSTAR则保存在HslData1.txt或HslStar1.txt中,在物品模块的下面(8267~8581行);htt则保存在9range.txt中。

之前在介绍道具技能的时候也捎带提过,它们都有范围类型的属性(武器是attack_range,魔法和特殊技是range和effect_range)。这些属性的数值只是一个编号( code),而编号对应的范围内容就定义在range模块中。

范围的属性:

  • code:数值型,范围的唯一标识,不能重复。

  • size:数值型,范围的直径。

  • data:数值型,可输入多个数值,以逗号分隔,该属性也可以有多个,构成一个二维数组,描述范围的有效格子。

范围的data属性有些特殊,之前的模块属性是唯一的,每种属性只能有一个,但是data却可同时存在多个,再加上每个 data属性有多个数值,便构成了一个二维数组,见下图。

  

这是长枪、连续突刺的攻击范围,因为幻世录的范围比较复杂,并不都是规则的图形,所以需要按格来标记。图中有5行5列,中心点就是发动者的格子,数值大于0的格子表示处于有效范围,反之则在范围外(中心点的格子永远是有效的,这似乎是个bug)。我们再来看下这个范围在游戏中的表现。

  

逆刃的攻击范围和有效范围都是range2Cell,它的有效区域正好是数据中大于0的格子。

游戏中有个装备叫奥义之证,作用是攻击距离+1,它其实就是把武器的attack_range值+1,比如range0Cell加1,就变成了range1Cell。

范围的宏(N为数值):

  • rangeNCell(剑、斧、枪的攻击范围,十字形

  • rangeNCellShoot(弓的攻击范围,中空

  • rangeNCellCircle(大部分魔法的攻击范围,菱形

  • rangeNCellThrust(天雷猛袭剑的攻击范围)

  • rangeNCellFull(月花圆舞的攻击范围,正方形)

物品组是一个数据集合,里面保存的是一个道具的code序列(一维数组),用来描述角色携带的物品随机范围,以及商店的商品列表。物品组定义在TOWNDEF.TXT文件中,在前半部分;用HSLPATCH或HSLSTAR则保存在HslData1.txt或HslStar1.txt中,在角色模块的下面(3510~3782行)。用htt则保存在9town.txt中,在前半部分

物品组有两个作用,角色和商店都有关于它的属性。角色的相关属性是carry_item,数值就是物品组的code值,敌人出场时会从列表中随机出一个物品携带;商店的相关属性是item_code,进入后会将列表中的物品作为商品展示出来。物品组的标签名也为item(和物品相同)。

物品组的属性:

  • code:数值型,物品组的唯一标识,不能重复。

  • item_id:数值型,物品组包含的物品(code值),可填多个,以逗号分隔

*以前在贴吧看到过一位前辈的贴子,说角色携带的随机物品,越靠近物品组结尾处的物品随到的概率越低,这个作者无从考证,但是从测试效果上看似乎是这样。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多