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

Project1

 找回密码
 注册会员
搜索

【不是创意的创意】锁定移动并读取方向

查看数: 2199 | 评论数: 4 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2011-10-23 22:50

正文摘要:

本帖最后由 精灵使者 于 2011-10-24 13:41 编辑 应某些人所求做了这个脚本。应该能实现基本功能了。 打开指定的开关,角色移动锁定,并读取方向值到一指定的变量里。 恩,我设置了关闭开关以后会自动清除方向变量 ...

回复

429259591 发表于 2011-10-25 21:15:52
精灵前辈TAT
咱睡了一觉,然后开窍了...
发现只要用循环和等待再加上标签就可以实现了....

点评

可是某家大人说,想在全地图通用的。  发表于 2011-10-25 21:39
精灵使者 发表于 2011-10-24 13:42:19
本帖最后由 精灵使者 于 2011-10-24 13:57 编辑

精灵提问:Input.dir4的保留时限是什么?
是不是放开方向键这个值就恢复为零?
(因为这个我才不用这个dir4来着)
另外提示:变量更新以后不更新地图,所以请及时用need_refresh来更新地图
  1. #==============================================================================
  2. # ■ 锁定移动并读取方向键到变量 v1.0 精简版
  3. #------------------------------------------------------------------------------
  4. #  创意:炽幻  原版:精灵使者 精简:各种压力的猫君
  5. #------------------------------------------------------------------------------
  6. #   方向键值所代表的变量:下2左4右6上8。
  7. #==============================================================================
  8. module LOCK_CHAR
  9.   # 开启脚本功能的开关编号
  10.   LOCK_SWITCH = 1
  11.   # 方向键值带入的变量编号
  12.   DIRECTION_VARIABLE = 1
  13. end

  14. #==============================================================================
  15. class Game_Player < Game_Character
  16.   #--------------------------------------------------------------------------
  17.   # ● 方向键移动处理
  18. #--------------------------------------------------------------------------
  19.   alias old_move_by_input move_by_input
  20.   def move_by_input
  21. #==============================================================================
  22.     # 若开关被打开,本脚本开始工作
  23.    if  $game_switches[LOCK_CHAR::LOCK_SWITCH]
  24.      # 将方向键操作带入变量,值为0除外
  25.       $game_variables[LOCK_CHAR::DIRECTION_VARIABLE] = Input.dir4 unless Input.dir4 == 0
  26.       # 更新地图(触发变量改变需要的事件必须用这个)
  27.       $game_map.need_refresh = true
  28.             # 返回(不移动)
  29.       return
  30. #==============================================================================
  31.     end
  32.     old_move_by_input
  33.   end
  34. end
复制代码
  1. #==============================================================================
  2. # ■ 锁定移动并读取方向键到变量 v1.0_4改
  3. #------------------------------------------------------------------------------
  4. #  创意:炽幻  原版:精灵使者 修改:各种压力的猫君
  5. #------------------------------------------------------------------------------
  6. #   改版特点:
  7. #   拥有原版的全部功能,并在此基础上扩展读取0值和8方向的选项,
  8. #   是否读取0值和读取4方向或8方向均可在游戏运行时设定。
  9. #   如果你使用了八方向移动脚本,请将本脚本置于八方向脚本以下。
  10. #------------------------------------------------------------------------------
  11. #   2011-10-24 v1.0_4改  修复了移动的时候没有及时刷新地图的bug
  12. #   2011-10-24 v1.0_3改  扩充为8方向读取(可选)
  13. #   2011-10-24 v1.0_2改  完善注释,继续简化脚本,考虑到需要修改的
  14. #                        情况,将读取值设定由常量变更为全局变量。
  15. #   2011-10-24 v1.0_改   大幅简化脚本,新增是否读取0值的设定。
  16. #   2011-10-23 v1.0      原版 by 精灵使者
  17. #------------------------------------------------------------------------------
  18. #   数字的方向对应:(0表示无方向键按下)
  19. #   789 ↖↑↗
  20. #   406 ← →
  21. #   123 ↙↓↘
  22. #==============================================================================
  23. module LOCK_CHAR
  24.   # 开启脚本功能的开关编号
  25.   LOCK_SWITCH = 1
  26.   # 方向键值带入的变量编号
  27.   DIRECTION_VARIABLE = 1
  28.   # 读取值设定(1:读取所有值 2:读取除0的值)
  29.   $lock_char_read_type1 = 1
  30.   # 读取方向设定(4:四方向 8:八方向)
  31.   $lock_char_read_type2 = 8
  32. end
  33. #==============================================================================
  34. class Game_Player < Game_Character
  35.   #--------------------------------------------------------------------------
  36.   # ● 方向键移动处理
  37.   #--------------------------------------------------------------------------
  38.   alias old_move_by_input move_by_input
  39.   def move_by_input
  40. #==============================================================================
  41.     # 若开关被打开,本脚本开始工作
  42.     if $game_switches[LOCK_CHAR::LOCK_SWITCH]
  43.       # 读取4方向的情况
  44.       if $lock_char_read_type2 == 4
  45.         lock_char_read = Input.dir4
  46.       # 读取8方向的情况
  47.       elsif $lock_char_read_type2 == 8
  48.         lock_char_read = Input.dir8
  49.       end
  50.       # 将方向键操作带入变量
  51.       # 但脚本使用类型设为2且当前无按键按下(值为0)的情况除外
  52.       $game_variables[LOCK_CHAR::DIRECTION_VARIABLE] = lock_char_read unless lock_char_read == 0 and $lock_char_read_type1 == 2
  53.          #必要的情形刷新地图
  54.      $game_map.need_refresh = true
  55.          # 返回(不移动)
  56.       return
  57.     end
  58. #==============================================================================
  59.     old_move_by_input
  60.   end
  61. end
复制代码

点评

我是用公共事件来判断的....  发表于 2011-10-26 13:02
所以我才在主楼用自定义值  发表于 2011-10-24 15:44
没有键按下时值为零,因此我后面用了 unless Input.dir4 == 0  发表于 2011-10-24 15:17
各种压力的猫君 发表于 2011-10-24 03:07:38
本帖最后由 各种压力的猫君 于 2011-10-24 03:56 编辑

揪虫:下2左4右6上9 这里错了……上是8才对……

应该是终极进化版了 - - +
  1. #==============================================================================
  2. # ■ 锁定移动并读取方向键到变量 v1.0_3改
  3. #------------------------------------------------------------------------------
  4. #  创意:炽幻  原版:精灵使者 修改:各种压力的猫君
  5. #------------------------------------------------------------------------------
  6. #   改版特点:
  7. #   拥有原版的全部功能,并在此基础上扩展读取0值和8方向的选项,
  8. #   是否读取0值和读取4方向或8方向均可在游戏运行时设定。
  9. #   如果你使用了八方向移动脚本,请将本脚本置于八方向脚本以下。
  10. #------------------------------------------------------------------------------
  11. #   2011-10-24 v1.0_3改  扩充为8方向读取(可选)
  12. #   2011-10-24 v1.0_2改  完善注释,继续简化脚本,考虑到需要修改的
  13. #                        情况,将读取值设定由常量变更为全局变量。
  14. #   2011-10-24 v1.0_改   大幅简化脚本,新增是否读取0值的设定。
  15. #   2011-10-23 v1.0      原版 by 精灵使者
  16. #------------------------------------------------------------------------------
  17. #   数字的方向对应:(0表示无方向键按下)
  18. #   789 ↖↑↗
  19. #   406 ← →
  20. #   123 ↙↓↘
  21. #==============================================================================
  22. module LOCK_CHAR
  23.   # 开启脚本功能的开关编号
  24.   LOCK_SWITCH = 1
  25.   # 方向键值带入的变量编号
  26.   DIRECTION_VARIABLE = 1
  27.   # 读取值设定(1:读取所有值 2:读取除0的值)
  28.   $lock_char_read_type1 = 1
  29.   # 读取方向设定(4:四方向 8:八方向)
  30.   $lock_char_read_type2 = 8
  31. end
  32. #==============================================================================
  33. class Game_Player < Game_Character
  34.   #--------------------------------------------------------------------------
  35.   # ● 方向键移动处理
  36.   #--------------------------------------------------------------------------
  37.   alias old_move_by_input move_by_input
  38.   def move_by_input
  39. #==============================================================================
  40.     # 若开关被打开,本脚本开始工作
  41.     if $game_switches[LOCK_CHAR::LOCK_SWITCH]
  42.       # 读取4方向的情况
  43.       if $lock_char_read_type2 == 4
  44.         lock_char_read = Input.dir4
  45.       # 读取8方向的情况
  46.       elsif $lock_char_read_type2 == 8
  47.         lock_char_read = Input.dir8
  48.       end
  49.       # 将方向键操作带入变量
  50.       # 但脚本使用类型设为2且当前无按键按下(值为0)的情况除外
  51.       $game_variables[LOCK_CHAR::DIRECTION_VARIABLE] = lock_char_read unless lock_char_read == 0 and $lock_char_read_type1 == 2
  52.       # 返回(不移动)
  53.       return
  54.     end
  55. #==============================================================================
  56.     old_move_by_input
  57.   end
  58. end
复制代码
3改范例: 锁定移动并读取方向键到变量 v1.0_3改.zip (251.98 KB, 下载次数: 43)
即使没有使用8方向移动脚本依然可以读取8方向
2011-10-24 3:52:00 3改紧急修正:脚本51行“$lock_char_read_type”应为“$lock_char_read_type1”&注释的一处笔误。请重新复制脚本/下载范例。
另附:原版的精简版(不含注释仅14行),功能与原版完全一致
  1. #==============================================================================
  2. # ■ 锁定移动并读取方向键到变量 v1.0 精简版
  3. #------------------------------------------------------------------------------
  4. #  创意:炽幻  原版:精灵使者 精简:各种压力的猫君
  5. #------------------------------------------------------------------------------
  6. #   方向键值所代表的变量:下2左4右6上8。
  7. #==============================================================================
  8. module LOCK_CHAR
  9.   # 开启脚本功能的开关编号
  10.   LOCK_SWITCH = 1
  11.   # 方向键值带入的变量编号
  12.   DIRECTION_VARIABLE = 1
  13. end
  14. #==============================================================================
  15. class Game_Player < Game_Character
  16.   #--------------------------------------------------------------------------
  17.   # ● 方向键移动处理
  18.   #--------------------------------------------------------------------------
  19.   alias old_move_by_input move_by_input
  20.   def move_by_input
  21. #==============================================================================
  22.     # 若开关被打开,本脚本开始工作
  23.     if $game_switches[LOCK_CHAR::LOCK_SWITCH]
  24.       # 将方向键操作带入变量,值为0除外
  25.       $game_variables[LOCK_CHAR::DIRECTION_VARIABLE] = Input.dir4 unless Input.dir4 == 0
  26.       # 返回(不移动)
  27.       return
  28. #==============================================================================
  29.     end
  30.     old_move_by_input
  31.   end
  32. end
复制代码
时光机 发表于 2011-10-23 22:57:18
我这也有个方案,你看看如何XD

脚本源.rar

239.75 KB, 下载次数: 44

点评

已经在Q上讨论了恩  发表于 2011-10-23 23:23
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2025-6-19 10:42

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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