查看: 10643|回复: 11

[已经解决] 关于RM MV修改标题菜单界面的问题,想请教一下各位

[复制链接]
梦石
0
星屑
755
在线时间
4 小时
注册时间
2016-6-11
回帖
3
发表于 2016-6-11 11:20:57 | 显示全部楼层 |阅读模式

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

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

×
1.RM MV里面如何才能修改标题菜单界面?
2.标题菜单就只有三个选项,我想把它扩展到4个甚至5个以上的选项,但是,论坛里好多人都说,打开编辑器修改Scene_Title这一个选项里面的内容就行了,不过,如果在没有脚本编辑器的情况下该如何修改这一项?
(PS:但是,我在目录里面没有找到Scene_Title这个文件,在个人游戏的Project1/js/plugins中所有的js文件全是插件)
3.RM MV有没有专用,的脚本编辑器,下了好几个不能用的,还有那个RM专用的编辑器现在好像好久没更新了……上一次更新好像是在1月份……
4.萌新可以求个MV可用的脚本编辑器么?(他们都说MV的自带脚本编辑器早就没有了(?))(不是专用的,但是能用的就行了)
谢谢~
梦石
0
星屑
22879
在线时间
8598 小时
注册时间
2011-12-31
回帖
3270
发表于 2016-6-11 11:36:30 | 显示全部楼层
https://github.com/triacontane
[fold=AnotherNewGame][pre lang="javascript"]//=============================================================================
// AnotherNewGame.js
// ----------------------------------------------------------------------------
// Copyright (c) 2015 Triacontane
// This plugin is released under the MIT License.
// http://opensource.org/licenses/mit-license.php
// ----------------------------------------------------------------------------
// Version
// 1.1.0 2016/03/29 fftfanttさんからご提供いただいたコードを反映させ、アナザーニューゲーム選択時に
//                  既存のセーブファイルをロードする機能を追加
// 1.0.1 2015/11/10 プラグイン適用中にセーブできなくなる不具合を修正
// 1.0.0 2015/11/07 初版
// ----------------------------------------------------------------------------
// [Blog]   : http://triacontane.blogspot.jp/
// [Twitter]: https://twitter.com/triacontane/
// [GitHub] : https://github.com/triacontane/
//=============================================================================

/*:
* @plugindesc アナザーニューゲーム追加プラグイン
* @author トリアコンタン
*
* @param name
* @desc タイトル画面に表示されるコマンド名です。(文字列)
* @default Another New Game
*
* @param map_id
* @desc 移動先のマップIDです。(自然数)
* @default 1
*
* @param map_x
* @desc 移動先のX座標です。(自然数)
* @default 1
*
* @param map_y
* @desc 移動先のY座標です。(自然数)
* @default 1
*
* @param hidden
* @desc デフォルトで選択肢を非表示にします。プラグインコマンドで有効化できます。(ON/OFF)
* @default OFF
*
* @param disable
* @desc デフォルトで選択肢を選択禁止にします。プラグインコマンドで有効化できます。(ON/OFF)
* @default OFF
*
* @param file_load
* @desc アナザーニューゲーム選択時に、ロード画面に遷移して既存セーブデータをロードできるようになります。(ON/OFF)
* @default OFF
*
* @help タイトル画面のウィンドウの一番下に、もう一つのニューゲームを追加します。
* 選択すると、ニューゲームとは別に指定したマップに遷移します。
* クリア後のおまけやCG回想モード、スタッフクレジット、ミニゲーム、隠し要素など
* 使い手次第で様々な用途に使えます。
*
* 選択肢は、あらかじめ非表示あるいは選択禁止にしておくことができます。
* これらはプラグインコマンドから解除でき、解除状態はセーブファイルを
* 超えてゲーム全体で共有されます。解除した状態を再度、禁止にすることもできます。
*
* プラグインコマンド詳細
*   イベントコマンド「プラグインコマンド」から実行。
*
*  ANG_VISIBLE : アナザーニューゲームを表示にする。
*  ANG_ENABLE : アナザーニューゲームを選択可能にする。
*  ANG_HIDDEN : アナザーニューゲームを非表示にする。
*  ANG_DISABLE : アナザーニューゲームを選択禁止にする。
*
* 利用規約:
*  作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)
*  についても制限はありません。
*  このプラグインはもうあなたのものです。
*/
(function () {
    var parameters = PluginManager.parameters('AnotherNewGame');
    var localExtraStage = false;

    //=============================================================================
    // Game_Interpreter
    //  プラグインコマンド[ANG_VISIBLE]などを追加定義します。
    //=============================================================================
    var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
    Game_Interpreter.prototype.pluginCommand = function(command, args) {
        _Game_Interpreter_pluginCommand.call(this, command, args);
        switch (command.toUpperCase()) {
            case 'ANG_VISIBLE' :
                ANGSettingManager.visible = true;
                ANGSettingManager.save();
                break;
            case 'ANG_ENABLE' :
                ANGSettingManager.enable = true;
                ANGSettingManager.save();
                break;
            case 'ANG_HIDDEN' :
                ANGSettingManager.visible = false;
                ANGSettingManager.save();
                break;
            case 'ANG_DISABLE' :
                ANGSettingManager.enable = false;
                ANGSettingManager.save();
                break;
        }
    };

    //=============================================================================
    // Scene_Title
    //  アナザーニューゲームの選択時の処理を追加定義します。
    //=============================================================================
    var _Scene_Title_create = Scene_Title.prototype.create;
    Scene_Title.prototype.create = function() {
        this.loadAngSetting();
        _Scene_Title_create.call(this);
    };

    var _Scene_Title_commandContinue = Scene_Title.prototype.commandContinue;
    Scene_Title.prototype.commandContinue = function() {
        _Scene_Title_commandContinue.call(this);
        localExtraStage = false;
    };

    Scene_Title.prototype.loadAngSetting = function() {
        var angInfo = ANGSettingManager.load();
        ANGSettingManager.visible =
            angInfo['visible'] !== undefined ? angInfo['visible'] : parameters['hidden'].toUpperCase() !== "ON";
        ANGSettingManager.enable =
            angInfo['enable'] !== undefined ? angInfo['enable'] : parameters['disable'].toUpperCase() !== "ON";
    };

    Scene_Title.prototype.commandNewGameSecond = function() {
        if ((parameters['file_load'] || '').toUpperCase() !== 'ON') {
            var preMapId = $dataSystem.startMapId;
            var preStartX = $dataSystem.startX;
            var preStartY = $dataSystem.startY;
            $dataSystem.startMapId = parseInt(parameters['map_id'], 10) || 1;
            $dataSystem.startX     = parseInt(parameters['map_x'], 10)  || 1;
            $dataSystem.startY     = parseInt(parameters['map_y'], 10)  || 1;
            this.commandNewGame();
            $dataSystem.startMapId = preMapId;
            $dataSystem.startX     = preStartX;
            $dataSystem.startY     = preStartY;
        } else {
            this.commandContinue();
            localExtraStage = true;
        }
    };

    var _Scene_Title_createCommandWindow = Scene_Title.prototype.createCommandWindow;
    Scene_Title.prototype.createCommandWindow = function() {
        _Scene_Title_createCommandWindow.call(this);
        if (ANGSettingManager.visible)
            this._commandWindow.setHandler('nameGame2',  this.commandNewGameSecond.bind(this));
    };

    var _Scene_Load_onLoadSuccess = Scene_Load.prototype.onLoadSuccess;
    Scene_Load.prototype.onLoadSuccess = function() {
        _Scene_Load_onLoadSuccess.call(this);
        if (localExtraStage) {
            var mapId = parseInt(parameters['map_id'], 10) || 1;
            var x = parseInt(parameters['map_x'], 10)  || 1;
            var y = parseInt(parameters['map_y'], 10)  || 1;
            $gamePlayer.reserveTransfer(mapId, x, y);
            DataManager.selectSavefileForNewGame();
        }
    };

    //=============================================================================
    // Window_TitleCommand
    //  アナザーニューゲームの選択肢を追加定義します。
    //=============================================================================
    var _Window_TitleCommand_makeCommandList = Window_TitleCommand.prototype.makeCommandList;
    Window_TitleCommand.prototype.makeCommandList = function() {
        _Window_TitleCommand_makeCommandList.call(this);
        if (ANGSettingManager.visible) this.addCommand(parameters['name'], 'nameGame2', ANGSettingManager.enable);
    };

    var _Window_TitleCommand_updatePlacement = Window_TitleCommand.prototype.updatePlacement;
    Window_TitleCommand.prototype.updatePlacement = function() {
        _Window_TitleCommand_updatePlacement.call(this);
        if (ANGSettingManager.visible) this.y += this.height / 8;
    };

    //=============================================================================
    // ANGManager
    //  アナザーニューゲームの設定ファイルのセーブとロードを定義します。
    //=============================================================================
    function ANGSettingManager() {
        throw new Error('This is a static class');
    }

    ANGSettingManager.visible = false;
    ANGSettingManager.enable  = false;

    ANGSettingManager.make = function() {
        var info = {};
        info.visible = ANGSettingManager.visible;
        info.enable = ANGSettingManager.enable;
        return info;
    };

    ANGSettingManager.load = function() {
        var json;
        try {
            json = StorageManager.load(-1001);
        } catch (e) {
            console.error(e);
            return [];
        }
        if (json) {
            return JSON.parse(json);
        } else {
            return [];
        }
    };

    ANGSettingManager.save = function() {
        var info = ANGSettingManager.make();
        StorageManager.save(-1001, JSON.stringify(info));
    };

    //=============================================================================
    // StorageManager
    //  アナザーニューゲームの設定ファイルのパス取得処理を追加定義します。
    //=============================================================================
    var _StorageManager_localFilePath = StorageManager.localFilePath;
    StorageManager.localFilePath = function(savefileId) {
        if (savefileId === -1001) {
            return this.localFileDirectoryPath() + 'AnotherNewGame.rpgsave';
        } else {
            return _StorageManager_localFilePath.call(this, savefileId);
        }
    };

    var _StorageManager_webStorageKey = StorageManager.webStorageKey;
    StorageManager.webStorageKey = function(savefileId) {
        if (savefileId === -1001) {
            return 'RPG AnotherNewGame';
        } else {
            return _StorageManager_webStorageKey.call(this, savefileId);
        }
    };
})();[/pre][/fold].js       

                       
回复

使用道具 举报

梦石
2
星屑
34497
在线时间
614 小时
注册时间
2014-7-18
回帖
647

MZ评测员开拓者

发表于 2016-6-11 11:39:59 | 显示全部楼层
1.2.等中考完再说
3.没有专用的脚本编辑器
4.上网搜索notepad++,就能编辑,如果有VS2015的话也行
回复

使用道具 举报

梦石
0
星屑
755
在线时间
4 小时
注册时间
2016-6-11
回帖
3
 楼主| 发表于 2016-6-11 12:06:28 | 显示全部楼层
tseyik 发表于 2016-6-11 11:36
https://github.com/triacontane
[fold=AnotherNewGame]//============================================== ...

能详细一点说明么?谢谢~
回复

使用道具 举报

梦石
0
星屑
153
在线时间
723 小时
注册时间
2014-4-10
回帖
126
发表于 2016-6-11 15:00:26 | 显示全部楼层
sublime_text 3
回复

使用道具 举报

梦石
0
星屑
755
在线时间
4 小时
注册时间
2016-6-11
回帖
3
 楼主| 发表于 2016-6-11 15:05:24 | 显示全部楼层
本帖最后由 岚空杨明 于 2016-6-11 15:09 编辑
米大湿 发表于 2016-6-11 15:00
sublime_text 3


回复太模糊了……萌新表示看不懂……QWQ
而且,问题是,论坛里搜索出来,大部分人都说要用脚本改这个Scene_Title文件,可是开了脚本编辑器之后目录里根本就没有这个东西……查也查不到。
所以能够问一下这个文件Scene_Title在哪一个目录里面么?还是说MV里面把这个文件给改名了?QWQ
回复

使用道具 举报

梦石
0
星屑
153
在线时间
723 小时
注册时间
2014-4-10
回帖
126
发表于 2016-6-11 16:01:14 | 显示全部楼层
Scene_Title在 rpg_scene.js里 229行开始

点评

我這邊打開看228後面有一大段都不像TITLE相關的  发表于 2022-10-17 21:33
回复

使用道具 举报

梦石
0
星屑
80
在线时间
386 小时
注册时间
2007-7-27
回帖
4075

开拓者

发表于 2016-6-11 16:25:42 | 显示全部楼层
不不 不要直接改原来的js
写的新方法直接覆盖比较好
吸吸
回复

使用道具 举报

梦石
0
星屑
755
在线时间
4 小时
注册时间
2016-6-11
回帖
3
 楼主| 发表于 2016-6-12 06:31:02 | 显示全部楼层
trentswd 发表于 2016-6-11 16:25
不不 不要直接改原来的js
写的新方法直接覆盖比较好

写新的直接覆盖?可是我的文件里没有Scene_Title,不知道新建文件后改掉会不会发生改变……
回复

使用道具 举报

梦石
0
星屑
6830
在线时间
1251 小时
注册时间
2011-12-18
回帖
1127
发表于 2022-10-17 21:07:59 | 显示全部楼层
本帖最后由 sdgn 于 2022-10-17 21:28 编辑

說起來MV預設腳本的 TITLE 菜單 要怎麼改?
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部