Project1

标题: 如何更改角色原始行走速度 [打印本页]

作者: 流华人生    时间: 2014-5-17 09:35
标题: 如何更改角色原始行走速度
经过我的测试,人物原始速度为4,能否改为3,并且在按下C键时更改速度为4?
不要说用公共事件+开关搭配,这样子本来在NPC前面能够停下来的,直接穿梭过NPC了,并且NPC显示不能穿透

求解!最好放上范例工程。
作者: wolves    时间: 2014-5-17 11:12
本帖最后由 wolves 于 2014-5-17 11:36 编辑

脚本编辑器Game_Character 1第51行    @move_speed = 4 ,4改为你要的初速度。
至于改变游戏中速度,用全键盘脚本比较好,RM本身按键判定反应特别快,以至于产生你所说的特点。
全键盘脚本:
RUBY 代码复制
  1. #==============================================================================
  2. # 本脚本来自[url]http://tyrpg.5d6d.com/[/url],使用和转载请保留此信息
  3. #==============================================================================
  4. #==============================================================================
  5. # ■ Keyboard Script
  6. #------------------------------------------------------------------------------
  7. #  全键盘按键调用脚本 By: 夏娜 完善:RPG-XP
  8. #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  9. #   使用方法见发布页
  10. #==============================================================================
  11. module Kboard
  12.   #----------------------------------------------------------------------------
  13.   # ● 设置所需按键,以下是全键盘按键列表。
  14.   #----------------------------------------------------------------------------
  15.     $BACK          = 0x08        # ← BACKSPACE 按键
  16.   $TAB           = 0x09        # TAB 按键
  17.   $RETURN        = 0x0D        # 回车键
  18.   $SHIFT         = 0x10        # SHIFT 按键
  19.   $CTLR          = 0x11        # Ctrl 按键
  20.   $ALT           = 0x12        # ALT 按键
  21.   $PAUSE         = 0x13        # Pause Break 按键
  22.   $CAPITAL       = 0x14        # 大写/小写 转换键
  23.   $ESCAPE        = 0x1B        # ESC 按键
  24.   $SPACE         = 0x20        # 空格键
  25.   $PRIOR         = 0x21        # PAGE UP 按键
  26.   $NEXT          = 0x22        # PAGE DOWN 按键
  27.   $ENDKEY        = 0x23        # END 按键
  28.   $HOME          = 0x24        # HOME 按键
  29.   $LEFT          = 0x25        # ← 按键
  30.   $UP            = 0x26        # → 按键
  31.   $RIGHT         = 0x27        # ↑ 按键
  32.   $DOWN          = 0x28        #  ↓ 按键
  33.   $SELECT        = 0x29        # select 按键(这是……)
  34.   $PRINT         = 0x2A        # PRINT 按键
  35.   $SNAPSHOT      = 0x2C        # PRINT SCREEN 按键
  36.   $INSERT        = 0x2D        # Insert 按键
  37.   $DELETE        = 0x2E        # Delete 按键
  38.   $Key_0         = 0x30        # 左边数字面板的数字 0 按键
  39.   $Key_1         = 0x31        # 左边数字面板的数字 1 按键
  40.   $Key_2         = 0x32        # 左边数字面板的数字 2 按键
  41.   $Key_3         = 0x33        # 左边数字面板的数字 3 按键
  42.   $Key_4         = 0x34        # 左边数字面板的数字 4 按键
  43.   $Key_5         = 0x35        # 左边数字面板的数字 5 按键
  44.   $Key_6         = 0x36        # 左边数字面板的数字 6 按键
  45.   $Key_7         = 0x37        # 左边数字面板的数字 7 按键
  46.   $Key_8         = 0x38        # 左边数字面板的数字 8 按键
  47.   $Key_9         = 0x39        # 左边数字面板的数字 9 按键
  48.   $A             = 0x41        # 字母 A 按键
  49.   $B             = 0x42        # 字母 B 按键
  50.   $C             = 0x43        # 字母 C 按键
  51.   $D             = 0x44        # 字母 D 按键
  52.   $E             = 0x45        # 字母 E 按键
  53.   $F             = 0x46        # 字母 F 按键
  54.   $G             = 0x47        # 字母 G 按键
  55.   $H             = 0x48        # 字母 H 按键
  56.   $I             = 0x49        # 字母 I 按键
  57.   $J             = 0x4A        # 字母 J 按键
  58.   $K             = 0x4B        # 字母 K 按键
  59.   $L             = 0x4C        # 字母 L 按键
  60.   $M             = 0x4D        # 字母 M 按键
  61.   $N             = 0x4E        # 字母 N 按键
  62.   $O             = 0x4F        # 字母 O 按键
  63.   $P             = 0x50        # 字母 P 按键
  64.   $Q             = 0x51        # 字母 Q 按键
  65.   $R             = 0x52        # 字母 R 按键
  66.   $S             = 0x53        # 字母 S 按键
  67.   $T             = 0x54        # 字母 T 按键
  68.   $U             = 0x55        # 字母 U 按键
  69.   $V             = 0x56        # 字母 V 按键
  70.   $W             = 0x57        # 字母 W 按键
  71.   $X             = 0x58        # 字母 X 按键
  72.   $Y             = 0x59        # 字母 Y 按键
  73.   $Z             = 0x5A        # 字母 Z 按键
  74.   $LWIN          = 0x5B        # 左边开始界面视窗按键(微软自然键盘)
  75.   $RWIN          = 0x5C        # 右边开始界面视窗按键(微软自然键盘)
  76.   $APPS          = 0x5D     # (自然键盘)这个键的称呼我不知道,但它如同于鼠标右键。
  77.   $Key_NUMPAD0   = 0x60        # 右边数字面板的数字 0 按键
  78.   $Key_NUMPAD1   = 0x61        # 右边数字面板的数字 1 按键
  79.   $Key_NUMPAD2   = 0x62        # 右边数字面板的数字 2 按键
  80.   $Key_NUMPAD3   = 0x63        # 右边数字面板的数字 3 按键
  81.   $Key_NUMPAD4   = 0x64        # 右边数字面板的数字 4 按键
  82.   $Key_NUMPAD5   = 0x65        # 右边数字面板的数字 5 按键
  83.   $Key_NUMPAD6   = 0x66        # 右边数字面板的数字 6 按键
  84.   $Key_NUMPAD7   = 0x67        # 右边数字面板的数字 7 按键
  85.   $Key_NUMPAD8   = 0x68        # 右边数字面板的数字 8 按键
  86.   $Key_NUMPAD9   = 0x69        # 右边数字面板的数字 9 按键
  87.   $Key_MULTIPLY  = 0x6A        # 乘号按键
  88.   $ADD           = 0x6B        # 加号按键
  89.   $SEPARATOR     = 0x6C        # Separator 按键
  90.   $SUBTRACT      = 0x6D        # 减号按键
  91.   $DECIMAL       = 0x6E        # Decimal 按键
  92.   $DIVIDE        = 0x6F        # 除号按键
  93.   $F1            = 0x70        # F1 按键
  94.   $F2            = 0x71        # F2 按键
  95.   $F3            = 0x72        # F3 按键
  96.   $F4            = 0x73        # F4 按键
  97.   $F5            = 0x74        # F5 按键
  98.   $F6            = 0x75        # F6 按键
  99.   $F7            = 0x76        # F7 按键
  100.   $F8            = 0x77        # F8 按键
  101.   $F9            = 0x78        # F9 按键
  102.   $F10           = 0x79        # F10 按键
  103.   $F11           = 0x7A        # F11 按键
  104.   $F12           = 0x7B        # F12 按键
  105.   $NUMLOCK       = 0x90        # NUM LOCK 按键
  106.   $SCROLL        = 0x91        # SCROLL LOCK 按键
  107.   $LSHIFT        = 0xA0        # 左边SHIFT按键
  108.   $RSHIFT        = 0xA1        # 右边SHIFT按键
  109.   $LCONTROL      = 0xA2        # 左边 CONTROL 按键
  110.   $RCONTROL      = 0xA3        # 右边 CONTROL 按键
  111.   $L_ALT         = 0xA4        # 左边 ALT 按键
  112.   $R_ALT         = 0xA5        # 右边 ALT 按键
  113.   $SEP           = 0xBC        # 逗号按键
  114.   $DASH          = 0xBD        # 减号按键
  115.   $DOTT          = 0xBE        # . 按键
  116.   #--------------------------------------------------------------------------
  117. module_function
  118.  
  119.  
  120. @R_Key_Hash = {}
  121. @R_Key_Repeat = {}
  122.  
  123. GetKeyState = Win32API.new("user32","GetAsyncKeyState",['I'],'I')
  124. def press?(rkey)
  125.    return GetKeyState.call(rkey) != 0
  126. end
  127.  
  128. def repeat?(rkey)
  129.    result = GetKeyState.call(rkey)
  130.    if result != 0
  131.      if @R_Key_Repeat[rkey].nil?
  132.        @R_Key_Repeat[rkey] = 0
  133.        return true
  134.      end
  135.      @R_Key_Repeat[rkey] += 1
  136.    else
  137.      @R_Key_Repeat[rkey] = nil
  138.      @R_Key_Hash[rkey] = 0
  139.    end
  140.    if !@R_Key_Repeat[rkey].nil? and @R_Key_Repeat[rkey] > 4 # 4乃准确数字
  141.      @R_Key_Repeat[rkey] = 0
  142.      return true
  143.    else
  144.      return false
  145.    end
  146. end
  147.  
  148. def trigger?(rkey)
  149.    result = GetKeyState.call(rkey)
  150.    if @R_Key_Hash[rkey] == 1 and result != 0
  151.      return false
  152.    end
  153.    if result != 0
  154.      @R_Key_Hash[rkey] = 1
  155.      return true
  156.    else
  157.      @R_Key_Hash[rkey] = 0
  158.      return false
  159.    end
  160. end
  161.  
  162. end
  163. #==============================================================================
  164. # 本脚本来自[url]http://tyrpg.5d6d.com/[/url],使用和转载请保留此信息
  165. #==============================================================================

用法:条件分歧选脚本然后输入:

Kboard.trigger?($SPACE)
就是按下空格后出现什么
亲测比RM本身按下什么键的判定好多了。用公共事件并行处理,例如你说的:

if Kboard.trigger?($SPACE)
$game_player.move_speed = 4
else
$game_player.move_speed = 3
end
作者: 流华人生    时间: 2014-5-17 11:38
wolves 发表于 2014-5-17 11:12
脚本编辑器Game_Character 1第51行    @move_speed = 4 ,4改为你要的初速度。
至于改变游戏中速度,用全键 ...

按下C键的解答不明觉厉……能否告诉我在哪里插入脚本呢?
作者: wolves    时间: 2014-5-17 11:44
长的在脚本编辑器main前插
短的直接在公共事件里

如图




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