查看: 2485|回复: 3

[已经解决] 如何更改角色原始行走速度

[复制链接]
梦石
0
星屑
49
在线时间
254 小时
注册时间
2014-2-10
回帖
469
发表于 2014-5-17 09:35:12 | 显示全部楼层 |阅读模式

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

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

×
经过我的测试,人物原始速度为4,能否改为3,并且在按下C键时更改速度为4?
不要说用公共事件+开关搭配,这样子本来在NPC前面能够停下来的,直接穿梭过NPC了,并且NPC显示不能穿透

求解!最好放上范例工程。

评分

参与人数 1星屑 +35 收起 理由
天地有正气 + 35 手动认可奖励

查看全部评分

梦石
0
星屑
175
在线时间
332 小时
注册时间
2013-7-6
回帖
316
发表于 2014-5-17 11:12:46 | 显示全部楼层
本帖最后由 wolves 于 2014-5-17 11:36 编辑

脚本编辑器Game_Character 1第51行    @move_speed = 4 ,4改为你要的初速度。
至于改变游戏中速度,用全键盘脚本比较好,RM本身按键判定反应特别快,以至于产生你所说的特点。
全键盘脚本:
[pre lang="ruby" line="1"]#==============================================================================
# 本脚本来自http://tyrpg.5d6d.com/,使用和转载请保留此信息
#==============================================================================
#==============================================================================
# ■ Keyboard Script
#------------------------------------------------------------------------------
#  全键盘按键调用脚本 By: 夏娜 完善:RPG-XP
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#   使用方法见发布页
#==============================================================================
module Kboard
  #----------------------------------------------------------------------------
  # ● 设置所需按键,以下是全键盘按键列表。
  #----------------------------------------------------------------------------
    $BACK          = 0x08        # ← BACKSPACE 按键
  $TAB           = 0x09        # TAB 按键
  $RETURN        = 0x0D        # 回车键
  $SHIFT         = 0x10        # SHIFT 按键
  $CTLR          = 0x11        # Ctrl 按键
  $ALT           = 0x12        # ALT 按键
  $PAUSE         = 0x13        # Pause Break 按键
  $CAPITAL       = 0x14        # 大写/小写 转换键
  $ESCAPE        = 0x1B        # ESC 按键
  $SPACE         = 0x20        # 空格键
  $PRIOR         = 0x21        # PAGE UP 按键
  $NEXT          = 0x22        # PAGE DOWN 按键
  $ENDKEY        = 0x23        # END 按键
  $HOME          = 0x24        # HOME 按键
  $LEFT          = 0x25        # ← 按键
  $UP            = 0x26        # → 按键
  $RIGHT         = 0x27        # ↑ 按键
  $DOWN          = 0x28        #  ↓ 按键
  $SELECT        = 0x29        # select 按键(这是……)
  $PRINT         = 0x2A        # PRINT 按键
  $SNAPSHOT      = 0x2C        # PRINT SCREEN 按键
  $INSERT        = 0x2D        # Insert 按键
  $DELETE        = 0x2E        # Delete 按键
  $Key_0         = 0x30        # 左边数字面板的数字 0 按键
  $Key_1         = 0x31        # 左边数字面板的数字 1 按键
  $Key_2         = 0x32        # 左边数字面板的数字 2 按键
  $Key_3         = 0x33        # 左边数字面板的数字 3 按键
  $Key_4         = 0x34        # 左边数字面板的数字 4 按键
  $Key_5         = 0x35        # 左边数字面板的数字 5 按键
  $Key_6         = 0x36        # 左边数字面板的数字 6 按键
  $Key_7         = 0x37        # 左边数字面板的数字 7 按键
  $Key_8         = 0x38        # 左边数字面板的数字 8 按键
  $Key_9         = 0x39        # 左边数字面板的数字 9 按键
  $A             = 0x41        # 字母 A 按键
  $B             = 0x42        # 字母 B 按键
  $C             = 0x43        # 字母 C 按键
  $D             = 0x44        # 字母 D 按键
  $E             = 0x45        # 字母 E 按键
  $F             = 0x46        # 字母 F 按键
  $G             = 0x47        # 字母 G 按键
  $H             = 0x48        # 字母 H 按键
  $I             = 0x49        # 字母 I 按键
  $J             = 0x4A        # 字母 J 按键
  $K             = 0x4B        # 字母 K 按键
  $L             = 0x4C        # 字母 L 按键
  $M             = 0x4D        # 字母 M 按键
  $N             = 0x4E        # 字母 N 按键
  $O             = 0x4F        # 字母 O 按键
  $P             = 0x50        # 字母 P 按键
  $Q             = 0x51        # 字母 Q 按键
  $R             = 0x52        # 字母 R 按键
  $S             = 0x53        # 字母 S 按键
  $T             = 0x54        # 字母 T 按键
  $U             = 0x55        # 字母 U 按键
  $V             = 0x56        # 字母 V 按键
  $W             = 0x57        # 字母 W 按键
  $X             = 0x58        # 字母 X 按键
  $Y             = 0x59        # 字母 Y 按键
  $Z             = 0x5A        # 字母 Z 按键
  $LWIN          = 0x5B        # 左边开始界面视窗按键(微软自然键盘)
  $RWIN          = 0x5C        # 右边开始界面视窗按键(微软自然键盘)
  $APPS          = 0x5D     # (自然键盘)这个键的称呼我不知道,但它如同于鼠标右键。
  $Key_NUMPAD0   = 0x60        # 右边数字面板的数字 0 按键
  $Key_NUMPAD1   = 0x61        # 右边数字面板的数字 1 按键
  $Key_NUMPAD2   = 0x62        # 右边数字面板的数字 2 按键
  $Key_NUMPAD3   = 0x63        # 右边数字面板的数字 3 按键
  $Key_NUMPAD4   = 0x64        # 右边数字面板的数字 4 按键
  $Key_NUMPAD5   = 0x65        # 右边数字面板的数字 5 按键
  $Key_NUMPAD6   = 0x66        # 右边数字面板的数字 6 按键
  $Key_NUMPAD7   = 0x67        # 右边数字面板的数字 7 按键
  $Key_NUMPAD8   = 0x68        # 右边数字面板的数字 8 按键
  $Key_NUMPAD9   = 0x69        # 右边数字面板的数字 9 按键
  $Key_MULTIPLY  = 0x6A        # 乘号按键
  $ADD           = 0x6B        # 加号按键
  $SEPARATOR     = 0x6C        # Separator 按键
  $SUBTRACT      = 0x6D        # 减号按键
  $DECIMAL       = 0x6E        # Decimal 按键
  $DIVIDE        = 0x6F        # 除号按键
  $F1            = 0x70        # F1 按键
  $F2            = 0x71        # F2 按键
  $F3            = 0x72        # F3 按键
  $F4            = 0x73        # F4 按键
  $F5            = 0x74        # F5 按键
  $F6            = 0x75        # F6 按键
  $F7            = 0x76        # F7 按键
  $F8            = 0x77        # F8 按键
  $F9            = 0x78        # F9 按键
  $F10           = 0x79        # F10 按键
  $F11           = 0x7A        # F11 按键
  $F12           = 0x7B        # F12 按键
  $NUMLOCK       = 0x90        # NUM LOCK 按键
  $SCROLL        = 0x91        # SCROLL LOCK 按键
  $LSHIFT        = 0xA0        # 左边SHIFT按键
  $RSHIFT        = 0xA1        # 右边SHIFT按键
  $LCONTROL      = 0xA2        # 左边 CONTROL 按键
  $RCONTROL      = 0xA3        # 右边 CONTROL 按键
  $L_ALT         = 0xA4        # 左边 ALT 按键
  $R_ALT         = 0xA5        # 右边 ALT 按键
  $SEP           = 0xBC        # 逗号按键
  $DASH          = 0xBD        # 减号按键
  $DOTT          = 0xBE        # . 按键
  #--------------------------------------------------------------------------
module_function
  
  
@R_Key_Hash = {}
@R_Key_Repeat = {}

GetKeyState = Win32API.new("user32","GetAsyncKeyState",['I'],'I')
def press?(rkey)
   return GetKeyState.call(rkey) != 0
end

def repeat?(rkey)
   result = GetKeyState.call(rkey)
   if result != 0
     if @R_Key_Repeat[rkey].nil?
       @R_Key_Repeat[rkey] = 0
       return true
     end
     @R_Key_Repeat[rkey] += 1
   else
     @R_Key_Repeat[rkey] = nil
     @R_Key_Hash[rkey] = 0
   end
   if !@R_Key_Repeat[rkey].nil? and @R_Key_Repeat[rkey] > 4 # 4乃准确数字
     @R_Key_Repeat[rkey] = 0
     return true
   else
     return false
   end
end

def trigger?(rkey)
   result = GetKeyState.call(rkey)
   if @R_Key_Hash[rkey] == 1 and result != 0
     return false
   end
   if result != 0
     @R_Key_Hash[rkey] = 1
     return true
   else
     @R_Key_Hash[rkey] = 0
     return false
   end
end

end
#==============================================================================
# 本脚本来自http://tyrpg.5d6d.com/,使用和转载请保留此信息
#==============================================================================[/pre]
用法:条件分歧选脚本然后输入:

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

if Kboard.trigger?($SPACE)
$game_player.move_speed = 4
else
$game_player.move_speed = 3
end

评分

参与人数 1星屑 +100 收起 理由
天地有正气 + 100 认可答案

查看全部评分

偶是熬夜学编程的傻子
回复 1 0

使用道具 举报

梦石
0
星屑
49
在线时间
254 小时
注册时间
2014-2-10
回帖
469
 楼主| 发表于 2014-5-17 11:38:25 | 显示全部楼层
wolves 发表于 2014-5-17 11:12
脚本编辑器Game_Character 1第51行    @move_speed = 4 ,4改为你要的初速度。
至于改变游戏中速度,用全键 ...

按下C键的解答不明觉厉……能否告诉我在哪里插入脚本呢?
回复

使用道具 举报

梦石
0
星屑
175
在线时间
332 小时
注册时间
2013-7-6
回帖
316
发表于 2014-5-17 11:44:23 | 显示全部楼层
长的在脚本编辑器main前插
短的直接在公共事件里
未命名.jpg
如图
偶是熬夜学编程的傻子
回复 1 0

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部