|
|
/*:
|
|
|
* @plugindesc v1.04 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.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;
|
|
|
|
|
|
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;
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
|
|
|
//================================================================
|
|
|
//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;
|
|
|
};
|