使用ソフトウェア: Rpgmaker MV
みなさん、こんにちは!RPGツクールMVのタイトル画面にウェブサイトへのリンク(例:patreon)を挿入する方法を探しています。
Yanfly External Links プラグインを試しましたが(タイトル画面にボタンを追加し、リンクを付与できる機能があります)、以下の2点に気づきました。
- リンクがブラウザではなくRPGツクール内で開く。
- リンクをクリックすると、ウェブサイトのコンテンツが表示されるのではなく、永久に読み込み中のように見える。
他のコンピュータでも同じ結果になりましたが、一時的な解決策を見つけました。
次のスクリプトを実行すると、使用しているリンクがブラウザで開きかつ瞬時にロードされます。
game_website = 'https://www.patreon.com/cw/Degspart'
require('nw.gui').Shell.openExternal(game_website);
しかし、このスクリプトを呼び出して目的の結果を得られるような、別のタイトル画面用ボタンを追加する方法がわかりません。
タイトル画面に新しいボタンを追加しつつ、まさにこのスクリプトを呼び出すことができるプラグインやコードをご存知の方はいらっしゃいますか?
ご指南いただければ幸いです!
また、この投稿で翻訳ボタンを正しく使用しているかどうかについても、お知らせください。フォーラムのガイドラインを完全に理解できていなかったためです。
Baz
2
小さなプラグインで解決できると思います。これをプロジェクトの js/plugins フォルダに TitleWebLink.js という名前で保存し、プラグインマネージャーで有効にしてください:
/*:
* @plugindesc タイトル画面にウェブサイトをプレイヤーのブラウザで開くコマンドを追加します。
* @author Baz
*
* @param コマンド名
* @desc タイトル画面に表示されるテキストです。
* @default Patreon
*
* @param URL
* @desc 開くウェブサイトです。
* @default https://www.patreon.com/cw/Degspart
*/
(function() {
var params = PluginManager.parameters('TitleWebLink');
var commandName = String(params['コマンド名'] || 'ウェブサイト');
var url = String(params['URL'] || '');
var _makeCommandList = Window_TitleCommand.prototype.makeCommandList;
Window_TitleCommand.prototype.makeCommandList = function() {
_makeCommandList.call(this);
this.addCommand(commandName, 'webLink');
};
var _createCommandWindow = Scene_Title.prototype.createCommandWindow;
Scene_Title.prototype.createCommandWindow = function() {
_createCommandWindow.call(this);
this._commandWindow.setHandler('webLink', this.commandWebLink.bind(this));
};
Scene_Title.prototype.commandWebLink = function() {
if (Utils.isNwjs()) {
require('nw.gui').Shell.openExternal(url);
} else {
window.open(url, '_blank');
}
this._commandWindow.activate();
};
})();
プラグインのパラメータを変更することで、ボタンのテキストとリンク先を変更できます。これはあなたが確認した openExternal と同じ呼び出しを行うため、プレイヤーのブラウザで開くはずです。これで追加されたら、重複してボタンが2つ表示されないようにするために「YEP External Links」を無効にしておきましょう。
あなたの投稿も良いですね。フォーラムは他の読者のために翻訳処理を行いますので、英語で書くだけで大丈夫です。
これで動きました!ここでのご専門知識に大変感謝いたします。よろしければ、プログラミングの支援に対してプロジェクトのクレジットにご名前を追加させていただきます。