查看: 3035|回复: 1

[VIPArcher] 【脚步声】——为游戏增加真实感

[复制链接]

无限の剣制

梦石
0
星屑
10445
在线时间
5019 小时
注册时间
2013-2-28
回帖
4942

开拓者贵宾

发表于 2014-9-19 02:28:37 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 VIPArcher 于 2018-12-1 21:58 编辑

https://raw.githubusercontent.co ... 8%B6%B3%E9%9F%B3.rb
[pre lang="ruby"]#==============================================================================
# +++ 足音 v1.1 +++
# By:VIPArcher [email: VIPArcher@sina.com]
#  -- 本脚本来自 https://rpg.blue/ 使用或转载请保留以上信息。
#==============================================================================
# v1.1 删掉一些不必要的语句
# v1.0 完成基础脚本
#==============================================================================
#
# 设定玩家在不同地形标志移动时不同的脚步声
#
# 如果不想用地形标志来判断,想用区域ID的话就把脚本倒数第9行?
# $game_player.terrain_tag 改成 $game_player.region_id
#
# 脚步声的素材名称命名是有一定规则的。例如Step0_0
# "Step"+地形标志ID+"_"+随机编号(0-3)
# 脚步声素材每组4枚。例如地形标志为2的脚步声
# 就命名为[Step2_0.ogg;Step2_1.ogg;Step2_2.ogg;Step2_3.ogg]
# 也可以设置一些区域是没有脚步声的。
# 效果的开关可以通过控制设置的开关进行控制
#
#==============================================================================
$VIPArcherScript ||= {};$VIPArcherScript[:footsound] = 20140909
#-------------------------------------------------------------------------------
module VIPArcher end
#==============================================================================
# ★ 设定部分 ★
#==============================================================================
module VIPArcher::FOOTSOUND
  SW = 1           #关闭脚步声开关编号 打开此开关不播放脚步声
  NOSOUND = [0,1]   #没有脚步声的地形标志 / 区域ID
  SOUNDURL = "Audio/SE/Footsound/" #脚本声素材路径
  EVENT_NOTE = "<play_footsound>"  #事件页中备注该字符串的事件移动时播放脚步声
  DISTANCE = 15 #距离玩家多远不播放脚步声
  VOL = 50     #音量
  PITCH = 100  #音调
end
#==============================================================================
# ☆ 设定结束 ☆
#==============================================================================
class Game_CharacterBase
  include VIPArcher::FOOTSOUND
  #--------------------------------------------------------------------------
  # ● 角色移动一步时的处理
  #--------------------------------------------------------------------------
  alias vip_20140909_increase_steps increase_steps
  def increase_steps
    vip_20140909_increase_steps
    foot_sound_play
  end
  #--------------------------------------------------------------------------
  # ● 播放脚步声  #要用区域ID就改成 tag = region_id
  #--------------------------------------------------------------------------
  def foot_sound_play
    @foot_sound_val ||= VOL
    tag = terrain_tag
    return if NOSOUND.include?(tag)
    return unless play_footsound?
    Audio.se_play("#{SOUNDURL}Step#{tag}_#{rand(4)}",
      @foot_sound_val,  PITCH) if @step_off
    @step_off ^= true #这里只是为了每2步才播放一次脚本声
  end
  #--------------------------------------------------------------------------
  # ● 是否播放脚步声
  #--------------------------------------------------------------------------
  def play_footsound?
    return false if $game_switches[SW]
    @list.each do |command|
      if command.code == 108 || command.code == 408
        @foot_sound_val = VOL - VOL * foot_sound_distance
        return true if command.parameters.include?(EVENT_NOTE)
      end
    end if is_a?(Game_Event)
    return true
  end
  #--------------------------------------------------------------------------
  # ● 与玩家的距离控制脚步音量
  #--------------------------------------------------------------------------
  def foot_sound_distance
    distance = ($game_player.x - @x).abs + ($game_player.y - @y).abs
    [[(distance - 1) / DISTANCE.to_f, 0].max, 1.0].min
  end
end[/pre]
梦石
0
星屑
2295
在线时间
21 小时
注册时间
2015-8-16
回帖
4
发表于 2015-10-17 16:20:11 | 显示全部楼层
QWQ....楼主请问想改成每1步就播放一次脚本声应该怎么改???!!

点评

52行后面的 if @step_off 删掉  发表于 2015-10-17 21:48
回复

使用道具 举报

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

在本发帖返回顶部