Project1
标题:
关于VIPArcher脚步声两步一声的问题
[打印本页]
作者:
粉粉粉粉粉
时间:
2020-2-8 10:58
标题:
关于VIPArcher脚步声两步一声的问题
本帖最后由 粉粉粉粉粉 于 2020-2-8 11:05 编辑
https://rpg.blue/thread-371589-1-1.html
#==============================================================================
# +++ 足音 v1.1 +++
# By:VIPArcher [email:
[email protected]
]
# -- 本腳本來自 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
复制代码
我在场景切换前后可能一步播放一次 也可能两步播放一次 似乎是随机的……建了一个新的工程单独使用这个脚本也是这样求助出了什么问题 要如何修改
作者:
坏数据
时间:
2020-2-9 08:39
可能直接私信版主会比较快 他会看你私信的
作者:
粉粉粉粉粉
时间:
2020-2-9 12:05
坏数据 发表于 2020-2-9 08:39
可能直接私信版主会比较快 他会看你私信的
好的谢谢
作者:
hyrious
时间:
2020-2-9 17:39
因为看不见人影的 Game_Follower(跟随者)也触发了这个脚本,导致主角走一步实际上是会触发四个人的足音(默认脚本的情况下)。
如果你的游戏主角只有一个人或者不考虑跟随者足音,可以简单将 49 行改为
foot_sound_play unless is_a? Game_Follower
复制代码
如果你需要考虑跟随者存在时才触发,那么稍微复杂一点:
foot_sound_play if !(is_a? Game_Follower) || visible?
复制代码
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1