只狼游戏相关内容交流群:1102710456、667938183,欢迎热爱只狼的小伙伴加群交流。
也非常欢迎对本Wiki中尚未新建的页面进行图片或文字投稿,编辑方法参见:编辑帮助。
本Wiki包含与单机游戏《只狼:影逝二度》相关的各类内容,包括常用攻略、人物介绍、数据整理等。
只狼游戏相关内容交流群:1102710456、667938183,欢迎热爱只狼的小伙伴加群交流。
也非常欢迎对本Wiki中尚未新建的页面进行图片或文字投稿,编辑方法参见:编辑帮助。
Hks与参数和输入的控制
阅读
2024-02-09更新
最新编辑:小泽1019
阅读:
更新日期:2024-02-09
最新编辑:小泽1019
本文是hks简介的字典页,用于简介hks如何检测玩家的输入以及游戏参数,控制行为组等内容,欢迎补充。
hks与参数和输入的关系基本都体现在宏定义c0000_define.hks中,这里建立了参数编辑器的值在hks脚本中的联系。以下不加说明,都在文件c0000_define.hks中寻找。如果玩家想要额外自行定义,则需要在c0000_define.hks中的宏定义处注册然后再使用。
输入键的检测
见该图片:
图片中定义了玩家各种按键所对应的输入参数,例如:
- ACTION_ARM_ATTACK 对应于攻击键
- ACTION_ARM_SUB_ATTACK 对应于忍义手键
- ACTION_ARM_GUARD 对应于防御键
- ACTION_ARM_WIRE_SHOOT 对应于钩绳键
- ACTION_ARM_JUMP 对应于跳跃键
- ACTION_ARM_USE_ITEM 对应于使用道具键
- ACTION_ARM_CHANGE_WEAPON_L 对应于切换忍义手键
- ACTION_ARM_WAL_HANG 对应于爬墙键,该键还用于贴墙、悬挂、空中伸手抓等
- ACTION_ARM_CROUCH 对应于下蹲键
三个与游泳有关的键分别控制下潜姿态下冲刺、上浮、下沉,默认设置下与前面的键位重复。
使用格式:
- env(1106, 输入键) 返回一个逻辑值,是否检测到了某个键位的输入
- env(1108, 输入键) 返回一个数字,当前某个键位按下的持续时间,单位为毫秒
还有一些特殊的使用格式:
- env(3035, ACTION_ARM_SHINOBI_WEP_ACTION) 返回一个逻辑值,判断当前剩余纸人是否够使用一次忍义手
- env(3035, ACTION_ARM_SPECIAL_ATTACK) 返回一个逻辑值,判断当前剩余纸人是否够使用一次武技
行为组(武器)的检测、切换
在hks脚本中需要检测玩家当前装备的是什么武技(右手武器),什么忍义手(左手武器),并且需要指定接下来的动作采用哪只手的行为组。
使用格式:
- act(154, 数字) 这里的数字可以是HAND_LEFT,也就是0,或者HAND_RIGHT,也就是1,表示下面采用左手还是右手武器的行为组;只狼里面一般只需要用到这两种情况
- env(345, HAND_RIGHT) 返回0或者一个100到110之间的数字,分别对应DSA中的武技动作组,表示当前装备的是什么武技,在c0000_define.hks中如下:
- env(225, HAND_LEFT) 返回一个数字,对应于当前义手的动作组,表示当前装备的是什么义手,如下:
伤害组的检测
当玩家在Reaction中受到某种伤害时,除了玩家的各种状态外,需要根据受到伤害的各种参数决定应当播放何种硬直动画
使用格式:
- env(3056)和env(3057) 返回一个数字表示攻击被招架或者被弹开的方向,1表示左,2表示右,如下图:
在参数编辑器中对应于伤害组如下的两个参数下拉菜单,在游戏内该机制的体现可以参见动作的左右手侧区分。
- env(285) 返回一个数字,表示受到伤害的元素类型(Damage Element),也可以叫伤害属性,分类如下:
在参数编辑器中对应于伤害组的如下下拉菜单:
该属性一般用于控制玩家受到特殊伤害的特殊受伤动作
- env(236) 返回一个数字,表示收到伤害的冲击力大小,分类如下:
在参数编辑器中对应于伤害组的如下下拉菜单:
冲击力是决定玩家受伤、招架、弹开动作最核心的机制,详细可见冲击力系统。
- env(222)和env(3032) 返回一个数字,这个数字是根据玩家受到的伤害来源的方向决定玩家向哪个方向产生受伤硬直。其中前者是地面上的受伤方向,而后者则是玩家因为受伤产生位移的方向,一般用于诸如被击飞,空中或者水中受伤等情形。它们与方向的对应见如下定义,其中F是前,B是后,R是右,L是左:
- env(334, 伤害组HID) 返回逻辑值,检测玩家是否受到了具有该HID的伤害。伤害组的HID表在如下处:
在参数编辑器中对应于如下下拉菜单,每个伤害可以有两个对应的HID:
该HID用于控制玩家招架或者弹开特殊攻击的特殊动作,例如招架或弹开弦一郎飞渡最后一刀、一心的一字斩、永真四连等招式后的特殊对峙动作。
特效的检测
hks脚本中也可以识别玩家身上是否携带某个特效,相比较直接识别状态机而言,这样做同时识别多个彼此关系不大的动作,并且还能够通过动作编辑使得时间上更加精确。mod制作者们可以使用识别特效的技巧自建“状态机”实现精确控制。
使用格式:
- env(3036, 特效HID) 返回逻辑值,检测玩家身上是否带有对应于该HID的特效。特效的HID定义很多,在宏定义中以SP_EF_REF开头,请玩家自行寻找,在参数编辑器中位于特效组如下参数:
这些用于游戏的参数中,有些是玩家装备个别物品、武技、义手时的常驻特效,用于进行区分,例如苇名十字斩和秘传一心具有相同的动作组,通过特效区分武技;有些在动作中作为TAE出现,用于动作的衔接,例如忍义手派生,流派招式派生等。
能力解锁的检测
游戏中有部分能力需要玩家解锁,解锁之后才能够使用该能力做出相应动作,例如潜水、空中弹开等。在hks脚本中需要检测玩家是否解锁了这些能力决定动作能否生效。
使用格式:
- env(3033, 能力编号) 返回逻辑值,检测玩家是否解锁能力。能力编号对应如下:
在参数编辑器中,能力解锁对应于ActionUnlockParam参数组,可以在其中进行编辑,并比对相应能力的解锁。
道具相关检测
不同的道具使用的时候会做出不同的动作,因此在hks脚本中也有检测道具类型的逻辑判断。
使用格式:
- env(231) 返回一个数字,检测当前所持道具的动作组
- env(233) 返回一个逻辑值,检测当前道具是否可用
在宏定义中,以ITEM开头的定义都是对道具使用动作组的定义;道具所对应的动作组与道具在当前状态下是否可用都可以在参数编辑器中EquipParamGoods参数组中找到,这里不再过多赘述。