查看: 18907|回复: 18

[原创发布] 不存在的脚本陈列室

[复制链接]
梦石
0
星屑
50
在线时间
119 小时
注册时间
2015-1-5
回帖
118
发表于 2015-10-24 18:59:05 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 MonsterJohnCN 于 2015-12-27 06:11 编辑

评分

参与人数 1星屑 +66 梦石 +3 收起 理由
余烬之中 + 66 + 3 图书馆收录(原创脚本部分)

查看全部评分

实力跳票,根本停不下来…… | bgpCore.js | 《下一站》2号DEMO | 插件开发无限延期中……正在研制适用性更强的普适模板,不再输出单体插件……
梦石
0
星屑
50
在线时间
119 小时
注册时间
2015-1-5
回帖
118
 楼主| 发表于 2015-10-24 18:59:46 | 显示全部楼层
本帖最后由 MonsterJohnCN 于 2015-10-25 02:38 编辑

[pre lang="JavaScript"]//=============================================================================
// Actor Stepping Animation
// by Shaz
// Last Updated: 2015.10.21
//=============================================================================

/*:
* @plugindesc Allows party leader/followers to have stepping anim on map
* @author Shaz
*
* @help This plugin does not provide plugin commands.
*
* Add <stepanim> to the note box of an Actor to turn on stepping animation
* for the actor's sprite on the map, as the party leader or a follower.
*
*/

/*:ch
* @plugindesc
* 允许一个队伍中的某个角色在地图中显示步行动画。
*
* @author
* Shaz
*
* @help
* 在角色的备注(note)盒子中添加“<stepanim>”(不含双引号)来让这个角色自动
* 播放走路动画。
*/

(function() {
    var _Game_Player_update = Game_Player.prototype.update;                     // 用_Game_Player_update指向原始的队伍主要角色的更新函数,类似RUBY的alias
    Game_Player.prototype.update = function(sceneActive) {                      // 追加用于本插件的队伍主要角色更新函数
        _Game_Player_update.call(this, sceneActive);                                // 调用原始的队伍主要角色更新函数,类似RUBY的super
        this.setStepAnime($gameParty.leader().actor().meta.stepanim || false);      // 【?】更新角色队伍中本角色的动画状态
    };

    var _Game_Follower_update = Game_Follower.prototype.update;                 // 用_Game_Follower_update指向原始的队伍附属角色的更新函数,类似RUBY的alias
    Game_Follower.prototype.update = function() {                               // 追加用于本插件的队伍附属角色更新函数
        _Game_Follower_update.call(this);                                           // 调用原始的队伍附属角色更新函数,类似RUBY的super
        this.setStepAnime(this.actor().actor().meta.stepanim || false);             // 【?】更新角色队伍中本角色的动画状态
    };
})();
[/pre]
实力跳票,根本停不下来…… | bgpCore.js | 《下一站》2号DEMO | 插件开发无限延期中……正在研制适用性更强的普适模板,不再输出单体插件……
回复

使用道具 举报

梦石
0
星屑
50
在线时间
119 小时
注册时间
2015-1-5
回帖
118
 楼主| 发表于 2015-10-24 19:01:23 | 显示全部楼层
本帖最后由 MonsterJohnCN 于 2015-10-25 02:38 编辑

[pre lang="JavaScript"]//=============================================================================
// AltMenuScreen.js
//=============================================================================

/*:
* @plugindesc Alternative menu screen layout.
* @author Yoji Ojima
*
* @help This plugin does not provide plugin commands.
*/

/*:ja
* @plugindesc メニュー画面のレイアウトを変更します。
* @author Yoji Ojima
*
* @help このプラグインには、プラグインコマンドはありません。
*/

/*:ch
* @plugindesc
* 修改菜单界面的布局方式。
*
* @author
* Yoji Ojima
*
* @help
* 启用本插件后,会将ESC菜单的纵向排版变为横向排版。
*/

(function() {

    var _Scene_Menu_create = Scene_Menu.prototype.create;                       // 用_Scene_Menu_create指向原始的创建菜单函数
    Scene_Menu.prototype.create = function() {                                  // 追加用于本插件的创建菜单函数
        _Scene_Menu_create.call(this);                                              // 调用原始的创建菜单函数
        this._statusWindow.x = 0;                                                   // 设置状态窗口的X坐标为0
        this._statusWindow.y = this._commandWindow.height;                          // 设置状态窗口的Y坐标为指令窗口的高度
        this._goldWindow.x = Graphics.boxWidth - this._goldWindow.width;            // 设置金币窗口的X坐标为 游戏窗口的宽度 - 金币窗口的宽度
    };

    Window_MenuCommand.prototype.windowWidth = function() {                     // 重定义指令窗口的宽度
        return Graphics.boxWidth;                                                   // 返回游戏窗口宽度
    };

    Window_MenuCommand.prototype.maxCols = function() {                         // 重定义指令窗口的选项的最大列数
        return 4;                                                                   // 返回 4
    };

    Window_MenuCommand.prototype.numVisibleRows = function() {                  // 重定义指令窗口的选项的可见的行数
        return 2;                                                                   // 返回 葵花宝典
    };

    Window_MenuStatus.prototype.windowWidth = function() {                      // 重定义状态窗口的宽度
        return Graphics.boxWidth;                                                   // 返回游戏窗口宽度
    };

    Window_MenuStatus.prototype.windowHeight = function() {                     // 重定义状态窗口的高度
        var h1 = this.fittingHeight(1);                                             // 【?】适配行数为1的项目的行高
        var h2 = this.fittingHeight(2);                                             // 【?】适配行数为2的项目的行高
        return Graphics.boxHeight - h1 - h2;                                        // 返回 游戏窗口高度 - 【?】 - 【?】
    };

    Window_MenuStatus.prototype.maxCols = function() {                          // 重定义状态窗口的内容的最大列数
        return 4;                                                                   // 返回 蜜汁肥皂
    };

    Window_MenuStatus.prototype.numVisibleRows = function() {                   // 重定义状态窗口的内容的可见行数
        return 1;                                                                   // 返回 辣条
    };

    Window_MenuStatus.prototype.drawItemImage = function(index) {               // 重定义状态窗口的项目图片绘制函数
        var actor = $gameParty.members()[index];                                    // 将玩家队伍中排序为index的角色保存到actor中
        var rect = this.itemRectForText(index);                                     // 【?】获取用于绘制文字的区域并保存到rect中
        var w = Math.min(rect.width, 144);                                          // 设置宽度为rect的宽度和144中较小的一个
        var h = Math.min(rect.height, 144);                                         // 设置高度为rect的高度和144中较小的一个
        var lineHeight = this.lineHeight();                                         // 获取状态窗口的行高并保存到lineHeight中
        this.changePaintOpacity(actor.isBattleMember());                            // 【?】改变绘制功能的透明度
        this.drawActorFace(actor, rect.x, rect.y + lineHeight * 2.5, w, h);         // 绘制角色脸图
        this.changePaintOpacity(true);                                              // 【?】恢复绘制功能的透明度
    };

    Window_MenuStatus.prototype.drawItemStatus = function(index) {              // 重定义状态窗口的项目属性绘制函数
        var actor = $gameParty.members()[index];                                    // 将玩家队伍中排序为index的角色保存到actor中
        var rect = this.itemRectForText(index);                                     // 【?】获取用于绘制文字的区域并保存到rect中
        var x = rect.x;                                                             // 获取用于绘制文字的区域的X坐标
        var y = rect.y;                                                             // 获取用于绘制文字的区域的Y坐标
        var width = rect.width;                                                     // 获取用于绘制文字的区域的宽度
        var bottom = y + rect.height;                                               // 获取用于绘制文字的区域的底部Y坐标
        var lineHeight = this.lineHeight();                                         // 获取状态窗口的行高
        this.drawActorName(actor, x, y + lineHeight * 0, width);                    // 绘制角色姓名
        this.drawActorLevel(actor, x, y + lineHeight * 1, width);                   // 绘制角色等级
        this.drawActorClass(actor, x, bottom - lineHeight * 4, width);              // 绘制角色职业
        this.drawActorHp(actor, x, bottom - lineHeight * 3, width);                 // 绘制角色生命值
        this.drawActorMp(actor, x, bottom - lineHeight * 2, width);                 // 绘制角色魔法值
        this.drawActorIcons(actor, x, bottom - lineHeight * 1, width);              // 【?】绘制角色状态图标
    };

    var _Window_MenuActor_initialize = Window_MenuActor.prototype.initialize;   // 用_Window_MenuActor_initialize指向原始的菜单角色初始化函数
    Window_MenuActor.prototype.initialize = function() {                        // 追加用于本插件的菜单角色初始化函数
        _Window_MenuActor_initialize.call(this);                                    // 调用原始的菜单角色初始化函数
        this.y = this.fittingHeight(2);                                             // 【?】适配项目数为2的行高
    };

})();
[/pre]
实力跳票,根本停不下来…… | bgpCore.js | 《下一站》2号DEMO | 插件开发无限延期中……正在研制适用性更强的普适模板,不再输出单体插件……
回复

使用道具 举报

梦石
0
星屑
50
在线时间
119 小时
注册时间
2015-1-5
回帖
118
 楼主| 发表于 2015-10-24 19:51:27 | 显示全部楼层
本帖最后由 MonsterJohnCN 于 2015-10-25 02:38 编辑

[pre lang="JavaScript"]//=============================================================================
// AltMenuScreen2.js
//=============================================================================

/*:
* @plugindesc Alternative menu screen layout.
* @author Yoji Ojima, Sasuke KANNAZUKI
*
* @param backGroundBitmap
* @desc background bitmap file at img/pictures.
* @default
*
* @param maxColsMenu
* @desc max column at menu window
* @default 4
*
* @param commandRows
* @desc number of visible rows at command window
* @default 2
*
* @param isDisplayStatus
* @desc whether display status or not. (1 = yes, 0 = no)
* @default 0
*
* @help This plugin does not provide plugin commands.
*  The differences with AltMenuscreen are follows:
*   - windows are transparent
*   - it can set the menu's background bitmap.
*   - picture is actors' original
*
* Actor' note:
* <stand_picture:filename> set actor's standing picture at menu.
*   put file at img/pictures.
*
* preferred size of actor's picture:
* width: 174px(maxColsMenu=4), 240px(maxColsMenu=3)
* height: 408px(commandRows=2), 444px(commandRows=1)
*/

/*:ja
* @plugindesc レイアウトの異なるメニュー画面
* @author Yoji Ojima, 神無月サスケ
*
* @param backGroundBitmap
* @desc 背景にするビットマップファイルです。
* img/pictures に置いてください。
* @default
*
* @param maxColsMenu
* @desc アクターを表示するウィンドウの1画面の登録最大数です。
* @default 4
*
* @param commandRows
* @desc コマンドウィンドウの行数です。
* @default 2
*
* @param isDisplayStatus
* @desc ステータスを表示するかしないかを選びます。(1 = yes, 0 = no)
* @default 0
*
* @help このプラグインには、プラグインコマンドはありません。
*
*  AltMenuscreen との違いは以下です:
*  - ウィンドウが透明です
*  - 背景ビットマップを付けることが出来ます。
*  - アクターに立ち絵を利用します。
*
* アクターのメモに以下のように書いてください:
* <stand_picture:ファイル名> ファイル名が、そのアクターの立ち絵になります。
*   ファイルは img/pictures に置いてください。
*
* 望ましいアクター立ち絵のサイズ:
* 幅:3列:240px, 4列:174px
* 高さ: コマンドウィンドウ 1行:444px 2行:408px
*
*/

/*:ch
* @plugindesc
* 通过填写参数来定制你的ESC菜单布局。
*
* @author
* Yoji Ojima, Sasuke KANNAZUKI
*
* @param backGroundBitmap
* @desc 背景图片(Bitmap),将背景图片保存在img/pictures。
* @default
*
* @param maxColsMenu
* @desc 菜单最大列数,菜单窗口的最大列数
* @default 4
*
* @param commandRows
* @desc 指令行数,在指令窗口内可见的指令行数
* @default 2
*
* @param isDisplayStatus
* @desc 是否显示角色状态,选择是否显示角色状态属性(1 = 显示,0 = 不显示)
* @default 0
*
* @help
* 本插件与AltMenuScreen插件的不同有以下几点:
* - 窗口是透明的
* - 可以自己设定窗口背景图
* - 可定制角色的菜单显示图(默认为脸图)
*   - 在角色的备注内填写<stand_picture:filename>,即可设置角色的菜单显示图
*   - 注意图片应当放置在img/pictures目录下
*   - filename不含后缀
*
* 角色的菜单显示图的最佳尺寸:
* - 菜单最大列数为4时,宽度为174像素。
* - 菜单最大列数为3时,宽度为240像素。
* - 指令选项行数为2时,高度为408像素。
* - 指令选项行数为1时,高度为444像素。
*/

(function() {

    // set parameters                                                                   // 设置参数
    var parameters = PluginManager.parameters('AltMenuScreen2');                        // 获取插件管理器中AltMenuScreen2的参数列表,保存到parameters中
    var backGroundBitmap = parameters['backGroundBitmap'] || '';                        // 获取“背景图片(参数)”内容,默认为空
    var maxColsMenuWnd = Number(parameters['maxColsMenu'] || 4);                        // 获取“菜单最大列数(参数)”内容,默认为4
    var rowsCommandWnd = Number(parameters['commandRows'] || 2);                        // 获取“指令行数(参数)”内容,默认为2
    var isDisplayStatus = !!Number(parameters['isDisplayStatus']);                      // 获取“是否显示角色状态(参数)”内容,默认为【?】

    var _Scene_Menu_create = Scene_Menu.prototype.create;                               // 用_Scene_Menu_create指向原始的创建菜单函数
    Scene_Menu.prototype.create = function() {                                          // 追加用于本插件的创建菜单函数
        _Scene_Menu_create.call(this);                                                      // 调用原始的创建菜单函数
        this._statusWindow.x = 0;                                                           // 设置状态窗口的X坐标为0
        this._statusWindow.y = this._commandWindow.height;                                  // 设置状态窗口的Y坐标为指令窗口的高度
        this._goldWindow.x = Graphics.boxWidth - this._goldWindow.width;                    // 设置金币窗口的X坐标为游戏窗口的宽度 - 金币窗口的宽度
        // make transparent for all windows at menu scene.                                  // 注释:设置ESC菜单界面内的所有窗口的透明度为0
        this._statusWindow.opacity = 0;                                                     // 设置状态窗口的透明度为0
        this._goldWindow.opacity = 0;                                                       // 设置金币窗口的透明度为0
        this._commandWindow.opacity = 0;                                                    // 设置指令窗口的透明度为0
    };

    // load bitmap that set in plugin parameters                                        // 注释:载入“背景图片”参数所指向的图片
    var _Scene_Menu_createBackground = Scene_Menu.prototype.createBackground;           // 用_Scene_Menu_createBackground指向原始的创建背景函数
    Scene_Menu.prototype.createBackground = function(){                                 // 追加用于本插件的创建背景函数
        if(backGroundBitmap){                                                               // 如果“背景图片”参数有内容
            this._backgroundSprite = new Sprite();                                              // 为本场景创建一个新的背景图精灵
            this._backgroundSprite.bitmap = ImageManager.loadPicture(backGroundBitmap);         // 调用图片管理器,为精灵的Bitmap设值,调用的图片路径为参数的地址
            this.addChild(this._backgroundSprite);                                              // 为本场景添加背景图精灵
            return;                                                                             // 结束本次函数运行
        }
        // if background file is invalid, it does original process.                         // 注释:如果背景文件不存在,则调用原始的创建背景函数
        _Scene_Menu_createBackground.call(this);                                            // 调用原始的创建背景函数
    };

    Window_MenuCommand.prototype.windowWidth = function() {                             // 重定义指令窗口的宽度
        return Graphics.boxWidth;                                                           // 返回游戏窗口宽度
    };

    Window_MenuCommand.prototype.maxCols = function() {                                 // 重定义指令窗口项目的最大列数
        return 4;                                                                           // 返回⑨
    };

    Window_MenuCommand.prototype.numVisibleRows = function() {                          // 重定义指令窗口项目的可见行数
        return rowsCommandWnd;                                                              // 返回“指令行数(参数)”
    };

    Window_MenuStatus.prototype.windowWidth = function() {                              // 重定义状态窗口的宽度
        return Graphics.boxWidth;                                                           // 返回游戏窗口宽度
    };

    Window_MenuStatus.prototype.windowHeight = function() {                             // 重定义状态窗口的高度
        var h1 = this.fittingHeight(1);                                                     // 【?】自动适配1行项目的高度
        var h2 = this.fittingHeight(rowsCommandWnd);                                        // 【?】自动适配“指令行数(参数)”行项目的高度
        return Graphics.boxHeight - h1 - h2;                                                // 返回游戏窗口高度-【?】-【?】
    };

    Window_MenuStatus.prototype.maxCols = function() {                                  // 重定义状态窗口的最大列数
        return maxColsMenuWnd;                                                              // 返回“指令列数(参数)”
    };

    Window_MenuStatus.prototype.numVisibleRows = function() {                           // 重定义状态窗口的可见行数
        return 1;                                                                           // 返回奥特曼变身器
    };

    Window_MenuStatus.prototype.drawItemImage = function(index) {                       // 重定义状态窗口的项目图片绘制函数
        var actor = $gameParty.members()[index];                                            // 获取角色队伍中排序为index的角色
        var rect = this.itemRectForText(index);                                             // 获取排序为index的项目图片绘制区域
        // load stand_picture                                                               // 注释:读取标准角色图
        var bitmapName = $dataActors[actor.actorId()].meta.stand_picture;                   // 【?】读取当前角色的标准角色图名字
        var bitmap = bitmapName ? ImageManager.loadPicture(bitmapName) : null;              // 如果角色图名字不为空,则载入角色图,否则不载入图片
        var w = Math.min(rect.width, (bitmapName ? bitmap.width : 144));                    // 如果角色图名字不为空,则读取项目图片绘制区域或角色图的宽度中较小的一个,如果没有角色图,则认为角色图宽度为144
        var h = Math.min(rect.height, (bitmapName ? bitmap.height : 144));                  // 如果角色图名字不为空,则读取项目图片绘制区域或角色图的高度中较小的一个,如果没有角色图,则认为角色图高度为144
        var lineHeight = this.lineHeight();                                                 // 读取状态窗口的行高
        this.changePaintOpacity(actor.isBattleMember());                                    // 【?】改变绘制功能的透明度
        if(bitmap){                                                                         // 如果存在角色图
            var sx = (bitmap.width > w) ? (bitmap.width - w) / 2 : 0;                           // 一套算法,用于计算出适配角色图的区域坐标
            var sy = (bitmap.height > h) ? (bitmap.height - h) / 2 : 0;                         // ...
            var dx = (bitmap.width > rect.width) ? rect.x :                                     // ...
                rect.x + (rect.width - bitmap.width) / 2;                                       // ...
            var dy = (bitmap.height > rect.height) ? rect.y :                                   // ...
                rect.y + (rect.height - bitmap.height) / 2;                                     // ...
            this.contents.blt(bitmap, sx, sy, w, h, dx, dy);                                    // ...
        } else { // when bitmap is not set, do the original process.                        // 如果不存在角色图,则调用原始的状态窗口的项目图片绘制函数
            this.drawActorFace(actor, rect.x, rect.y + lineHeight * 2.5, w, h);                 // 为当前角色绘制角色图(脸图)
        }
        this.changePaintOpacity(true);                                                      // 【?】恢复绘制功能的透明度
    };

    Window_MenuStatus.prototype.drawItemStatus = function(index) {                      // 重定义状态窗口的项目属性绘制函数
        if(!isDisplayStatus){                                                               // 如果“是否显示角色状态(参数)”为否
            return;                                                                             // 结束本次调用
        }
        var actor = $gameParty.members()[index];                                            // 读取角色队伍中排序为index的角色
        var rect = this.itemRectForText(index);                                             // 读取排序为index的项目图片绘制区域
        var x = rect.x;                                                                     // 获取排序为index的项目图片绘制区域的X坐标
        var y = rect.y;                                                                     // 获取排序为index的项目图片绘制区域的Y坐标
        var width = rect.width;                                                             // 获取排序为index的项目图片绘制区域的宽度
        var bottom = y + rect.height;                                                       // 获取排序为index的项目图片绘制区域的底部坐标
        var lineHeight = this.lineHeight();                                                 // 获取状态窗口的行高
        this.drawActorName(actor, x, y + lineHeight * 0, width);                            // 绘制排序为index的角色姓名
        this.drawActorLevel(actor, x, y + lineHeight * 1, width);                           // 绘制排序为index的角色等级
        this.drawActorClass(actor, x, bottom - lineHeight * 4, width);                      // 绘制排序为index的角色职业
        this.drawActorHp(actor, x, bottom - lineHeight * 3, width);                         // 绘制排序为index的角色生命值
        this.drawActorMp(actor, x, bottom - lineHeight * 2, width);                         // 绘制排序为index的角色魔法值
        this.drawActorIcons(actor, x, bottom - lineHeight * 1, width);                      // 【?】绘制排序为index的角色状态图标
    };

    var _Window_MenuActor_initialize = Window_MenuActor.prototype.initialize;           // 用_Window_MenuActor_initialize指向原始的菜单角色初始化函数
    Window_MenuActor.prototype.initialize = function() {                                // 重定义菜单角色初始化函数
        _Window_MenuActor_initialize.call(this);                                            // 调用原始的菜单角色初始化函数
        this.y = this.fittingHeight(2);                                                     // 【?】设置菜单角色的Y坐标为两行项目的行高
    };

})();
[/pre]
实力跳票,根本停不下来…… | bgpCore.js | 《下一站》2号DEMO | 插件开发无限延期中……正在研制适用性更强的普适模板,不再输出单体插件……
回复

使用道具 举报

梦石
0
星屑
199
在线时间
248 小时
注册时间
2012-4-29
回帖
313
发表于 2015-10-24 20:52:55 | 显示全部楼层
吃惊!!   先占个楼!!
你的意思就是要打架咯?
回复

使用道具 举报

梦石
0
星屑
38
在线时间
191 小时
注册时间
2010-11-9
回帖
53
发表于 2015-10-24 23:48:31 | 显示全部楼层
果然还是看注释学js更快一些,希望能有战斗类的部分
总之支持一下
回复

使用道具 举报

梦石
0
星屑
65
在线时间
154 小时
注册时间
2011-2-1
回帖
41
发表于 2015-10-25 00:13:23 | 显示全部楼层
出的真够快的,mv管理脚本简单了好多,不用再各种加注释无效化了
回复

使用道具 举报

梦石
0
星屑
50
在线时间
119 小时
注册时间
2015-1-5
回帖
118
 楼主| 发表于 2015-10-25 00:53:47 | 显示全部楼层
本帖最后由 MonsterJohnCN 于 2015-10-25 02:39 编辑

[pre lang="JavaScript"]//=============================================================================
// JumpBeginScene.js
// Last Updated: 2015.10.25
//=============================================================================

/*:
* @plugindesc Jump game begin scene, quickily start debug.
*/

(function() {

    Scene_Title.prototype.initialize = function() {                 // 重定义标题场景初始化函数
        Scene_Base.prototype.initialize.call(this);                     // 调用基础场景的初始化
    };

    Scene_Title.prototype.create = function() {                     // 重定义标题场景创建函数
        Scene_Base.prototype.create.call(this);                         // 调用基础场景的创建
    };

    Scene_Title.prototype.start = function() {                      // 重定义标题场景开始函数
        Scene_Base.prototype.start.call(this);                          // 调用基础场景的开始
        DataManager.setupNewGame();                                     // 配置新游戏
        SceneManager.goto(Scene_Map);                                   // 调用场景管理器,跳转到游戏地图场景
    };

    Scene_Title.prototype.update = function() {                     // 重定义标题场景更新函数
        Scene_Base.prototype.update.call(this);                         // 调用基础场景的更新
    };

    Scene_Title.prototype.terminate = function() {                  // 重定义标题场景结束函数
        Scene_Base.prototype.terminate.call(this);                      // 调用基础场景的结束
    };

    Scene_Title.prototype.isBusy = function() {                     // 重定义标题场景繁忙检测函数
        return false;                                                   // 返回:不忙
    };

})();
[/pre]
实力跳票,根本停不下来…… | bgpCore.js | 《下一站》2号DEMO | 插件开发无限延期中……正在研制适用性更强的普适模板,不再输出单体插件……
回复

使用道具 举报

梦石
0
星屑
50
在线时间
119 小时
注册时间
2015-1-5
回帖
118
 楼主| 发表于 2015-10-25 13:09:46 | 显示全部楼层
emgame 发表于 2015-10-25 11:39
楼主我可以加一个么.
[fold=AltMenuScreen3]//========================================================= ...

正在汉化这个,今天会出
实力跳票,根本停不下来…… | bgpCore.js | 《下一站》2号DEMO | 插件开发无限延期中……正在研制适用性更强的普适模板,不再输出单体插件……
回复

使用道具 举报

梦石
0
星屑
50
在线时间
119 小时
注册时间
2015-1-5
回帖
118
 楼主| 发表于 2015-10-25 17:13:15 | 显示全部楼层
本帖最后由 MonsterJohnCN 于 2015-10-25 17:22 编辑

[pre lang="javascript"]//=============================================================================
// AltMenuScreen3.js
//=============================================================================

/*:
* @plugindesc Yet Another menu screen layout.
* @author Sasuke KANNAZUKI, Yoji Ojima
*
* @param bgBitmapMenu
* @desc background bitmap file at menu scene. put at img/pictures.
* @default
*
* @param bgBitmapItem
* @desc background bitmap file at item scene. put at img/pictures.
* @default
*
* @param bgBitmapSkill
* @desc background bitmap file at skill scene. put at img/pictures.
* @default
*
* @param bgBitmapEquip
* @desc background bitmap file at equip scene. put at img/pictures.
* @default
*
* @param bgBitmapStatus
* @desc background bitmap file at status scene. put at img/pictures.
* @default
*
* @param bgBitmapOptions
* @desc background bitmap file at option scene. put at img/pictures.
* @default
*
* @param bgBitmapFile
* @desc background bitmap file at save/load scene. put at img/pictures.
* @default
*
* @param bgBitmapGameEnd
* @desc background bitmap file at gameEnd scene. put at img/pictures.
* @default
*
* @param maxColsMenu
* @desc max column at menu window
* @default 4
*
* @param commandRows
* @desc number of visible rows at command window
* @default 2
*
* @param isDisplayStatus
* @desc whether display status or not. (1 = yes, 0 = no)
* @default 1
*
* @help This plugin does not provide plugin commands.
*  The differences with AltMenuscreen are follows:
*   - windows are transparent at all menu scene.
*   - it can set the background bitmap for each scenes at menu.
*   - picture is actors' original
*
* Actor' note:
* <stand_picture:filename> set actor's standing picture at menu.
*   put file at img/pictures.
*
* preferred size of actor's picture:
* width: 174px(maxColsMenu=4), 240px(maxColsMenu=3)
* height: 408px(commandRows=2), 444px(commandRows=1)
*/

/*:ja
* @plugindesc レイアウトの異なるメニュー画面
* @author 神無月サスケ, Yoji Ojima
*
* @param bgBitmapMenu
* @desc メニュー背景にするビットマップファイルです。
* img/pictures に置いてください。
* @default
*
* @param bgBitmapItem
* @desc アイテム画面背景にするビットマップファイルです。
* img/pictures に置いてください。
* @default
*
* @param bgBitmapSkill
* @desc スキル画面背景にするビットマップファイルです。
* img/pictures に置いてください。
* @default
*
* @param bgBitmapEquip
* @desc 装備画面背景にするビットマップファイルです。
* img/pictures に置いてください。
* @default
*
* @param bgBitmapStatus
* @desc ステータス画面背景にするビットマップファイルです。
* img/pictures に置いてください。
* @default
*
* @param bgBitmapOptions
* @desc オプション画面背景にするビットマップファイルです。
* img/pictures に置いてください。
* @default
*
* @param bgBitmapFile
* @desc セーブ/ロード画面背景にするビットマップファイルです。
* img/pictures に置いてください。
* @default
*
* @param bgBitmapGameEnd
* @desc ゲーム終了画面背景にするビットマップファイルです。
* img/pictures に置いてください。
* @default
*
* @param maxColsMenu
* @desc アクターを表示するウィンドウの1画面の登録最大数です。
* @default 4
*
* @param commandRows
* @desc コマンドウィンドウの行数です。
* @default 2
*
* @param isDisplayStatus
* @desc ステータスを表示するかしないかを選びます。(1 = yes, 0 = no)
* @default 1
*
* @help このプラグインには、プラグインコマンドはありません。
*
*  AltMenuscreen との違いは以下です:
*  - メニュー画面すべてのウィンドウが透明です
*  - メニューそれぞれのシーンに背景ビットマップを付けることが出来ます。
*  - アクターに立ち絵を利用します。
*
* アクターのメモに以下のように書いてください:
* <stand_picture:ファイル名> ファイル名が、そのアクターの立ち絵になります。
*   ファイルは img/pictures に置いてください。
*
* 望ましいアクター立ち絵のサイズ:
* 幅:3列:240px, 4列:174px
* 高さ: コマンドウィンドウ 1行:444px 2行:408px
*
*/

/*:ch
* @plugindesc
* 比AltMenuScreen2更厉害的ESC菜单布局插件
*
* @author
* Sasuke KANNAZUKI, Yoji Ojima
*
* @param bgBitmapMenu
* @desc 菜单界面背景图,将图片资源放在img/pictures文件夹下。
* @default
*
* @param bgBitmapItem
* @desc 物品界面背景图,将图片资源放在img/pictures文件夹下。
* @default
*
* @param bgBitmapSkill
* @desc 技能界面背景图,将图片资源放在img/pictures文件夹下。
* @default
*
* @param bgBitmapEquip
* @desc 装备界面背景图,将图片资源放在img/pictures文件夹下。
* @default
*
* @param bgBitmapStatus
* @desc 状态界面背景图,将图片资源放在img/pictures文件夹下。
* @default
*
* @param bgBitmapOptions
* @desc 设置界面背景图,将图片资源放在img/pictures文件夹下。
* @default
*
* @param bgBitmapFile
* @desc 存读档界面背景图,将图片资源放在img/pictures文件夹下。
* @default
*
* @param bgBitmapGameEnd
* @desc 游戏结束界面背景图,将图片资源放在img/pictures文件夹下。
* @default
*
* @param maxColsMenu
* @desc 菜单窗口的显示项目的最大列数。
* @default 4
*
* @param commandRows
* @desc 指令窗口的显示项目的最大行数。
* @default 2
*
* @param isDisplayStatus
* @desc 是否显示角色状态信息。(1 = 显示, 0 = 不显示)
* @default 1
*
* 本插件与AltMenuScreen插件的不同有以下几点:
* - 默认所有窗口背景图都是不可见的
* - 可以自己设定窗口背景图
* - 可定制角色的菜单显示图(默认为脸图)
*   - 在角色的备注内填写<stand_picture:filename>,即可设置角色的菜单显示图
*   - 注意图片应当放置在img/pictures目录下
*   - filename不含后缀
*
* 角色的菜单显示图的最佳尺寸:
* - 菜单最大列数为4时,宽度为174像素。
* - 菜单最大列数为3时,宽度为240像素。
* - 指令选项行数为2时,高度为408像素。
* - 指令选项行数为1时,高度为444像素。
*/

(function() {

    // set parameters                                                                   // 获取参数
    var parameters = PluginManager.parameters('AltMenuScreen3');                        // 获取插件管理器中AltMenuScreen3的参数列表
    var bgBitmapMenu = parameters['bgBitmapMenu'] || '';                                // 获取菜单界面背景图地址,如果没有,则标记为空
    var bgBitmapItem = parameters['bgBitmapItem'] || '';                                // 获取物品界面背景图地址,如果没有,则标记为空
    var bgBitmapSkill = parameters['bgBitmapSkill'] || '';                              // 获取技能界面背景图地址,如果没有,则标记为空
    var bgBitmapEquip = parameters['bgBitmapEquip'] || '';                              // 获取装备界面背景图地址,如果没有,则标记为空
    var bgBitmapStatus = parameters['bgBitmapStatus'] || '';                            // 获取状态界面背景图地址,如果没有,则标记为空
    var bgBitmapOptions = parameters['bgBitmapOptions'] || '';                          // 获取设置界面背景图地址,如果没有,则标记为空
    var bgBitmapFile = parameters['bgBitmapFile'] || '';                                // 获取存读档界面背景图地址,如果没有,则标记为空
    var bgBitmapGameEnd = parameters['bgBitmapGameEnd'] || '';                          // 获取游戏结束界面背景图地址,如果没有,则标记为空
    var maxColsMenuWnd = Number(parameters['maxColsMenu'] || 4);                        // 菜单窗口项目最大列数
    var rowsCommandWnd = Number(parameters['commandRows'] || 2);                        // 指令窗口项目最大行数
    var isDisplayStatus = !!Number(parameters['isDisplayStatus']);                      // 是否显示角色状态内容

    //                                                                                  //
    // make transparent windows for each scenes in menu.                                // 设置所有菜单界面中的窗口的透明度
    //                                                                                  //
    var _Scene_Menu_create = Scene_Menu.prototype.create;                               // 用_Scene_Menu_create指向原始的创建菜单界面函数
    Scene_Menu.prototype.create = function() {                                          // 追加用于本插件的创建菜单界面函数
        _Scene_Menu_create.call(this);                                                      // 调用原始的创建菜单界面函数
        this._statusWindow.x = 0;                                                           // 设置状态窗口的X坐标为0
        this._statusWindow.y = this._commandWindow.height;                                  // 设置状态窗口的Y坐标为指令窗口的高度
        this._goldWindow.x = Graphics.boxWidth - this._goldWindow.width;                    // 设置金币窗口的X坐标为游戏窗口的宽度 - 金币窗口的宽度
        // make transparent for all windows at menu scene.                                  // 注释:设置ESC菜单界面内的所有窗口的透明度为0
        this._statusWindow.opacity = 0;                                                     // 设置状态窗口的透明度为0
        this._goldWindow.opacity = 0;                                                       // 设置金币窗口的透明度为0
        this._commandWindow.opacity = 0;                                                    // 设置指令窗口的透明度为0
    };

    var _Scene_Item_create = Scene_Item.prototype.create;                               // 用_Scene_Item_create指向原始的创建物品界面函数
    Scene_Item.prototype.create = function() {                                          // 追加用于本插件的创建物品界面函数
        _Scene_Item_create.call(this);                                                      // 调用原始的创建物品界面函数
        this._helpWindow.opacity = 0;                                                       // 设置帮助窗口的透明度为0
        this._categoryWindow.opacity = 0;                                                   // 设置对话窗口的透明度为0
        this._itemWindow.opacity = 0;                                                       // 设置物品窗口的透明度为0
        this._actorWindow.opacity = 0;                                                      // 设置角色窗口的透明度为0
    };

    var _Scene_Skill_create = Scene_Skill.prototype.create;                             // 用_Scene_Skill_create指向原始的创建技能界面函数
    Scene_Skill.prototype.create = function() {                                         // 追加用于本插件的创建技能界面函数
        _Scene_Skill_create.call(this);                                                     // 调用原始的创建技能界面函数
        this._helpWindow.opacity = 0;                                                       // 设置帮助窗口的透明度为0
        this._skillTypeWindow.opacity = 0;                                                  // 设置技能类型窗口的透明度为0
        this._statusWindow.opacity = 0;                                                     // 设置状态窗口的透明度为0
        this._itemWindow.opacity = 0;                                                       // 设置物品窗口的透明度为0
        this._actorWindow.opacity = 0;                                                      // 设置角色窗口的透明度为0
    };

    var _Scene_Equip_create = Scene_Equip.prototype.create;                             // 用_Scene_Equip_create指向原始的创建装备界面函数
    Scene_Equip.prototype.create = function() {                                         // 追加用于本插件的创建装备界面函数
        _Scene_Equip_create.call(this);                                                     // 调用原始的创建装备界面函数
        this._helpWindow.opacity = 0;                                                       // 设置帮助窗口的透明度为0
        this._statusWindow.opacity = 0;                                                     // 设置状态窗口的透明度为0
        this._commandWindow.opacity = 0;                                                    // 设置指令窗口的透明度为0
        this._slotWindow.opacity = 0;                                                       // 设置装备槽窗口的透明度为0
        this._itemWindow.opacity = 0;                                                       // 设置物品窗口的透明度为0
    };

    var _Scene_Status_create = Scene_Status.prototype.create;                           // 用_Scene_Status_create指向原始的创建状态界面函数
    Scene_Status.prototype.create = function() {                                        // 追加用于本插件的创建状态界面函数
        _Scene_Status_create.call(this);                                                    // 调用原始的创建状态界面函数
        this._statusWindow.opacity = 0;                                                     // 设置状态窗口的透明度为0
    };

    var _Scene_Options_create = Scene_Options.prototype.create;                         // 用_Scene_Options_create指向原始的创建设置界面函数
    Scene_Options.prototype.create = function() {                                       // 追加用于本插件的创建设置界面函数
        _Scene_Options_create.call(this);                                                   // 调用原始的创建设置界面函数
        this._optionsWindow.opacity = 0;                                                    // 设置设置窗口的透明度为0 ... 设置设置是什么鬼(╯‵□′)╯︵┻━┻
    };

    var _Scene_File_create = Scene_File.prototype.create;                               // 用_Scene_File_create指向原始的创建存读档界面函数
    Scene_File.prototype.create = function() {                                          // 追加用于本插件的创建存读档界面函数
        _Scene_File_create.call(this);                                                      // 调用原始的创建存读档界面函数
        this._helpWindow.opacity = 0;                                                       // 设置帮助窗口的透明度为0
        this._listWindow.opacity = 0;                                                       // 设置列表窗口的透明度为0
    };

    var _Scene_GameEnd_create = Scene_GameEnd.prototype.create;                         // 用_Scene_File_create指向原始的创建游戏结束界面函数
    Scene_GameEnd.prototype.create = function() {                                       // 追加用于本插件的创建游戏结束界面函数
        _Scene_GameEnd_create.call(this);                                                   // 调用原始的创建游戏结束界面函数
        this._commandWindow.opacity = 0;                                                    // 设置指令窗口的透明度为0
    };

    //                                                                                  //
    // load bitmap that set in plugin parameters                                        // 载入插件参数数据中指定的图片
    //                                                                                  //
    var _Scene_Menu_createBackground = Scene_Menu.prototype.createBackground;           // 用_Scene_Menu_createBackground指向原始的创建游戏菜单界面背景函数
    Scene_Menu.prototype.createBackground = function(){                                 // 追加用于本插件的创建游戏菜单界面背景函数
        if(bgBitmapMenu){                                                                   // 如果游戏菜单界面背景图参数不是空的
            this._backgroundSprite = new Sprite();                                              // 创建一个新的背景图精灵
            this._backgroundSprite.bitmap = ImageManager.loadPicture(bgBitmapMenu);             // 调用图片管理器,为背景图精灵创建游戏菜单背景图
            this.addChild(this._backgroundSprite);                                              // 将背景图精灵添加到游戏菜单界面
            return;                                                                             // 结束本次调用
        }
        // if background file is invalid, it does original process.                         // 如果游戏菜单背景图参数是空的,就执行原本的逻辑
        _Scene_Menu_createBackground.call(this);                                                // 调用原始的创建游戏菜单背景函数
    };

    var _Scene_Item_createBackground = Scene_Item.prototype.createBackground;           // 用_Scene_Item_createBackground指向原始的创建游戏物品界面背景函数
    Scene_Item.prototype.createBackground = function(){                                 // 追加用于本插件的创建游戏物品界面背景函数
        if(bgBitmapItem){                                                                   // 如果游戏物品界面背景图参数不是空的
            this._backgroundSprite = new Sprite();                                              // 创建一个新的背景图精灵
            this._backgroundSprite.bitmap = ImageManager.loadPicture(bgBitmapItem);             // 调用图片管理器,为背景图精灵创建物品界面背景图
            this.addChild(this._backgroundSprite);                                              // 将背景图精灵添加到游戏菜单界面
            return;                                                                             // 结束本次调用
        }
        // if background file is invalid, it does original process.                         // 如果游戏物品界面背景图参数是空的,就执行原本的逻辑
        _Scene_Item_createBackground.call(this);                                                // 调用原始的创建游戏物品界面背景函数
    };

    var _Scene_Skill_createBackground = Scene_Skill.prototype.createBackground;         // 用_Scene_Skill_createBackground指向原始的创建游戏技能界面背景函数
    Scene_Skill.prototype.createBackground = function(){                                // 追加用于本插件的创建游戏技能界面背景函数
        if(bgBitmapSkill){                                                                  // 如果游戏技能界面背景图参数不是空的
            this._backgroundSprite = new Sprite();                                              // 创建一个新的背景图精灵
            this._backgroundSprite.bitmap = ImageManager.loadPicture(bgBitmapSkill);            // 调用图片管理器,为背景图精灵创建技能界面背景图
            this.addChild(this._backgroundSprite);                                              // 将背景图精灵添加到游戏菜单界面
            return;                                                                             // 结束本次调用
        }
        // if background file is invalid, it does original process.                         // 如果游戏技能界面背景图参数是空的,就执行原本的逻辑
        _Scene_Skill_createBackground.call(this);                                                // 调用原始的创建游戏技能界面背景函数
    };

    var _Scene_Equip_createBackground = Scene_Equip.prototype.createBackground;          // 用_Scene_Equip_createBackground指向原始的创建游戏装备界面背景函数
    Scene_Equip.prototype.createBackground = function(){                                 // 追加用于本插件的创建游戏装备界面背景函数
        if(bgBitmapEquip){                                                                   // 如果游戏装备界面背景图参数不是空的
            this._backgroundSprite = new Sprite();                                               // 创建一个新的背景图精灵
            this._backgroundSprite.bitmap = ImageManager.loadPicture(bgBitmapEquip);             // 调用图片管理器,为背景图精灵创建装备界面背景图
            this.addChild(this._backgroundSprite);                                               // 将背景图精灵添加到游戏菜单界面
            return;                                                                              // 结束本次调用
        }
        // if background file is invalid, it does original process.                          // 如果游戏装备界面背景图参数是空的,就执行原本的逻辑
        _Scene_Equip_createBackground.call(this);                                                 // 调用原始的创建游戏装备界面背景函数
    };

    var _Scene_Status_createBackground = Scene_Status.prototype.createBackground;       // 用_Scene_Status_createBackground指向原始的创建游戏状态界面背景函数
    Scene_Status.prototype.createBackground = function(){                               // 追加用于本插件的创建游戏状态界面背景函数
        if(bgBitmapStatus){                                                                 // 如果游戏状态界面背景图参数不是空的
            this._backgroundSprite = new Sprite();                                              // 创建一个新的背景图精灵
            this._backgroundSprite.bitmap = ImageManager.loadPicture(bgBitmapStatus);           // 调用图片管理器,为背景图精灵创建状态界面背景图
            this.addChild(this._backgroundSprite);                                              // 将背景图精灵添加到游戏菜单界面
            return;                                                                             // 结束本次调用
        }
        // if background file is invalid, it does original process.s                        // 如果游戏状态界面背景图参数是空的,就执行原本的逻辑
        _Scene_Status_createBackground.call(this);                                               // 调用原始的创建游戏状态界面背景函数
    };

    var _Scene_Options_createBackground = Scene_Options.prototype.createBackground;     // 用_Scene_Options_createBackground指向原始的创建游戏设置界面背景函数
    Scene_Options.prototype.createBackground = function(){                              // 追加用于本插件的创建游戏设置界面背景函数
        if(bgBitmapOptions){                                                                // 如果游戏设置界面背景图参数不是空的
            this._backgroundSprite = new Sprite();                                              // 创建一个新的背景图精灵
            this._backgroundSprite.bitmap = ImageManager.loadPicture(bgBitmapOptions);          // 调用图片管理器,为背景图精灵创建设置界面背景图
            this.addChild(this._backgroundSprite);                                              // 将背景图精灵添加到游戏菜单界面
            return;                                                                             // 结束本次调用
        }
        // if background file is invalid, it does original process.                         // 如果游戏设置界面背景图参数是空的,就执行原本的逻辑
        _Scene_Options_createBackground.call(this);                                              // 调用原始的创建游戏设置界面背景函数
    };

    var _Scene_File_createBackground = Scene_File.prototype.createBackground;           // 用_Scene_File_createBackground指向原始的创建游戏存读档界面背景函数
    Scene_File.prototype.createBackground = function(){                                 // 追加用于本插件的创建游戏存读档界面背景函数
        if(bgBitmapFile){                                                                   // 如果游戏存读档界面背景图参数不是空的
            this._backgroundSprite = new Sprite();                                              // 创建一个新的背景图精灵
            this._backgroundSprite.bitmap = ImageManager.loadPicture(bgBitmapFile);             // 调用图片管理器,为背景图精灵创建存读档界面背景图
            this.addChild(this._backgroundSprite);                                              // 将背景图精灵添加到游戏菜单界面
            return;                                                                             // 结束本次调用
        }
        // if background file is invalid, it does original process.                         // 如果游戏存读档界面背景图参数是空的,就执行原本的逻辑
        _Scene_File_createBackground.call(this);                                                 // 调用原始的创建游戏存读档界面背景函数
    };

    var _Scene_GameEnd_createBackground = Scene_GameEnd.prototype.createBackground;     // 用_Scene_GameEnd_createBackground指向原始的创建游戏结束界面背景函数
    Scene_GameEnd.prototype.createBackground = function(){                              // 追加用于本插件的创建游戏结束界面背景函数
        if(bgBitmapGameEnd){                                                                // 如果游戏结束界面背景图参数不是空的
            this._backgroundSprite = new Sprite();                                              // 创建一个新的背景图精灵
            this._backgroundSprite.bitmap = ImageManager.loadPicture(bgBitmapGameEnd);          // 调用图片管理器,为背景图精灵创建结束界面背景图
            this.addChild(this._backgroundSprite);                                              // 将背景图精灵添加到游戏菜单界面
            return;                                                                             // 结束本次调用
        }
        // if background file is invalid, it does original process.                         // 如果游戏结束界面背景图参数是空的,就执行原本的逻辑
        _Scene_GameEnd_createBackground.call(this);                                              // 调用原始的创建游戏结束界面背景函数
    };

    //                                                                                  //
    // alt menu screen processes                                                        // 修改菜单界面的实际逻辑进程
    //                                                                                  //
    Window_MenuCommand.prototype.windowWidth = function() {                             // 重定义指令窗口的宽度
        return Graphics.boxWidth;                                                           // 返回游戏窗口宽度
    };

    Window_MenuCommand.prototype.maxCols = function() {                                 // 重定义指令窗口项目的最大列数
        return 4;                                                                           // 返回⑨
    };

    Window_MenuCommand.prototype.numVisibleRows = function() {                          // 重定义指令窗口项目的可见行数
        return rowsCommandWnd;                                                              // 返回“指令行数(参数)”
    };

    Window_MenuStatus.prototype.windowWidth = function() {                              // 重定义状态窗口的宽度
        return Graphics.boxWidth;                                                           // 返回游戏窗口宽度
    };

    Window_MenuStatus.prototype.windowHeight = function() {                             // 重定义状态窗口的高度
        var h1 = this.fittingHeight(1);                                                     // 【?】自动适配1行项目的高度
        var h2 = this.fittingHeight(rowsCommandWnd);                                        // 【?】自动适配“指令行数(参数)”行项目的高度
        return Graphics.boxHeight - h1 - h2;                                                // 返回游戏窗口高度-【?】-【?】
    };

    Window_MenuStatus.prototype.maxCols = function() {                                  // 重定义状态窗口的最大列数
        return maxColsMenuWnd;                                                              // 返回“指令列数(参数)”
    };

    Window_MenuStatus.prototype.numVisibleRows = function() {                           // 重定义状态窗口的可见行数
        return 1;                                                                           // 返回奥特曼变身器
    };

    Window_MenuStatus.prototype.drawItemImage = function(index) {                       // 重定义状态窗口的项目图片绘制函数
        var actor = $gameParty.members()[index];                                            // 获取角色队伍中排序为index的角色
        var rect = this.itemRectForText(index);                                             // 获取排序为index的项目图片绘制区域
        // load stand_picture                                                               // 注释:读取标准角色图
        var bitmapName = $dataActors[actor.actorId()].meta.stand_picture;                   // 【?】读取当前角色的标准角色图名字
        var bitmap = bitmapName ? ImageManager.loadPicture(bitmapName) : null;              // 如果角色图名字不为空,则载入角色图,否则不载入图片
        var w = Math.min(rect.width, (bitmapName ? bitmap.width : 144));                    // 如果角色图名字不为空,则读取项目图片绘制区域或角色图的宽度中较小的一个,如果没有角色图,则认为角色图宽度为144
        var h = Math.min(rect.height, (bitmapName ? bitmap.height : 144));                  // 如果角色图名字不为空,则读取项目图片绘制区域或角色图的高度中较小的一个,如果没有角色图,则认为角色图高度为144
        var lineHeight = this.lineHeight();                                                 // 读取状态窗口的行高
        this.changePaintOpacity(actor.isBattleMember());                                    // 【?】改变绘制功能的透明度
        if(bitmap){                                                                         // 如果存在角色图
            var sx = (bitmap.width > w) ? (bitmap.width - w) / 2 : 0;                           // 一套算法,用于计算出适配角色图的区域坐标
            var sy = (bitmap.height > h) ? (bitmap.height - h) / 2 : 0;                         // ...
            var dx = (bitmap.width > rect.width) ? rect.x :                                     // ...
                rect.x + (rect.width - bitmap.width) / 2;                                       // ...
            var dy = (bitmap.height > rect.height) ? rect.y :                                   // ...
                rect.y + (rect.height - bitmap.height) / 2;                                     // ...
            this.contents.blt(bitmap, sx, sy, w, h, dx, dy);                                    // ...
        } else { // when bitmap is not set, do the original process.                        // 如果不存在角色图,则调用原始的状态窗口的项目图片绘制函数
            this.drawActorFace(actor, rect.x, rect.y + lineHeight * 2.5, w, h);                 // 为当前角色绘制角色图(脸图)
        }
        this.changePaintOpacity(true);                                                      // 【?】恢复绘制功能的透明度
    };

    Window_MenuStatus.prototype.drawItemStatus = function(index) {                      // 重定义状态窗口的项目属性绘制函数
        if(!isDisplayStatus){                                                               // 如果“是否显示角色状态(参数)”为否
            return;                                                                             // 结束本次调用
        }
        var actor = $gameParty.members()[index];                                            // 读取角色队伍中排序为index的角色
        var rect = this.itemRectForText(index);                                             // 读取排序为index的项目图片绘制区域
        var x = rect.x;                                                                     // 获取排序为index的项目图片绘制区域的X坐标
        var y = rect.y;                                                                     // 获取排序为index的项目图片绘制区域的Y坐标
        var width = rect.width;                                                             // 获取排序为index的项目图片绘制区域的宽度
        var bottom = y + rect.height;                                                       // 获取排序为index的项目图片绘制区域的底部坐标
        var lineHeight = this.lineHeight();                                                 // 获取状态窗口的行高
        this.drawActorName(actor, x, y + lineHeight * 0, width);                            // 绘制排序为index的角色姓名
        this.drawActorLevel(actor, x, y + lineHeight * 1, width);                           // 绘制排序为index的角色等级
        this.drawActorClass(actor, x, bottom - lineHeight * 4, width);                      // 绘制排序为index的角色职业
        this.drawActorHp(actor, x, bottom - lineHeight * 3, width);                         // 绘制排序为index的角色生命值
        this.drawActorMp(actor, x, bottom - lineHeight * 2, width);                         // 绘制排序为index的角色魔法值
        this.drawActorIcons(actor, x, bottom - lineHeight * 1, width);                      // 【?】绘制排序为index的角色状态图标
    };

    var _Window_MenuActor_initialize = Window_MenuActor.prototype.initialize;           // 用_Window_MenuActor_initialize指向原始的菜单角色初始化函数
    Window_MenuActor.prototype.initialize = function() {                                // 重定义菜单角色初始化函数
        _Window_MenuActor_initialize.call(this);                                            // 调用原始的菜单角色初始化函数
        this.y = this.fittingHeight(2);                                                     // 【?】设置菜单角色的Y坐标为两行项目的行高
    };

})();
[/pre]
实力跳票,根本停不下来…… | bgpCore.js | 《下一站》2号DEMO | 插件开发无限延期中……正在研制适用性更强的普适模板,不再输出单体插件……
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部