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

Project1

 找回密码
 注册会员
搜索
查看: 92|回复: 4

[有事请教] 关于VIPArcher脚步声两步一声的问题

[复制链接]

Lv2.观梦者

梦石
0
星屑
254
在线时间
56 小时
注册时间
2013-1-22
帖子
13
发表于 2020-2-8 10:58:20 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 粉粉粉粉粉 于 2020-2-8 11:05 编辑

https://rpg.blue/thread-371589-1-1.html
  1. #==============================================================================
  2. # +++ 足音 v1.1 +++
  3. # By:VIPArcher [email: VIPArcher@sina.com]
  4. #  -- 本腳本來自 https://rpg.blue/ 使用或轉載請保留以上信息。
  5. #==============================================================================
  6. # v1.1 刪掉一些不必要的語句
  7. # v1.0 完成基礎腳本
  8. #==============================================================================
  9. #
  10. # 設定玩家在不同地形標志移動時不同的腳步聲
  11. #
  12. # 如果不想用地形標志來判斷,想用區域ID的話就把腳本倒數第9行?
  13. # $game_player.terrain_tag 改成 $game_player.region_id
  14. #
  15. # 腳步聲的素材名稱命名是有一定規則的。例如Step0_0
  16. # "Step"+地形標志ID+"_"+隨機編號(0-3)
  17. # 腳步聲素材每組4枚。例如地形標志爲2的腳步聲
  18. # 就命名爲[Step2_0.ogg;Step2_1.ogg;Step2_2.ogg;Step2_3.ogg]
  19. # 也可以設置一些區域是沒有腳步聲的。
  20. # 效果的開關可以通過控制設置的開關進行控制
  21. #
  22. #==============================================================================
  23. $VIPArcherScript ||= {};$VIPArcherScript[:footsound] = 20140909
  24. #-------------------------------------------------------------------------------
  25. module VIPArcher end
  26. #==============================================================================
  27. # ★ 設定部分 ★
  28. #==============================================================================
  29. module VIPArcher::FOOTSOUND
  30.   SW = 1           #關閉腳步聲開關編號 打開此開關不播放腳步聲
  31.   NOSOUND = [0,1]   #沒有腳步聲的地形標志 / 區域ID
  32.   SOUNDURL = "Audio/SE/Footsound/" #腳本聲素材路徑
  33.   EVENT_NOTE = "<play_footsound>"  #事件頁中備注該字符串的事件移動時播放腳步聲
  34.   DISTANCE = 15 #距離玩家多遠不播放腳步聲
  35.   VOL = 50     #音量
  36.   PITCH = 100  #音調
  37. end
  38. #==============================================================================
  39. # ☆ 設定結束 ☆
  40. #==============================================================================
  41. class Game_CharacterBase
  42.   include VIPArcher::FOOTSOUND
  43.   #--------------------------------------------------------------------------
  44.   # ● 角色移動一步時的處理
  45.   #--------------------------------------------------------------------------
  46.   alias vip_20140909_increase_steps increase_steps
  47.   def increase_steps
  48.     vip_20140909_increase_steps
  49.     foot_sound_play
  50.   end
  51.   #--------------------------------------------------------------------------
  52.   # ● 播放腳步聲  #要用區域ID就改成 tag = region_id
  53.   #--------------------------------------------------------------------------
  54.   def foot_sound_play
  55.     @foot_sound_val ||= VOL
  56.     tag = terrain_tag
  57.     return if NOSOUND.include?(tag)
  58.     return unless play_footsound?
  59.     Audio.se_play("#{SOUNDURL}Step#{tag}_#{rand(4)}",
  60.       @foot_sound_val,  PITCH) if @step_off
  61.     @step_off ^= true #這裏只是爲了每2步才播放一次腳本聲
  62.   end
  63.   #--------------------------------------------------------------------------
  64.   # ● 是否播放腳步聲
  65.   #--------------------------------------------------------------------------
  66.   def play_footsound?
  67.     return false if $game_switches[SW]
  68.     @list.each do |command|
  69.       if command.code == 108 || command.code == 408
  70.         @foot_sound_val = VOL - VOL * foot_sound_distance
  71.         return true if command.parameters.include?(EVENT_NOTE)
  72.       end
  73.     end if is_a?(Game_Event)
  74.     return true
  75.   end
  76.   #--------------------------------------------------------------------------
  77.   # ● 與玩家的距離控制腳步音量
  78.   #--------------------------------------------------------------------------
  79.   def foot_sound_distance
  80.     distance = ($game_player.x - @x).abs + ($game_player.y - @y).abs
  81.     [[(distance - 1) / DISTANCE.to_f, 0].max, 1.0].min
  82.   end
  83. end
复制代码

我在场景切换前后可能一步播放一次 也可能两步播放一次 似乎是随机的……建了一个新的工程单独使用这个脚本也是这样求助出了什么问题 要如何修改


Lv3.寻梦者

梦石
0
星屑
1519
在线时间
173 小时
注册时间
2019-10-22
帖子
200
发表于 2020-2-9 08:39:40 | 显示全部楼层
可能直接私信版主会比较快  他会看你私信的
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
254
在线时间
56 小时
注册时间
2013-1-22
帖子
13
 楼主| 发表于 2020-2-9 12:05:01 | 显示全部楼层
坏数据 发表于 2020-2-9 08:39
可能直接私信版主会比较快  他会看你私信的

好的谢谢
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6141
在线时间
447 小时
注册时间
2017-9-28
帖子
173
发表于 2020-2-9 17:39:29 | 显示全部楼层
因为看不见人影的 Game_Follower(跟随者)也触发了这个脚本,导致主角走一步实际上是会触发四个人的足音(默认脚本的情况下)。
如果你的游戏主角只有一个人或者不考虑跟随者足音,可以简单将 49 行改为
  1. foot_sound_play unless is_a? Game_Follower
复制代码

如果你需要考虑跟随者存在时才触发,那么稍微复杂一点:
  1. foot_sound_play if !(is_a? Game_Follower) || visible?
复制代码

点评

非常感谢!!  发表于 2020-2-9 20:12

评分

参与人数 1+1 收起 理由
粉粉粉粉粉 + 1

查看全部评分

喵喵喵
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

站长信箱:fux2@moe9th.com|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2020-2-29 03:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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