设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 5979|回复: 15
打印 上一主题 下一主题

按键秘籍--更新v1,1 额~附本脚本应用实例一个

 关闭 [复制链接]

Lv3.寻梦者

梦石
1
星屑
916
在线时间
101 小时
注册时间
2006-3-27
帖子
1081
跳转到指定楼层
1
发表于 2007-7-4 03:27:38 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
最近看人讨论这个,就试了个

是模仿GTA做的,就是没有输入界面

任意时间都可以输入,任意一个字符都可以做为秘籍的开始- -{/fd}

感觉算法一般,有点冗余,不过至少效果实现了{/fd}

调用公共事件,就基本可以用键盘来实现事件页能做的所有事


使用方法
# 1.设置方法,所需要的秘籍,按照全键盘布局,输入193行处的$mj处,注意首单元为nil
#   默认设置了MONEY和ITEM两个秘籍,分别调用1号、2号公共事件
# 2.如果需要更多,就设置$mj[2]……
# 3.如果输对$mj[n]号秘籍,就会自动调用n+1号公共事件(谁要数组是从0开始- -|)
# 4.拓展:在下面标注了“成功处理”的地方修改就可以
#   如果不希望随时可用,写脚本再加一个开关控制一下就可以了。


  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #
  4. # 作者:幻の飞鱼
  5. # 按键秘籍v1.1
  6. # 配合了夏娜的全键盘使用
  7. # 1.1修复了1.0遇到首字母相同,有一个秘籍不能使用的BUG,但设置秘籍的地方必须保证
  8. # 首单元为nil
  9. #
  10. # 使用方法
  11. # 1.设置方法,所需要的秘籍,按照全键盘布局,输入193行处的$mj处,注意首单元为nil
  12. #   默认设置了MONEY和ITEM两个秘籍,分别调用1号、2号公共事件
  13. # 2.如果需要更多,就设置$mj[2]……
  14. # 3.如果输对$mj[n]号秘籍,就会自动调用n+1号公共事件(谁要数组是从0开始- -|)
  15. # 4.拓展:在下面标注了“成功处理”的地方修改就可以
  16. #   如果不希望随时可用,写脚本再加一个开关控制一下就可以了。
  17. #==============================================================================

  18. #==============================================================================
  19. #全键盘
  20. #==============================================================================
  21. module Kboard
  22.   #==========================================================================
  23.   # 以下是全键盘按键列表
  24.   #--------------------------------------------------------------------------
  25.   $Rmouse_BUTTON_L = 0x01        # left mouse button
  26.   $Rmouse_BUTTON_R = 0x02        # right mouse button
  27.   $Rmouse_BUTTON_M = 0x04        # middle mouse button
  28.   $Rmouse_BUTTON_4 = 0x05        # 4th mouse button
  29.   $Rmouse_BUTTON_5 = 0x06        # 5th mouse button
  30.   #--------------------------------------------------------------------------
  31.   $R_Key_BACK      = 0x08        # BACKSPACE key
  32.   $R_Key_TAB       = 0x09        # TAB key
  33.   $R_Key_RETURN    = 0x0D        # ENTER key
  34.   $R_Key_SHIFT     = 0x10        # SHIFT key
  35.   $R_Key_CTLR      = 0x11        # CTLR key
  36.   $R_Key_ALT       = 0x12        # ALT key
  37.   $R_Key_PAUSE     = 0x13        # PAUSE key
  38.   $R_Key_CAPITAL   = 0x14        # CAPS LOCK key
  39.   $R_Key_ESCAPE    = 0x1B        # ESC key
  40.   $R_Key_SPACE     = 0x20        # SPACEBAR
  41.   $R_Key_PRIOR     = 0x21        # PAGE UP key
  42.   $R_Key_NEXT      = 0x22        # PAGE DOWN key
  43.   $R_Key_END       = 0x23        # END key
  44.   $R_Key_HOME      = 0x24        # HOME key
  45.   $R_Key_LEFT      = 0x25        # LEFT ARROW key
  46.   $R_Key_UP        = 0x26        # UP ARROW key
  47.   $R_Key_RIGHT     = 0x27        # RIGHT ARROW key
  48.   $R_Key_DOWN      = 0x28        # DOWN ARROW key
  49.   $R_Key_SELECT    = 0x29        # SELECT key
  50.   $R_Key_PRINT     = 0x2A        # PRINT key
  51.   $R_Key_SNAPSHOT  = 0x2C        # PRINT SCREEN key
  52.   $R_Key_INSERT    = 0x2D        # INS key
  53.   $R_Key_DELETE    = 0x2E        # DEL key
  54.   #--------------------------------------------------------------------------
  55.   $R_Key_0         = 0x30        # 0 key
  56.   $R_Key_1         = 0x31        # 1 key
  57.   $R_Key_2         = 0x32        # 2 key
  58.   $R_Key_3         = 0x33        # 3 key
  59.   $R_Key_4         = 0x34        # 4 key
  60.   $R_Key_5         = 0x35        # 5 key
  61.   $R_Key_6         = 0x36        # 6 key
  62.   $R_Key_7         = 0x37        # 7 key
  63.   $R_Key_8         = 0x38        # 8 key
  64.   $R_Key_9         = 0x39        # 9 key
  65.   #--------------------------------------------------------------------------
  66.   $R_Key_A         = 0x41        # A key
  67.   $R_Key_B         = 0x42        # B key
  68.   $R_Key_C         = 0x43        # C key
  69.   $R_Key_D         = 0x44        # D key
  70.   $R_Key_E         = 0x45        # E key
  71.   $R_Key_F         = 0x46        # F key
  72.   $R_Key_G         = 0x47        # G key
  73.   $R_Key_H         = 0x48        # H key
  74.   $R_Key_I         = 0x49        # I key
  75.   $R_Key_J         = 0x4A        # J key
  76.   $R_Key_K         = 0x4B        # K key
  77.   $R_Key_L         = 0x4C        # L key
  78.   $R_Key_M         = 0x4D        # M key
  79.   $R_Key_N         = 0x4E        # N key
  80.   $R_Key_O         = 0x4F        # O key
  81.   $R_Key_P         = 0x50        # P key
  82.   $R_Key_Q         = 0x51        # Q key
  83.   $R_Key_R         = 0x52        # R key
  84.   $R_Key_S         = 0x53        # S key
  85.   $R_Key_T         = 0x54        # T key
  86.   $R_Key_U         = 0x55        # U key
  87.   $R_Key_V         = 0x56        # V key
  88.   $R_Key_W         = 0x57        # W key
  89.   $R_Key_X         = 0x58        # X key
  90.   $R_Key_Y         = 0x59        # Y key
  91.   $R_Key_Z         = 0x5A        # Z key
  92.   #--------------------------------------------------------------------------
  93.   $R_Key_LWIN      = 0x5B        # Left Windows key (Microsoft Natural keyboard)
  94.   $R_Key_RWIN      = 0x5C        # Right Windows key (Natural keyboard)
  95.   $R_Key_APPS      = 0x5D        # Applications key (Natural keyboard)
  96.   #--------------------------------------------------------------------------
  97.   $R_Key_NUMPAD0   = 0x60        # Numeric keypad 0 key
  98.   $R_Key_NUMPAD1   = 0x61        # Numeric keypad 1 key
  99.   $R_Key_NUMPAD2   = 0x62        # Numeric keypad 2 key
  100.   $R_Key_NUMPAD3   = 0x63        # Numeric keypad 3 key
  101.   $R_Key_NUMPAD4   = 0x64        # Numeric keypad 4 key
  102.   $R_Key_NUMPAD5   = 0x65        # Numeric keypad 5 key
  103.   $R_Key_NUMPAD6   = 0x66        # Numeric keypad 6 key
  104.   $R_Key_NUMPAD7   = 0x67        # Numeric keypad 7 key
  105.   $R_Key_NUMPAD8   = 0x68        # Numeric keypad 8 key
  106.   $R_Key_NUMPAD9  = 0x69        # Numeric keypad 9 key
  107.   $R_Key_MULTIPLY  = 0x6A        # Multiply key (*)
  108.   $R_Key_ADD       = 0x6B        # Add key (+)
  109.   $R_Key_SEPARATOR = 0x6C        # Separator key
  110.   $R_Key_SUBTRACT  = 0x6D        # Subtract key (-)
  111.   $R_Key_DECIMAL   = 0x6E        # Decimal key
  112.   $R_Key_DIVIDE    = 0x6F        # Divide key (/)
  113.   #--------------------------------------------------------------------------
  114.   $R_Key_F1        = 0x70        # F1 key
  115.   $R_Key_F2        = 0x71        # F2 key
  116.   $R_Key_F3        = 0x72        # F3 key
  117.   $R_Key_F4        = 0x73        # F4 key
  118.   $R_Key_F5        = 0x74        # F5 key
  119.   $R_Key_F6        = 0x75        # F6 key
  120.   $R_Key_F7        = 0x76        # F7 key
  121.   $R_Key_F8        = 0x77        # F8 key
  122.   $R_Key_F9        = 0x78        # F9 key
  123.   $R_Key_F10       = 0x79        # F10 key
  124.   $R_Key_F11       = 0x7A        # F11 key
  125.   $R_Key_F12       = 0x7B        # F12 key
  126.   #--------------------------------------------------------------------------
  127.   $R_Key_NUMLOCK   = 0x90        # NUM LOCK key
  128.   $R_Key_SCROLL    = 0x91        # SCROLL LOCK key
  129.   #--------------------------------------------------------------------------
  130.   $R_Key_LSHIFT    = 0xA0        # Left SHIFT key
  131.   $R_Key_RSHIFT    = 0xA1        # Right SHIFT key
  132.   $R_Key_LCONTROL  = 0xA2        # Left CONTROL key
  133.   $R_Key_RCONTROL  = 0xA3        # Right CONTROL key
  134.   $R_Key_L_ALT    = 0xA4        # Left ALT key
  135.   $R_Key_R_ALT    = 0xA5        # Right ALT key
  136.   #--------------------------------------------------------------------------
  137.   $R_Key_SEP      = 0xBC        # , key
  138.   $R_Key_DASH      = 0xBD        # - key
  139.   $R_Key_DOTT      = 0xBE        # . Key
  140.   #--------------------------------------------------------------------------
  141.   GetKeyState = Win32API.new("user32","GetAsyncKeyState",['I'],'I')
  142.   GetKeyboardState = Win32API.new("user32","GetKeyState",['I'],'I')
  143.   GetSetKeyState = Win32API.new("user32","SetKeyboardState",['I'],'I')
  144.   #--------------------------------------------------------------------------
  145. module_function

  146. @R_Key_Hash = {}
  147. @R_Key_Repeat = {}

  148. GetKeyState = Win32API.new("user32","GetAsyncKeyState",['I'],'I')

  149. def press?(rkey)
  150.    return GetKeyState.call(rkey) != 0
  151. end

  152. def repeat?(rkey)
  153.    result = GetKeyState.call(rkey)
  154.    if result != 0
  155.      if @R_Key_Repeat[rkey].nil?
  156.        @R_Key_Repeat[rkey] = 0
  157.        return true
  158.      end
  159.      @R_Key_Repeat[rkey] += 1
  160.    else
  161.      @R_Key_Repeat[rkey] = nil
  162.      @R_Key_Hash[rkey] = 0
  163.    end
  164.    if !@R_Key_Repeat[rkey].nil? and @R_Key_Repeat[rkey] > 4 # 4乃准确数字
  165.      @R_Key_Repeat[rkey] = 0
  166.      return true
  167.    else
  168.      return false
  169.    end
  170. end

  171. def trigger?(rkey)
  172.    result = GetKeyState.call(rkey)
  173.    if @R_Key_Hash[rkey] == 1 and result != 0
  174.      return false
  175.    end
  176.    if result != 0
  177.      @R_Key_Hash[rkey] = 1
  178.      return true
  179.    else
  180.      @R_Key_Hash[rkey] = 0
  181.      return false
  182.    end
  183. end
  184. end

  185. #==============================================================================
  186. #以下是按键秘籍
  187. #==============================================================================

  188. $mj=[] #在下面设置秘籍
  189. $mj[0] = [nil,$R_Key_M,$R_Key_O,$R_Key_N,$R_Key_E,$R_Key_Y]
  190. $mj[1] = [nil,$R_Key_I,$R_Key_T,$R_Key_E,$R_Key_M]

  191. class Scene_Map
  192.   alias old update
  193.   def update
  194.     n = 0
  195.     for i in 1..190
  196.       if Kboard.trigger?(i)
  197.         n = i
  198.       end
  199.     end
  200.    
  201.     if n > 0
  202.       if $open
  203.         $open = false
  204.         for @k in @z
  205.           $open = true if n == $mj[@k][@j[@k]]
  206.         end
  207.         for @k in @z
  208.           if n == $mj[@k][@j[@k]]
  209.             @j[@k]+=1
  210.             if @j[@k]==$mj[@k].size
  211.               #-----成功处理,@k为成功的秘籍编号--------
  212.               $game_temp.common_event_id = @k+1 #按对后的功能
  213.               #------------------------------------------
  214.               @j[@k] = 0
  215.             end
  216.           else
  217.             @j[@k] = 0
  218.           end
  219.         end
  220.       end
  221.     end
  222.    
  223.     if $open != true
  224.       @z = []
  225.       @j = []
  226.       for i in 0..$mj.size-1
  227.         if n == $mj[i][1]
  228.           @z.push(i)
  229.           @j[i] = 2
  230.           $open = true
  231.         end
  232.       end
  233.     end
  234.     old
  235.   end
  236. end
  237. #==============================================================================
  238. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  239. #==============================================================================
复制代码



附个范例:http://rpg.blue/upload_program/files/按键秘籍v1.1.rar



============华丽的分割==================
这个就是实例了~

最近在做进度缓慢的断指系列,因为这个脚本的出现

搞笑的出了一个“死亡打字员特别版”,就纯粹娱乐一下了- -||

http://rpg.blue/viewthread.php?tid=59293




              [本贴由 叶舞枫 于 2007-7-5 10:43:01 进行了编辑]

Lv1.梦旅人

Dancer-

梦石
0
星屑
105
在线时间
78 小时
注册时间
2006-5-15
帖子
3306
16
发表于 2007-7-5 23:19:45 | 只看该作者
拓展性的话...我唯一喜欢的就是音乐游戏了....
一个机缘巧合后,被改变了人生的第八年。
养着两只猫,可是我对猫过敏。
为了那终将到来的一天。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

北爵公

梦石
0
星屑
50
在线时间
1 小时
注册时间
2007-2-16
帖子
93
15
发表于 2007-7-5 19:46:51 | 只看该作者
不错~支持下
回复 支持 反对

使用道具 举报

Lv1.梦旅人

Dancer-

梦石
0
星屑
55
在线时间
76 小时
注册时间
2006-11-9
帖子
3551

开拓者贵宾

14
发表于 2007-7-5 18:42:41 | 只看该作者
发布完毕
http://rpg.blue/web/htm/news765.htm
VIP 2
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

苹果梨

梦石
0
星屑
43
在线时间
6 小时
注册时间
2007-2-14
帖子
720
13
发表于 2007-7-5 07:31:42 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
1
星屑
916
在线时间
101 小时
注册时间
2006-3-27
帖子
1081
12
 楼主| 发表于 2007-7-5 07:12:27 | 只看该作者
以下引用亿万星辰于2007-7-4 17:03:50的发言:


以下引用幻の飞鱼于2007-7-4 12:46:05的发言:

是的,我在想的是一些拓展功能
并不是局限于秘籍这一块

比如把我那个断指守卫改成个打字游戏?
每个怪物头上带一个单词
输入对了就可以把怪物灭了,哈哈
我的创意果然够无聊……



死亡打字员RM....以前做过...



为什么找不到下载呢- -我还想看看怎么做的

我自己的也做好了

搞的都不好意思发了

感觉想断指的 番外篇 一样的界面,不一样的游戏方式- -
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
275
在线时间
1373 小时
注册时间
2005-10-16
帖子
5113

贵宾

11
发表于 2007-7-5 01:03:50 | 只看该作者
以下引用幻の飞鱼于2007-7-4 12:46:05的发言:

是的,我在想的是一些拓展功能
并不是局限于秘籍这一块

比如把我那个断指守卫改成个打字游戏?
每个怪物头上带一个单词
输入对了就可以把怪物灭了,哈哈
我的创意果然够无聊……

死亡打字员RM....以前做过...
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
1
星屑
916
在线时间
101 小时
注册时间
2006-3-27
帖子
1081
10
 楼主| 发表于 2007-7-4 20:46:05 | 只看该作者
是的,我在想的是一些拓展功能
并不是局限于秘籍这一块

比如把我那个断指守卫改成个打字游戏?
每个怪物头上带一个单词
输入对了就可以把怪物灭了,哈哈
我的创意果然够无聊……
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
275
在线时间
1373 小时
注册时间
2005-10-16
帖子
5113

贵宾

9
发表于 2007-7-4 14:39:48 | 只看该作者
以下引用小真·爱舞于2007-7-4 3:26:41的发言:

这个东西...我真的感觉没有实用价值。
RM游戏...做得再优秀,也不过是个RM游戏,除了特别的有爱的玩家是不会玩得那么认真的。
何况不优秀的游戏?
大多数在讨论需要这个功能的制作者...大多数不是很有能力制作出优秀RMgame的人啊...
所以...只有鸡肋的感觉...
鸡肋..鸡肋..

不见得,我稍微把思路换一下就会是另一种效果.......
比如我那个范例里的,站到台子上才能输入,就可以设置成类似地牢围攻里的吟唱系统
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

Dancer-

梦石
0
星屑
105
在线时间
78 小时
注册时间
2006-5-15
帖子
3306
8
发表于 2007-7-4 11:26:41 | 只看该作者
这个东西...我真的感觉没有实用价值。
RM游戏...做得再优秀,也不过是个RM游戏,除了特别的有爱的玩家是不会玩得那么认真的。
何况不优秀的游戏?
大多数在讨论需要这个功能的制作者...大多数不是很有能力制作出优秀RMgame的人啊...
所以...只有鸡肋的感觉...
鸡肋..鸡肋..
一个机缘巧合后,被改变了人生的第八年。
养着两只猫,可是我对猫过敏。
为了那终将到来的一天。
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-19 20:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表