Project1

标题: 能否将全键盘脚本调整为与自带的按键判定相同? [打印本页]

作者: RenAGHBELL    时间: 2020-9-4 19:34
标题: 能否将全键盘脚本调整为与自带的按键判定相同?
有没有大佬给个帮助的,实在不知道怎么修了,具体情况就是在
开启可战斗状态(某个开关,控制并行处理的公共事件)前,
如果我提前按下了技能按键(ZASD等),它会在开启可战斗状态后把所有按过的技能全部释放一次。
但是如果我不使用全键盘脚本的Kboard.keyboard($R_Key_Z),转而使用分支条件自带的按钮C按下时,就不会有这种情况。
由于技能数量是比较多的,很多按键自带的按钮是没有的,所以能够通过修改脚本来实现我需要的效果呢?
作者: soulsaga    时间: 2020-9-4 19:46
似乎全键盘是全局判断的..任何情況下先按了按键后到开始判断自动返回TRUE
我用RMXP的全键盘脚本也遇到这情況很烦恼..
作者: RenAGHBELL    时间: 2020-9-4 19:48
soulsaga 发表于 2020-9-4 19:46
似乎全键盘是全局判断的..任何情況下先按了按键后到开始判断自动返回TRUE
我用RMXP的全键盘脚本也遇到这情 ...

所以大佬这个有办法处理嘛……
作者: soulsaga    时间: 2020-9-4 20:03
本帖最后由 soulsaga 于 2020-9-4 20:12 编辑

我也不知道怎么搞..大神快来
作者: alexncf125    时间: 2020-9-4 20:52
本帖最后由 alexncf125 于 2020-9-4 20:54 编辑

在全键盘脚本的def keyboard(rkey)內加一句拦截试试??
  1.   def keyboard(rkey)
  2.     return if rkey == $R_Key_Z && $game_switches[可战斗状态开关的ID] == false
  3.     GetKeyState.call(rkey) & 0x01 == 1  #
  4.   end
复制代码

如果上方的不行,就试试下方的,如果下方的也不行,那我也没法子了
  1.   def keyboard(rkey)
  2.     return if rkey == 0x5A && $game_switches[可战斗状态开关的ID] == false
  3.     GetKeyState.call(rkey) & 0x01 == 1  #
  4.   end
复制代码

作者: RenAGHBELL    时间: 2020-9-4 22:53
alexncf125 发表于 2020-9-4 20:52
在全键盘脚本的def keyboard(rkey)內加一句拦截试试??

如果上方的不行,就试试下方的,如果下方的也不行,那 ...

谢谢大佬的帮助,虽然仍旧不行……
作者: RenAGHBELL    时间: 2020-9-4 22:56
我有点好奇之前使用这个脚本的大佬没遇到过在菜单里按一边它也会触发一遍的状况嘛
作者: SixRC    时间: 2020-9-5 00:13
本帖最后由 SixRC 于 2020-9-5 00:15 编辑

因为原作者代码写岔了 没看api文档就开搞了..
判断是否按下应该是
RUBY 代码复制
  1. def keyboard(rkey)
  2.     GetKeyState.call(rkey) & 0x8000 == 0x8000  #
  3.   end

最低位判断的是可切换状态的键位 比方大小写锁定
用来判断其他按键的返回值理论上是未定义的..
不过实际好像是只要之前按下过就置位 所以出现了你说的情况
作者: RenAGHBELL    时间: 2020-9-5 22:38
SixRC 发表于 2020-9-5 00:13
因为原作者代码写岔了 没看api文档就开搞了..
判断是否按下应该是
  def keyboard(rkey)

谢谢大佬帮助!现在没问题了!
作者: soulsaga    时间: 2020-9-5 23:52
SixRC 发表于 2020-9-5 00:13
因为原作者代码写岔了 没看api文档就开搞了..
判断是否按下应该是
  def keyboard(rkey)

谢谢大佬帮助!现在没问题了!




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1