查看: 1926|回复: 3

[有事请教] 可以更改特定的选项光标声音吗

[复制链接]
梦石
0
星屑
799
在线时间
81 小时
注册时间
2018-3-27
回帖
21
发表于 2023-3-6 14:41:34 | 显示全部楼层 |阅读模式

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

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

×
在制作一个特定事件里面的选项,不想出现系统的确定和光标声音,请问如何更改
梦石
2
星屑
8479
在线时间
463 小时
注册时间
2021-12-4
回帖
486

MZ评测员

发表于 2023-3-6 17:13:08 | 显示全部楼层
SoundManager.playSystemSound = function (n) {
    if ($dataSystem) AudioManager.playStaticSe($dataSystem.sounds[n])
}
SoundManager.playCursor = function () { this.playSystemSound(0) }
SoundManager.playOk = function () { this.playSystemSound(1) }
SoundManager.playCancel = function () { this.playSystemSound(2) }
SoundManager.playBuzzer = function () { this.playSystemSound(3) }
这段代码位于rpg_managers.js第1550行左右,所有的系统音效都是通过类似的函数播放的(共24个)。
选择项界面用到的是其中前四个:0(光标)、1(确定)、2(取消)、3(无法选中)。
因此只要在里面对$gameVariables【变量】、$gameSwitches【开关】、$gameParty【队伍属性】等进行if判断,就可以在特定场合播放其他声效或者不播放任何声效。
播放其他任意声效的代码是 AudioManager.playSe({ name: 'xxx', volume: v, pitch: p })
其中xxx为不带后缀的文件名,v为0到100的音量,p为50到150的音调。

举个例子,当队伍金钱达到10000以上时光标移动的声效改为Blind。
SoundManager.playCursor = function () {
    if ($gameParty._gold >= 10000)
        AudioManager.playSe({ name: 'Blind', volume: 100, pitch: 100 })
    else
        this.playSystemSound(0)
}
回复

使用道具 举报

梦石
0
星屑
799
在线时间
81 小时
注册时间
2018-3-27
回帖
21
 楼主| 发表于 2023-3-7 21:23:55 | 显示全部楼层
小秋橙 发表于 2023-3-6 17:13
SoundManager.playSystemSound = function (n) {
    if ($dataSystem) AudioManager.playStaticSe($dataSy ...

如果是不播放声效呢
回复

使用道具 举报

梦石
2
星屑
8479
在线时间
463 小时
注册时间
2021-12-4
回帖
486

MZ评测员

发表于 2023-3-8 11:27:01 | 显示全部楼层
river12 发表于 2023-3-7 21:23
如果是不播放声效呢

SoundManager.playCursor = function () {
    if ($gameParty._gold >= 10000) {
        // AudioManager.playSe({ name: 'Blind', volume: 100, pitch: 100 })
    } else {
        this.playSystemSound(0)
    }
}
那可以像这样用花括号括起来,再用 // 注释掉就不会执行了。

评分

参与人数 1赞 +1 收起 理由
river12 + 1 认可答案

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部