查看: 2141|回复: 5

[已经解决] 怎么样设定开关开启时,按“字母键M”时改变变量?

[复制链接]
梦石
0
星屑
8019
在线时间
1321 小时
注册时间
2006-7-18
回帖
459
发表于 2015-4-30 14:58:47 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
找到一个地图系统,系统地图有3种模式,用变量0~3来控制了!
想扩张一下,设定成:
(0=无地图,1=右上小地图,2=画面中央大地图)
获得地图后,地图开关开启
开关开启后,按M键顺序切换3种地图模式
模式的话大约是这样:
按一下M键
地图变量+1
当地图变量=>3时
地图变量=0(无地图显示)
=========================================
另一个想法:
开关为ON时
按着Tab键,地图变量=2(画面中央显示大地图)
放开Tab键,地图变量=0(关闭地图模式)

闇吼者の災悪眷族

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
回帖
6408
发表于 2015-4-30 17:10:39 | 显示全部楼层
你有全键盘的脚本么?

点评

不是你用不用的到问题……而是RM是为了手柄使用设计的,所以游戏功能键的个数不能超过手柄可行的范围内。  发表于 2015-4-30 18:07
用不到手柄的吧?之前有个F5窗口化的脚本就没用到手柄上的键,自定了一个啊!  发表于 2015-4-30 17:27
首先,手柄上并没有“M”键……你得先有“M”键不是么…… 你进行游戏测试,然后按F1就可以看到按键设置了。  发表于 2015-4-30 17:23
晕!没那么复杂啦!就一个按钮的功能,感觉用不了多少代码吧!  发表于 2015-4-30 17:21
_(:з」∠)_ RM是为游戏手柄设计的,所以不会相应整个电脑键盘。你想要用到手柄能做的事情以外的事情当然需要额外的脚本。  发表于 2015-4-30 17:17
回复

使用道具 举报

梦石
0
星屑
8019
在线时间
1321 小时
注册时间
2006-7-18
回帖
459
 楼主| 发表于 2015-4-30 17:23:07 | 显示全部楼层
本帖最后由 雷影 于 2015-4-30 17:24 编辑

简单来说就是
按一下M键,某变量+1,当变量大于等于3时,变量清零。

再细致一下就是,当某开关ON时,上面的代码才能执行。
回复

使用道具 举报

梦石
0
星屑
22879
在线时间
8598 小时
注册时间
2011-12-31
回帖
3270
发表于 2015-4-30 18:06:39 | 显示全部楼层
本帖最后由 tseyik 于 2015-5-1 08:11 编辑

例:按X制切替迷你地図方式
公共事件>並行>変数1>開関二有効
Image001.png

点评

我換張圖  发表于 2015-5-1 08:10
ル-ブ是不對舶;ループ才對;偱環,迴路  发表于 2015-5-1 08:05
那个ル-ブ是什么意思?查了一下是“润滑油”???  发表于 2015-5-1 00:04
回复

使用道具 举报

梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
回帖
1643

开拓者

发表于 2015-4-30 18:15:50 | 显示全部楼层
(1) 全键盘
  1. module Kboard
  2. module_function
  3. @R_Key_Hash = {}
  4. @R_Key_Repeat = {}
  5. GetKeyState = Win32API.new("user32","GetAsyncKeyState",['I'],'I')
  6. def press?(rkey)
  7.    return GetKeyState.call(rkey) != 0
  8. end
  9. def repeat?(rkey)
  10.    result = GetKeyState.call(rkey)
  11.    if result != 0
  12.      if @R_Key_Repeat[rkey].nil?
  13.        @R_Key_Repeat[rkey] = 0
  14.        return true
  15.      end
  16.      @R_Key_Repeat[rkey] += 1
  17.    else
  18.      @R_Key_Repeat[rkey] = nil
  19.      @R_Key_Hash[rkey] = 0
  20.    end
  21.    if !@R_Key_Repeat[rkey].nil? and @R_Key_Repeat[rkey] > 4 # 4乃准确数字
  22.      @R_Key_Repeat[rkey] = 0
  23.      return true
  24.    else
  25.      return false
  26.    end
  27. end
  28. def trigger?(rkey)
  29.    result = GetKeyState.call(rkey)
  30.    if @R_Key_Hash[rkey] == 1 and result != 0
  31.      return false
  32.    end
  33.    if result != 0
  34.      @R_Key_Hash[rkey] = 1
  35.      return true
  36.    else
  37.      @R_Key_Hash[rkey] = 0
  38.      return false
  39.    end
  40. end
  41. end
复制代码
(2)M键hex: 0x4D
  1. Kboard.trigger?(0x4D)
复制代码
(3)地图变量的操作
(放在你的地图脚本的update内(自己把"地图变量"改成你需要的):)
  1. 地图变量 = (地图变量 + 1) % 3 if Kboard.trigger?(0x4D)
复制代码
完

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 我很赞同

查看全部评分


  -fk: -azogi:
回复

使用道具 举报

梦石
0
星屑
50
在线时间
115 小时
注册时间
2012-11-15
回帖
110
发表于 2015-5-3 00:00:14 | 显示全部楼层
条件分歧第四页带有“按钮X(X在游戏中可设定为游戏内的上下左右ABXYZLR ——均指游戏按钮而非键盘上的键)被按下时的情况,可以用这个搭配并行做出楼主想要的效果。
至于M键游戏本身是不允许设定M键为某个游戏按钮的、的,所以如果你硬是要M键的话就必须要全键盘脚本。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部