|
|
/*:
|
|
|
* @plugindesc v1.05 LiuYue_SeniorChest 高级箱子
|
|
|
* @author 流逝的岁月
|
|
|
*
|
|
|
* @help
|
|
|
* ============================================================================
|
|
|
* 介绍
|
|
|
* ============================================================================
|
|
|
*
|
|
|
*
|
|
|
* 这款插件提供了打开宝箱时出现物品界面,使箱中的物品变得可选择
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*-------------------------------------------------------------------
|
|
|
*
|
|
|
*使用条例:本插件完全免费,随意魔改
|
|
|
*
|
|
|
*-------------------------------------------------------------------
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*以下是可以使用的插件指令
|
|
|
*-----------------------PluginCommand-------------------------
|
|
|
*
|
|
|
* ZzySCF OverlapMode x(Single/Overlap/Event) //这会修改打开宝箱的叠加模式
|
|
|
* ZzySCF ShowMode x(Chest/YuanShen) //这会修改打开宝箱的窗口显示模式
|
|
|
* ZzySCF IsFilterText x(true/false) //这会修改在打开宝箱时忽略文本
|
|
|
* ZzySCF CoinIcon x //金币所使用的图标,需要填写图标素材图中对应的ID值
|
|
|
*
|
|
|
*
|
|
|
* ZzySCF CMaxCols x //这会修改使显示模式--Chest的选项框中打开宝箱时显示的最大列数
|
|
|
* ZzySCF IsCAllTake x(true/false) //这会修改使显示模式--Chest的选项框中是否包含全部拿取的命令
|
|
|
* ZzySCF CAllTakeText x //这会修改使显示模式--Chest的选项框中全部拿取命令的文本
|
|
|
* ZzySCF IsCClose x(true/false) //这会修改使显示模式--Chest的选项框中是否包含退出宝箱的命令
|
|
|
* ZzySCF CCloseText x //这会修改使显示模式--Chest的选项框中退出宝箱命令的文本
|
|
|
* ZzySCF IsCAutoLine x(true/false) //这会修改使显示模式--Chest的选项框中开启关闭拿取宝箱时自动队列
|
|
|
*
|
|
|
*
|
|
|
* ZzySCF YMaxCols x //这会修改使显示模式--YuanShen的选项框中打开宝箱时显示的最大列数
|
|
|
* ZzySCF YMaxList x //这会修改使显示模式--YuanShen的选项框中打开宝箱时显示的最大行数
|
|
|
* ZzySCF YWindowWidth x //这会修改使显示模式--YuanShen的窗口宽度
|
|
|
* ZzySCF YWindowOp x //这会修改使显示模式--YuanShen的窗口透明度
|
|
|
* ZzySCF YTakeRange x //这会修改使显示模式--YuanShen的出现显示范围
|
|
|
* ZzySCF YColor1 x //这会修改使显示模式--YuanShen的显示底板颜色1
|
|
|
* ZzySCF YColor2 x //这会修改使显示模式--YuanShen的显示底板颜色2
|
|
|
* ZzySCF YOffsetX x //这会修改使显示模式--YuanShen的窗口偏移X,这可以是一个正负值
|
|
|
* ZzySCF YOffsetY x //这会修改使显示模式--YuanShen的窗口偏移Y,这可以是一个正负值
|
|
|
* ZzySCF YFadeFrame x //这会修改使显示模式--YuanShen的窗口出现或是消失所需要的渐变帧数时长
|
|
|
* ZzySCF YDistance x //这会修改使显示模式--YuanShen的窗口绘制道具背景的间距
|
|
|
* ZzySCF YIsHorShow x(true/false) //这会修改使显示模式--YuanShen的窗口是否水平绘制道具背景的渐变色
|
|
|
* ZzySCF YIsAutoOpen x(true/false) //这会修改使显示模式--YuanShen的窗口开过的宝箱再次接近时,会自动开箱
|
|
|
* ZzySCF YIsLimitWindow x(true/false) //这会修改使显示模式--YuanShen的显示宝箱窗口限制在屏幕内
|
|
|
*
|
|
|
* ZzySCF CoinColor x //这会修改打开宝箱后显示金币文本的颜色
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*以下是可以使用的脚本函数
|
|
|
*-----------------------Script Function-------------------------
|
|
|
*
|
|
|
*
|
|
|
* Zzy.SCF.OverlapMode(mode) //这会修改打开宝箱的叠加模式
|
|
|
* Zzy.SCF.ShowMode(mode) //这会修改打开宝箱的窗口显示模式
|
|
|
* Zzy.SCF.IsFilterText(enable) //这会修改在打开宝箱时忽略文本
|
|
|
* Zzy.SCF.CoinIcon(iconIndex) //金币所使用的图标,需要填写图标素材图中对应的ID值
|
|
|
*
|
|
|
* Zzy.SCF.CMaxCols(cols) //这会修改使显示模式--Chest的选项框中打开宝箱时显示的最大列数
|
|
|
* Zzy.SCF.IsCAllTake(enable) //这会修改使显示模式--Chest的选项框中是否包含全部拿取的命令
|
|
|
* Zzy.SCF.CAllTakeText(tText) //这会修改使显示模式--Chest的选项框中全部拿取命令的文本
|
|
|
* Zzy.SCF.IsCClose(enable) //这会修改使显示模式--Chest的选项框中是否包含退出宝箱的命令
|
|
|
* Zzy.SCF.CCloseText(tText) //这会修改使显示模式--Chest的选项框中退出宝箱命令的文本
|
|
|
* Zzy.SCF.IsCAutoLine(enable) //这会修改使显示模式--Chest的选项框中开启关闭拿取宝箱时自动队列
|
|
|
*
|
|
|
* Zzy.SCF.YMaxCols(cols) //这会修改使显示模式--YuanShen的选项框中打开宝箱时显示的最大列数
|
|
|
* Zzy.SCF.YMaxList(list) //这会修改使显示模式--YuanShen的选项框中打开宝箱时显示的最大行数
|
|
|
* Zzy.SCF.YWindowWidth(width) //这会修改使显示模式--YuanShen的窗口宽度
|
|
|
* Zzy.SCF.YWindowOp(op) //这会修改使显示模式--YuanShen的窗口透明度
|
|
|
* Zzy.SCF.YTakeRange(range) //这会修改使显示模式--YuanShen的出现显示范围
|
|
|
* Zzy.SCF.YColor1(color) //这会修改使显示模式--YuanShen的显示底板颜色1
|
|
|
* Zzy.SCF.YColor2(color) //这会修改使显示模式--YuanShen的显示底板颜色2
|
|
|
* Zzy.SCF.YOffsetX(ofx) //这会修改使显示模式--YuanShen的窗口偏移X,这可以是一个正负值
|
|
|
* Zzy.SCF.YOffsetY(ofy) //这会修改使显示模式--YuanShen的窗口偏移Y,这可以是一个正负值
|
|
|
* Zzy.SCF.YFadeFrame(fFrame) //这会修改使显示模式--YuanShen的窗口出现或是消失所需要的渐变帧数时长
|
|
|
* Zzy.SCF.YDistance(dis) //这会修改使显示模式--YuanShen的窗口绘制道具背景的间距
|
|
|
* Zzy.SCF.YIsHorShow(enable) //这会修改使显示模式--YuanShen的窗口是否水平绘制道具背景的渐变色
|
|
|
* Zzy.SCF.YIsAutoOpen(enable) //这会修改使显示模式--YuanShen的窗口开过的宝箱再次接近时,会自动开箱
|
|
|
* Zzy.SCF.YIsLimitWindow(enable) //这会修改使显示模式--YuanShen的显示宝箱窗口限制在屏幕内
|
|
|
*
|
|
|
* Zzy.SCF.CoinColor(color) //这会修改打开宝箱后显示金币文本的颜色
|
|
|
*
|
|
|
*
|
|
|
*以下是一些数据库中使用到的便签,请将他们写在 数据库->道具/武器/护甲->注释 之中
|
|
|
*---------------------DataBase Note--------------------
|
|
|
*
|
|
|
* <ZzySCF Color: x> //这会使这个道具在宝箱中打开时呈现设置的颜色,可以用#xxxxxx或rgba(x,x,x,x)的格式
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*以下是一些地图中事件用到的便签信息,请将他们写在 地图->事件->事件指令->注释 之中
|
|
|
*---------------------Note Case--------------------
|
|
|
*
|
|
|
* <ZzySCF Chest> //这会将本事件视为一个箱子,在打开始进入箱子界面
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
------------------------------------------------------------
|
|
|
|
|
|
我叫坂本:v1.05 兼容LiuYue_GainItemTips提示道具插件,如果处于YuanShen模式下获取物品,也会进行显示
|
|
|
我叫坂本:v1.04 拓展脚本函数
|
|
|
我叫坂本:v1.03 添加与旧存档兼容,修复宝箱中武器以及护甲无法添加到背包中的bug
|
|
|
我叫坂本:v1.02 调整yuanshen箱子在地图边缘显示位置的问题,增加可控的额外参数
|
|
|
我叫坂本:v1.01 优化,添加新的参数
|
|
|
我叫坂本:v1.00 完成插件
|
|
|
|
|
|
------------------------------------------------------------
|
|
|
|
|
|
* @param ---设置---
|
|
|
* @default
|
|
|
*
|
|
|
*
|
|
|
* @param OverlapMode
|
|
|
* @text 相同物品重叠模式
|
|
|
* @parent ---设置---
|
|
|
* @type combo
|
|
|
* @option Single
|
|
|
* @option Overlap
|
|
|
* @option Event
|
|
|
* @desc 在打开宝箱时,出现相同物品的重叠模式,Single代表所有道具独立不会重叠,Overlap代表相同道具重叠,Event代表事件中设置的重叠方式
|
|
|
* @default Event
|
|
|
*
|
|
|
*
|
|
|
* @param ShowMode
|
|
|
* @text 物品显示模式
|
|
|
* @parent ---设置---
|
|
|
* @type combo
|
|
|
* @option Chest
|
|
|
* @option YuanShen
|
|
|
* @desc 打开宝箱后,窗口的显示模式,Chest代表窗口中存放道具,YuanShen代表游戏《原神》中宝箱物品的显示方式
|
|
|
* @default Chest
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
* @param IsFilterText
|
|
|
* @text 是否过滤文本
|
|
|
* @parent ---设置---
|
|
|
* @type boolean
|
|
|
* @on YES
|
|
|
* @off NO
|
|
|
* @desc 触发被视为箱子的事件时,是否会过滤所显示文本的功能
|
|
|
* YES - true NO - false
|
|
|
* @default true
|
|
|
*
|
|
|
*
|
|
|
* @param CoinIcon
|
|
|
* @text 金币图标
|
|
|
* @parent ---设置---
|
|
|
* @type Number
|
|
|
* @desc 显示金币的图标,请填写ID值
|
|
|
* @default 313
|
|
|
*
|
|
|
*
|
|
|
* @param CountNumWidth
|
|
|
* @text 数字预留距离
|
|
|
* @parent ---设置---
|
|
|
* @type text
|
|
|
* @desc 这个是物品数量的间隔距离,可以属于对应的0代表预留的数字宽度
|
|
|
* @default 0000
|
|
|
*
|
|
|
* @param CountCoinWidth
|
|
|
* @text 金币预留距离
|
|
|
* @parent ---设置---
|
|
|
* @type text
|
|
|
* @desc 这个是金币数量的间隔距离,可以属于对应的0代表预留的数字宽度
|
|
|
* @default 00000
|
|
|
*
|
|
|
*
|
|
|
* @param ---Chest模式窗口---
|
|
|
* @default
|
|
|
*
|
|
|
* @param CMaxCols
|
|
|
* @text 每行数量
|
|
|
* @parent ---Chest模式窗口---
|
|
|
* @type Number
|
|
|
* @min 1
|
|
|
* @desc 每一行能显示的数量,默认值为2个
|
|
|
* @default 2
|
|
|
*
|
|
|
* @param IsCAllTake
|
|
|
* @text 是否拥有全部取走选项
|
|
|
* @parent ---Chest模式窗口---
|
|
|
* @type boolean
|
|
|
* @on YES
|
|
|
* @off NO
|
|
|
* @desc 打开箱子后,选择窗口是否拥有全部取走的选项
|
|
|
* YES - true NO - false
|
|
|
* @default true
|
|
|
*
|
|
|
* @param CAllTakeText
|
|
|
* @text 全部取走文本
|
|
|
* @parent ---Chest模式窗口---
|
|
|
* @type Text
|
|
|
* @desc 打开箱子后,选择窗口显示全部取走的文本内容
|
|
|
* @default 全部取走
|
|
|
*
|
|
|
*
|
|
|
* @param IsCClose
|
|
|
* @text 是否拥有关闭宝箱选项
|
|
|
* @parent ---Chest模式窗口---
|
|
|
* @type boolean
|
|
|
* @on YES
|
|
|
* @off NO
|
|
|
* @desc 打开箱子后,选择窗口是否拥有关闭宝箱的选项
|
|
|
* YES - true NO - false
|
|
|
* @default true
|
|
|
*
|
|
|
* @param CCloseText
|
|
|
* @text 关闭宝箱文本
|
|
|
* @parent ---Chest模式窗口---
|
|
|
* @type Text
|
|
|
* @desc 打开箱子后,选择窗口显示全部取走的文本内容
|
|
|
* @default 关闭宝箱
|
|
|
*
|
|
|
* @param IsCAutoLine
|
|
|
* @text 是否自动队列
|
|
|
* @parent ---Chest模式窗口---
|
|
|
* @type boolean
|
|
|
* @on YES
|
|
|
* @off NO
|
|
|
* @desc 再点击取出道具后,是否宝箱中所有道具都会向前移动一格
|
|
|
* YES - true NO - false
|
|
|
* @default true
|
|
|
*
|
|
|
*
|
|
|
* @param ---YuanShen模式窗口---
|
|
|
* @default
|
|
|
*
|
|
|
* @param YMaxCols
|
|
|
* @text 每行数量
|
|
|
* @parent ---YuanShen模式窗口---
|
|
|
* @type Number
|
|
|
* @min 1
|
|
|
* @desc 每一行能显示的数量,默认值为1个
|
|
|
* @default 1
|
|
|
*
|
|
|
* @param YMaxList
|
|
|
* @text 最大行数
|
|
|
* @parent ---YuanShen模式窗口---
|
|
|
* @type Number
|
|
|
* @min 1
|
|
|
* @desc 能同时显示的最大行数,默认值为5个
|
|
|
* @default 5
|
|
|
*
|
|
|
* @param YWindowWidth
|
|
|
* @text 窗口宽度
|
|
|
* @parent ---YuanShen模式窗口---
|
|
|
* @type Number
|
|
|
* @desc 显示的窗口的最大宽度,默认值为180
|
|
|
* @default 280
|
|
|
*
|
|
|
* @param YWindowOp
|
|
|
* @text 窗口透明度
|
|
|
* @parent ---YuanShen模式窗口---
|
|
|
* @type Number
|
|
|
* @min 0
|
|
|
* @desc 显示的窗口的透明度,默认值为255
|
|
|
* @default 255
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
* @param YTakeRange
|
|
|
* @text 拾取范围
|
|
|
* @parent ---YuanShen模式窗口---
|
|
|
* @type Number
|
|
|
* @desc 宝箱开启后,玩家在一定范围内会显示窗口,范围为正方形,默认值为1
|
|
|
* @default 1
|
|
|
*
|
|
|
* @param YColor1
|
|
|
* @text 底板颜色1
|
|
|
* @parent ---YuanShen模式窗口---
|
|
|
* @type text
|
|
|
* @desc 这是打开宝箱后显示道具的底板颜色1,默认为rgba(0, 0, 0, 0.6)灰黑色
|
|
|
* @default rgba(0, 0, 0, 0.6)
|
|
|
*
|
|
|
* @param YColor2
|
|
|
* @text 底板颜色2
|
|
|
* @parent ---YuanShen模式窗口---
|
|
|
* @type text
|
|
|
* @desc 这是打开宝箱后显示道具的底板颜色1,默认为rgba(0, 0, 0, 0)黑色
|
|
|
* @default rgba(0, 0, 0, 0)
|
|
|
*
|
|
|
*
|
|
|
* @param YOffsetX
|
|
|
* @text 窗口偏移X
|
|
|
* @parent ---YuanShen模式窗口---
|
|
|
* @type text
|
|
|
* @desc 显示窗口的偏移量X,这可以是一个正负整数值
|
|
|
* @default 20
|
|
|
*
|
|
|
* @param YOffsetY
|
|
|
* @text 窗口偏移Y
|
|
|
* @parent ---YuanShen模式窗口---
|
|
|
* @type text
|
|
|
* @desc 显示窗口的偏移量Y,这可以是一个正负整数值
|
|
|
* @default -160
|
|
|
*
|
|
|
* @param YFadeFrame
|
|
|
* @text 渐变时长
|
|
|
* @parent ---YuanShen模式窗口---
|
|
|
* @type Number
|
|
|
* @desc 宝箱窗口出现到显示所经过的帧数时长
|
|
|
* @default 10
|
|
|
*
|
|
|
* @param YDistance
|
|
|
* @text 矩形间距
|
|
|
* @parent ---YuanShen模式窗口---
|
|
|
* @type Number
|
|
|
* @desc 绘制的道具背景矩形框的间距,默认值为2,代表2像素
|
|
|
* @default 2
|
|
|
*
|
|
|
* @param YIsHorShow
|
|
|
* @text 是否水平绘制
|
|
|
* @parent ---YuanShen模式窗口---
|
|
|
* @type boolean
|
|
|
* @on YES
|
|
|
* @off NO
|
|
|
* @desc 显示的道具背景框垂直或是水平绘制,选择true进行水平绘制
|
|
|
* YES - true NO - false
|
|
|
* @default true
|
|
|
*
|
|
|
*
|
|
|
* @param YIsAutoOpen
|
|
|
* @text 是否自动开箱
|
|
|
* @parent ---YuanShen模式窗口---
|
|
|
* @type boolean
|
|
|
* @on YES
|
|
|
* @off NO
|
|
|
* @desc 开过的宝箱将会自动记录,下次接近返回时会自动打开
|
|
|
* YES - true NO - false
|
|
|
* @default true
|
|
|
*
|
|
|
* @param YIsLimitWindow
|
|
|
* @text 是否限制在屏幕中
|
|
|
* @parent ---YuanShen模式窗口---
|
|
|
* @type boolean
|
|
|
* @on YES
|
|
|
* @off NO
|
|
|
* @desc 开启限制后,宝箱显示内容将不会出屏,防止发生显示不完全的问题
|
|
|
* YES - true NO - false
|
|
|
* @default true
|
|
|
*
|
|
|
* @param ---道具设置---
|
|
|
* @default
|
|
|
*
|
|
|
* @param CoinColor
|
|
|
* @text 金币文字显示颜色
|
|
|
* @parent ---道具设置---
|
|
|
* @type text
|
|
|
* @desc 打开宝箱后金币显示的颜色值,可填写#000000~#ffffff或rgba(0,0,0,0)~rgba(255,255,255,1)这两种颜色码格式,默认为白色
|
|
|
* @default #ffffff
|
|
|
*
|
|
|
* @param ---音效---
|
|
|
* @default
|
|
|
*
|
|
|
* @param TakeSound
|
|
|
* @text 取走时音效名称
|
|
|
* @parent ---音效---
|
|
|
* @type file
|
|
|
* @dir audio/se
|
|
|
* @desc 取走宝箱中物品时,会产生的音效,填写audio/se文件夹下的音频名称
|
|
|
* @default Cursor1
|
|
|
*
|
|
|
* @param TakeVolume
|
|
|
* @text 取走时音量
|
|
|
* @parent ---音效---
|
|
|
* @type Number
|
|
|
* @desc 音量大小,默认100
|
|
|
* @default 100
|
|
|
|
|
|
* @param TakePitch
|
|
|
* @text 取走时声调
|
|
|
* @parent ---音效---
|
|
|
* @type Number
|
|
|
* @desc 声调,默认100
|
|
|
* @default 100
|
|
|
|
|
|
* @param TakePan
|
|
|
* @text 取走时声道
|
|
|
* @parent ---音效---
|
|
|
* @type Number
|
|
|
* @desc 声道,默认0
|
|
|
* @default 0
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
* @param NoItemSound
|
|
|
* @text 空物品音效名称
|
|
|
* @parent ---音效---
|
|
|
* @type file
|
|
|
* @dir audio/se
|
|
|
* @desc 取走宝箱中物品时,会产生的音效,填写audio/se文件夹下的音频名称
|
|
|
* @default Cancel1
|
|
|
*
|
|
|
* @param NoItemVolume
|
|
|
* @text 空物品音量
|
|
|
* @parent ---音效---
|
|
|
* @type Number
|
|
|
* @desc 音量大小,默认100
|
|
|
* @default 100
|
|
|
|
|
|
* @param NoItemPitch
|
|
|
* @text 空物品声调
|
|
|
* @parent ---音效---
|
|
|
* @type Number
|
|
|
* @desc 声调,默认100
|
|
|
* @default 100
|
|
|
|
|
|
* @param NoItemPan
|
|
|
* @text 空物品声道
|
|
|
* @parent ---音效---
|
|
|
* @type Number
|
|
|
* @desc 声道,默认0
|
|
|
* @default 0
|
|
|
*
|
|
|
*
|
|
|
* @param ChangeItemSound
|
|
|
* @text 切换选择音效名称
|
|
|
* @parent ---音效---
|
|
|
* @type file
|
|
|
* @dir audio/se
|
|
|
* @desc 取走宝箱中物品时,会产生的音效,填写audio/se文件夹下的音频名称
|
|
|
* @default Knock
|
|
|
*
|
|
|
* @param ChangeItemVolume
|
|
|
* @text 切换选择音量
|
|
|
* @parent ---音效---
|
|
|
* @type Number
|
|
|
* @desc 音量大小,默认100
|
|
|
* @default 100
|
|
|
|
|
|
* @param ChangeItemPitch
|
|
|
* @text 切换选择声调
|
|
|
* @parent ---音效---
|
|
|
* @type Number
|
|
|
* @desc 声调,默认100
|
|
|
* @default 100
|
|
|
|
|
|
* @param ChangeItemPan
|
|
|
* @text 切换选择声道
|
|
|
* @parent ---音效---
|
|
|
* @type Number
|
|
|
* @desc 声道,默认0
|
|
|
* @default 0
|
|
|
*
|
|
|
*
|
|
|
* @param AllTakeSound
|
|
|
* @text 全部取走音效名称
|
|
|
* @parent ---音效---
|
|
|
* @type file
|
|
|
* @dir audio/se
|
|
|
* @desc 取走宝箱中物品时,会产生的音效,填写audio/se文件夹下的音频名称
|
|
|
* @default Equip2
|
|
|
*
|
|
|
* @param AllTakeVolume
|
|
|
* @text 全部取走音量
|
|
|
* @parent ---音效---
|
|
|
* @type Number
|
|
|
* @desc 音量大小,默认100
|
|
|
* @default 100
|
|
|
|
|
|
* @param AllTakePitch
|
|
|
* @text 全部取走声调
|
|
|
* @parent ---音效---
|
|
|
* @type Number
|
|
|
* @desc 声调,默认100
|
|
|
* @default 100
|
|
|
|
|
|
* @param AllTakePan
|
|
|
* @text 全部取走声道
|
|
|
* @parent ---音效---
|
|
|
* @type Number
|
|
|
* @desc 声道,默认0
|
|
|
* @default 0
|
|
|
*
|
|
|
*
|
|
|
* @param CloseSound
|
|
|
* @text 关闭宝箱音效名称
|
|
|
* @parent ---音效---
|
|
|
* @type file
|
|
|
* @dir audio/se
|
|
|
* @desc 取走宝箱中物品时,会产生的音效,填写audio/se文件夹下的音频名称
|
|
|
* @default Chest2
|
|
|
*
|
|
|
* @param CloseVolume
|
|
|
* @text 关闭宝箱音量
|
|
|
* @parent ---音效---
|
|
|
* @type Number
|
|
|
* @desc 音量大小,默认100
|
|
|
* @default 100
|
|
|
|
|
|
* @param ClosePitch
|
|
|
* @text 关闭宝箱声调
|
|
|
* @parent ---音效---
|
|
|
* @type Number
|
|
|
* @desc 声调,默认100
|
|
|
* @default 100
|
|
|
|
|
|
* @param ClosePan
|
|
|
* @text 关闭宝箱声道
|
|
|
* @parent ---音效---
|
|
|
* @type Number
|
|
|
* @desc 声道,默认0
|
|
|
* @default 0
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var LiuYue = LiuYue || {};
|
|
|
LiuYue.LiuYue_SeniorChest = true;//插件启动
|
|
|
|
|
|
var Zzy = Zzy || {};
|
|
|
Zzy.SCF = Zzy.SCF || {};
|
|
|
Zzy.SCF.version = 1.04;
|
|
|
Zzy.Parameters = PluginManager.parameters('LiuYue_SeniorChest');
|
|
|
Zzy.Param = Zzy.Param || {};
|
|
|
|
|
|
Zzy.Param.SCFOverlapMode = String(Zzy.Parameters['OverlapMode']);
|
|
|
Zzy.Param.SCFShowMode = String(Zzy.Parameters['ShowMode']);
|
|
|
Zzy.Param.SCFIsFilterText = eval(String(Zzy.Parameters['IsFilterText']));
|
|
|
Zzy.Param.SCFCoinIcon = parseInt(Zzy.Parameters['CoinIcon']);//金币图标
|
|
|
|
|
|
Zzy.Param.SCFCMaxCols = parseInt(Zzy.Parameters['CMaxCols']);//最大列数
|
|
|
Zzy.Param.SCFIsCAllTake = eval(String(Zzy.Parameters['IsCAllTake']));//是否拥有全部取走选项
|
|
|
Zzy.Param.SCFCAllTakeText = String(Zzy.Parameters['CAllTakeText']);//全部取走文本
|
|
|
Zzy.Param.SCFIsCClose = eval(String(Zzy.Parameters['IsCClose']));//是否拥有关闭宝箱选项
|
|
|
Zzy.Param.SCFCCloseText = String(Zzy.Parameters['CCloseText']);//全部取走文本
|
|
|
Zzy.Param.SCFIsCAutoLine = eval(String(Zzy.Parameters['IsCAutoLine']));//自动队列
|
|
|
|
|
|
|
|
|
Zzy.Param.SCFYMaxCols = parseInt(Zzy.Parameters['YMaxCols']);//最大列数
|
|
|
Zzy.Param.SCFYMaxList = parseInt(Zzy.Parameters['YMaxList']);//最大行数
|
|
|
Zzy.Param.SCFYWindowWidth = parseInt(Zzy.Parameters['YWindowWidth']);//窗口宽度
|
|
|
Zzy.Param.SCFYWindowOp = parseInt(Zzy.Parameters['YWindowOp']);//窗口透明度
|
|
|
Zzy.Param.SCFYTakeRange = parseInt(Zzy.Parameters['YTakeRange']);//拾取范围
|
|
|
Zzy.Param.SCFYColor1 = String(Zzy.Parameters['YColor1']);//底板颜色1
|
|
|
Zzy.Param.SCFYColor2 = String(Zzy.Parameters['YColor2']);//底板颜色2
|
|
|
Zzy.Param.SCFYOffsetX = Number(Zzy.Parameters['YOffsetX']);//窗口偏移X
|
|
|
Zzy.Param.SCFYOffsetY = Number(Zzy.Parameters['YOffsetY']);//窗口偏移Y
|
|
|
Zzy.Param.SCFYFadeFrame = Number(Zzy.Parameters['YFadeFrame']);//渐变帧数
|
|
|
Zzy.Param.SCFYDistance = parseInt(Zzy.Parameters['YDistance']);//矩形间距
|
|
|
Zzy.Param.SCFYIsHorShow = eval(String(Zzy.Parameters['YIsHorShow']));//是否水平绘制
|
|
|
Zzy.Param.SCFYIsAutoOpen = eval(String(Zzy.Parameters['YIsAutoOpen']));//自动开箱
|
|
|
Zzy.Param.SCFYIsLimitWindow = eval(String(Zzy.Parameters['YIsLimitWindow']));//限制屏幕
|
|
|
|
|
|
|
|
|
Zzy.Param.SCFCoinColor = String(Zzy.Parameters['CoinColor']);//金币颜色
|
|
|
|
|
|
|
|
|
Zzy.Param.SCFCountNumWidth = String(Zzy.Parameters['CountNumWidth']);//道具预留
|
|
|
Zzy.Param.SCFCountCoinWidth = String(Zzy.Parameters['CountCoinWidth']);//金币预留
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//声音
|
|
|
Zzy.SCF.MakeSE = function(seName,seVolume,sePitch,sePan)
|
|
|
{
|
|
|
if(!seName)return undefined;
|
|
|
var se = {
|
|
|
name:seName,
|
|
|
volume:(seVolume ? seVolume : 100),
|
|
|
pitch:(sePitch ? sePitch : 100),
|
|
|
pan:(sePan ? sePan : 0)
|
|
|
};
|
|
|
return se;
|
|
|
}
|
|
|
|
|
|
|
|
|
Zzy.Param.SCFTakeSound = String(Zzy.Parameters['TakeSound']);
|
|
|
Zzy.Param.SCFTakeVolume = parseInt(Zzy.Parameters['TakeVolume']);
|
|
|
Zzy.Param.SCFTakePitch = parseInt(Zzy.Parameters['TakePitch']);
|
|
|
Zzy.Param.SCFTakePan = parseInt(Zzy.Parameters['TakePan']);
|
|
|
Zzy.Param.SCFTakeSE = Zzy.SCF.MakeSE(Zzy.Param.SCFTakeSound,Zzy.Param.SCFTakeVolume,Zzy.Param.SCFTakePitch,Zzy.Param.SCFTakePan);
|
|
|
|
|
|
Zzy.Param.SCFNoItemSound = String(Zzy.Parameters['NoItemSound']);
|
|
|
Zzy.Param.SCFNoItemVolume = parseInt(Zzy.Parameters['NoItemVolume']);
|
|
|
Zzy.Param.SCFNoItemPitch = parseInt(Zzy.Parameters['NoItemPitch']);
|
|
|
Zzy.Param.SCFNoItemPan = parseInt(Zzy.Parameters['NoItemPan']);
|
|
|
Zzy.Param.SCFNoItemSE = Zzy.SCF.MakeSE(Zzy.Param.SCFNoItemSound,Zzy.Param.SCFNoItemVolume,Zzy.Param.SCFNoItemPitch,Zzy.Param.SCFNoItemPan);
|
|
|
|
|
|
Zzy.Param.SCFAllTakeSound = String(Zzy.Parameters['AllTakeSound']);
|
|
|
Zzy.Param.SCFAllTakeVolume = parseInt(Zzy.Parameters['AllTakeVolume']);
|
|
|
Zzy.Param.SCFAllTakePitch = parseInt(Zzy.Parameters['AllTakePitch']);
|
|
|
Zzy.Param.SCFAllTakePan = parseInt(Zzy.Parameters['AllTakePan']);
|
|
|
Zzy.Param.SCFAllTakeSE = Zzy.SCF.MakeSE(Zzy.Param.SCFAllTakeSound,Zzy.Param.SCFAllTakeVolume,Zzy.Param.SCFAllTakePitch,Zzy.Param.SCFAllTakePan);
|
|
|
|
|
|
Zzy.Param.SCFCloseSound = String(Zzy.Parameters['CloseSound']);
|
|
|
Zzy.Param.SCFCloseVolume = parseInt(Zzy.Parameters['CloseVolume']);
|
|
|
Zzy.Param.SCFClosePitch = parseInt(Zzy.Parameters['ClosePitch']);
|
|
|
Zzy.Param.SCFClosePan = parseInt(Zzy.Parameters['ClosePan']);
|
|
|
Zzy.Param.SCFCloseSE = Zzy.SCF.MakeSE(Zzy.Param.SCFCloseSound,Zzy.Param.SCFCloseVolume,Zzy.Param.SCFClosePitch,Zzy.Param.SCFClosePan);
|
|
|
|
|
|
Zzy.Param.SCFChangeItemSound = String(Zzy.Parameters['ChangeItemSound']);
|
|
|
Zzy.Param.SCFChangeItemVolume = parseInt(Zzy.Parameters['ChangeItemVolume']);
|
|
|
Zzy.Param.SCFChangeItemPitch = parseInt(Zzy.Parameters['ChangeItemPitch']);
|
|
|
Zzy.Param.SCFChangeItemPan = parseInt(Zzy.Parameters['ChangeItemPan']);
|
|
|
Zzy.Param.SCFChangeItemSE = Zzy.SCF.MakeSE(Zzy.Param.SCFChangeItemSound,Zzy.Param.SCFChangeItemVolume,Zzy.Param.SCFChangeItemPitch,Zzy.Param.SCFChangeItemPan);
|
|
|
|
|
|
|
|
|
|
|
|
Zzy.Param.SCFAllSE = [];
|
|
|
Zzy.Param.SCFAllSE = [undefined,Zzy.Param.SCFTakeSE,Zzy.Param.SCFNoItemSE,Zzy.Param.SCFAllTakeSE,Zzy.Param.SCFCloseSE,Zzy.Param.SCFChangeItemSE];
|
|
|
//1.取物品
|
|
|
//2.没有物品
|
|
|
//3.全部拿走
|
|
|
//4.关闭宝箱
|
|
|
//5.切换选项
|
|
|
|
|
|
Zzy.SCF.TempCacheChest = [];//缓存箱
|
|
|
|
|
|
Zzy.SCF.TempSpeed1 = 16;
|
|
|
Zzy.SCF.TempSpeed2 = 8;
|
|
|
Zzy.SCF.TempSpeed3 = 4;
|
|
|
|
|
|
Zzy.SCF.TempCallInfo = undefined;//临时呼叫信息
|
|
|
|
|
|
Zzy.SCF.TempNotRepeatFrame = 3;//临时等待帧数,这是为了方式宝箱出现双次打开,因为框架特殊的机制,在未拥有指令行的事件中,触碰有概率出现执行两次start函数的情况
|
|
|
//通过等待帧数来避免此类情况的执行
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//=================================================================
|
|
|
//DataManager
|
|
|
//=================================================================
|
|
|
Zzy.SCF.DataManager_loadGame = DataManager.loadGame;
|
|
|
DataManager.loadGame = function(savefileId) //旧存档兼容
|
|
|
{
|
|
|
var result = Zzy.SCF.DataManager_loadGame.call(this,savefileId);
|
|
|
|
|
|
this.ZzySCFInitData();
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
DataManager.ZzySCFInitData = function()//初始化参数
|
|
|
{
|
|
|
if(!$gameSystem.GetIsZzySCFLoaded())
|
|
|
{
|
|
|
//初始化
|
|
|
$gameSystem.ZzySCFInitData();//初始化数据
|
|
|
$gameSystem.SetIsZzySCFLoaded(true);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//=================================================================
|
|
|
//Game_System
|
|
|
//=================================================================
|
|
|
|
|
|
Zzy.SCF.Game_System_initialize = Game_System.prototype.initialize;
|
|
|
Game_System.prototype.initialize = function()
|
|
|
{
|
|
|
Zzy.SCF.Game_System_initialize.call(this);
|
|
|
this.ZzySCFInitData();//初始化数据
|
|
|
|
|
|
this._IsZzySCFLoaded = true;//是否载入完成
|
|
|
|
|
|
};
|
|
|
|
|
|
Game_System.prototype.GetIsZzySCFLoaded = function()
|
|
|
{
|
|
|
if(this._IsZzySCFLoaded === undefined)
|
|
|
{this._IsZzySCFLoaded = false;}
|
|
|
return this._IsZzySCFLoaded;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.SetIsZzySCFLoaded = function(enable)
|
|
|
{
|
|
|
this._IsZzySCFLoaded = enable;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.ZzySCFInitData = function()
|
|
|
{
|
|
|
this._ZzySCFOverlapMode = Zzy.SCF.OverlapModeToID(Zzy.Param.SCFOverlapMode);
|
|
|
this._ZzySCFShowMode = Zzy.SCF.ShowModeToID(Zzy.Param.SCFShowMode);
|
|
|
this._ZzySCFIsFilterText = Zzy.Param.SCFIsFilterText;
|
|
|
|
|
|
this._ZzySCFCoinIcon = Zzy.Param.SCFCoinIcon;
|
|
|
|
|
|
this._ZzySCFCMaxCols = Zzy.Param.SCFCMaxCols;//最大列数
|
|
|
this._ZzySCFIsCAllTake = Zzy.Param.SCFIsCAllTake;//是否拥有全部取走选项
|
|
|
this._ZzySCFCAllTakeText = Zzy.Param.SCFCAllTakeText;//全部取走文本
|
|
|
this._ZzySCFIsCClose = Zzy.Param.SCFIsCClose;//是否拥有关闭宝箱选项
|
|
|
this._ZzySCFCCloseText = Zzy.Param.SCFCCloseText;//全部取走文本
|
|
|
this._ZzySCFIsCAutoLine = Zzy.Param.SCFIsCAutoLine;//自动队列
|
|
|
|
|
|
|
|
|
this._ZzySCFYMaxCols = Zzy.Param.SCFYMaxCols;//最大列数
|
|
|
this._ZzySCFYMaxList = Zzy.Param.SCFYMaxList;//最大行数
|
|
|
this._ZzySCFYWindowWidth = Zzy.Param.SCFYWindowWidth;//窗口最大宽度
|
|
|
this._ZzySCFYWindowOp = Zzy.Param.SCFYWindowOp;//窗口透明度
|
|
|
this._ZzySCFYTakeRange = Zzy.Param.SCFYTakeRange;//拾取范围
|
|
|
this._ZzySCFYColor1 = Zzy.Param.SCFYColor1;//底板颜色1
|
|
|
this._ZzySCFYColor2 = Zzy.Param.SCFYColor2;//底板颜色2
|
|
|
this._ZzySCFYOffsetX = Zzy.Param.SCFYOffsetX;//窗口偏移X
|
|
|
this._ZzySCFYOffsetY = Zzy.Param.SCFYOffsetY;//窗口偏移Y
|
|
|
this._ZzySCFYFadeFrame = Zzy.Param.SCFYFadeFrame;//渐变帧数时长
|
|
|
this._ZzySCFYDistance = Zzy.Param.SCFYDistance;//水平间距
|
|
|
this._ZzySCFYIsHorShow = Zzy.Param.SCFYIsHorShow;//是否水平
|
|
|
this._ZzySCFYIsAutoOpen = Zzy.Param.SCFYIsAutoOpen;//是否接近自动开箱
|
|
|
this._ZzySCFYIsLimitWindow = Zzy.Param.SCFYIsLimitWindow;//限制界限
|
|
|
|
|
|
this._ZzySCFCoinColor = Zzy.Param.SCFCoinColor;//金币颜色
|
|
|
|
|
|
this._ZzySCFStorage = [];//库存
|
|
|
|
|
|
this._ZzySCFYunChestFlag = [];//打开标记,标记着打开的宝箱事件
|
|
|
this._ZzySCFYunEmptyCheck = [];//空白检测标记
|
|
|
|
|
|
this._ZzySCFWaitCallInfo = undefined;
|
|
|
this._ZzySCFWaitOfChest = undefined;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.GetZzySCFCoinColor = function()
|
|
|
{
|
|
|
return this._ZzySCFCoinColor;
|
|
|
}
|
|
|
|
|
|
|
|
|
Game_System.prototype.IsZzySCFYunEmptyCheck = function(mapId,evId)
|
|
|
{
|
|
|
if(!this._ZzySCFYunEmptyCheck[mapId] || !this._ZzySCFYunEmptyCheck[mapId][evId])
|
|
|
{return false;}
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.AddZzySCFYunEmptyCheck = function(mapId,evId)
|
|
|
{
|
|
|
if(!this._ZzySCFYunEmptyCheck[mapId])
|
|
|
{this._ZzySCFYunEmptyCheck[mapId] = [];}
|
|
|
this._ZzySCFYunEmptyCheck[mapId][evId] = true;
|
|
|
}
|
|
|
|
|
|
|
|
|
Game_System.prototype.GetZzySCFYunChestFlag = function(mapId)
|
|
|
{
|
|
|
if(!this._ZzySCFYunChestFlag[mapId])
|
|
|
{this._ZzySCFYunChestFlag[mapId] = [];}
|
|
|
return this._ZzySCFYunChestFlag[mapId];
|
|
|
}
|
|
|
|
|
|
|
|
|
Game_System.prototype.AddYunChestFlag = function(mapId,eventId)//添加开启标记宝箱事件
|
|
|
{
|
|
|
if(!this._ZzySCFYunChestFlag[mapId])
|
|
|
{
|
|
|
this._ZzySCFYunChestFlag[mapId] = [];
|
|
|
}
|
|
|
|
|
|
for(var i=0;i<this._ZzySCFYunChestFlag[mapId].length;i++)
|
|
|
{
|
|
|
if(this._ZzySCFYunChestFlag[mapId][i] === eventId)
|
|
|
{return;}
|
|
|
}
|
|
|
|
|
|
this._ZzySCFYunChestFlag[mapId].push(eventId);
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.GetZzySCFOverlapMode = function()
|
|
|
{
|
|
|
return this._ZzySCFOverlapMode;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.GetZzySCFShowMode = function()
|
|
|
{
|
|
|
return this._ZzySCFShowMode;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.GetZzySCFCMaxCols = function()
|
|
|
{
|
|
|
return this._ZzySCFCMaxCols;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.GetZzySCFIsCAllTake = function()
|
|
|
{
|
|
|
return this._ZzySCFIsCAllTake;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.GetZzySCFCAllTakeText = function()
|
|
|
{
|
|
|
return this._ZzySCFCAllTakeText;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.GetZzySCFIsCClose = function()
|
|
|
{
|
|
|
return this._ZzySCFIsCClose;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.GetZzySCFCCloseText = function()
|
|
|
{
|
|
|
return this._ZzySCFCCloseText;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.GetZzySCFIsCAutoLine = function()
|
|
|
{
|
|
|
return this._ZzySCFIsCAutoLine;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.ZzySCFRecordInfo = function(eventId,value,itemId,typeId)//记录道具
|
|
|
{
|
|
|
//typeId:1 金币 2道具 3武器 4护甲
|
|
|
var mapId = $gameMap.mapId();
|
|
|
if(!this._ZzySCFStorage[mapId])
|
|
|
{this._ZzySCFStorage[mapId] = [];}
|
|
|
if(!this._ZzySCFStorage[mapId][eventId])
|
|
|
{this._ZzySCFStorage[mapId][eventId] = [];}
|
|
|
|
|
|
var info = {};
|
|
|
info.typeId = typeId;//类型
|
|
|
info.value = value;//数值
|
|
|
info.itemId = itemId;//物品类型
|
|
|
|
|
|
this.ZzySCFAddToStorage(mapId,eventId,info);//添加
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.ZzySCFSetWaitCall = function(info)//设置等待呼叫
|
|
|
{
|
|
|
if(!info)return;
|
|
|
if(!this._ZzySCFStorage[info.mapId])
|
|
|
{this._ZzySCFStorage[info.mapId] = [];}
|
|
|
if(!this._ZzySCFStorage[info.mapId][info.evId])
|
|
|
{this._ZzySCFStorage[info.mapId][info.evId] = [];}
|
|
|
this._ZzySCFWaitCallInfo = info;
|
|
|
Zzy.SCF.TempCallInfo = this._ZzySCFWaitCallInfo;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.GetZzySCFStorage = function(mapId,evId)
|
|
|
{
|
|
|
if(!this._ZzySCFStorage[mapId])
|
|
|
{this._ZzySCFStorage[mapId] = [];}
|
|
|
if(!this._ZzySCFStorage[mapId][evId])
|
|
|
{this._ZzySCFStorage[mapId][evId] = [];}
|
|
|
return this._ZzySCFStorage[mapId][evId];
|
|
|
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.IsZzySCFStorage = function(mapId,evId)
|
|
|
{
|
|
|
if(!this._ZzySCFStorage[mapId])return false;
|
|
|
if(!this._ZzySCFStorage[mapId][evId])return false;
|
|
|
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
|
|
|
Game_System.prototype.ZzySCFAddToStorage = function(mapId,eventId,info)
|
|
|
{
|
|
|
var ev = $gameMap.event(eventId);
|
|
|
|
|
|
//重叠模式 1独立的 2重叠的 3跟随事件
|
|
|
switch(this.GetZzySCFOverlapMode())
|
|
|
{
|
|
|
case 1:
|
|
|
if(info.typeId === 1)//金币
|
|
|
{
|
|
|
this._ZzySCFStorage[mapId][eventId].push(info);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
var number = info.value;
|
|
|
info.value = 1;
|
|
|
for(var i=0;i<number;i++)
|
|
|
{
|
|
|
this._ZzySCFStorage[mapId][eventId].push(info);//逐个压入
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
|
case 2://通过typeId遍历重复压入
|
|
|
var len = this._ZzySCFStorage[mapId][eventId].length;
|
|
|
var tempInfo = undefined;
|
|
|
var isBeing = false;
|
|
|
for(var i=0;i<len;i++)
|
|
|
{
|
|
|
tempInfo = this._ZzySCFStorage[mapId][eventId][i];
|
|
|
//类型与ID都相同,代表重合
|
|
|
if(tempInfo.typeId === info.typeId && tempInfo.itemId === info.itemId)
|
|
|
{
|
|
|
tempInfo.value += info.value;
|
|
|
isBeing = true;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
if(!isBeing)
|
|
|
{this._ZzySCFStorage[mapId][eventId].push(info);}//逐个压入
|
|
|
break;
|
|
|
case 3:
|
|
|
this._ZzySCFStorage[mapId][eventId].push(info);//正常压入
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
//================================================================
|
|
|
//Scene_Map
|
|
|
//================================================================
|
|
|
Zzy.SCF.Scene_Map_initialize = Scene_Map.prototype.initialize;
|
|
|
Scene_Map.prototype.initialize = function()
|
|
|
{
|
|
|
Zzy.SCF.Scene_Map_initialize.call(this);
|
|
|
this._ZzySCFYWindow = undefined;
|
|
|
};
|
|
|
|
|
|
Zzy.SCF.Scene_Map_start = Scene_Map.prototype.start;
|
|
|
Scene_Map.prototype.start = function()
|
|
|
{
|
|
|
Zzy.SCF.Scene_Map_start.call(this);
|
|
|
//this.ZzySCFCreateChestWindow();
|
|
|
this.ZzySCFCreateYuanWindow();
|
|
|
};
|
|
|
|
|
|
Scene_Map.prototype.ZzySCFCreateYuanWindow = function()
|
|
|
{
|
|
|
|
|
|
//创建窗口
|
|
|
this._ZzySCFYWindow = new Window_ZzySCFYuanShen();
|
|
|
this.addChild(this._ZzySCFYWindow);
|
|
|
|
|
|
this._ZzySCFYWindow.setHandler('ok',this.OnYuanProcessOk.bind(this));
|
|
|
this._ZzySCFYWindow.setHandler('cancel',this.OnYuanProcessCancel.bind(this));
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.Scene_Map_update = Scene_Map.prototype.update;
|
|
|
Scene_Map.prototype.update = function()
|
|
|
{
|
|
|
Zzy.SCF.Scene_Map_update.call(this);
|
|
|
|
|
|
this.updateZzySCFCallStorage();
|
|
|
};
|
|
|
|
|
|
|
|
|
Scene_Map.prototype.updateZzySCFCallStorage = function()//刷新是否需要呼叫
|
|
|
{
|
|
|
if(!$gameSystem._ZzySCFWaitCallInfo)return;
|
|
|
if($gameMessage.isBusy())return; //判断:$gameMessage窗口结束
|
|
|
|
|
|
this.ZzySCFCallStorageWindow();//呼叫
|
|
|
$gameSystem._ZzySCFWaitCallInfo = undefined;
|
|
|
}
|
|
|
|
|
|
Scene_Map.prototype.ZzySCFCallStorageWindow = function()
|
|
|
{
|
|
|
var mapId = $gameSystem._ZzySCFWaitCallInfo.mapId;
|
|
|
var evId = $gameSystem._ZzySCFWaitCallInfo.evId;
|
|
|
//Call窗口
|
|
|
// if(this._ZzySCFChestWindow)
|
|
|
// {
|
|
|
// this._ZzySCFChestWindow.CallOpen();//呼叫打开
|
|
|
// }
|
|
|
|
|
|
var ev = $gameMap.event(evId);
|
|
|
|
|
|
Zzy.SCF.TempCallInfo = $gameSystem._ZzySCFWaitCallInfo;
|
|
|
switch($gameSystem.GetZzySCFShowMode(ev))
|
|
|
{
|
|
|
case 1:this.CallZzySCFChestWindow();break;
|
|
|
case 2:this.CallZzySCFYuanShenWindow();break;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
Scene_Map.prototype.CallZzySCFChestWindow = function()
|
|
|
{
|
|
|
SceneManager.push(Scene_ZzySCFChest);//压入场景
|
|
|
}
|
|
|
|
|
|
Scene_Map.prototype.CallZzySCFYuanShenWindow = function()
|
|
|
{
|
|
|
this._ZzySCFYWindow.reClick();//点击
|
|
|
this._ZzySCFYWindow.refreshList();
|
|
|
this._ZzySCFYWindow.refresh();
|
|
|
|
|
|
$gameSystem.AddYunChestFlag(this._ZzySCFYWindow.mapId,this._ZzySCFYWindow.evId);//压入到遍历箱中
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Scene_Map.prototype.OnYuanProcessOk = function()
|
|
|
{
|
|
|
if(this._ZzySCFYWindow && this._ZzySCFYWindow.active && this._ZzySCFYWindow.visible)
|
|
|
{
|
|
|
this._ZzySCFYWindow.OnProcessOk();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
Scene_Map.prototype.OnYuanProcessCancel = function()//取消
|
|
|
{
|
|
|
if(this._ZzySCFYWindow && this._ZzySCFYWindow.visible)
|
|
|
{
|
|
|
this._ZzySCFYWindow.froceClose = true;//强制关闭
|
|
|
this._ZzySCFYWindow.closeEvId = Zzy.SCF.TempCallInfo ? Zzy.SCF.TempCallInfo.evId : 0;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
Zzy.SCF.Scene_Map_isMenuCalled = Scene_Map.prototype.isMenuCalled;
|
|
|
Scene_Map.prototype.isMenuCalled = function()
|
|
|
{
|
|
|
if(this._ZzySCFYWindow && this._ZzySCFYWindow.visible)
|
|
|
{return false;}
|
|
|
|
|
|
|
|
|
|
|
|
return Zzy.SCF.Scene_Map_isMenuCalled.call(this);
|
|
|
};
|
|
|
|
|
|
|
|
|
Zzy.SCF.Scene_Map_processMapTouch = Scene_Map.prototype.processMapTouch;
|
|
|
Scene_Map.prototype.processMapTouch = function()
|
|
|
{
|
|
|
if(this._ZzySCFYWindow)
|
|
|
{
|
|
|
if(this._ZzySCFYWindow.visible && this._ZzySCFYWindow.isTouchedInsideFrame())
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.Scene_Map_processMapTouch.call(this);
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//================================================================
|
|
|
//Scene_ZzySCFChest
|
|
|
//================================================================
|
|
|
|
|
|
function Scene_ZzySCFChest()
|
|
|
{
|
|
|
this.initialize.apply(this, arguments);
|
|
|
}
|
|
|
|
|
|
Scene_ZzySCFChest.prototype = Object.create(Scene_MenuBase.prototype);
|
|
|
Scene_ZzySCFChest.prototype.constructor = Scene_ZzySCFChest;
|
|
|
|
|
|
Scene_ZzySCFChest.prototype.initialize = function()
|
|
|
{
|
|
|
Scene_MenuBase.prototype.initialize.call(this);
|
|
|
|
|
|
};
|
|
|
Scene_ZzySCFChest.prototype.CreateChestWindow = function()
|
|
|
{
|
|
|
this._HelpWindow = new Window_ZzySCFHelp();
|
|
|
this._ChestWindow = new Window_ZzySCFChest();
|
|
|
this._SelectWindow = new Window_ZzySCFSelect();
|
|
|
|
|
|
this.addChild(this._HelpWindow);
|
|
|
this.addChild(this._ChestWindow);
|
|
|
this.addChild(this._SelectWindow);
|
|
|
|
|
|
this.initPosition();//初始化位置
|
|
|
|
|
|
|
|
|
this._HelpWindow.CallOpen();//呼叫打开
|
|
|
this._ChestWindow.CallOpen();//呼叫打开
|
|
|
this._SelectWindow.CallOpen();//呼叫打开
|
|
|
|
|
|
|
|
|
this._HelpWindow.BindChestWindow(this._ChestWindow);
|
|
|
|
|
|
//this._ChestWindow.setHandler('cancel', this.popScene.bind(this));
|
|
|
this._ChestWindow.setHandler('ok',this.OnChestProcessOk.bind(this));
|
|
|
this._ChestWindow.setHandler('cancel',this.OnChestProcessCancel.bind(this));
|
|
|
|
|
|
this._SelectWindow.setHandler('ok',this.OnSelectProcessOk.bind(this));
|
|
|
|
|
|
}
|
|
|
|
|
|
Scene_ZzySCFChest.prototype.OnChestProcessOk = function()//按下Chest窗口
|
|
|
{
|
|
|
if(this._ChestWindow.active)
|
|
|
{
|
|
|
//可以取出元素
|
|
|
this._ChestWindow.OnProcessOk();
|
|
|
}
|
|
|
this._ChestWindow.activate();
|
|
|
}
|
|
|
|
|
|
Scene_ZzySCFChest.prototype.OnChestProcessCancel = function()
|
|
|
{
|
|
|
if(this._ChestWindow.active)
|
|
|
{
|
|
|
if(this._ChestWindow._index >= 0)
|
|
|
{
|
|
|
this._ChestWindow.deselect();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
this.popScene();//退出
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
Scene_ZzySCFChest.prototype.OnSelectProcessOk = function()
|
|
|
{
|
|
|
if(this._SelectWindow.active)
|
|
|
{
|
|
|
this._SelectWindow.OnProcessOk();
|
|
|
}
|
|
|
this._SelectWindow.activate();
|
|
|
}
|
|
|
|
|
|
Scene_ZzySCFChest.prototype.initPosition = function()
|
|
|
{
|
|
|
this._ChestWindow.y = this._HelpWindow.height;
|
|
|
|
|
|
|
|
|
this._SelectWindow.y = Graphics.boxHeight-this._SelectWindow.height;
|
|
|
this._SelectWindow.startY = this._SelectWindow.y;
|
|
|
|
|
|
this._ChestWindow.height = Graphics.boxHeight-this._HelpWindow.height-this._SelectWindow.height;
|
|
|
}
|
|
|
|
|
|
Scene_ZzySCFChest.prototype.create = function()
|
|
|
{
|
|
|
Scene_MenuBase.prototype.create.call(this);
|
|
|
this.CreateChestWindow();//创造相关窗口
|
|
|
};
|
|
|
|
|
|
Scene_ZzySCFChest.prototype.AllTakeChest = function()
|
|
|
{
|
|
|
this._ChestWindow.TakeAll();
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//================================================================
|
|
|
//Window_ZzySCFChestBase
|
|
|
//================================================================
|
|
|
//窗口基类
|
|
|
function Window_ZzySCFChestBase()
|
|
|
{
|
|
|
this.initialize.apply(this, arguments);
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFChestBase.prototype = Object.create(Window_Selectable.prototype);
|
|
|
Window_ZzySCFChestBase.prototype.constructor = Window_ZzySCFChestBase;
|
|
|
|
|
|
Window_ZzySCFChestBase.prototype.initialize = function(x,y,w,h)
|
|
|
{
|
|
|
x = x ? x : 0;
|
|
|
y = y ? y : 0;
|
|
|
w = w ? w : Graphics.boxWidth;
|
|
|
h = h ? h : Graphics.boxHeight;
|
|
|
|
|
|
Window_Selectable.prototype.initialize.call(this,x,y,w,h);
|
|
|
this.evId = 0;
|
|
|
this.mapId = 0;
|
|
|
this.initWindow();
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFChestBase.prototype.initWindow = function()
|
|
|
{
|
|
|
this.Hide();
|
|
|
}
|
|
|
|
|
|
|
|
|
Window_ZzySCFChestBase.prototype.Hide = function()
|
|
|
{
|
|
|
this.visible = false;
|
|
|
this.opacity = 0;
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFChestBase.prototype.Show = function()
|
|
|
{
|
|
|
this.visible = true;
|
|
|
this.opacity = 255;
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFChestBase.prototype.CallOpen = function()
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFChestBase.prototype.OnProcessOk = function()
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
//================================================================
|
|
|
//Window_ZzySCFChest
|
|
|
//================================================================
|
|
|
//一般模式窗口
|
|
|
function Window_ZzySCFChest()
|
|
|
{
|
|
|
this.initialize.apply(this, arguments);
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFChest.prototype = Object.create(Window_ZzySCFChestBase.prototype);
|
|
|
Window_ZzySCFChest.prototype.constructor = Window_ZzySCFChest;
|
|
|
|
|
|
Window_ZzySCFChest.prototype.initialize = function()
|
|
|
{
|
|
|
this.evId = 0;
|
|
|
this.mapId = 0;
|
|
|
this._list = [];
|
|
|
|
|
|
Window_ZzySCFChestBase.prototype.initialize.call(this);
|
|
|
|
|
|
this.refreshList();
|
|
|
this.refresh();
|
|
|
|
|
|
this.select(0);
|
|
|
this.activate();
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFChest.prototype.CallOpen = function()
|
|
|
{
|
|
|
Window_ZzySCFChestBase.prototype.CallOpen.call(this);
|
|
|
|
|
|
this.Show();
|
|
|
this.open();//呼叫打开
|
|
|
}
|
|
|
|
|
|
|
|
|
Window_ZzySCFChest.prototype.updateOpen = function()
|
|
|
{
|
|
|
if (this._opening) {
|
|
|
this.openness += Zzy.SCF.TempSpeed1;
|
|
|
if (this.isOpen())
|
|
|
{
|
|
|
this._opening = false;
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFChest.prototype.updateClose = function()
|
|
|
{
|
|
|
if (this._closing) {
|
|
|
this.openness -= Zzy.SCF.TempSpeed1;
|
|
|
if (this.isClosed())
|
|
|
{
|
|
|
this._closing = false;
|
|
|
this.Hide();//执行隐藏
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
|
|
|
|
|
|
Window_ZzySCFChest.prototype.open = function()
|
|
|
{
|
|
|
this.openness = 0;
|
|
|
this._opening = true;
|
|
|
this._closing = false;
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFChest.prototype.close = function()
|
|
|
{
|
|
|
this.openness = 255;
|
|
|
this._closing = true;
|
|
|
this._opening = false;
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFChest.prototype.refreshList = function()//刷新List
|
|
|
{
|
|
|
this.evId = Zzy.SCF.TempCallInfo.evId;
|
|
|
this.mapId = Zzy.SCF.TempCallInfo.mapId;
|
|
|
|
|
|
//获取list
|
|
|
this._list = $gameSystem.GetZzySCFStorage(this.mapId,this.evId);
|
|
|
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFChest.prototype.maxItems = function()
|
|
|
{
|
|
|
//如果其中道具数不足时,将会填充为额外的空道具槽
|
|
|
var minItems = this.maxPageRows() * this.maxCols();
|
|
|
return this._list.length > minItems ? this._list.length : minItems;
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFChest.prototype.maxCols = function()
|
|
|
{
|
|
|
return $gameSystem._ZzySCFCMaxCols;
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFChest.prototype.drawItem = function(index)
|
|
|
{
|
|
|
var info = this._list[index];
|
|
|
if(info)
|
|
|
{
|
|
|
var rect = this.itemRectForText(index);
|
|
|
var align = this.itemTextAlign();
|
|
|
this.resetTextColor();
|
|
|
this.changePaintOpacity(true);
|
|
|
|
|
|
var item = undefined;
|
|
|
this.resetTextColor();
|
|
|
|
|
|
switch(info.typeId)
|
|
|
{
|
|
|
case 1://金币
|
|
|
item = {};
|
|
|
item.iconIndex = $gameSystem._ZzySCFCoinIcon;
|
|
|
item.name = this.currencyUnit();
|
|
|
item.isCoin = true;
|
|
|
this.changeTextColor($gameSystem.GetZzySCFCoinColor());
|
|
|
break;
|
|
|
case 2:item = $dataItems[info.itemId];
|
|
|
this.setZzySCFItemColor(item);
|
|
|
break;
|
|
|
case 3:item = $dataWeapons[info.itemId];
|
|
|
this.setZzySCFItemColor(item);
|
|
|
break;
|
|
|
case 4:item = $dataArmors[info.itemId];
|
|
|
this.setZzySCFItemColor(item);
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
|
|
|
if(item)
|
|
|
{
|
|
|
var numberWidth = 0;
|
|
|
if(item.isCoin)
|
|
|
{
|
|
|
numberWidth = this.coinWidth();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
numberWidth = this.numberWidth();
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
this.drawItemName(item, rect.x, rect.y, rect.width - numberWidth);
|
|
|
this.drawItemNumber(info, rect.x, rect.y, rect.width);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFChest.prototype.setZzySCFItemColor = function(item)
|
|
|
{
|
|
|
if(!item.zzySCF || !item.zzySCF.color)
|
|
|
{this.resetTextColor();}
|
|
|
else
|
|
|
{this.changeTextColor(item.zzySCF.color);}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Window_ZzySCFChest.prototype.drawItemName = function(item, x, y, width)
|
|
|
{
|
|
|
width = width || 312;
|
|
|
if (item)
|
|
|
{
|
|
|
var iconBoxWidth = Window_Base._iconWidth + 4;
|
|
|
this.drawIcon(item.iconIndex, x + 2, y + 2);
|
|
|
this.drawText(item.name, x + iconBoxWidth, y, width - iconBoxWidth);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFChest.prototype.drawItemNumber = function(info, x, y, width)
|
|
|
{
|
|
|
if (this.needsNumber())
|
|
|
{
|
|
|
if(info.typeId === 1)
|
|
|
{
|
|
|
this.drawText('x', x, y, width - this.textWidth(Zzy.Param.SCFCountCoinWidth), 'right');
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
this.drawText('x', x, y, width - this.textWidth(Zzy.Param.SCFCountNumWidth), 'right');
|
|
|
}
|
|
|
|
|
|
this.drawText(String(info.value), x, y, width, 'right');
|
|
|
}
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFChest.prototype.needsNumber = function()
|
|
|
{
|
|
|
return true;
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFChest.prototype.numberWidth = function()
|
|
|
{
|
|
|
return this.textWidth(Zzy.Param.SCFCountNumWidth);
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFChest.prototype.coinWidth = function()
|
|
|
{
|
|
|
return this.textWidth(Zzy.Param.SCFCountCoinWidth);
|
|
|
}
|
|
|
|
|
|
|
|
|
Window_ZzySCFChest.prototype.currencyUnit = function() {
|
|
|
return TextManager.currencyUnit;
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFChest.prototype.itemTextAlign = function()
|
|
|
{
|
|
|
return 'left';
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFChest.prototype.drawAllItems = function()
|
|
|
{
|
|
|
var topIndex = this.topIndex();
|
|
|
for (var i = 0; i < this.maxPageItems(); i++)
|
|
|
{
|
|
|
|
|
|
var index = topIndex + i;
|
|
|
if (index < this.maxItems()) {
|
|
|
this.drawItem(index);
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFChest.prototype.OnProcessOk = function()
|
|
|
{
|
|
|
//双击取出道具
|
|
|
|
|
|
|
|
|
var index = this.index();
|
|
|
var info = this._list[index];
|
|
|
|
|
|
if(info)
|
|
|
{
|
|
|
this.GetListInfo(index);
|
|
|
|
|
|
var value = info.value;//数量
|
|
|
var id = info.itemId;
|
|
|
|
|
|
if($gameSystem._ZzySCFIsCAutoLine)
|
|
|
{
|
|
|
//向前遍历
|
|
|
|
|
|
var tList = $gameSystem.GetZzySCFStorage(this.mapId,this.evId);
|
|
|
var len = tList.length;
|
|
|
|
|
|
for(var i=index;i<len-1;i++)
|
|
|
{
|
|
|
tList[i] = tList[i+1];
|
|
|
}
|
|
|
tList[len-1] = undefined;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
$gameSystem._ZzySCFStorage[this.mapId][this.evId][index] = undefined;
|
|
|
}
|
|
|
this.refreshList();//刷新list
|
|
|
this.refresh();
|
|
|
return true;
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
|
|
|
Window_ZzySCFChest.prototype.TakeAll = function()
|
|
|
{
|
|
|
for(var i=0;i<this._list.length;i++)
|
|
|
{
|
|
|
this.GetListInfo(i);//取出所有道具
|
|
|
$gameSystem._ZzySCFStorage[this.mapId][this.evId][i] = undefined;
|
|
|
}
|
|
|
this.refreshList();//刷新list
|
|
|
this.refresh()
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFChest.prototype.GetListInfo = function(index)
|
|
|
{
|
|
|
var info = this._list[index];
|
|
|
|
|
|
if(info)
|
|
|
{
|
|
|
var value = info.value;//数量
|
|
|
var id = info.itemId;
|
|
|
|
|
|
switch(info.typeId)
|
|
|
{
|
|
|
case 1:$gameParty.gainGold(value);break;
|
|
|
case 2:
|
|
|
var item = $dataItems[id];
|
|
|
$gameParty.gainItem(item,value);
|
|
|
break;
|
|
|
case 3:
|
|
|
var weapon = $dataWeapons[id];
|
|
|
$gameParty.gainItem(weapon,value);
|
|
|
break;
|
|
|
case 4:
|
|
|
var armor = $dataArmors[id];
|
|
|
$gameParty.gainItem(armor,value);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFChest.prototype.processOk = function()
|
|
|
{
|
|
|
if (this.itemCan())
|
|
|
{
|
|
|
this.playOkSound();
|
|
|
this.updateInputData();
|
|
|
this.callOkHandler();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
this.playBuzzerSound();
|
|
|
}
|
|
|
};
|
|
|
|
|
|
|
|
|
Window_ZzySCFChest.prototype.processCancel = function()
|
|
|
{
|
|
|
this.playCancelSound();
|
|
|
this.updateInputData();
|
|
|
this.callCancelHandler();
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFChest.prototype.playCancelSound = function()
|
|
|
{
|
|
|
SoundManager.playCancel();
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFChest.prototype.playOkSound = function()
|
|
|
{
|
|
|
if(!Zzy.SCF.PlaySE(1))
|
|
|
{SoundManager.playOk();}
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFChest.prototype.playBuzzerSound = function()
|
|
|
{
|
|
|
if(!Zzy.SCF.PlaySE(2))
|
|
|
{SoundManager.playBuzzer();}
|
|
|
};
|
|
|
|
|
|
|
|
|
Window_ZzySCFChest.prototype.itemCan = function()
|
|
|
{
|
|
|
return !!this._list[this.index()];
|
|
|
}
|
|
|
|
|
|
|
|
|
Window_ZzySCFChest.prototype.processCursorMove = function() {
|
|
|
if (this.isCursorMovable()) {
|
|
|
var lastIndex = this.index();
|
|
|
if (Input.isRepeated('down')) {
|
|
|
this.cursorDown(Input.isTriggered('down'));
|
|
|
}
|
|
|
if (Input.isRepeated('up')) {
|
|
|
this.cursorUp(Input.isTriggered('up'));
|
|
|
}
|
|
|
if (Input.isRepeated('right')) {
|
|
|
this.cursorRight(Input.isTriggered('right'));
|
|
|
}
|
|
|
if (Input.isRepeated('left')) {
|
|
|
this.cursorLeft(Input.isTriggered('left'));
|
|
|
}
|
|
|
if (!this.isHandled('pagedown') && Input.isTriggered('pagedown')) {
|
|
|
this.cursorPagedown();
|
|
|
}
|
|
|
if (!this.isHandled('pageup') && Input.isTriggered('pageup')) {
|
|
|
this.cursorPageup();
|
|
|
}
|
|
|
if (this.index() !== lastIndex) {
|
|
|
this.playSelectSound();
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
|
|
|
|
|
|
Window_ZzySCFChest.prototype.playSelectSound = function()
|
|
|
{
|
|
|
if(!Zzy.SCF.PlaySE(5))
|
|
|
{SoundManager.playCursor();}
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFChest.prototype.onTouch = function(triggered)
|
|
|
{
|
|
|
var lastIndex = this.index();
|
|
|
var x = this.canvasToLocalX(TouchInput.x);
|
|
|
var y = this.canvasToLocalY(TouchInput.y);
|
|
|
var hitIndex = this.hitTest(x, y);
|
|
|
if (hitIndex >= 0) {
|
|
|
if (hitIndex === this.index()) {
|
|
|
if (triggered && this.isTouchOkEnabled()) {
|
|
|
this.processOk();
|
|
|
}
|
|
|
} else if (this.isCursorMovable()) {
|
|
|
this.select(hitIndex);
|
|
|
}
|
|
|
} else if (this._stayCount >= 10) {
|
|
|
if (y < this.padding) {
|
|
|
this.cursorUp();
|
|
|
} else if (y >= this.height - this.padding) {
|
|
|
this.cursorDown();
|
|
|
}
|
|
|
}
|
|
|
if (this.index() !== lastIndex) {
|
|
|
this.playSelectSound();
|
|
|
}
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//================================================================
|
|
|
//Window_ZzySCFHelp
|
|
|
//================================================================
|
|
|
|
|
|
function Window_ZzySCFHelp()
|
|
|
{
|
|
|
this.initialize.apply(this, arguments);
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFHelp.prototype = Object.create(Window_Help.prototype);
|
|
|
Window_ZzySCFHelp.prototype.constructor = Window_ZzySCFHelp;
|
|
|
|
|
|
Window_ZzySCFHelp.prototype.initialize = function()
|
|
|
{
|
|
|
Window_Help.prototype.initialize.call(this);
|
|
|
this.movePos = 0;
|
|
|
this._ChestWindow = undefined;
|
|
|
this.isRefresh = true;
|
|
|
this.srcIndex = undefined;
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFHelp.prototype.CallOpen = function()
|
|
|
{
|
|
|
//位移过程
|
|
|
this.Show();
|
|
|
this.open();//呼叫打开
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
Window_ZzySCFHelp.prototype.BindChestWindow = function(pointer)
|
|
|
{
|
|
|
this._ChestWindow = pointer;
|
|
|
this.srcIndex = this._ChestWindow._index;
|
|
|
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFHelp.prototype.updateOpen = function()
|
|
|
{
|
|
|
if (this._opening)
|
|
|
{
|
|
|
this.movePos += Zzy.SCF.TempSpeed2;
|
|
|
if(this.movePos >= 0)
|
|
|
{
|
|
|
this.movePos = 0;
|
|
|
this._opening = false;
|
|
|
}
|
|
|
this.y = this.movePos;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFHelp.prototype.updateClose = function()
|
|
|
{
|
|
|
if (this._closing)
|
|
|
{
|
|
|
this.movePos -= Zzy.SCF.TempSpeed2;
|
|
|
if(this.movePos <= -this.height)
|
|
|
{
|
|
|
this.movePos = -this.height;
|
|
|
this._closing = false;
|
|
|
this.Hide();//执行隐藏
|
|
|
}
|
|
|
this.y = this.movePos;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
|
|
|
Window_ZzySCFHelp.prototype.open = function()
|
|
|
{
|
|
|
this.movePos = -this.height;
|
|
|
this._opening = true;
|
|
|
this._closing = false;
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFHelp.prototype.close = function()
|
|
|
{
|
|
|
this.movePos = 0;
|
|
|
this._closing = true;
|
|
|
this._opening = false;
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFHelp.prototype.Hide = function()
|
|
|
{
|
|
|
this.visible = false;
|
|
|
this.opacity = 0;
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFHelp.prototype.Show = function()
|
|
|
{
|
|
|
this.visible = true;
|
|
|
this.opacity = 255;
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFHelp.prototype.update = function()
|
|
|
{
|
|
|
if(this._ChestWindow._index !== this.srcIndex)
|
|
|
{
|
|
|
this.srcIndex = this._ChestWindow._index;
|
|
|
this.isRefresh = true;
|
|
|
}
|
|
|
|
|
|
if(this.isRefresh)
|
|
|
{
|
|
|
this.setInfo(this._ChestWindow._list[this.srcIndex]);
|
|
|
this.isRefresh = false;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
Window_ZzySCFHelp.prototype.setInfo = function(info)
|
|
|
{
|
|
|
if(!info)
|
|
|
{this.setText('');}
|
|
|
else
|
|
|
{
|
|
|
var item = undefined;
|
|
|
switch(info.typeId)
|
|
|
{
|
|
|
case 2:item = $dataItems[info.itemId];break;
|
|
|
case 3:item = $dataWeapons[info.itemId];break;
|
|
|
case 4:item = $dataArmors[info.itemId];break;
|
|
|
default:
|
|
|
}
|
|
|
|
|
|
this.setText(item ? item.description : '');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//================================================================
|
|
|
//Window_ZzySCFSelect
|
|
|
//================================================================
|
|
|
|
|
|
function Window_ZzySCFSelect()
|
|
|
{
|
|
|
this.initialize.apply(this, arguments);
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFSelect.prototype = Object.create(Window_Selectable.prototype);
|
|
|
Window_ZzySCFSelect.prototype.constructor = Window_ZzySCFSelect;
|
|
|
|
|
|
Window_ZzySCFSelect.prototype.initialize = function()
|
|
|
{
|
|
|
var height = this.GetHeight();
|
|
|
this._list = [];//存放数组
|
|
|
Window_Selectable.prototype.initialize.call(this,0,0,Graphics.boxWidth,height);
|
|
|
this.startY = 0;
|
|
|
this.movePos = 0;
|
|
|
|
|
|
this.setList();
|
|
|
this.refresh();
|
|
|
this.activate();//设置为活跃
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFSelect.prototype.GetHeight = function()
|
|
|
{
|
|
|
return this.getCount() ? this.fittingHeight(1) : 0;
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFSelect.prototype.CallOpen = function()
|
|
|
{
|
|
|
//位移过程
|
|
|
this.Show();
|
|
|
this.open();//呼叫打开
|
|
|
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFSelect.prototype.updateOpen = function()
|
|
|
{
|
|
|
if (this._opening)
|
|
|
{
|
|
|
this.movePos -= Zzy.SCF.TempSpeed3;
|
|
|
if(this.movePos <= 0)
|
|
|
{
|
|
|
this.movePos = 0;
|
|
|
this._opening = false;
|
|
|
this.refresh();
|
|
|
}
|
|
|
this.y = this.startY+this.movePos;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFSelect.prototype.updateClose = function()
|
|
|
{
|
|
|
if (this._closing)
|
|
|
{
|
|
|
this.movePos += Zzy.SCF.TempSpeed3;
|
|
|
if(this.movePos >= this.height)
|
|
|
{
|
|
|
this.movePos = this.height;
|
|
|
this._closing = false;
|
|
|
this.Hide();//执行隐藏
|
|
|
}
|
|
|
this.y = this.startY+this.movePos;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFSelect.prototype.open = function()
|
|
|
{
|
|
|
this.movePos = this.height;
|
|
|
this._opening = true;
|
|
|
this._closing = false;
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFSelect.prototype.close = function()
|
|
|
{
|
|
|
this.movePos = 0;
|
|
|
this._closing = true;
|
|
|
this._opening = false;
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFSelect.prototype.Hide = function()
|
|
|
{
|
|
|
this.visible = false;
|
|
|
this.opacity = 0;
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFSelect.prototype.Show = function()
|
|
|
{
|
|
|
this.visible = true;
|
|
|
this.opacity = 255;
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFSelect.prototype.maxCols = function()
|
|
|
{
|
|
|
return this.getCount();
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFSelect.prototype.getCount = function()//指令数值
|
|
|
{
|
|
|
var ev = $gameMap.event(Zzy.SCF.TempCallInfo.evId);
|
|
|
var count = 0;
|
|
|
count += $gameSystem.GetZzySCFIsCAllTake(ev) ? 1 : 0;
|
|
|
count += $gameSystem.GetZzySCFIsCClose(ev) ? 1 : 0;
|
|
|
return count;
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFSelect.prototype.setList = function()//设置列表
|
|
|
{
|
|
|
this._list = [];
|
|
|
var ev = $gameMap.event(Zzy.SCF.TempCallInfo.evId);
|
|
|
if($gameSystem.GetZzySCFIsCAllTake(ev))
|
|
|
{
|
|
|
var info = {};
|
|
|
info.text = $gameSystem.GetZzySCFCAllTakeText(ev);//显示文本
|
|
|
info.commandId = 1;
|
|
|
this._list.push(info);
|
|
|
}
|
|
|
if($gameSystem.GetZzySCFIsCClose(ev))
|
|
|
{
|
|
|
var info = {};
|
|
|
info.text = $gameSystem.GetZzySCFCCloseText(ev);
|
|
|
info.commandId = 2;
|
|
|
this._list.push(info);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFSelect.prototype.drawItem = function(index)
|
|
|
{
|
|
|
var rect = this.itemRectForText(index);
|
|
|
var align = this.itemTextAlign();
|
|
|
this.resetTextColor();
|
|
|
this.changePaintOpacity(true);
|
|
|
this.drawText(this._list[index].text, rect.x, rect.y, rect.width, align);
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFSelect.prototype.itemTextAlign = function() {
|
|
|
return 'center';
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFSelect.prototype.drawAllItems = function()
|
|
|
{
|
|
|
var topIndex = this.topIndex();
|
|
|
|
|
|
|
|
|
for (var i = 0; i < this.maxPageItems(); i++)
|
|
|
{
|
|
|
var index = topIndex + i;
|
|
|
if (index < this.maxItems()) {
|
|
|
this.drawItem(index);
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFSelect.prototype.maxItems = function()
|
|
|
{
|
|
|
return this.getCount();
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFSelect.prototype.processCursorMove = function()
|
|
|
{
|
|
|
if (this.isCursorMovable()) {
|
|
|
var lastIndex = this.index();
|
|
|
if (this.index() !== lastIndex) {
|
|
|
SoundManager.playCursor();
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Window_ZzySCFSelect.prototype.processHandling = function() //跳过键盘响应
|
|
|
{
|
|
|
if (this.isOpenAndActive())
|
|
|
{
|
|
|
|
|
|
}
|
|
|
};
|
|
|
|
|
|
|
|
|
Window_ZzySCFSelect.prototype.processOk = function()
|
|
|
{
|
|
|
if (this.itemCan())
|
|
|
{
|
|
|
this.playOkSound();
|
|
|
this.updateInputData();
|
|
|
this.callOkHandler();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
this.playBuzzerSound();
|
|
|
}
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFSelect.prototype.playCancelSound = function()
|
|
|
{
|
|
|
SoundManager.playCancel();
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFSelect.prototype.playOkSound = function()
|
|
|
{
|
|
|
var info = this._list[this._index];
|
|
|
|
|
|
if(!info)
|
|
|
{
|
|
|
SoundManager.playOk();
|
|
|
return;
|
|
|
}
|
|
|
switch(info.commandId)
|
|
|
{
|
|
|
case 1:
|
|
|
if(!Zzy.SCF.PlaySE(3))
|
|
|
{SoundManager.playOk();}
|
|
|
case 2:
|
|
|
if(!Zzy.SCF.PlaySE(4))
|
|
|
{SoundManager.playOk();}
|
|
|
}
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFSelect.prototype.playBuzzerSound = function()
|
|
|
{
|
|
|
SoundManager.playBuzzer();
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFSelect.prototype.itemCan = function()
|
|
|
{
|
|
|
return !!this._list[this.index()];
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFSelect.prototype.OnProcessOk = function()
|
|
|
{
|
|
|
var index = this.index();
|
|
|
var info = this._list[index];
|
|
|
|
|
|
if(info)
|
|
|
{
|
|
|
switch(info.commandId)
|
|
|
{
|
|
|
case 1://全部拿走
|
|
|
this.AllTakeProcess();
|
|
|
break;
|
|
|
|
|
|
case 2://关闭宝箱
|
|
|
this.PopScene();//退出
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
Window_ZzySCFSelect.prototype.PopScene = function()
|
|
|
{
|
|
|
if(SceneManager._scene instanceof Scene_ZzySCFChest)
|
|
|
{
|
|
|
SceneManager._scene.popScene();//退出
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFSelect.prototype.AllTakeProcess = function()//全部拿取
|
|
|
{
|
|
|
if(SceneManager._scene instanceof Scene_ZzySCFChest)
|
|
|
{
|
|
|
SceneManager._scene.AllTakeChest();//
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
//================================================================
|
|
|
//Window_ZzySCFYuanShen
|
|
|
//================================================================
|
|
|
//原神模式窗口
|
|
|
function Window_ZzySCFYuanShen()
|
|
|
{
|
|
|
this.initialize.apply(this, arguments);
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype = Object.create(Window_ZzySCFChestBase.prototype);
|
|
|
Window_ZzySCFYuanShen.prototype.constructor = Window_ZzySCFYuanShen;
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.initialize = function()
|
|
|
{
|
|
|
var w = this.getWidth();
|
|
|
var h = this.getHeight();
|
|
|
Window_ZzySCFChestBase.prototype.initialize.call(this,-w,-h,w,h);
|
|
|
|
|
|
//缓入缓出
|
|
|
this.fadeIn = false;
|
|
|
this.fadeOut = false;
|
|
|
|
|
|
this.froceClose = false;//强制关闭
|
|
|
this.closeEvId = 0;//强制关闭时的ID
|
|
|
this.emptyClear = false;//空白检测,优化效率
|
|
|
|
|
|
this.CfadeFrame = 0;
|
|
|
|
|
|
this._list = [];
|
|
|
this.InitData();
|
|
|
|
|
|
//设置选择点,开启活跃
|
|
|
this.select(0);
|
|
|
this.activate();
|
|
|
this.visible = false;
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.InitData = function()
|
|
|
{
|
|
|
//设置透明度和出现
|
|
|
this.opacity = $gameSystem._ZzySCFYWindowOp;
|
|
|
this.visible = true;
|
|
|
this.froceClose = false;
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.getWidth = function()
|
|
|
{
|
|
|
return $gameSystem._ZzySCFYWindowWidth;
|
|
|
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.getHeight = function()
|
|
|
{
|
|
|
var num = $gameSystem._ZzySCFYMaxList;
|
|
|
num = num ? num : 1;
|
|
|
return this.fittingHeight(num);
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.update = function()
|
|
|
{
|
|
|
if($gameSystem.GetZzySCFShowMode() !== 2)return;
|
|
|
Window_ZzySCFChestBase.prototype.update.call(this);
|
|
|
|
|
|
this.updateAutoSelect();//刷新自动选择目标
|
|
|
this.updatePosition();//刷新窗口位置
|
|
|
this.updateDyn();//刷新动态
|
|
|
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.updateAutoSelect = function()
|
|
|
{
|
|
|
if(!$gameSystem._ZzySCFYIsAutoOpen)return;
|
|
|
if(this.visible)return;
|
|
|
|
|
|
|
|
|
var mapId = $gameMap.mapId();
|
|
|
var aList = $gameSystem.GetZzySCFYunChestFlag(mapId);
|
|
|
|
|
|
for(var i=0;i<aList.length;i++)
|
|
|
{
|
|
|
var info = {mapId:mapId,evId:aList[i]};
|
|
|
|
|
|
if(this.froceClose && this.closeEvId === info.evId)//同一个忽略
|
|
|
{return;}
|
|
|
|
|
|
if(this.CheckChestRange(info))//判断是否在范围中
|
|
|
{
|
|
|
Zzy.SCF.TempCallInfo = info;
|
|
|
|
|
|
this.select(0);
|
|
|
this.refreshList();
|
|
|
this.refresh();
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.updateDyn = function()
|
|
|
{
|
|
|
if(this.CheckChestEmpty())//如果为空则不会显示
|
|
|
{this.ExeClose();}
|
|
|
else
|
|
|
{
|
|
|
if(this.CheckChestRange())//检测是否在范围中,确认是否显示
|
|
|
{
|
|
|
if(this.froceClose)
|
|
|
{this.ExeClose();}
|
|
|
else
|
|
|
{this.ExeOpen();}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
this.froceClose = false;
|
|
|
this.ExeClose();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.CheckChestEmpty = function()
|
|
|
{
|
|
|
if(!Zzy.SCF.TempCallInfo)return false;
|
|
|
return $gameSystem.IsZzySCFYunEmptyCheck(Zzy.SCF.TempCallInfo.mapId,Zzy.SCF.TempCallInfo.evId);
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.ExeOpen = function()
|
|
|
{
|
|
|
this.fadeIn = true;
|
|
|
this.fadeOut = false;
|
|
|
this.visible = true;
|
|
|
if(this.CfadeFrame < $gameSystem._ZzySCFYFadeFrame)
|
|
|
{this.CfadeFrame++;}
|
|
|
else
|
|
|
{this.CfadeFrame = $gameSystem._ZzySCFYFadeFrame;}
|
|
|
//this.opacity = $gameSystem._ZzySCFYWindowOp * this.CfadeFrame / $gameSystem._ZzySCFYFadeFrame;
|
|
|
this.alpha = this.CfadeFrame / $gameSystem._ZzySCFYFadeFrame;
|
|
|
|
|
|
this.emptyClear = true;//等待检测
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.ExeClose = function()
|
|
|
{
|
|
|
this.fadeIn = false;
|
|
|
this.fadeOut = true;
|
|
|
if(this.CfadeFrame > 0)
|
|
|
{this.CfadeFrame--;}
|
|
|
else
|
|
|
{
|
|
|
this.CfadeFrame = 0;
|
|
|
this.visible = false;
|
|
|
//关闭后此处需要进行空白检测
|
|
|
if(this.emptyClear)
|
|
|
{
|
|
|
this.emptyClear = false;
|
|
|
var isEmpty = true;
|
|
|
//进行检测
|
|
|
var info = $gameSystem.GetZzySCFStorage(Zzy.SCF.TempCallInfo.mapId,Zzy.SCF.TempCallInfo.evId);
|
|
|
for(var i=0;i<info.length;i++)
|
|
|
{
|
|
|
if(info[i])
|
|
|
{
|
|
|
isEmpty = false;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
if(isEmpty)
|
|
|
{
|
|
|
$gameSystem.AddZzySCFYunEmptyCheck(Zzy.SCF.TempCallInfo.mapId,Zzy.SCF.TempCallInfo.evId);//加入空白
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
//this.opacity = $gameSystem._ZzySCFYWindowOp * this.CfadeFrame / $gameSystem._ZzySCFYFadeFrame;
|
|
|
this.alpha = this.CfadeFrame / $gameSystem._ZzySCFYFadeFrame;
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.updatePosition = function()
|
|
|
{
|
|
|
|
|
|
if(!Zzy.SCF.TempCallInfo)return;
|
|
|
if($gameMap.mapId() !== Zzy.SCF.TempCallInfo.mapId)return;
|
|
|
|
|
|
var ev = $gameMap.event(Zzy.SCF.TempCallInfo.evId);
|
|
|
if(ev)
|
|
|
{
|
|
|
this.x = ev.screenX() + $gameSystem._ZzySCFYOffsetX;
|
|
|
this.y = ev.screenY() + $gameSystem._ZzySCFYOffsetY;
|
|
|
|
|
|
|
|
|
if($gameSystem._ZzySCFYIsLimitWindow)//限制边界
|
|
|
{
|
|
|
var tw = this.x+this.width;
|
|
|
var th = this.y+this.height;
|
|
|
|
|
|
if(tw > Graphics.boxWidth)
|
|
|
{this.x -= (tw-Graphics.boxWidth);}
|
|
|
else if(this.x < 0)
|
|
|
{this.x = 0;}
|
|
|
|
|
|
if(th > Graphics.boxHeight)
|
|
|
{this.y -= (th-Graphics.boxHeight);}
|
|
|
else if(this.y < 0)
|
|
|
{this.y = 0;}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.CheckChestRange = function(info)//检测范围
|
|
|
{
|
|
|
var tempInfo = undefined;
|
|
|
if(!info)
|
|
|
{tempInfo = Zzy.SCF.TempCallInfo;}
|
|
|
else
|
|
|
{tempInfo = info;}
|
|
|
|
|
|
if(!tempInfo)return false;
|
|
|
if($gameMap.mapId() !== tempInfo.mapId)return false;
|
|
|
|
|
|
var ev = $gameMap.event(tempInfo.evId);
|
|
|
if(!ev)return false;
|
|
|
|
|
|
if(Math.abs(ev.x - $gamePlayer.x) <= $gameSystem._ZzySCFYTakeRange &&
|
|
|
Math.abs(ev.y - $gamePlayer.y) <= $gameSystem._ZzySCFYTakeRange)
|
|
|
{
|
|
|
//判断宝箱内道具成品数
|
|
|
var storage = $gameSystem.GetZzySCFStorage(tempInfo.mapId,tempInfo.evId);
|
|
|
if(!storage || !storage.length)return false;
|
|
|
|
|
|
return true;
|
|
|
}
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.itemTextAlign = function()
|
|
|
{
|
|
|
return 'center';
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.drawAllItems = function()
|
|
|
{
|
|
|
var topIndex = this.topIndex();
|
|
|
for (var i = 0; i < this.maxPageItems(); i++)
|
|
|
{
|
|
|
var index = topIndex + i;
|
|
|
if (index < this.maxItems())
|
|
|
{
|
|
|
this.drawItem(index);
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.drawItem = function(index)
|
|
|
{
|
|
|
var info = this._list[index];
|
|
|
if(info)
|
|
|
{
|
|
|
var rect = this.itemRectForText(index);
|
|
|
var align = this.itemTextAlign();
|
|
|
|
|
|
this.changePaintOpacity(true);
|
|
|
|
|
|
var item = undefined;
|
|
|
this.resetTextColor();
|
|
|
switch(info.typeId)
|
|
|
{
|
|
|
case 1://金币
|
|
|
item = {};
|
|
|
item.iconIndex = $gameSystem._ZzySCFCoinIcon;
|
|
|
item.name = this.currencyUnit();
|
|
|
item.isCoin = true;
|
|
|
this.changeTextColor($gameSystem.GetZzySCFCoinColor());
|
|
|
break;
|
|
|
case 2:item = $dataItems[info.itemId];
|
|
|
this.setZzySCFItemColor(item);
|
|
|
break;
|
|
|
case 3:item = $dataWeapons[info.itemId];
|
|
|
this.setZzySCFItemColor(item);
|
|
|
break;
|
|
|
case 4:item = $dataArmors[info.itemId];
|
|
|
this.setZzySCFItemColor(item);
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
|
|
|
if(item)
|
|
|
{
|
|
|
//透明度
|
|
|
this.drawItemBk(rect,index);//绘制底色框
|
|
|
|
|
|
var numberWidth = 0;
|
|
|
if(item.isCoin)
|
|
|
{
|
|
|
numberWidth = this.coinWidth();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
numberWidth = this.numberWidth();
|
|
|
}
|
|
|
|
|
|
this.drawItemName(item, rect.x, rect.y, rect.width - numberWidth);
|
|
|
this.drawItemNumber(info, rect.x, rect.y, rect.width);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.setZzySCFItemColor = function(item)
|
|
|
{
|
|
|
if(!item.zzySCF || !item.zzySCF.color)
|
|
|
{this.resetTextColor();}
|
|
|
else
|
|
|
{this.changeTextColor(item.zzySCF.color);}
|
|
|
}
|
|
|
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.drawItemName = function(item, x, y, width) {
|
|
|
width = width || 312;
|
|
|
if (item) {
|
|
|
var iconBoxWidth = Window_Base._iconWidth + 4;
|
|
|
this.drawIcon(item.iconIndex, x + 2, y + 2);
|
|
|
this.drawText(item.name, x + iconBoxWidth, y, width - iconBoxWidth);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.drawItemBk = function(rect,index)
|
|
|
{
|
|
|
|
|
|
var dis = $gameSystem._ZzySCFYDistance;
|
|
|
var nRect = {x:rect.x+dis,y:rect.y+dis,width:rect.width-dis*2,height:rect.height-dis*2};
|
|
|
var Rect1 = {};
|
|
|
var Rect2 = {};
|
|
|
|
|
|
var c1 = $gameSystem._ZzySCFYColor1;
|
|
|
var c2 = $gameSystem._ZzySCFYColor2;
|
|
|
|
|
|
var isVer = $gameSystem._ZzySCFYIsHorShow ? false : true;
|
|
|
|
|
|
if(isVer)
|
|
|
{
|
|
|
Rect1 = {x:nRect.x,y:nRect.y,width:nRect.width,height:nRect.height/2};
|
|
|
Rect2 = {x:nRect.x,y:nRect.y+nRect.height/2,width:nRect.width,height:nRect.height/2};
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
Rect1 = {x:nRect.x,y:nRect.y,width:nRect.width/2,height:nRect.height};
|
|
|
Rect2 = {x:nRect.x+nRect.width/2,y:nRect.y,width:nRect.width/2,height:nRect.height};
|
|
|
}
|
|
|
|
|
|
this.contents.gradientFillRect(Rect1.x,Rect1.y,Rect1.width,Rect1.height,c2,c1,isVer);
|
|
|
this.contents.gradientFillRect(Rect2.x,Rect2.y,Rect2.width,Rect2.height,c1,c2,isVer);
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.maxItems = function() //最大数值
|
|
|
{
|
|
|
return this._list ? this._list.length : 0;
|
|
|
};
|
|
|
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.reClick = function()
|
|
|
{
|
|
|
this.froceClose = false;
|
|
|
this.select(0);
|
|
|
}
|
|
|
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.refreshList = function()//刷新List
|
|
|
{
|
|
|
this.evId = Zzy.SCF.TempCallInfo.evId;
|
|
|
this.mapId = Zzy.SCF.TempCallInfo.mapId;
|
|
|
//获取list
|
|
|
this._list = $gameSystem.GetZzySCFStorage(this.mapId,this.evId);
|
|
|
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.drawItemNumber = function(info, x, y, width)
|
|
|
{
|
|
|
if (this.needsNumber())
|
|
|
{
|
|
|
this.drawText(String(info.value), x, y, width, 'right');
|
|
|
}
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.needsNumber = function()
|
|
|
{
|
|
|
return true;
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.numberWidth = function()
|
|
|
{
|
|
|
return this.textWidth(Zzy.Param.SCFCountNumWidth);
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.coinWidth = function()
|
|
|
{
|
|
|
return this.textWidth(Zzy.Param.SCFCountCoinWidth);
|
|
|
}
|
|
|
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.currencyUnit = function() {
|
|
|
return TextManager.currencyUnit;
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.processCursorMove = function()
|
|
|
{
|
|
|
if (this.isCursorMovable())
|
|
|
{
|
|
|
var lastIndex = this.index();
|
|
|
|
|
|
if (this.index() !== lastIndex)
|
|
|
{
|
|
|
this.playSelectSound();
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.onTouch = function(triggered)
|
|
|
{
|
|
|
var lastIndex = this.index();
|
|
|
var x = this.canvasToLocalX(TouchInput.x);
|
|
|
var y = this.canvasToLocalY(TouchInput.y);
|
|
|
var hitIndex = this.hitTest(x, y);
|
|
|
if (hitIndex >= 0) {
|
|
|
if (hitIndex === this.index()) {
|
|
|
if (triggered && this.isTouchOkEnabled()) {
|
|
|
this.processOk();
|
|
|
}
|
|
|
} else if (this.isCursorMovable()) {
|
|
|
this.select(hitIndex);
|
|
|
}
|
|
|
} else if (this._stayCount >= 10) {
|
|
|
if (y < this.padding) {
|
|
|
this.cursorUp();
|
|
|
} else if (y >= this.height - this.padding) {
|
|
|
this.cursorDown();
|
|
|
}
|
|
|
}
|
|
|
if (this.index() !== lastIndex) {
|
|
|
this.playSelectSound();
|
|
|
}
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.playSelectSound = function()
|
|
|
{
|
|
|
if(!Zzy.SCF.PlaySE(5))
|
|
|
{SoundManager.playCursor();}
|
|
|
}
|
|
|
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.processTouch = function()
|
|
|
{
|
|
|
if(!this.visible)return;
|
|
|
if (this.isOpenAndActive())
|
|
|
{
|
|
|
if (TouchInput.isTriggered() && this.isTouchedInsideFrame())
|
|
|
{
|
|
|
this._touching = true;
|
|
|
this.onTouch(true);
|
|
|
} else if (TouchInput.isCancelled()) {
|
|
|
if (this.isCancelEnabled()) {
|
|
|
this.processCancel();
|
|
|
}
|
|
|
}
|
|
|
if (this._touching) {
|
|
|
if (TouchInput.isPressed()) {
|
|
|
this.onTouch(false);
|
|
|
} else {
|
|
|
this._touching = false;
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
this._touching = false;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.itemCan = function()
|
|
|
{
|
|
|
return !!this._list[this.index()];
|
|
|
}
|
|
|
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.processOk = function()
|
|
|
{
|
|
|
if(!this.visible)return;
|
|
|
if (this.itemCan())
|
|
|
{
|
|
|
this.playOkSound();
|
|
|
this.updateInputData();
|
|
|
this.callOkHandler();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
this.playBuzzerSound();
|
|
|
}
|
|
|
};
|
|
|
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.processCancel = function()
|
|
|
{
|
|
|
this.playCancelSound();
|
|
|
this.updateInputData();
|
|
|
this.callCancelHandler();
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.playCancelSound = function()
|
|
|
{
|
|
|
SoundManager.playCancel();
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.playOkSound = function()
|
|
|
{
|
|
|
if(!Zzy.SCF.PlaySE(1))
|
|
|
{SoundManager.playOk();}
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.playBuzzerSound = function()
|
|
|
{
|
|
|
if(!Zzy.SCF.PlaySE(2))
|
|
|
{SoundManager.playBuzzer();}
|
|
|
};
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.OnProcessOk = function()
|
|
|
{
|
|
|
//双击取出道具
|
|
|
var index = this.index();
|
|
|
var info = this._list[index];
|
|
|
if(info)
|
|
|
{
|
|
|
this.GetListInfo(index);
|
|
|
|
|
|
var value = info.value;//数量
|
|
|
var id = info.itemId;
|
|
|
|
|
|
if($gameSystem._ZzySCFIsCAutoLine)
|
|
|
{
|
|
|
//向前遍历
|
|
|
|
|
|
var tList = $gameSystem.GetZzySCFStorage(this.mapId,this.evId);
|
|
|
var len = tList.length;
|
|
|
|
|
|
for(var i=index;i<len-1;i++)
|
|
|
{
|
|
|
tList[i] = tList[i+1];
|
|
|
}
|
|
|
tList[len-1] = undefined;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
$gameSystem._ZzySCFStorage[this.mapId][this.evId][index] = undefined;
|
|
|
}
|
|
|
this.refreshList();//刷新list
|
|
|
this.refresh();
|
|
|
|
|
|
if(this._list[0] === undefined)//不存在了
|
|
|
{
|
|
|
this.froceClose = true;
|
|
|
this.closeEvId = Zzy.SCF.TempCallInfo ? Zzy.SCF.TempCallInfo.evId : 0;
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
Window_ZzySCFYuanShen.prototype.GetListInfo = function(index)
|
|
|
{
|
|
|
var info = this._list[index];
|
|
|
|
|
|
if(info)
|
|
|
{
|
|
|
var value = info.value;//数量
|
|
|
var id = info.itemId;
|
|
|
|
|
|
var gItem = undefined;
|
|
|
|
|
|
switch(info.typeId)
|
|
|
{
|
|
|
case 1:$gameParty.gainGold(value);break;
|
|
|
case 2:
|
|
|
var item = $dataItems[id];
|
|
|
$gameParty.gainItem(item,value);
|
|
|
gItem = item;
|
|
|
break;
|
|
|
case 3:
|
|
|
var weapon = $dataWeapons[id];
|
|
|
$gameParty.gainItem(weapon,value);
|
|
|
gItem = weapon;
|
|
|
break;
|
|
|
case 4:
|
|
|
var armor = $dataArmors[id];
|
|
|
$gameParty.gainItem(armor,value);
|
|
|
gItem = armor;
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
//---更新--- 有获取道具插件时
|
|
|
if(LiuYue.LiuYue_GainItemTips)
|
|
|
{
|
|
|
if($gameSystem.GetZzyGITPluginEnable())
|
|
|
{
|
|
|
Zzy.GIT.GainPrompt(gItem, value);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//================================================================
|
|
|
//DataManager
|
|
|
//================================================================
|
|
|
Zzy.SCF.DataManager_isDatabaseLoaded = DataManager.isDatabaseLoaded;
|
|
|
DataManager.isDatabaseLoaded = function()
|
|
|
{
|
|
|
if (!Zzy.SCF.DataManager_isDatabaseLoaded.call(this)) return false;
|
|
|
|
|
|
//添加标签内容
|
|
|
this.ZzySCFLoadNoteCase1($dataItems);//物品
|
|
|
this.ZzySCFLoadNoteCase1($dataArmors);//护甲
|
|
|
this.ZzySCFLoadNoteCase1($dataWeapons);//武器
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
|
|
|
//================================================================
|
|
|
//DataManager
|
|
|
//================================================================
|
|
|
|
|
|
DataManager.ZzySCFLoadNoteCase1 = function(objArr)
|
|
|
{
|
|
|
for (var i = 1; i < objArr.length; i++)
|
|
|
{
|
|
|
var obj = objArr[i];
|
|
|
var noteData = obj.note.split(/[\r\n]+/);
|
|
|
|
|
|
obj.zzySCF = obj.zzySCF || {};
|
|
|
|
|
|
for(var j=0;j<noteData.length;j++)
|
|
|
{
|
|
|
var lineStr = noteData[j];
|
|
|
|
|
|
if(lineStr.match(/<ZZYSCF COLOR:[ ](.*)>/i))//显示颜色
|
|
|
{
|
|
|
var color = String(RegExp.$1);
|
|
|
obj.zzySCF['color'] = color;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//================================================================
|
|
|
//Game_Interpreter
|
|
|
//================================================================
|
|
|
Zzy.SCF.Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
|
|
|
Game_Interpreter.prototype.pluginCommand = function(command, args)
|
|
|
{
|
|
|
Zzy.SCF.Game_Interpreter_pluginCommand.call(this,command,args);
|
|
|
if(command === 'ZzySCF')
|
|
|
{
|
|
|
this.ZzySCFCommand(args);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
Game_Interpreter.prototype.ZzySCFCommand = function(args)
|
|
|
{
|
|
|
var command = String(args[0]);
|
|
|
|
|
|
switch(command)
|
|
|
{
|
|
|
case 'OverlapMode':
|
|
|
var mode = Zzy.SCF.OverlapModeToID(String(args[1]));
|
|
|
Zzy.SCF.OverlapMode(mode);
|
|
|
|
|
|
//$gameSystem._ZzySCFOverlapMode = mode;
|
|
|
break;
|
|
|
|
|
|
case 'ShowMode':
|
|
|
var mode = Zzy.SCF.ShowModeToID(String(args[1]));
|
|
|
Zzy.SCF.ShowMode(mode);
|
|
|
|
|
|
//$gameSystem._ZzySCFShowMode = mode;
|
|
|
break;
|
|
|
|
|
|
case 'IsFilterText':
|
|
|
var enable = eval(String(args[1]));
|
|
|
Zzy.SCF.IsFilterText(enable);
|
|
|
|
|
|
//$gameSystem._ZzySCFIsFilterText = enable;
|
|
|
break;
|
|
|
|
|
|
case 'CoinIcon':
|
|
|
var iconIndex = parseInt(args[1]);
|
|
|
Zzy.SCF.CoinIcon(iconIndex);
|
|
|
|
|
|
//$gameSystem._ZzySCFCoinIcon = iconIndex;
|
|
|
break;
|
|
|
|
|
|
case 'CMaxCols':
|
|
|
var cols = parseInt(args[1]);
|
|
|
Zzy.SCF.CMaxCols(cols);
|
|
|
|
|
|
//$gameSystem._ZzySCFCMaxCols = cols;
|
|
|
break;
|
|
|
|
|
|
case 'IsCAllTake':
|
|
|
var enable = eval(String(args[1]));
|
|
|
Zzy.SCF.IsCAllTake(enable);
|
|
|
|
|
|
//$gameSystem._ZzySCFIsCAllTake = enable;
|
|
|
break;
|
|
|
|
|
|
case 'CAllTakeText':
|
|
|
var tText = String(args[1]);
|
|
|
Zzy.SCF.CAllTakeText(tText);
|
|
|
|
|
|
//$gameSystem._ZzySCFCAllTakeText = tText;
|
|
|
break;
|
|
|
|
|
|
case 'IsCClose':
|
|
|
var enable = eval(String(args[1]));
|
|
|
Zzy.SCF.IsCClose(enable);
|
|
|
|
|
|
//$gameSystem._ZzySCFIsCClose = enable;
|
|
|
break;
|
|
|
|
|
|
case 'CCloseText':
|
|
|
var tText = String(args[1]);
|
|
|
Zzy.SCF.CCloseText(tText);
|
|
|
|
|
|
//$gameSystem._ZzySCFCCloseText = tText;
|
|
|
break;
|
|
|
|
|
|
case 'IsCAutoLine':
|
|
|
var enable = eval(String(args[1]));
|
|
|
Zzy.SCF.IsCAutoLine(enable);
|
|
|
|
|
|
//$gameSystem._ZzySCFIsCAutoLine = enable;
|
|
|
break;
|
|
|
|
|
|
case 'YMaxCols':
|
|
|
var cols = parseInt(args[1]);
|
|
|
Zzy.SCF.YMaxCols(cols);
|
|
|
|
|
|
//$gameSystem._ZzySCFYMaxCols = cols;
|
|
|
break;
|
|
|
|
|
|
case 'YMaxList':
|
|
|
var list = parseInt(args[1]);
|
|
|
Zzy.SCF.YMaxList(list);
|
|
|
|
|
|
//$gameSystem._ZzySCFYMaxList = list;
|
|
|
break;
|
|
|
|
|
|
case 'YWindowWidth':
|
|
|
var width = parseInt(args[1]);
|
|
|
Zzy.SCF.YWindowWidth(width);
|
|
|
|
|
|
//$gameSystem._ZzySCFYWindowWidth = width;
|
|
|
break;
|
|
|
|
|
|
case 'YWindowOp':
|
|
|
var op = parseInt(args[1]);
|
|
|
Zzy.SCF.YWindowOp(op);
|
|
|
|
|
|
//$gameSystem._ZzySCFYWindowOp = op;
|
|
|
break;
|
|
|
|
|
|
case 'YTakeRange':
|
|
|
var range = parseInt(args[1]);
|
|
|
Zzy.SCF.YTakeRange(range);
|
|
|
|
|
|
//$gameSystem._ZzySCFYTakeRange = range;
|
|
|
break;
|
|
|
|
|
|
case 'YColor1':
|
|
|
var color = String(args[1]);
|
|
|
Zzy.SCF.YColor1(color);
|
|
|
|
|
|
//$gameSystem._ZzySCFYColor1 = color;
|
|
|
break;
|
|
|
|
|
|
case 'YColor2':
|
|
|
var color = String(args[1]);
|
|
|
Zzy.SCF.YColor2(color);
|
|
|
|
|
|
//$gameSystem._ZzySCFYColor2 = color;
|
|
|
break;
|
|
|
|
|
|
case 'YOffsetX':
|
|
|
var ofx = Number(args[1]);
|
|
|
Zzy.SCF.YOffsetX(ofx);
|
|
|
|
|
|
//$gameSystem._ZzySCFYOffsetX = ofx;
|
|
|
break;
|
|
|
|
|
|
case 'YOffsetY':
|
|
|
var ofy = Number(args[1]);
|
|
|
Zzy.SCF.YOffsetY(ofy);
|
|
|
|
|
|
//$gameSystem._ZzySCFYOffsetY = ofy;
|
|
|
break;
|
|
|
|
|
|
case 'YFadeFrame':
|
|
|
var fFrame = parseInt(args[1]);
|
|
|
Zzy.SCF.YFadeFrame(fFrame);
|
|
|
|
|
|
//$gameSystem._ZzySCFYFadeFrame = fFrame;
|
|
|
break;
|
|
|
|
|
|
case 'YDistance':
|
|
|
var dis = parseInt(args[1]);
|
|
|
Zzy.SCF.YDistance(dis);
|
|
|
|
|
|
//$gameSystem._ZzySCFYDistance = dis;
|
|
|
break;
|
|
|
|
|
|
case 'YIsHorShow':
|
|
|
var enable = eval(String(args[1]));
|
|
|
Zzy.SCF.YIsHorShow(enable);
|
|
|
|
|
|
//$gameSystem._ZzySCFYIsHorShow = enable;
|
|
|
break;
|
|
|
|
|
|
case 'YIsAutoOpen':
|
|
|
var enable = eval(String(args[1]));
|
|
|
Zzy.SCF.YIsAutoOpen(enable);
|
|
|
|
|
|
//$gameSystem._ZzySCFYIsAutoOpen = enable;
|
|
|
break;
|
|
|
|
|
|
case 'YIsLimitWindow':
|
|
|
var enable = eval(String(args[1]));
|
|
|
Zzy.SCF.YIsLimitWindow(enable);
|
|
|
|
|
|
//$gameSystem._ZzySCFYIsLimitWindow = enable;
|
|
|
break;
|
|
|
|
|
|
case 'CoinColor':
|
|
|
var color = String(args[1]);
|
|
|
Zzy.SCF.CoinColor(color);
|
|
|
|
|
|
//$gameSystem._ZzySCFCoinColor = color;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.Game_Interpreter_update = Game_Interpreter.prototype.update;
|
|
|
Game_Interpreter.prototype.update = function()
|
|
|
{
|
|
|
if(this.eventId())
|
|
|
{
|
|
|
var ev = $gameMap.event(this.eventId());
|
|
|
if(ev && ev.ZzySCFIsChest())//代表是箱子
|
|
|
{
|
|
|
this._ZzySCFIsChestMode = true;//开启箱子模式
|
|
|
this._ZzySCFWaitCall = true;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.Game_Interpreter_update.call(this);
|
|
|
|
|
|
var isFirst = false;
|
|
|
if(this._ZzySCFWaitCall && !this.isRunning())//做呼叫准备
|
|
|
{
|
|
|
this._ZzySCFWaitCall = false;
|
|
|
$gameSystem.ZzySCFSetWaitCall(this.ZzySCFCallStorageInfo());
|
|
|
isFirst = true;
|
|
|
}
|
|
|
this._ZzySCFIsChestMode = false;//关闭宝箱收集模式
|
|
|
|
|
|
if(!isFirst)
|
|
|
{
|
|
|
if($gameSystem._ZzySCFWaitOfChest && !this.isRunning())
|
|
|
{
|
|
|
$gameSystem.ZzySCFSetWaitCall($gameSystem._ZzySCFWaitOfChest);
|
|
|
$gameSystem._ZzySCFWaitOfChest = undefined;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Game_Interpreter.prototype.ZzySCFCallStorageInfo = function()//制作呼叫仓库数据信息
|
|
|
{
|
|
|
var info = {};
|
|
|
info.evId = this.eventId();
|
|
|
info.mapId = $gameMap.mapId();
|
|
|
|
|
|
|
|
|
return info;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//呼叫金币函数
|
|
|
Zzy.SCF.Game_Interpreter_command125 = Game_Interpreter.prototype.command125;
|
|
|
Game_Interpreter.prototype.command125 = function()
|
|
|
{
|
|
|
if(this._ZzySCFIsChestMode)
|
|
|
{
|
|
|
var value = this.operateValue(this._params[0], this._params[1], this._params[2]);
|
|
|
if(value >= 0)
|
|
|
{
|
|
|
$gameSystem.ZzySCFRecordInfo(this.eventId(),value,0,1);
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
return Zzy.SCF.Game_Interpreter_command125.call(this);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
//呼叫道具函数
|
|
|
Zzy.SCF.Game_Interpreter_command126 = Game_Interpreter.prototype.command126;
|
|
|
Game_Interpreter.prototype.command126 = function()
|
|
|
{
|
|
|
|
|
|
|
|
|
if(this._ZzySCFIsChestMode)
|
|
|
{
|
|
|
var value = this.operateValue(this._params[1], this._params[2], this._params[3]);
|
|
|
if(value >= 0)
|
|
|
{
|
|
|
$gameSystem.ZzySCFRecordInfo(this.eventId(),value,this._params[0],2);
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return Zzy.SCF.Game_Interpreter_command126.call(this);
|
|
|
|
|
|
};
|
|
|
|
|
|
//呼叫武器函数
|
|
|
Zzy.SCF.Game_Interpreter_command127 = Game_Interpreter.prototype.command127;
|
|
|
Game_Interpreter.prototype.command127 = function()
|
|
|
{
|
|
|
if(this._ZzySCFIsChestMode)
|
|
|
{
|
|
|
var value = this.operateValue(this._params[1], this._params[2], this._params[3]);
|
|
|
if(value >= 0)
|
|
|
{
|
|
|
$gameSystem.ZzySCFRecordInfo(this.eventId(),value,this._params[0],3);
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
return Zzy.SCF.Game_Interpreter_command127.call(this);
|
|
|
|
|
|
};
|
|
|
|
|
|
//呼叫护甲函数
|
|
|
Zzy.SCF.Game_Interpreter_command128 = Game_Interpreter.prototype.command128;
|
|
|
Game_Interpreter.prototype.command128 = function()
|
|
|
{
|
|
|
if(this._ZzySCFIsChestMode)
|
|
|
{
|
|
|
var value = this.operateValue(this._params[1], this._params[2], this._params[3]);
|
|
|
if(value >= 0)
|
|
|
{
|
|
|
$gameSystem.ZzySCFRecordInfo(this.eventId(),value,this._params[0],4);
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
return Zzy.SCF.Game_Interpreter_command128.call(this);
|
|
|
|
|
|
};
|
|
|
|
|
|
//呼叫文本函数
|
|
|
Zzy.SCF.Game_Interpreter_command101 = Game_Interpreter.prototype.command101;
|
|
|
Game_Interpreter.prototype.command101 = function()
|
|
|
{
|
|
|
if($gameSystem._ZzySCFIsFilterText && this._ZzySCFIsChestMode)//是否忽略脚本
|
|
|
{
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
return Zzy.SCF.Game_Interpreter_command101.call(this);
|
|
|
}
|
|
|
|
|
|
|
|
|
//============================================================================================
|
|
|
//Game_Event
|
|
|
//============================================================================================
|
|
|
|
|
|
Zzy.SCF.Game_Event_setupPage = Game_Event.prototype.setupPage;
|
|
|
Game_Event.prototype.setupPage = function() //加载事件信息
|
|
|
{
|
|
|
Zzy.SCF.Game_Event_setupPage.call(this);
|
|
|
this.ZzySCFInitData();//调用初始化数据
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Game_Event.prototype.ZzySCFInitData = function()
|
|
|
{
|
|
|
if (!this.page()) return;
|
|
|
|
|
|
var list = this.list();
|
|
|
var len = list.length;
|
|
|
|
|
|
this.zzySCF = {};
|
|
|
|
|
|
for (var i = 0; i < len; ++i)
|
|
|
{
|
|
|
var ev = list[i];
|
|
|
|
|
|
|
|
|
if ([108, 408].contains(ev.code))
|
|
|
{
|
|
|
|
|
|
if(ev.parameters[0].match(/<ZZYSCF[ ]CHEST>/i))//设置为箱子
|
|
|
{
|
|
|
this.zzySCF.IsChest = true;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
Zzy.SCF.Game_Event_initialize = Game_Event.prototype.initialize;
|
|
|
Game_Event.prototype.initialize = function(mapId, eventId)
|
|
|
{
|
|
|
Zzy.SCF.Game_Event_initialize.call(this,mapId,eventId);
|
|
|
this._ZzySCFNotRepeat = 0;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
Zzy.SCF.Game_Event_start = Game_Event.prototype.start;
|
|
|
Game_Event.prototype.start = function()//玩家产生触碰时
|
|
|
{
|
|
|
Zzy.SCF.Game_Event_start.call(this);
|
|
|
|
|
|
if($gameSystem.IsZzySCFStorage($gameMap.mapId(),this.eventId()) && this._ZzySCFNotRepeat <= 0)
|
|
|
{
|
|
|
$gameSystem._ZzySCFWaitOfChest = {mapId:$gameMap.mapId(),evId:this.eventId()};
|
|
|
this._ZzySCFNotRepeat = Zzy.SCF.TempNotRepeatFrame;//忽略三帧
|
|
|
}
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.Game_Event_update = Game_Event.prototype.update;
|
|
|
Game_Event.prototype.update = function()
|
|
|
{
|
|
|
Zzy.SCF.Game_Event_update.call(this);
|
|
|
this.updateZzySCFNotRepeat();
|
|
|
|
|
|
}
|
|
|
Game_Event.prototype.updateZzySCFNotRepeat = function()
|
|
|
{
|
|
|
if(!this._ZzySCFNotRepeat)return;
|
|
|
|
|
|
if(this._ZzySCFNotRepeat > 0){this._ZzySCFNotRepeat--;}
|
|
|
else{this._ZzySCFNotRepeat = 0;}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Game_Event.prototype.MakeZzySCFInfo = function()
|
|
|
{
|
|
|
var info = {};
|
|
|
info.mapId = $gameMap.mapId();
|
|
|
info.evId = this.eventId();
|
|
|
return info;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Game_Event.prototype.ZzySCFIsChest = function()
|
|
|
{
|
|
|
if(!this.zzySCF || !this.zzySCF.IsChest)return false;
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
Game_Event.prototype.ZzySCFExeChestCommand = function()
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
//============================================================================================
|
|
|
//Game_Interpreter
|
|
|
//============================================================================================
|
|
|
Zzy.SCF.Game_Interpreter_initialize = Game_Interpreter.prototype.initialize;
|
|
|
Game_Interpreter.prototype.initialize = function(depth)
|
|
|
{
|
|
|
Zzy.SCF.Game_Interpreter_initialize.call(this,depth);
|
|
|
this._ZzySCFEventId = 0;//使用事件ID
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//------------------------------Zzy.SCF.Function-------------------------------
|
|
|
|
|
|
Zzy.SCF.OverlapModeToID = function(str)
|
|
|
{
|
|
|
switch(str)
|
|
|
{
|
|
|
case 'Single':return 1;
|
|
|
case 'Overlap':return 2;
|
|
|
case 'Event':return 3;
|
|
|
}
|
|
|
console.log('Error:来自LiuYue_SeniorChest,检查叠加模式填写是否正确');return;
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.ShowModeToID = function(str)
|
|
|
{
|
|
|
switch(str)
|
|
|
{
|
|
|
case 'Chest':return 1;
|
|
|
case 'YuanShen':return 2;
|
|
|
}
|
|
|
console.log('Error:来自LiuYue_SeniorChest,检查显示模式填写是否正确');return;
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.PlaySE = function(soundID)//播放声音
|
|
|
{
|
|
|
var se = Zzy.Param.SCFAllSE[soundID];
|
|
|
if(se && se.name)
|
|
|
{
|
|
|
AudioManager.playSe(se);
|
|
|
return true;
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Zzy.SCF.OverlapMode = function(mode)
|
|
|
{
|
|
|
$gameSystem._ZzySCFOverlapMode = mode;
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.ShowMode = function(mode)
|
|
|
{
|
|
|
$gameSystem._ZzySCFShowMode = mode;
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.IsFilterText = function(enable)
|
|
|
{
|
|
|
$gameSystem._ZzySCFIsFilterText = enable;
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.CoinIcon = function(iconIndex)
|
|
|
{
|
|
|
$gameSystem._ZzySCFCoinIcon = iconIndex;
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.CMaxCols = function(cols)
|
|
|
{
|
|
|
$gameSystem._ZzySCFCMaxCols = cols;
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.IsCAllTake = function(enable)
|
|
|
{
|
|
|
$gameSystem._ZzySCFIsCAllTake = enable;
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.CAllTakeText = function(tText)
|
|
|
{
|
|
|
$gameSystem._ZzySCFCAllTakeText = tText;
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.IsCClose = function(enable)
|
|
|
{
|
|
|
$gameSystem._ZzySCFIsCClose = enable;
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.CCloseText = function(tText)
|
|
|
{
|
|
|
$gameSystem._ZzySCFCCloseText = tText;
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.IsCAutoLine = function(enable)
|
|
|
{
|
|
|
$gameSystem._ZzySCFIsCAutoLine = enable;
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.YMaxCols = function(cols)
|
|
|
{
|
|
|
$gameSystem._ZzySCFYMaxCols = cols;
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.YMaxList = function(list)
|
|
|
{
|
|
|
$gameSystem._ZzySCFYMaxList = list;
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.YWindowWidth = function(width)
|
|
|
{
|
|
|
$gameSystem._ZzySCFYWindowWidth = width;
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.YWindowOp = function(op)
|
|
|
{
|
|
|
$gameSystem._ZzySCFYWindowOp = op;
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.YTakeRange = function(range)
|
|
|
{
|
|
|
$gameSystem._ZzySCFYTakeRange = range;
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.YColor1 = function(color)
|
|
|
{
|
|
|
$gameSystem._ZzySCFYColor1 = color;
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.YColor2 = function(color)
|
|
|
{
|
|
|
$gameSystem._ZzySCFYColor2 = color;
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.YOffsetX = function(ofx)
|
|
|
{
|
|
|
$gameSystem._ZzySCFYOffsetX = ofx;
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.YOffsetY = function(ofy)
|
|
|
{
|
|
|
$gameSystem._ZzySCFYOffsetY = ofy;
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.YFadeFrame = function(fFrame)
|
|
|
{
|
|
|
$gameSystem._ZzySCFYFadeFrame = fFrame;
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.YDistance = function(dis)
|
|
|
{
|
|
|
$gameSystem._ZzySCFYDistance = dis;
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.YIsHorShow = function(enable)
|
|
|
{
|
|
|
$gameSystem._ZzySCFYIsHorShow = enable;
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.YIsAutoOpen = function(enable)
|
|
|
{
|
|
|
$gameSystem._ZzySCFYIsAutoOpen = enable;
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.YIsLimitWindow = function(enable)
|
|
|
{
|
|
|
$gameSystem._ZzySCFYIsLimitWindow = enable;
|
|
|
}
|
|
|
|
|
|
Zzy.SCF.CoinColor = function(color)
|
|
|
{
|
|
|
$gameSystem._ZzySCFCoinColor = color;
|
|
|
}
|
|
|
|
|
|
|