効果音追加
by
cutfloss
2 hours ago [2026/05/07 23:23:57]
キル時、ゲーム開始・終了時などに短い効果音が鳴るようになるぞっ
@@ -4,6 +4,7 @@
* @private
*/
javascript:(function(){
+ const d=document;
/* 1. 音源定義とプリロード */
const S_URL = {
s: 'https://actions.google.com/sounds/v1/alarms/beep_short.ogg',
@@ -13,61 +14,50 @@
};
const S = {};
- for (let key in S_URL) {
- S[key] = new Audio(S_URL[key]);
- S[key].preload = 'auto'; /* 事前にダウンロードしてメモリに置く */
+ for (let k in S_URL) {
+ S[k] = new Audio(S_URL[k]);
+ S[k].preload = 'auto';
}
- /* 再生関数:ラグを消すために currentTime = 0 を指定 */
- const play = (audio, duration) => {
- if (!audio) return;
- audio.volume = 0.5;
- audio.currentTime = 0; /* 再生位置を瞬時に頭に戻す */
- audio.play().catch(()=>{});
-
- /* 音の長さを制限する場合(ミリ秒で指定) */
- if (duration) {
- setTimeout(() => {
- audio.pause();
- audio.currentTime = 0;
- }, duration);
+ /* 再生関数(ラグ対策:0秒に戻して再生) */
+ const play = (a, dur) => {
+ if (!a) return;
+ a.volume = 0.5;
+ a.currentTime = 0;
+ a.play().catch(()=>{});
+ if (dur) setTimeout(() => { a.pause(); a.currentTime = 0; }, dur);
+ };
+
+ /* 2. キル音の判定(addKillFeedを監視) [cite: 397] */
+ const _ok = window.addKillFeed;
+ window.addKillFeed = (msg) => {
+ const me = players.find(p => p.id === myId);
+ /* メッセージに自分の名前が含まれていれば再生 [cite: 528, 895] */
+ if (me && me.name && msg.includes(me.name)) {
+ play(S.k);
}
+ return _ok(msg);
};
- /* 2. キル音の最速化(キルフィードではなく、killsの数値を監視) */
- let lastKills = 0;
+ /* 3. スタート・復活・死亡の監視 [cite: 686-691] */
+ let last = 'waiting';
const _ol = window.loop;
- let lastState = 'waiting';
-
window.loop = () => {
const me = players.find(p => p.id === myId);
if (me) {
- /* キル数の増加を検知(フィード表示より早い) */
- const currentKills = me.kills || 0;
- if (currentKills > lastKills) {
- play(S.k);
- lastKills = currentKills;
- }
-
- /* 復活・スタート */
- if (lastState !== 'active' && me.state === 'active') {
- play(S.s);
- }
- /* 死亡 */
- else if (lastState === 'active' && (me.state === 'dead' || me.state === 'ghost')) {
- play(S.d);
- }
- lastState = me.state;
+ if (last !== 'active' && me.state === 'active') play(S.s);
+ else if (last === 'active' && (me.state === 'dead' || me.state === 'ghost')) play(S.d);
+ last = me.state;
}
return _ol();
};
- /* 3. リザルト音(長さを3000ms = 3秒に制限) */
+ /* 4. ラウンド終了音 [cite: 411, 453] */
const _or = window.showResultScreen;
window.showResultScreen = function() {
- play(S.e, 3000); /* 3秒経ったら強制終了 */
+ play(S.e, 3000); /* 3秒でカット */
return _or.apply(this, arguments);
};
- alert('【サウンドパッチ・プロ】\n・低遅延ロード完了\n・キル音最速化\n・エンド音長調整済み');
+ alert('【サウンドパッチ:キル音復活版】\n自分の名前を含むキルメッセージに反応します。');
})();
/*
* @title 効果音追加
* @description キル時、ゲーム開始・終了時などに短い効果音が鳴るようになるぞっ
* @private
*/
javascript:(function(){
const d=document;
/* 1. 音源定義とプリロード */
const S_URL = {
s: 'https://actions.google.com/sounds/v1/alarms/beep_short.ogg',
k: 'https://actions.google.com/sounds/v1/cartoon/pop.ogg',
d: 'https://actions.google.com/sounds/v1/science_fiction/glitch_low_power.ogg',
e: 'https://actions.google.com/sounds/v1/alarms/digital_watch_alarm_long.ogg'
};
const S = {};
for (let k in S_URL) {
S[k] = new Audio(S_URL[k]);
S[k].preload = 'auto';
}
/* 再生関数(ラグ対策:0秒に戻して再生) */
const play = (a, dur) => {
if (!a) return;
a.volume = 0.5;
a.currentTime = 0;
a.play().catch(()=>{});
if (dur) setTimeout(() => { a.pause(); a.currentTime = 0; }, dur);
};
/* 2. キル音の判定(addKillFeedを監視) [cite: 397] */
const _ok = window.addKillFeed;
window.addKillFeed = (msg) => {
const me = players.find(p => p.id === myId);
/* メッセージに自分の名前が含まれていれば再生 [cite: 528, 895] */
if (me && me.name && msg.includes(me.name)) {
play(S.k);
}
return _ok(msg);
};
/* 3. スタート・復活・死亡の監視 [cite: 686-691] */
let last = 'waiting';
const _ol = window.loop;
window.loop = () => {
const me = players.find(p => p.id === myId);
if (me) {
if (last !== 'active' && me.state === 'active') play(S.s);
else if (last === 'active' && (me.state === 'dead' || me.state === 'ghost')) play(S.d);
last = me.state;
}
return _ol();
};
/* 4. ラウンド終了音 [cite: 411, 453] */
const _or = window.showResultScreen;
window.showResultScreen = function() {
play(S.e, 3000); /* 3秒でカット */
return _or.apply(this, arguments);
};
alert('【サウンドパッチ:キル音復活版】\n自分の名前を含むキルメッセージに反応します。');
})();
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。