|
|
|
|
/*:
|
|
|
|
|
* @plugindesc v1.05 LiuYue_EventCorona 事件光环
|
|
|
|
|
* @author 流逝的岁月
|
|
|
|
|
*
|
|
|
|
|
* @help
|
|
|
|
|
* ============================================================================
|
|
|
|
|
* 介绍
|
|
|
|
|
* ============================================================================ *
|
|
|
|
|
*
|
|
|
|
|
* 为地图中的事件提供光环,使角色靠近时触发效果
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*-------------------------------------------------------------------
|
|
|
|
|
*
|
|
|
|
|
*使用条例:本插件完全免费,随意魔改
|
|
|
|
|
*
|
|
|
|
|
*-------------------------------------------------------------------
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*---------------------------------------------------------------------------
|
|
|
|
|
*以下是可以使用的插件指令
|
|
|
|
|
*-----------------------PluginCommand-------------------------
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* ZzyECF IsShowCorona x(true/false) //这会修改是否显示光环范围
|
|
|
|
|
* ZzyECF CoronaMode x(circle/rect) //这会修改显示的光环模式
|
|
|
|
|
* ZzyECF CoronaRange x //这会修改显示的光环的半径范围,x为正整数,对应1范围为地图中的一格距离
|
|
|
|
|
* ZzyECF EffectFrame x //这会修改光环的执行时间间隔,x为帧数
|
|
|
|
|
* ZzyECF EffectCommand x //这会修改调用公共事件的ID值
|
|
|
|
|
* ZzyECF RangePic x //这会修改显示光环范围的位图
|
|
|
|
|
* ZzyECF OffsetX x //这会修改显示光环的位置偏移X,x可以是一个正负整数
|
|
|
|
|
* ZzyECF OffsetY x //这会修改显示光环的位置偏移Y,x可以是一个正负整数
|
|
|
|
|
* ZzyECF BlendMode x(normal/add/multiply/screen) //这会修改图像的叠加模式 ,normal正常 add相加 multiply相乘 screen屏幕
|
|
|
|
|
* ZzyECF ValueBlend x(normal/add/multiply/screen) //这会修改数值的叠加模式 ,normal正常 add相加 multiply相乘 screen屏幕
|
|
|
|
|
* ZzyECF DefaultColor x //这会修改图像默认颜色
|
|
|
|
|
* ZzyECF PictureHue x //这会修改图像默认色相
|
|
|
|
|
* ZzyECF InCommand x //这会修改进入时的公共事件
|
|
|
|
|
* ZzyECF OutCommand x //这会修改离开时的公共事件
|
|
|
|
|
*
|
|
|
|
|
* ZzyECF IsShowValue x(true/false) //这会设置是否显示增减数值
|
|
|
|
|
* ZzyECF ValueSize x //这会设置显示增减数值的尺寸
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*---------------------------------------------------------------------------
|
|
|
|
|
*以下是可以使用的脚本函数
|
|
|
|
|
*-----------------------Script Function-------------------------
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* Zzy.ECF.IsShowCorona(enable) //这会修改是否显示光环范围
|
|
|
|
|
* Zzy.ECF.CoronaMode(str) //这会修改显示的光环模式
|
|
|
|
|
* Zzy.ECF.CoronaRange(range) //这会修改显示的光环的半径范围,x为正整数,对应1范围为地图中的一格距离
|
|
|
|
|
* Zzy.ECF.EffectFrame(frame) //这会修改光环的执行时间间隔,x为帧数
|
|
|
|
|
* Zzy.ECF.EffectCommand(commonId) //这会修改调用公共事件的ID值
|
|
|
|
|
* Zzy.ECF.InCommand(commonId) //这会修改进入时的公共事件
|
|
|
|
|
* Zzy.ECF.OutCommand(commonId) //这会修改离开时的公共事件
|
|
|
|
|
* Zzy.ECF.RangePic(picStr) //这会修改显示光环范围的位图
|
|
|
|
|
* Zzy.ECF.OffsetX(offsetX) //这会修改显示光环的位置偏移X,x可以是一个正负整数
|
|
|
|
|
* Zzy.ECF.OffsetY(offsetY) //这会修改显示光环的位置偏移Y,x可以是一个正负整数
|
|
|
|
|
* Zzy.ECF.BlendMode(modeStr) //这会修改图像的叠加模式 ,normal正常 add相加 multiply相乘 screen屏幕
|
|
|
|
|
* Zzy.ECF.ValueBlend(modeStr) //这会修改图像的叠加模式 ,normal正常 add相加 multiply相乘 screen屏幕
|
|
|
|
|
* Zzy.ECF.DefaultColor(color) //这会修改图像默认颜色
|
|
|
|
|
* Zzy.ECF.PictureHue(hue) //这会修改图像默认色相
|
|
|
|
|
* Zzy.ECF.IsShowValue(enable) //这会设置是否显示增减数值
|
|
|
|
|
* Zzy.ECF.ValueSize(size) //这会设置显示增减数值的尺寸
|
|
|
|
|
*
|
|
|
|
|
* Zzy.ECF.ShowValue(value,color,pIndex,evId) //这会在地图中指定玩家角色显示文本信息,以下是对于参数的介绍
|
|
|
|
|
* -value:需要显示的文本,这可以是一个数值,可以是一段字符串
|
|
|
|
|
* -color:显示文本的颜色,可使用#000000~#ffffff rgba(0~255,0~255,0~5255,0~1) 这两种颜色码格式
|
|
|
|
|
* -pIndex:当前角色位于对于下标的数值,注意从0开始计数 例如领头者那么下标值是0 如有三位跟随者下标则分别是1,2,3
|
|
|
|
|
* -evId:将采用本地图事件ID的注释指令配置显示文本,如不填写则使用插件参数中的配置
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* 例:Zzy.ECF.ShowValue(50,'#ffff22',0) 领头者会显示数字50,淡黄色的文本
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* *以下是一些数据库中使用到的便签,请将他们写在 数据库->角色/职业->注释 之中
|
|
|
|
|
*---------------------DataBase Note--------------------
|
|
|
|
|
*
|
|
|
|
|
* <ZzyECF NOCorona> //这会使这个角色或是职业之下不会受到任何增益光环的效果
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*以下是一些地图中事件用到的便签信息,请将他们写在 地图->事件->事件指令->注释 之中
|
|
|
|
|
*---------------------Note Case--------------------
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* <ZzyECF Corona> //将事件识别为光环事件,将会监视玩家是否进入光环之中,执行光环效果,此标签必须添加才会被视为光环
|
|
|
|
|
*
|
|
|
|
|
* <ZzyECF Show: x(true/false)> //将会设置是否显示光环范围,此设置优先级大于参数中的设置
|
|
|
|
|
* <ZzyECF Mode: x(circle/rect)> //将会设置光环范围的显示模式,此设置优先级大于参数中的设置
|
|
|
|
|
* <ZzyECF Range: x> //将会设置光环半径,此设置优先级大于参数中的设置
|
|
|
|
|
* <ZzyECF Frame: x> //将会设置执行效果的间隔期,此设置优先级大于参数中的设置
|
|
|
|
|
* <ZzyECF Command: x> //将会设置持续光环期间调用公共事件,此设置优先级大于参数中的设置
|
|
|
|
|
* <ZzyECF InCommand: x> //将会设置进入光环时调用公共事件,此设置优先级大于参数中的设置
|
|
|
|
|
* <ZzyECF OutCommand: x> //将会设置离开光环时调用公共事件,此设置优先级大于参数中的设置
|
|
|
|
|
* <ZzyECF RangePic: x> //将会设置修改显示光环的位图,此设置优先级大于参数中的设置
|
|
|
|
|
* <ZzyECF OffsetX: x> //将会设置位图的x偏移
|
|
|
|
|
* <ZzyECF OffsetY: x> //将会设置位图的y偏移
|
|
|
|
|
* <ZzyECF BlendMode: x(normal/add/multiply/screen)> //将会修改图像的叠加模式,此设置优先级大于参数中的设置
|
|
|
|
|
* <ZzyECF ValueBlend: x(normal/add/multiply/screen)> //将会修改数值图像的叠加模式,此设置优先级大于参数中的设置
|
|
|
|
|
* <ZzyECF DefaultColor: x> //将会设置图像默认颜色,此设置优先级大于参数中的设置
|
|
|
|
|
* <ZzyECF PictureHue: x> //将会设置图像默认色相,此设置优先级大于参数中的设置
|
|
|
|
|
*
|
|
|
|
|
* <ZzyECF IsShowValue: x(true/false)> //将会设置是否有可视化数值显示,此设置优先级大于参数中的设置
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* <ZzyECF HP: x> //将会在光环内容执行生命值增减,x可以是一个公式
|
|
|
|
|
* <ZzyECF HPPer: x> //将会在光环内容执行生命值增减百分比,数值1代表1%,x可以是一个公式
|
|
|
|
|
* <ZzyECF MP: x> //将会在光环内容执行魔法值增减,x可以是一个公式
|
|
|
|
|
* <ZzyECF MPPer: x> //将会在光环内容执行魔法值增减百分比,数值1代表1%,x可以是一个公式
|
|
|
|
|
* <ZzyECF TP: x> //将会在光环内容执行TP增减,x可以是一个公式
|
|
|
|
|
* <ZzyECF TPPer: x> //将会在光环内容执行TP增减百分比,数值1代表1%,x可以是一个公式
|
|
|
|
|
*
|
|
|
|
|
* <ZzyECF UseCount: x> //将会设置光环能够响应的次数
|
|
|
|
|
* <ZzyECF RecoverFrame: x> //将会设置光环次数的恢复时长
|
|
|
|
|
* <ZzyECF RecoverNum: x> //将会设置光环每次的恢复数量
|
|
|
|
|
* <ZzyECF IsReMapCount: x(true/false)> //每次进入地图是否会重置次数
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
我叫坂本: v1.05 拓展函数脚本,增加数值叠加模式
|
|
|
|
|
我叫坂本:v1.04 修复了使用某些事件时导致崩溃的bug
|
|
|
|
|
我叫坂本:v1.03 添加与旧存档兼容,修复一个在多个光环同时存在时显示数据不正确的bug
|
|
|
|
|
我叫坂本:v1.02 添加更多数字文本显示的插件参数控制
|
|
|
|
|
我叫坂本:v1.01 修复再切换地图时,导致的光环贴图错误的问题,更新光环响应次数相关的操作
|
|
|
|
|
我叫坂本:v1.00 完成插件
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @param ---设置---
|
|
|
|
|
* @default
|
|
|
|
|
*
|
|
|
|
|
* @param CoronaMode
|
|
|
|
|
* @text 光环模式
|
|
|
|
|
* @parent ---设置---
|
|
|
|
|
* @type combo
|
|
|
|
|
* @option circle
|
|
|
|
|
* @option rect
|
|
|
|
|
* @desc 光环控制范围的模式,选择circle为圆形范围,选择rect为方形范围
|
|
|
|
|
* @default circle
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @param CoronaRange
|
|
|
|
|
* @text 光环半径
|
|
|
|
|
* @parent ---设置---
|
|
|
|
|
* @type Number
|
|
|
|
|
* @desc 设置光环的效果范围的半径值
|
|
|
|
|
* @default 3
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @param EffectFrame
|
|
|
|
|
* @text 执行效果的间隔期
|
|
|
|
|
* @parent ---设置---
|
|
|
|
|
* @type Number
|
|
|
|
|
* @desc 这是在光环效果下,经过多少帧会执行一次光环的效果,默认为30帧
|
|
|
|
|
* @default 30
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @param EffectCommand
|
|
|
|
|
* @text 执行效果时公共事件
|
|
|
|
|
* @parent ---设置---
|
|
|
|
|
* @type Number
|
|
|
|
|
* @desc 执行光环时执行的公共事件,填写公共事件ID值,0不会执行任何公共事件,默认值为0
|
|
|
|
|
* @default 0
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @param EffectScript
|
|
|
|
|
* @text 执行效果时脚本
|
|
|
|
|
* @parent ---设置---
|
|
|
|
|
* @type note
|
|
|
|
|
* @desc 执行光环时执行的脚本
|
|
|
|
|
* @default ""
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @param InCommand
|
|
|
|
|
* @text 进入光环时公共事件
|
|
|
|
|
* @parent ---设置---
|
|
|
|
|
* @type Number
|
|
|
|
|
* @desc 刚刚接触到光环时,会执行的公共事件,填写公共事件ID值,0不会执行任何公共事件,默认值为0
|
|
|
|
|
* @default 0
|
|
|
|
|
*
|
|
|
|
|
* @param OutCommand
|
|
|
|
|
* @text 离开光环时公共事件
|
|
|
|
|
* @parent ---设置---
|
|
|
|
|
* @type Number
|
|
|
|
|
* @desc 刚刚离开光环时,会执行的公共事件,填写公共事件ID值,0不会执行任何公共事件,默认值为0
|
|
|
|
|
* @default 0
|
|
|
|
|
*
|
|
|
|
|
* @param CoronaCount
|
|
|
|
|
* @text 光环使用次数
|
|
|
|
|
* @parent ---设置---
|
|
|
|
|
* @type Number
|
|
|
|
|
* @desc 这是触碰光环能使用的次数,当次数使用结束后,光环就会消失,如果设置次数为0,则代表光环有无限次,默认值为0
|
|
|
|
|
* @default 0
|
|
|
|
|
*
|
|
|
|
|
* @param RecoverFrame
|
|
|
|
|
* @text 光环恢复时长
|
|
|
|
|
* @parent ---设置---
|
|
|
|
|
* @type Number
|
|
|
|
|
* @desc 光环会经过多少帧的时长进行恢复,如果设为0,则代表不会进行恢复,默认值为0
|
|
|
|
|
* @default 0
|
|
|
|
|
*
|
|
|
|
|
* @param RecoverNum
|
|
|
|
|
* @text 光环恢复次数
|
|
|
|
|
* @parent ---设置---
|
|
|
|
|
* @type Number
|
|
|
|
|
* @desc 每次光环记性恢复时,会恢复多少次,默认值为0
|
|
|
|
|
* @default 0
|
|
|
|
|
*
|
|
|
|
|
* @param IsReMapCount
|
|
|
|
|
* @text 重进地图恢复次数
|
|
|
|
|
* @parent ---设置---
|
|
|
|
|
* @type boolean
|
|
|
|
|
* @on YES
|
|
|
|
|
* @off NO
|
|
|
|
|
* @desc 每次从重进地图时,是否会重置光环的次数信息
|
|
|
|
|
* YES - true NO - false
|
|
|
|
|
* @default true
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @param ---显示---
|
|
|
|
|
* @default
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @param IsShowCorona
|
|
|
|
|
* @text 是否显示光环范围
|
|
|
|
|
* @parent ---显示---
|
|
|
|
|
* @type boolean
|
|
|
|
|
* @on YES
|
|
|
|
|
* @off NO
|
|
|
|
|
* @desc 光环的图片是否显示
|
|
|
|
|
* YES - true NO - false
|
|
|
|
|
* @default true
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @param RangePic
|
|
|
|
|
* @text 光环范围图片
|
|
|
|
|
* @parent ---显示---
|
|
|
|
|
* @dir img/pictures
|
|
|
|
|
* @type file
|
|
|
|
|
* @desc 可以填写显示光环图片名称,图片放在img/pictures文件夹中,如果没有添写名称,那么会使用系统默认的绘制图片
|
|
|
|
|
* @default
|
|
|
|
|
*
|
|
|
|
|
* @param OffsetX
|
|
|
|
|
* @text 图片偏移X
|
|
|
|
|
* @parent ---显示---
|
|
|
|
|
* @type Text
|
|
|
|
|
* @desc 显示图片的偏移X,用于微调,x可以是一个正负整数,默认值为0
|
|
|
|
|
* @default 0
|
|
|
|
|
*
|
|
|
|
|
* @param OffsetY
|
|
|
|
|
* @text 图片偏移Y
|
|
|
|
|
* @parent ---显示---
|
|
|
|
|
* @type Text
|
|
|
|
|
* @desc 显示图片的偏移Y,用于微调,x可以是一个正负整数,默认值为0
|
|
|
|
|
* @default 0
|
|
|
|
|
*
|
|
|
|
|
* @param BlendMode
|
|
|
|
|
* @text 图形叠加模式
|
|
|
|
|
* @parent ---显示---
|
|
|
|
|
* @type combo
|
|
|
|
|
* @option normal
|
|
|
|
|
* @option add
|
|
|
|
|
* @option multiply
|
|
|
|
|
* @option screen
|
|
|
|
|
* @desc 图像在地图中的叠层模式,normal正常 add相加 multiply相乘 screen屏幕,默认值normal
|
|
|
|
|
* @default normal
|
|
|
|
|
*
|
|
|
|
|
* @param DefaultColor
|
|
|
|
|
* @text 默认光环颜色
|
|
|
|
|
* @parent ---显示---
|
|
|
|
|
* @type Text
|
|
|
|
|
* @desc 显示默认的光环的颜色,这是在没有添加图片时才会显示,可以用#000000 和rgba(0,0,0,0)两种格式
|
|
|
|
|
* @default rgba(40,255,40,0.6)
|
|
|
|
|
*
|
|
|
|
|
* @param PictureHue
|
|
|
|
|
* @text 图像光环色相
|
|
|
|
|
* @parent ---显示---
|
|
|
|
|
* @type Number
|
|
|
|
|
* @desc 显示光环位图的色相偏移,这是在添加图片时才会显示,范围0~360,用来做不同颜色的变化,默认值0
|
|
|
|
|
* @default 0
|
|
|
|
|
*
|
|
|
|
|
* @param ListShowFrame
|
|
|
|
|
* @text 文本显示间隔
|
|
|
|
|
* @parent ---显示---
|
|
|
|
|
* @type Number
|
|
|
|
|
* @desc 在显示文本队列堆的间隔时长,单位为帧数,默认值为20帧
|
|
|
|
|
* @default 20
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @param ---视化数值---
|
|
|
|
|
* @default
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @param IsShowValue
|
|
|
|
|
* @text 是否显示增减数值
|
|
|
|
|
* @parent ---视化数值---
|
|
|
|
|
* @type boolean
|
|
|
|
|
* @on YES
|
|
|
|
|
* @off NO
|
|
|
|
|
* @desc 处于光环效果时,是否可以看到每次交互所产生的数值效果
|
|
|
|
|
* YES - true NO - false
|
|
|
|
|
* @default true
|
|
|
|
|
*
|
|
|
|
|
* @param ValueSize
|
|
|
|
|
* @text 数值字体大小
|
|
|
|
|
* @parent ---视化数值---
|
|
|
|
|
* @type Number
|
|
|
|
|
* @desc 显示在画面上数值字体的大小
|
|
|
|
|
* @default 24
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @param ValueBlend
|
|
|
|
|
* @text 数值叠加模式
|
|
|
|
|
* @parent ---视化数值---
|
|
|
|
|
* @type combo
|
|
|
|
|
* @option normal
|
|
|
|
|
* @option add
|
|
|
|
|
* @option multiply
|
|
|
|
|
* @option screen
|
|
|
|
|
* @desc 数值在地图中的叠层模式,normal正常 add相加 multiply相乘 screen屏幕,默认值normal
|
|
|
|
|
* @default normal
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @param HPColor
|
|
|
|
|
* @text 数值生命颜色
|
|
|
|
|
* @parent ---视化数值---
|
|
|
|
|
* @type Text
|
|
|
|
|
* @desc 生命光环时显示的数值颜色,可以用#000000 和rgba(0,0,0,0)两种格式
|
|
|
|
|
* @default rgba(40,255,40,0.8)
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @param MPColor
|
|
|
|
|
* @text 数值魔法颜色
|
|
|
|
|
* @parent ---视化数值---
|
|
|
|
|
* @type Text
|
|
|
|
|
* @desc 魔法光环时显示的数值颜色,可以用#000000 和rgba(0,0,0,0)两种格式
|
|
|
|
|
* @default rgba(40,40,255,0.8)
|
|
|
|
|
*
|
|
|
|
|
* @param TPColor
|
|
|
|
|
* @text 数值TP颜色
|
|
|
|
|
* @parent ---视化数值---
|
|
|
|
|
* @type Text
|
|
|
|
|
* @desc TP光环时显示的数值颜色,可以用#000000 和rgba(0,0,0,0)两种格式
|
|
|
|
|
* @default rgba(255,40,255,0.8)
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @param HPPerColor
|
|
|
|
|
* @text 数值百分比生命颜色
|
|
|
|
|
* @parent ---视化数值---
|
|
|
|
|
* @type Text
|
|
|
|
|
* @desc 生命百分比光环时显示的数值颜色,可以用#000000 和rgba(0,0,0,0)两种格式
|
|
|
|
|
* @default rgba(40,255,40,0.8)
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @param MPPerColor
|
|
|
|
|
* @text 数值百分比魔法颜色
|
|
|
|
|
* @parent ---视化数值---
|
|
|
|
|
* @type Text
|
|
|
|
|
* @desc 魔法百分比光环时显示的数值颜色,可以用#000000 和rgba(0,0,0,0)两种格式
|
|
|
|
|
* @default rgba(40,40,255,0.8)
|
|
|
|
|
*
|
|
|
|
|
* @param TPPerColor
|
|
|
|
|
* @text 数值百分比TP颜色
|
|
|
|
|
* @parent ---视化数值---
|
|
|
|
|
* @type Text
|
|
|
|
|
* @desc TP百分比光环时显示的数值颜色,可以用#000000 和rgba(0,0,0,0)两种格式
|
|
|
|
|
* @default rgba(255,40,255,0.8)
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @param TextShowFrame
|
|
|
|
|
* @text 文本存在时长
|
|
|
|
|
* @parent ---视化数值---
|
|
|
|
|
* @type Number
|
|
|
|
|
* @desc 出现的文字存在的时长,单位为帧数,默认值为40
|
|
|
|
|
* @default 40
|
|
|
|
|
*
|
|
|
|
|
* @param TextAngle
|
|
|
|
|
* @text 文本角度
|
|
|
|
|
* @parent ---视化数值---
|
|
|
|
|
* @type Text
|
|
|
|
|
* @desc 出现的文字的方向,范围0~360,默认值为0
|
|
|
|
|
* @default 0
|
|
|
|
|
*
|
|
|
|
|
* @param AngleArea
|
|
|
|
|
* @text 角度区域
|
|
|
|
|
* @parent ---视化数值---
|
|
|
|
|
* @type Text
|
|
|
|
|
* @desc 这是文字角度偏移的随机区域范围0~180,请输入小数正数,默认值为0
|
|
|
|
|
* @default 0
|
|
|
|
|
*
|
|
|
|
|
* @param TextSpeed
|
|
|
|
|
* @text 文本速度
|
|
|
|
|
* @parent ---视化数值---
|
|
|
|
|
* @type Text
|
|
|
|
|
* @desc 出现的文字的移动速度,默认值为1
|
|
|
|
|
* @default 1
|
|
|
|
|
*
|
|
|
|
|
* @param SpeedRandPer
|
|
|
|
|
* @text 速度随机百分比
|
|
|
|
|
* @parent ---视化数值---
|
|
|
|
|
* @type Text
|
|
|
|
|
* @desc 出现的文字的移动速度的随机百分比差异,范围0~100,请输入小数正数,默认值为0
|
|
|
|
|
* @default 0
|
|
|
|
|
*
|
|
|
|
|
* @param TextGravity
|
|
|
|
|
* @text 文本重力
|
|
|
|
|
* @parent ---视化数值---
|
|
|
|
|
* @type Text
|
|
|
|
|
* @desc 文本的重力值,默认值为9.8
|
|
|
|
|
* @default 9.8
|
|
|
|
|
*
|
|
|
|
|
* @param GravityRandPer
|
|
|
|
|
* @text 重力随机百分比
|
|
|
|
|
* @parent ---视化数值---
|
|
|
|
|
* @type Text
|
|
|
|
|
* @desc 出现的文字的移动重力的随机百分比差异,范围0~100,请输入小数正数,默认值为0
|
|
|
|
|
* @default 0
|
|
|
|
|
*
|
|
|
|
|
* @param GravityMaxSpeed
|
|
|
|
|
* @text 重力下落最大速度
|
|
|
|
|
* @parent ---视化数值---
|
|
|
|
|
* @type Text
|
|
|
|
|
* @desc 限制重力计算下落的最大速度值,默认值为10
|
|
|
|
|
* @default 10
|
|
|
|
|
*
|
|
|
|
|
* @param TextFadeIn
|
|
|
|
|
* @text 文本渐入时长
|
|
|
|
|
* @parent ---视化数值---
|
|
|
|
|
* @type Number
|
|
|
|
|
* @desc 出现的文字渐入完全透明度的时长,单位为帧数,默认值为5
|
|
|
|
|
* @default 5
|
|
|
|
|
*
|
|
|
|
|
* @param FadeInRandPer
|
|
|
|
|
* @text 文本渐入百分比
|
|
|
|
|
* @parent ---视化数值---
|
|
|
|
|
* @type Text
|
|
|
|
|
* @desc 出现的文字渐入完全透明度的百分比差异,范围0~100,请输入小数正数,默认值为0
|
|
|
|
|
* @default 0
|
|
|
|
|
*
|
|
|
|
|
* @param TextFadeOut
|
|
|
|
|
* @text 文本淡出时长
|
|
|
|
|
* @parent ---视化数值---
|
|
|
|
|
* @type Number
|
|
|
|
|
* @desc 出现的文字渐入完全透明的时长,单位为帧数,默认值为5
|
|
|
|
|
* @default 5
|
|
|
|
|
*
|
|
|
|
|
* @param FadeOutRandPer
|
|
|
|
|
* @text 文本淡出百分比
|
|
|
|
|
* @parent ---视化数值---
|
|
|
|
|
* @type Text
|
|
|
|
|
* @desc 出现的文字渐入完全透明度的百分比差异,范围0~100,请输入小数正数,默认值为0
|
|
|
|
|
* @default 0
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
var LiuYue = LiuYue || {};
|
|
|
|
|
LiuYue.LiuYue_EventCorona = true; //插件启动
|
|
|
|
|
|
|
|
|
|
var Zzy = Zzy || {};
|
|
|
|
|
Zzy.ECF = Zzy.ECF || {};
|
|
|
|
|
Zzy.ECF.version = 1.05;
|
|
|
|
|
Zzy.Parameters = PluginManager.parameters("LiuYue_EventCorona");
|
|
|
|
|
Zzy.Param = Zzy.Param || {};
|
|
|
|
|
|
|
|
|
|
Zzy.Param.ECFIsShowCorona = eval(String(Zzy.Parameters["IsShowCorona"])); //是否显示光环范围
|
|
|
|
|
Zzy.Param.ECFCoronaMode = String(Zzy.Parameters["CoronaMode"]); //光环模式
|
|
|
|
|
Zzy.Param.ECFCoronaRange = Number(Zzy.Parameters["CoronaRange"]); //光环半径
|
|
|
|
|
Zzy.Param.ECFEffectFrame = parseInt(Zzy.Parameters["EffectFrame"]); //光环内执行效果的间隔期
|
|
|
|
|
Zzy.Param.ECFEffectCommand = parseInt(Zzy.Parameters["EffectCommand"]); //公共事件
|
|
|
|
|
Zzy.Param.ECFEffectScript = new Function(JSON.parse(Zzy.Parameters["EffectScript"])); //执行效果时脚本
|
|
|
|
|
Zzy.Param.ECFRangePic = String(Zzy.Parameters["RangePic"]); //光环范围图片
|
|
|
|
|
Zzy.Param.ECFOffsetX = Number(Zzy.Parameters["OffsetX"]); //图片偏移X
|
|
|
|
|
Zzy.Param.ECFOffsetY = Number(Zzy.Parameters["OffsetY"]); //图片偏移Y
|
|
|
|
|
Zzy.Param.ECFBlendMode = String(Zzy.Parameters["BlendMode"]); //图形叠加模式
|
|
|
|
|
Zzy.Param.ECFListShowFrame = parseInt(Zzy.Parameters["ListShowFrame"]); //显示间隔
|
|
|
|
|
|
|
|
|
|
Zzy.Param.ECFInCommand = parseInt(Zzy.Parameters["InCommand"]);
|
|
|
|
|
Zzy.Param.ECFOutCommand = parseInt(Zzy.Parameters["OutCommand"]);
|
|
|
|
|
|
|
|
|
|
Zzy.Param.ECFDefaultColor = String(Zzy.Parameters["DefaultColor"]); //默认光环颜色
|
|
|
|
|
Zzy.Param.ECFPictureHue = Number(Zzy.Parameters["PictureHue"]); //图像光环色相
|
|
|
|
|
|
|
|
|
|
Zzy.Param.ECFIsShowValue = eval(String(Zzy.Parameters["IsShowValue"])); //是否显示增减数值
|
|
|
|
|
Zzy.Param.ECFValueSize = parseInt(Zzy.Parameters["ValueSize"]); //数值字体大小
|
|
|
|
|
Zzy.Param.ECFValueBlend = String(Zzy.Parameters["ValueBlend"]); //数值叠加模式
|
|
|
|
|
|
|
|
|
|
Zzy.Param.ECFHPColor = String(Zzy.Parameters["HPColor"]); //数值生命颜色
|
|
|
|
|
Zzy.Param.ECFMPColor = String(Zzy.Parameters["MPColor"]); //数值魔法颜色
|
|
|
|
|
Zzy.Param.ECFTPColor = String(Zzy.Parameters["TPColor"]); //数值TP颜色
|
|
|
|
|
Zzy.Param.ECFHPPerColor = String(Zzy.Parameters["HPPerColor"]); //数值百分比生命颜色
|
|
|
|
|
Zzy.Param.ECFMPPerColor = String(Zzy.Parameters["MPPerColor"]); //数值百分比魔法颜色
|
|
|
|
|
Zzy.Param.ECFTPPerColor = String(Zzy.Parameters["TPPerColor"]); //数值百分比TP颜色
|
|
|
|
|
|
|
|
|
|
Zzy.Param.ECFCoronaCount = parseInt(Zzy.Parameters["CoronaCount"]); //光环使用次数
|
|
|
|
|
Zzy.Param.ECFRecoverFrame = parseInt(Zzy.Parameters["RecoverFrame"]); //光环恢复时长
|
|
|
|
|
Zzy.Param.ECFRecoverNum = parseInt(Zzy.Parameters["RecoverNum"]); //光环恢复次数
|
|
|
|
|
Zzy.Param.ECFIsReMapCount = eval(String(Zzy.Parameters["IsReMapCount"])); //是否重置次数
|
|
|
|
|
|
|
|
|
|
Zzy.Param.ECFTextShowFrame = parseInt(Zzy.Parameters["TextShowFrame"]); //文本存在的时长
|
|
|
|
|
|
|
|
|
|
Zzy.Param.ECFTextAngle = Number(Zzy.Parameters["TextAngle"]); //文本角度
|
|
|
|
|
Zzy.Param.ECFAngleArea = Number(Zzy.Parameters["AngleArea"]); //角度区域
|
|
|
|
|
Zzy.Param.ECFTextSpeed = Number(Zzy.Parameters["TextSpeed"]); //文本速度
|
|
|
|
|
Zzy.Param.ECFSpeedRandPer = Number(Zzy.Parameters["SpeedRandPer"]); //随机随机百分比
|
|
|
|
|
Zzy.Param.ECFTextGravity = Number(Zzy.Parameters["TextGravity"]); //文本重力
|
|
|
|
|
Zzy.Param.ECFGravityRandPer = Number(Zzy.Parameters["GravityRandPer"]); //重力随机百分比
|
|
|
|
|
Zzy.Param.ECFGravityMaxSpeed = Number(Zzy.Parameters["GravityMaxSpeed"]); //重力最大速度值
|
|
|
|
|
|
|
|
|
|
Zzy.Param.ECFTextFadeIn = parseInt(Zzy.Parameters["TextFadeIn"]); //文本渐入时长
|
|
|
|
|
Zzy.Param.ECFFadeInRandPer = Number(Zzy.Parameters["FadeInRandPer"]); //文本渐入百分比
|
|
|
|
|
Zzy.Param.ECFTextFadeOut = parseInt(Zzy.Parameters["TextFadeOut"]); //文本淡出时长
|
|
|
|
|
Zzy.Param.ECFFadeOutRandPer = Number(Zzy.Parameters["FadeOutRandPer"]); //文本淡出百分比
|
|
|
|
|
|
|
|
|
|
Zzy.ECF.TempMapId = 0; //地图标记
|
|
|
|
|
Zzy.ECF.TempEvIdArr = [];
|
|
|
|
|
Zzy.ECF.TempColorArr = [
|
|
|
|
|
Zzy.Param.ECFHPColor,
|
|
|
|
|
Zzy.Param.ECFMPColor,
|
|
|
|
|
Zzy.Param.ECFTPColor,
|
|
|
|
|
Zzy.Param.ECFHPPerColor,
|
|
|
|
|
Zzy.Param.ECFMPPerColor,
|
|
|
|
|
Zzy.Param.ECFTPPerColor,
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
//=================================================================
|
|
|
|
|
//DataManager
|
|
|
|
|
//=================================================================
|
|
|
|
|
Zzy.ECF.DataManager_loadGame = DataManager.loadGame;
|
|
|
|
|
DataManager.loadGame = function (
|
|
|
|
|
savefileId //旧存档兼容
|
|
|
|
|
) {
|
|
|
|
|
var result = Zzy.ECF.DataManager_loadGame.call(this, savefileId);
|
|
|
|
|
|
|
|
|
|
this.ZzyECFInitData();
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
DataManager.ZzyECFInitData = function () //初始化参数
|
|
|
|
|
{
|
|
|
|
|
if (!$gameSystem.GetIsZzyECFLoaded()) {
|
|
|
|
|
//初始化
|
|
|
|
|
$gameSystem.ZzyECFInitData(); //初始化数据
|
|
|
|
|
$gameSystem.SetIsZzyECFLoaded(true);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//=================================================================
|
|
|
|
|
//Game_System
|
|
|
|
|
//=================================================================
|
|
|
|
|
|
|
|
|
|
Zzy.ECF.Game_System_initialize = Game_System.prototype.initialize;
|
|
|
|
|
Game_System.prototype.initialize = function () {
|
|
|
|
|
Zzy.ECF.Game_System_initialize.call(this);
|
|
|
|
|
this.ZzyECFInitData(); //初始化数据
|
|
|
|
|
|
|
|
|
|
this._IsZzyECFLoaded = true; //是否载入完成
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.GetIsZzyECFLoaded = function () {
|
|
|
|
|
if (this._IsZzyECFLoaded === undefined) {
|
|
|
|
|
this._IsZzyECFLoaded = false;
|
|
|
|
|
}
|
|
|
|
|
return this._IsZzyECFLoaded;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.SetIsZzyECFLoaded = function (enable) {
|
|
|
|
|
this._IsZzyECFLoaded = enable;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.ZzyECFInitData = function () {
|
|
|
|
|
this._ZzyECFIsShowCorona = Zzy.Param.ECFIsShowCorona;
|
|
|
|
|
this._ZzyECFCoronaMode = Zzy.ECF.CoronaModeToInt(Zzy.Param.ECFCoronaMode);
|
|
|
|
|
this._ZzyECFCoronaRange = Zzy.Param.ECFCoronaRange;
|
|
|
|
|
this._ZzyECFEffectFrame = Zzy.Param.ECFEffectFrame;
|
|
|
|
|
this._ZzyECFEffectCommand = Zzy.Param.ECFEffectCommand;
|
|
|
|
|
this._ZzyECFRangePic = Zzy.Param.ECFRangePic;
|
|
|
|
|
this._ZzyECFOffsetX = Zzy.Param.ECFOffsetX;
|
|
|
|
|
this._ZzyECFOffsetY = Zzy.Param.ECFOffsetY;
|
|
|
|
|
|
|
|
|
|
this._ZzyECFBlendMode = Zzy.ECF.BlendModeToInt(Zzy.Param.ECFBlendMode);
|
|
|
|
|
this._ZzyECFInCommand = Zzy.Param.ECFInCommand;
|
|
|
|
|
this._ZzyECFOutCommand = Zzy.Param.ECFOutCommand;
|
|
|
|
|
|
|
|
|
|
this._ZzyECFDefaultColor = Zzy.Param.ECFDefaultColor;
|
|
|
|
|
this._ZzyECFPictureHue = Zzy.Param.ECFPictureHue;
|
|
|
|
|
|
|
|
|
|
this._ZzyECFIsShowValue = Zzy.Param.ECFIsShowValue;
|
|
|
|
|
this._ZzyECFValueSize = Zzy.Param.ECFValueSize;
|
|
|
|
|
this._ZzyECFValueBlend = Zzy.ECF.BlendModeToInt(Zzy.Param.ECFValueBlend);
|
|
|
|
|
|
|
|
|
|
this._ZzyECFCoronaArr = []; //记录接触光圈
|
|
|
|
|
this._ZzyECFCommonArr = []; //事件队列
|
|
|
|
|
|
|
|
|
|
this._ZzyECFEventCountInfo = []; //次数记录
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.setZzyECFRecover = function (
|
|
|
|
|
ev //设置恢复配置
|
|
|
|
|
) {
|
|
|
|
|
var mapId = $gameMap.mapId();
|
|
|
|
|
if (!this._ZzyECFEventCountInfo[mapId]) {
|
|
|
|
|
this._ZzyECFEventCountInfo[mapId] = [];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var evId = ev.eventId();
|
|
|
|
|
var zzyECF = ev.zzyECF;
|
|
|
|
|
|
|
|
|
|
var info = {};
|
|
|
|
|
info.useCount = zzyECF.useCount;
|
|
|
|
|
info.recoverFrame = zzyECF.recoverFrame;
|
|
|
|
|
info.recoverNum = zzyECF.recoverNum;
|
|
|
|
|
info.maxCount = info.useCount;
|
|
|
|
|
info.cFrame = 0;
|
|
|
|
|
|
|
|
|
|
if (!zzyECF.isReMapCount) {
|
|
|
|
|
//不可以重置时
|
|
|
|
|
//判断是否没有进行过赋值
|
|
|
|
|
if (this._ZzyECFEventCountInfo[mapId][evId]) {
|
|
|
|
|
if (!this._ZzyECFEventCountInfo[mapId][evId].maxCount) {
|
|
|
|
|
this._ZzyECFEventCountInfo[mapId][evId] = info;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
this._ZzyECFEventCountInfo[mapId][evId] = info;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
this._ZzyECFEventCountInfo[mapId][evId] = info;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.getZzyECFRecoverInfo = function (evId) {
|
|
|
|
|
var mapId = $gameMap.mapId();
|
|
|
|
|
return this._ZzyECFEventCountInfo[mapId][evId];
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.RecordZzyECFCorona = function (
|
|
|
|
|
ev //压入ev
|
|
|
|
|
) {
|
|
|
|
|
var info = {};
|
|
|
|
|
info.mapId = $gameMap.mapId();
|
|
|
|
|
info.evId = ev.eventId();
|
|
|
|
|
info.inCom = ev.zzyECF.inCommand;
|
|
|
|
|
info.outCom = ev.zzyECF.outCommand;
|
|
|
|
|
|
|
|
|
|
if (info.inCom) {
|
|
|
|
|
this._ZzyECFCommonArr.push(info.inCom);
|
|
|
|
|
} //压入到执行队列中
|
|
|
|
|
|
|
|
|
|
for (var i = 0; i < this._ZzyECFCoronaArr.length; i++) {
|
|
|
|
|
if (!this._ZzyECFCoronaArr[i]) {
|
|
|
|
|
this._ZzyECFCoronaArr[i] = info;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
this._ZzyECFCoronaArr.push(info); //压入光环
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.CheckBeingZzyECFCorona = function (
|
|
|
|
|
ev //检测光环是否存在
|
|
|
|
|
) {
|
|
|
|
|
for (var i = 0; i < this._ZzyECFCoronaArr.length; i++) {
|
|
|
|
|
var info = this._ZzyECFCoronaArr[i];
|
|
|
|
|
if (info && $gameMap.mapId() === info.mapId) {
|
|
|
|
|
if (info.evId === ev.eventId()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.setZzyECFIsShowCorona = function (enable) {
|
|
|
|
|
this._ZzyECFIsShowCorona = enable;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.getZzyECFIsShowCorona = function () {
|
|
|
|
|
return this._ZzyECFIsShowCorona;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.setZzyECFCoronaMode = function (str) {
|
|
|
|
|
this._ZzyECFCoronaMode = str;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.getZzyECFCoronaMode = function () {
|
|
|
|
|
return this._ZzyECFCoronaMode;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.setZzyECFCoronaRange = function (value) {
|
|
|
|
|
this._ZzyECFCoronaRange = value;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.getZzyECFCoronaRange = function () {
|
|
|
|
|
return this._ZzyECFCoronaRange;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.setZzyECFEffectFrame = function (frame) {
|
|
|
|
|
this._ZzyECFEffectFrame = frame;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.getZzyECFEffectFrame = function () {
|
|
|
|
|
return this._ZzyECFEffectFrame;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.setZzyECFEffectCommand = function (commonId) {
|
|
|
|
|
this._ZzyECFEffectCommand = commonId;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.getZzyECFEffectCommand = function () {
|
|
|
|
|
return this._ZzyECFEffectCommand;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.setZzyECFRangePic = function (picStr) {
|
|
|
|
|
this._ZzyECFRangePic = picStr;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.getZzyECFRangePic = function () {
|
|
|
|
|
return this._ZzyECFRangePic;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.setZzyECFBlendMode = function (modeId) {
|
|
|
|
|
this._ZzyECFBlendMode = modeId;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.getZzyECFBlendMode = function () {
|
|
|
|
|
return this._ZzyECFBlendMode;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.setZzyECFValueBlend = function (modeId) {
|
|
|
|
|
this._ZzyECFValueBlend = modeId;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.getZzyECFValueBlend = function () {
|
|
|
|
|
return this._ZzyECFValueBlend;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.setZzyECFInCommand = function (commonId) {
|
|
|
|
|
this._ZzyECFInCommand = commonId;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.getZzyECFInCommand = function () {
|
|
|
|
|
return this._ZzyECFInCommand;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.setZzyECFOutCommand = function (commonId) {
|
|
|
|
|
this._ZzyECFOutCommand = commonId;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.getZzyECFOutCommand = function () {
|
|
|
|
|
return this._ZzyECFOutCommand;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//================================================================
|
|
|
|
|
//Game_Interpreter
|
|
|
|
|
//================================================================
|
|
|
|
|
Zzy.ECF.Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
|
|
|
|
|
Game_Interpreter.prototype.pluginCommand = function (command, args) {
|
|
|
|
|
Zzy.ECF.Game_Interpreter_pluginCommand.call(this, command, args);
|
|
|
|
|
if (command === "ZzyECF") {
|
|
|
|
|
this.ZzyECFCommand(args);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_Interpreter.prototype.ZzyECFCommand = function (args) {
|
|
|
|
|
var command = String(args[0]);
|
|
|
|
|
|
|
|
|
|
switch (command) {
|
|
|
|
|
case "IsShowCorona":
|
|
|
|
|
var enable = eval(String(args[1]));
|
|
|
|
|
Zzy.ECF.IsShowCorona(enable);
|
|
|
|
|
|
|
|
|
|
//$gameSystem.setZzyECFIsShowCorona(enable);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case "CoronaMode":
|
|
|
|
|
var str = Zzy.ECF.CoronaModeToInt(String(args[1]));
|
|
|
|
|
Zzy.ECF.CoronaMode(str);
|
|
|
|
|
|
|
|
|
|
//$gameSystem.setZzyECFCoronaMode(str);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case "CoronaRange":
|
|
|
|
|
var range = Number(args[1]);
|
|
|
|
|
Zzy.ECF.CoronaRange(range);
|
|
|
|
|
|
|
|
|
|
//$gameSystem.setZzyECFCoronaRange(range);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case "EffectFrame":
|
|
|
|
|
var frame = parseInt(args[1]);
|
|
|
|
|
Zzy.ECF.EffectFrame(frame);
|
|
|
|
|
|
|
|
|
|
//$gameSystem.setZzyECFEffectFrame(frame);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case "EffectCommand":
|
|
|
|
|
var commonId = parseInt(args[1]);
|
|
|
|
|
Zzy.ECF.EffectCommand(commonId);
|
|
|
|
|
|
|
|
|
|
//$gameSystem.setZzyECFEffectCommand(commonId);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case "RangePic":
|
|
|
|
|
var picStr = String(args[1]);
|
|
|
|
|
Zzy.ECF.RangePic(picStr);
|
|
|
|
|
|
|
|
|
|
//$gameSystem.setZzyECFRangePic(picStr);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case "OffsetX":
|
|
|
|
|
var offsetX = Number(args[1]);
|
|
|
|
|
Zzy.ECF.OffsetX(offsetX);
|
|
|
|
|
|
|
|
|
|
//$gameSystem._ZzyECFOffsetX = offsetX;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case "OffsetY":
|
|
|
|
|
var offsetY = Number(args[1]);
|
|
|
|
|
Zzy.ECF.OffsetY(offsetY);
|
|
|
|
|
|
|
|
|
|
//$gameSystem._ZzyECFOffsetY = offsetY;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case "BlendMode":
|
|
|
|
|
var modeStr = String(args[1]);
|
|
|
|
|
Zzy.ECF.BlendMode(modeStr);
|
|
|
|
|
|
|
|
|
|
//$gameSystem.setZzyECFBlendMode(modeStr);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case "ValueBlend":
|
|
|
|
|
var modeStr = String(args[1]);
|
|
|
|
|
Zzy.ECF.ValueBlend(modeStr);
|
|
|
|
|
|
|
|
|
|
//$gameSystem.setZzyECFValueBlend(modeStr);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case "InCommand":
|
|
|
|
|
var commonId = parseInt(args[1]);
|
|
|
|
|
Zzy.ECF.InCommand(commonId);
|
|
|
|
|
|
|
|
|
|
//$gameSystem.setZzyECFInCommand(commonId);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case "OutCommand":
|
|
|
|
|
var commonId = parseInt(args[1]);
|
|
|
|
|
Zzy.ECF.OutCommand(commonId);
|
|
|
|
|
|
|
|
|
|
//$gameSystem.setZzyECFOutCommand(commonId);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case "DefaultColor":
|
|
|
|
|
var color = String(args[1]);
|
|
|
|
|
Zzy.ECF.DefaultColor(color);
|
|
|
|
|
|
|
|
|
|
//$gameSystem._ZzyECFDefaultColor = color;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case "PictureHue":
|
|
|
|
|
var hue = Number(args[1]);
|
|
|
|
|
Zzy.ECF.PictureHue(hue);
|
|
|
|
|
|
|
|
|
|
//$gameSystem._ZzyECFPictureHue = hue;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case "IsShowValue":
|
|
|
|
|
var enable = eval(String(args[1]));
|
|
|
|
|
Zzy.ECF.IsShowValue(enable);
|
|
|
|
|
|
|
|
|
|
//$gameSystem._ZzyECFIsShowValue = enable;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case "ValueSize":
|
|
|
|
|
var size = parseInt(args[1]);
|
|
|
|
|
Zzy.ECF.ValueSize(size);
|
|
|
|
|
|
|
|
|
|
//$gameSystem._ZzyECFValueSize = size;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case "ValueBlend":
|
|
|
|
|
var blend = asd;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
this._ZzyECFValueBlend = Zzy.Param.ECFValueBlend;
|
|
|
|
|
|
|
|
|
|
//================================================================
|
|
|
|
|
//DataManager
|
|
|
|
|
//================================================================
|
|
|
|
|
Zzy.ECF.DataManager_isDatabaseLoaded = DataManager.isDatabaseLoaded;
|
|
|
|
|
DataManager.isDatabaseLoaded = function () {
|
|
|
|
|
if (!Zzy.ECF.DataManager_isDatabaseLoaded.call(this)) return false;
|
|
|
|
|
|
|
|
|
|
this.ZzyECFLoadNoteCase1($dataArmors); //护甲
|
|
|
|
|
this.ZzyECFLoadNoteCase1($dataWeapons); //武器
|
|
|
|
|
return true;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
DataManager.ZzyECFLoadNoteCase1 = function (objArr) {
|
|
|
|
|
for (var i = 1; i < objArr.length; i++) {
|
|
|
|
|
var obj = objArr[i];
|
|
|
|
|
var noteData = obj.note.split(/[\r\n]+/);
|
|
|
|
|
obj.zzyECF = {};
|
|
|
|
|
|
|
|
|
|
for (var j = 0; j < noteData.length; j++) {
|
|
|
|
|
var lineStr = noteData[j];
|
|
|
|
|
if (lineStr.match(/<ZZYSEF NOCORONA:[ ](.*)>/i)) {
|
|
|
|
|
obj.zzyECF.isCorona = false; //不开启
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//============================================================================================
|
|
|
|
|
//Game_Event
|
|
|
|
|
//============================================================================================
|
|
|
|
|
|
|
|
|
|
Zzy.ECF.Game_Event_setupPage = Game_Event.prototype.setupPage;
|
|
|
|
|
Game_Event.prototype.setupPage = function () //加载事件信息
|
|
|
|
|
{
|
|
|
|
|
Zzy.ECF.Game_Event_setupPage.call(this);
|
|
|
|
|
this.ZzyECFInitData(); //调用初始化数据
|
|
|
|
|
|
|
|
|
|
this.CreateZzyECFSprite(); //创造对象
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_Event.prototype.CreateZzyECFSprite = function () {
|
|
|
|
|
if (this.zzyECF && this.zzyECF.isCorona) {
|
|
|
|
|
SceneManager._scene.CreateZzyECFSprite(this); //延迟调用
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_Event.prototype.ZzyECFInitData = function () {
|
|
|
|
|
if (!this.page()) return;
|
|
|
|
|
|
|
|
|
|
var list = this.list();
|
|
|
|
|
var len = list.length;
|
|
|
|
|
|
|
|
|
|
this.zzyECF = {}; //清空
|
|
|
|
|
|
|
|
|
|
this.ZzyECFInitZzyECF();
|
|
|
|
|
|
|
|
|
|
for (var i = 0; i < len; ++i) {
|
|
|
|
|
var ev = list[i];
|
|
|
|
|
|
|
|
|
|
if ([108, 408].contains(ev.code)) {
|
|
|
|
|
if (ev.parameters[0].match(/<ZZYECF[ ]CORONA>/i)) {
|
|
|
|
|
//设置为光环
|
|
|
|
|
this.zzyECF.isCorona = true;
|
|
|
|
|
} else if (ev.parameters[0].match(/<ZZYECF[ ]SHOW:[ ](.*)>/i)) {
|
|
|
|
|
//设置为光环
|
|
|
|
|
this.zzyECF.isShowCorona = eval(String(RegExp.$1));
|
|
|
|
|
} else if (ev.parameters[0].match(/<ZZYECF[ ]MODE:[ ](.*)>/i)) {
|
|
|
|
|
this.zzyECF.modeCorona = Zzy.ECF.CoronaModeToInt(String(RegExp.$1));
|
|
|
|
|
} else if (ev.parameters[0].match(/<ZZYECF[ ]RANGE:[ ](.*)>/i)) {
|
|
|
|
|
this.zzyECF.range = parseInt(RegExp.$1);
|
|
|
|
|
} else if (ev.parameters[0].match(/<ZZYECF[ ]FRAME:[ ](.*)>/i)) {
|
|
|
|
|
this.zzyECF.effectFrame = parseInt(RegExp.$1);
|
|
|
|
|
} else if (ev.parameters[0].match(/<ZZYECF[ ]COMMAND:[ ](.*)>/i)) {
|
|
|
|
|
this.zzyECF.commonId = parseInt(RegExp.$1);
|
|
|
|
|
} else if (ev.parameters[0].match(/<ZZYECF[ ]RANGEPIC:[ ](.*)>/i)) {
|
|
|
|
|
this.zzyECF.sprPic = String(RegExp.$1);
|
|
|
|
|
} else if (ev.parameters[0].match(/<ZZYECF[ ]OFFSETX:[ ](.*)>/i)) {
|
|
|
|
|
this.zzyECF.ofx = Number(RegExp.$1);
|
|
|
|
|
} else if (ev.parameters[0].match(/<ZZYECF[ ]OFFSETY:[ ](.*)>/i)) {
|
|
|
|
|
this.zzyECF.ofy = Number(RegExp.$1);
|
|
|
|
|
} else if (ev.parameters[0].match(/<ZZYECF[ ]BLENDMODE:[ ](.*)>/i)) {
|
|
|
|
|
this.zzyECF.modeBlend = Zzy.ECF.BlendModeToInt(String(RegExp.$1));
|
|
|
|
|
} else if (ev.parameters[0].match(/<ZZYECF[ ]VALUEBLEND:[ ](.*)>/i)) {
|
|
|
|
|
this.zzyECF.valueBlend = Zzy.ECF.BlendModeToInt(String(RegExp.$1));
|
|
|
|
|
} else if (ev.parameters[0].match(/<ZZYECF[ ]INCOMMAND:[ ](.*)>/i)) {
|
|
|
|
|
this.zzyECF.inCommand = parseInt(RegExp.$1);
|
|
|
|
|
} else if (ev.parameters[0].match(/<ZZYECF[ ]OUTCOMMAND:[ ](.*)>/i)) {
|
|
|
|
|
this.zzyECF.outCommand = parseInt(RegExp.$1);
|
|
|
|
|
} else if (ev.parameters[0].match(/<ZZYECF[ ]DEFAULTCOLOR:[ ](.*)>/i)) {
|
|
|
|
|
this.zzyECF.defaultColor = String(RegExp.$1);
|
|
|
|
|
} else if (ev.parameters[0].match(/<ZZYECF[ ]PICTUREHUE:[ ](.*)>/i)) {
|
|
|
|
|
this.zzyECF.pictureHue = Number(RegExp.$1);
|
|
|
|
|
} else if (ev.parameters[0].match(/<ZZYECF[ ]HP:[ ](.*)>/i)) {
|
|
|
|
|
this.zzyECF.param[0] = String(RegExp.$1);
|
|
|
|
|
} else if (ev.parameters[0].match(/<ZZYECF[ ]HPPER:[ ](.*)>/i)) {
|
|
|
|
|
this.zzyECF.paramPer[0] = String(RegExp.$1);
|
|
|
|
|
} else if (ev.parameters[0].match(/<ZZYECF[ ]MP:[ ](.*)>/i)) {
|
|
|
|
|
this.zzyECF.param[1] = String(RegExp.$1);
|
|
|
|
|
} else if (ev.parameters[0].match(/<ZZYECF[ ]MPPER:[ ](.*)>/i)) {
|
|
|
|
|
this.zzyECF.paramPer[1] = String(RegExp.$1);
|
|
|
|
|
} else if (ev.parameters[0].match(/<ZZYECF[ ]TP:[ ](.*)>/i)) {
|
|
|
|
|
this.zzyECF.param[2] = String(RegExp.$1);
|
|
|
|
|
} else if (ev.parameters[0].match(/<ZZYECF[ ]TPPER:[ ](.*)>/i)) {
|
|
|
|
|
this.zzyECF.paramPer[2] = String(RegExp.$1);
|
|
|
|
|
} else if (ev.parameters[0].match(/<ZZYECF[ ]ISSHOWVALUE:[ ](.*)>/i)) {
|
|
|
|
|
this.zzyECF.isShowValue = String(RegExp.$1);
|
|
|
|
|
} else if (ev.parameters[0].match(/<ZZYECF[ ]USECOUNT:[ ](.*)>/i)) {
|
|
|
|
|
this.zzyECF.useCount = parseInt(RegExp.$1); //使用次数
|
|
|
|
|
} else if (ev.parameters[0].match(/<ZZYECF[ ]RECOVERFRAME:[ ](.*)>/i)) {
|
|
|
|
|
this.zzyECF.recoverFrame = parseInt(RegExp.$1); //恢复时长
|
|
|
|
|
} else if (ev.parameters[0].match(/<ZZYECF[ ]RECOVERNUM:[ ](.*)>/i)) {
|
|
|
|
|
this.zzyECF.recoverNum = parseInt(RegExp.$1); //恢复数量
|
|
|
|
|
} else if (ev.parameters[0].match(/<ZZYECF[ ]ISREMAPCOUNT:[ ](.*)>/i)) {
|
|
|
|
|
this.zzyECF.isReMapCount = eval(String(RegExp.$1)); //重置次数
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
$gameSystem.setZzyECFRecover(this); //设置内容
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_Event.prototype.ZzyECFInitZzyECF = function () {
|
|
|
|
|
this.zzyECF.isCorona = false;
|
|
|
|
|
this.zzyECF.isShowCorona = $gameSystem.getZzyECFIsShowCorona();
|
|
|
|
|
this.zzyECF.modeCorona = $gameSystem.getZzyECFCoronaMode();
|
|
|
|
|
this.zzyECF.range = $gameSystem.getZzyECFCoronaRange();
|
|
|
|
|
this.zzyECF.effectFrame = $gameSystem.getZzyECFEffectFrame();
|
|
|
|
|
this.zzyECF.cEffectFrame = 0;
|
|
|
|
|
this.zzyECF.commonId = $gameSystem.getZzyECFEffectCommand();
|
|
|
|
|
this.zzyECF.sprPic = $gameSystem.getZzyECFRangePic();
|
|
|
|
|
this.zzyECF.ofx = $gameSystem._ZzyECFOffsetX;
|
|
|
|
|
this.zzyECF.ofy = $gameSystem._ZzyECFOffsetY;
|
|
|
|
|
this.zzyECF.modeBlend = $gameSystem.getZzyECFBlendMode();
|
|
|
|
|
this.zzyECF.valueBlend = $gameSystem.getZzyECFValueBlend();
|
|
|
|
|
|
|
|
|
|
this.zzyECF.inCommand = $gameSystem.getZzyECFInCommand();
|
|
|
|
|
this.zzyECF.outCommand = $gameSystem.getZzyECFOutCommand();
|
|
|
|
|
this.zzyECF.defaultColor = $gameSystem._ZzyECFDefaultColor;
|
|
|
|
|
this.zzyECF.pictureHue = $gameSystem._ZzyECFPictureHue;
|
|
|
|
|
|
|
|
|
|
this.zzyECF.isShowValue = $gameSystem._ZzyECFIsShowValue;
|
|
|
|
|
|
|
|
|
|
this.zzyECF.useCount = Zzy.Param.ECFCoronaCount;
|
|
|
|
|
this.zzyECF.recoverFrame = Zzy.Param.ECFRecoverFrame;
|
|
|
|
|
this.zzyECF.recoverNum = Zzy.Param.ECFRecoverNum;
|
|
|
|
|
this.zzyECF.isReMapCount = Zzy.Param.ECFIsReMapCount;
|
|
|
|
|
|
|
|
|
|
this.zzyECF["param"] = [];
|
|
|
|
|
this.zzyECF["paramPer"] = [];
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Zzy.ECF.Game_Event_update = Game_Event.prototype.update;
|
|
|
|
|
Game_Event.prototype.update = function () {
|
|
|
|
|
Zzy.ECF.Game_Event_update.call(this);
|
|
|
|
|
this.updateZzyECFCorona();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_Event.prototype.updateZzyECFCorona = function () {
|
|
|
|
|
if (!this.zzyECF) return;
|
|
|
|
|
if (!this.zzyECF.isCorona) return; //不满足光环
|
|
|
|
|
|
|
|
|
|
if (this.zzyECF.cEffectFrame > 0) {
|
|
|
|
|
this.zzyECF.cEffectFrame--;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var info = $gameSystem.getZzyECFRecoverInfo(this.eventId());
|
|
|
|
|
|
|
|
|
|
if (info.maxCount) {
|
|
|
|
|
//存在次数
|
|
|
|
|
if (info.recoverFrame) {
|
|
|
|
|
//存在恢复
|
|
|
|
|
if (info.useCount < info.maxCount) {
|
|
|
|
|
if (info.cFrame < info.recoverFrame) {
|
|
|
|
|
info.cFrame++;
|
|
|
|
|
} else {
|
|
|
|
|
//对次数进行增加
|
|
|
|
|
info.cFrame = 0;
|
|
|
|
|
info.useCount += info.recoverNum;
|
|
|
|
|
info.useCount = Math.min(info.useCount, info.maxCount);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (info.useCount <= 0) return; //不存在次数
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (this.CheckZzyECFInRange($gamePlayer)) {
|
|
|
|
|
//判断是否在范围中
|
|
|
|
|
this.zzyECF.cEffectFrame = this.zzyECF.effectFrame;
|
|
|
|
|
this.ExeZzyECFCoronaEffect(); //执行效果
|
|
|
|
|
|
|
|
|
|
//减少使用次数
|
|
|
|
|
if (info.useCount > 0) {
|
|
|
|
|
info.useCount--;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//检测光环中是否拥有
|
|
|
|
|
if (this.zzyECF.inCommand || this.zzyECF.outCommand) {
|
|
|
|
|
//存在时间需处理光环
|
|
|
|
|
if (!$gameSystem.CheckBeingZzyECFCorona(this)) {
|
|
|
|
|
$gameSystem.RecordZzyECFCorona(this); //压入到光环中
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_Event.prototype.CheckZzyECFInRange = function (obj) {
|
|
|
|
|
var disX = Math.abs(obj.x - this.x);
|
|
|
|
|
var disY = Math.abs(obj.y - this.y);
|
|
|
|
|
|
|
|
|
|
switch (this.zzyECF.modeCorona) {
|
|
|
|
|
case 1:
|
|
|
|
|
if (Math.sqrt(disX * disX + disY * disY) <= this.zzyECF.range) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 2:
|
|
|
|
|
if (disX <= this.zzyECF.range && disY <= this.zzyECF.range) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_Event.prototype.ExeZzyECFCoronaEffect = function () {
|
|
|
|
|
if (this.zzyECF.param[0]) {
|
|
|
|
|
var valueArr = this.EvalZzyECFCoronaEffect(this.zzyECF.param[0], 0);
|
|
|
|
|
this.ChangeZzyECFValue(valueArr, 0);
|
|
|
|
|
this.ShowZzyECFValue(valueArr, 0);
|
|
|
|
|
}
|
|
|
|
|
if (this.zzyECF.param[1]) {
|
|
|
|
|
var valueArr = this.EvalZzyECFCoronaEffect(this.zzyECF.param[1], 1);
|
|
|
|
|
this.ChangeZzyECFValue(valueArr, 1);
|
|
|
|
|
this.ShowZzyECFValue(valueArr, 1);
|
|
|
|
|
}
|
|
|
|
|
if (this.zzyECF.param[2]) {
|
|
|
|
|
var valueArr = this.EvalZzyECFCoronaEffect(this.zzyECF.param[2], 2);
|
|
|
|
|
this.ChangeZzyECFValue(valueArr, 2);
|
|
|
|
|
this.ShowZzyECFValue(valueArr, 2);
|
|
|
|
|
}
|
|
|
|
|
if (this.zzyECF.paramPer[0]) {
|
|
|
|
|
var valueArr = this.EvalZzyECFCoronaEffect(this.zzyECF.paramPer[0], 0, true);
|
|
|
|
|
this.ChangeZzyECFValue(valueArr, 3);
|
|
|
|
|
this.ShowZzyECFValue(valueArr, 3);
|
|
|
|
|
}
|
|
|
|
|
if (this.zzyECF.paramPer[1]) {
|
|
|
|
|
var valueArr = this.EvalZzyECFCoronaEffect(this.zzyECF.paramPer[1], 1, true);
|
|
|
|
|
this.ChangeZzyECFValue(valueArr, 4);
|
|
|
|
|
this.ShowZzyECFValue(valueArr, 4);
|
|
|
|
|
}
|
|
|
|
|
if (this.zzyECF.paramPer[2]) {
|
|
|
|
|
var valueArr = this.EvalZzyECFCoronaEffect(this.zzyECF.paramPer[2], 2, true);
|
|
|
|
|
this.ChangeZzyECFValue(valueArr, 5);
|
|
|
|
|
this.ShowZzyECFValue(valueArr, 5);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//执行公共事件,脚本
|
|
|
|
|
if (!$gameTemp.isCommonEventReserved() && this.zzyECF.commonId) {
|
|
|
|
|
$gameTemp.reserveCommonEvent(this.zzyECF.commonId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//执行脚本
|
|
|
|
|
Zzy.Param.ECFEffectScript();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_Event.prototype.ShowZzyECFValue = function (valueArr, colorIndex) {
|
|
|
|
|
for (var i = 0; i < valueArr.length; i++) {
|
|
|
|
|
var evId = this.eventId();
|
|
|
|
|
Zzy.ECF.ShowValue(valueArr[i], Zzy.ECF.TempColorArr[colorIndex], i, evId); //数值,颜色,标记,自身对象ID
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_Event.prototype.ChangeZzyECFValue = function (
|
|
|
|
|
valueArr,
|
|
|
|
|
effectID //修改数值
|
|
|
|
|
) {
|
|
|
|
|
var actor = undefined;
|
|
|
|
|
var idList = $gameParty._actors;
|
|
|
|
|
switch (effectID) {
|
|
|
|
|
case 0:
|
|
|
|
|
case 3:
|
|
|
|
|
for (var i = 0; i < valueArr.length; i++) {
|
|
|
|
|
actor = $gameActors.actor(idList[i]);
|
|
|
|
|
actor.gainHp(valueArr[i]);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case 1:
|
|
|
|
|
case 4:
|
|
|
|
|
for (var i = 0; i < valueArr.length; i++) {
|
|
|
|
|
actor = $gameActors.actor(idList[i]);
|
|
|
|
|
actor.gainMp(valueArr[i]);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
case 5:
|
|
|
|
|
for (var i = 0; i < valueArr.length; i++) {
|
|
|
|
|
actor = $gameActors.actor(idList[i]);
|
|
|
|
|
actor.gainTp(valueArr[i]);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Game_Event.prototype.EvalZzyECFCoronaEffect = function (evalStr, paramId, isPer) {
|
|
|
|
|
var v = $gameVariables._data;
|
|
|
|
|
var w = $gameSwitches._data;
|
|
|
|
|
var e = this;
|
|
|
|
|
var p = $gamePlayer;
|
|
|
|
|
|
|
|
|
|
var value = eval(evalStr);
|
|
|
|
|
|
|
|
|
|
//返回小队人数数组
|
|
|
|
|
var actorIdArr = $gameParty._actors;
|
|
|
|
|
|
|
|
|
|
var valueArr = [];
|
|
|
|
|
|
|
|
|
|
if (isPer) {
|
|
|
|
|
switch (paramId) {
|
|
|
|
|
case 0:
|
|
|
|
|
for (var i = 0; i < actorIdArr.length; i++) {
|
|
|
|
|
var actor = $gameActors.actor(actorIdArr[i]);
|
|
|
|
|
var tvalue = actor.mhp * value * 0.01;
|
|
|
|
|
valueArr[i] = Math.floor(tvalue);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case 1:
|
|
|
|
|
for (var i = 0; i < actorIdArr.length; i++) {
|
|
|
|
|
var actor = $gameActors.actor(actorIdArr[i]);
|
|
|
|
|
var tvalue = actor.mmp * value * 0.01;
|
|
|
|
|
valueArr[i] = Math.floor(tvalue);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
for (var i = 0; i < actorIdArr.length; i++) {
|
|
|
|
|
var actor = $gameActors.actor(actorIdArr[i]);
|
|
|
|
|
var tvalue = actor.maxTp() * value * 0.01;
|
|
|
|
|
valueArr[i] = Math.floor(tvalue);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
for (var i = 0; i < actorIdArr.length; i++) {
|
|
|
|
|
valueArr[i] = value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return valueArr;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//============================================================================================
|
|
|
|
|
//Scene_Map
|
|
|
|
|
//============================================================================================
|
|
|
|
|
Zzy.ECF.Scene_Map_initialize = Scene_Map.prototype.initialize;
|
|
|
|
|
Scene_Map.prototype.initialize = function () {
|
|
|
|
|
Zzy.ECF.Scene_Map_initialize.call(this);
|
|
|
|
|
this._zzyECFWindow = undefined;
|
|
|
|
|
this._zzyECFVWindow = undefined;
|
|
|
|
|
|
|
|
|
|
this._zzyECFCache = []; //缓冲ev用于加载
|
|
|
|
|
|
|
|
|
|
this._zzyECFCheckList = []; //检测队列
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Zzy.ECF.Scene_Map_start = Scene_Map.prototype.start;
|
|
|
|
|
Scene_Map.prototype.start = function () {
|
|
|
|
|
Zzy.ECF.Scene_Map_start.call(this);
|
|
|
|
|
|
|
|
|
|
this.CreateZzyECFWindow(); //创造窗口
|
|
|
|
|
|
|
|
|
|
this.CreateZzyECFSprOfEvIdArr(); //释放存储对象
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Scene_Map.prototype.CreateZzyECFSprOfEvIdArr = function () {
|
|
|
|
|
if (Zzy.ECF.TempMapId === $gameMap.mapId()) {
|
|
|
|
|
for (var i = 0; i < Zzy.ECF.TempEvIdArr.length; i++) {
|
|
|
|
|
var evId = Zzy.ECF.TempEvIdArr[i];
|
|
|
|
|
this._zzyECFWindow.CreateSprite($gameMap.event(evId));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
Zzy.ECF.TempMapId = $gameMap.mapId();
|
|
|
|
|
Zzy.ECF.TempEvIdArr = [];
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Scene_Map.prototype.CreateZzyECFWindow = function () {
|
|
|
|
|
this._zzyECFWindow = new Window_ZzyECFCorona();
|
|
|
|
|
this._zzyECFVWindow = new Window_ZzyECFValue();
|
|
|
|
|
|
|
|
|
|
this.addChild(this._zzyECFWindow);
|
|
|
|
|
this.addChild(this._zzyECFVWindow);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Scene_Map.prototype.CreateZzyECFSprite = function (ev) {
|
|
|
|
|
if (!this._zzyECFWindow) {
|
|
|
|
|
//对象还未出现,则进行一次缓冲
|
|
|
|
|
this._zzyECFCache.push(ev);
|
|
|
|
|
} else {
|
|
|
|
|
this._zzyECFWindow.CreateSprite(ev);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Zzy.ECF.Scene_Map_update = Scene_Map.prototype.update;
|
|
|
|
|
Scene_Map.prototype.update = function () {
|
|
|
|
|
Zzy.ECF.Scene_Map_update.call(this);
|
|
|
|
|
this.updateZzyECFWaitCreate();
|
|
|
|
|
this.updateZzyECFCoronaCheck(); //光环离开检测
|
|
|
|
|
this.updateZzyECFCommon();
|
|
|
|
|
this.updateZzyECFShowValue(); //取出内容
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Scene_Map.prototype.updateZzyECFCommon = function () {
|
|
|
|
|
if (!$gameSystem._ZzyECFCommonArr || !$gameSystem._ZzyECFCommonArr.length) return;
|
|
|
|
|
|
|
|
|
|
var isHave = false;
|
|
|
|
|
for (var i = 0; i < $gameSystem._ZzyECFCommonArr.length; i++) {
|
|
|
|
|
if ($gameSystem._ZzyECFCommonArr[i]) {
|
|
|
|
|
if (!$gameTemp.isCommonEventReserved()) {
|
|
|
|
|
$gameTemp.reserveCommonEvent($gameSystem._ZzyECFCommonArr[i]); //执行公共事件
|
|
|
|
|
$gameSystem._ZzyECFCommonArr[i] = undefined;
|
|
|
|
|
}
|
|
|
|
|
isHave = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!isHave) {
|
|
|
|
|
$gameSystem._ZzyECFCommonArr = []; //清空队列
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Scene_Map.prototype.updateZzyECFCoronaCheck = function () //光环离开检测
|
|
|
|
|
{
|
|
|
|
|
if (!$gameSystem._ZzyECFCoronaArr || !$gameSystem._ZzyECFCoronaArr.length) return;
|
|
|
|
|
|
|
|
|
|
var isHave = false;
|
|
|
|
|
for (var i = 0; i < $gameSystem._ZzyECFCoronaArr.length; i++) {
|
|
|
|
|
if ($gameSystem._ZzyECFCoronaArr[i]) {
|
|
|
|
|
isHave = true;
|
|
|
|
|
var info = $gameSystem._ZzyECFCoronaArr[i];
|
|
|
|
|
if ($gameMap.mapId() !== info.mapId) {
|
|
|
|
|
if (info.outCom) {
|
|
|
|
|
$gameSystem._ZzyECFCommonArr.push(info.outCom); //退出压入到队列中
|
|
|
|
|
}
|
|
|
|
|
$gameSystem._ZzyECFCoronaArr[i] = undefined;
|
|
|
|
|
} else {
|
|
|
|
|
var ev = $gameMap.event(info.evId);
|
|
|
|
|
if (ev && ev.CheckZzyECFInRange($gamePlayer)) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (info.outCom) {
|
|
|
|
|
$gameSystem._ZzyECFCommonArr.push(info.outCom); //退出压入到队列中
|
|
|
|
|
}
|
|
|
|
|
$gameSystem._ZzyECFCoronaArr[i] = undefined;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!isHave) {
|
|
|
|
|
$gameSystem._ZzyECFCoronaArr = [];
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Scene_Map.prototype.updateZzyECFWaitCreate = function () {
|
|
|
|
|
if (!this._zzyECFWindow) return;
|
|
|
|
|
for (var i = 0; i < this._zzyECFCache.length; i++) {
|
|
|
|
|
var ev = this._zzyECFCache[i];
|
|
|
|
|
this._zzyECFWindow.CreateSprite(ev);
|
|
|
|
|
}
|
|
|
|
|
this._zzyECFCache = [];
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Zzy.ECF.Scene_Map_terminate = Scene_Map.prototype.terminate;
|
|
|
|
|
Scene_Map.prototype.terminate = function () {
|
|
|
|
|
Zzy.ECF.Scene_Map_terminate.call(this);
|
|
|
|
|
|
|
|
|
|
this.RecordZzyECFSprIdArr(); //记录
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Scene_Map.prototype.RecordZzyECFSprIdArr = function () {
|
|
|
|
|
Zzy.ECF.TempEvIdArr = [];
|
|
|
|
|
if (!this._zzyECFWindow) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var infoArr = this._zzyECFWindow.sprInfo;
|
|
|
|
|
for (var i = 0; i < infoArr.length; i++) {
|
|
|
|
|
Zzy.ECF.TempEvIdArr[i] = infoArr[i].evId; //记录
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Scene_Map.prototype.PuchZzyECFValue = function (textValue, color, pIndex, evId) {
|
|
|
|
|
//检测是否存在pIndex下标
|
|
|
|
|
var noIndex = true;
|
|
|
|
|
for (var i = 0; i < this._zzyECFCheckList.length; i++) {
|
|
|
|
|
if (!this._zzyECFCheckList[i]) {
|
|
|
|
|
var info = {};
|
|
|
|
|
info.index = pIndex;
|
|
|
|
|
info.valueArr = []; //数值
|
|
|
|
|
info.cIndex = 0; //目前计数下标
|
|
|
|
|
info.cFrame = 0;
|
|
|
|
|
info.evId = evId;
|
|
|
|
|
this._zzyECFCheckList[i] = info;
|
|
|
|
|
break;
|
|
|
|
|
} else {
|
|
|
|
|
if (this._zzyECFCheckList[i].index === pIndex) {
|
|
|
|
|
//存在下标
|
|
|
|
|
noIndex = false;
|
|
|
|
|
//压入到对应下标队列中
|
|
|
|
|
var info = {};
|
|
|
|
|
info.text = textValue;
|
|
|
|
|
info.color = color;
|
|
|
|
|
info.index = pIndex;
|
|
|
|
|
info.evId = evId;
|
|
|
|
|
this._zzyECFCheckList[i].valueArr.push(info);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (noIndex) {
|
|
|
|
|
var info = {};
|
|
|
|
|
info.index = pIndex;
|
|
|
|
|
info.valueArr = []; //数值
|
|
|
|
|
info.cIndex = 0;
|
|
|
|
|
info.cFrame = 0;
|
|
|
|
|
info.evId = evId;
|
|
|
|
|
this._zzyECFCheckList.push(info);
|
|
|
|
|
this.PuchZzyECFValue(textValue, color, pIndex, evId);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Scene_Map.prototype.updateZzyECFShowValue = function () {
|
|
|
|
|
if (!this._zzyECFCheckList.length) return;
|
|
|
|
|
var len = this._zzyECFCheckList.length;
|
|
|
|
|
var isNoCheck = true;
|
|
|
|
|
for (var i = 0; i < len; i++) {
|
|
|
|
|
var tInfo = this._zzyECFCheckList[i]; //获取每个检测器
|
|
|
|
|
if (tInfo) {
|
|
|
|
|
isNoCheck = false;
|
|
|
|
|
if (!tInfo.valueArr.length) {
|
|
|
|
|
this._zzyECFCheckList[i] = undefined;
|
|
|
|
|
} else {
|
|
|
|
|
for (var j = 0; j < tInfo.valueArr.length; j++) {
|
|
|
|
|
var tArr = tInfo.valueArr;
|
|
|
|
|
if (tInfo.cIndex >= tArr.length) {
|
|
|
|
|
//是否越界
|
|
|
|
|
//代表无法取出数据信息
|
|
|
|
|
this._zzyECFCheckList[i] = undefined;
|
|
|
|
|
} //检测时间
|
|
|
|
|
else {
|
|
|
|
|
if (tInfo.cFrame > 0) {
|
|
|
|
|
tInfo.cFrame--;
|
|
|
|
|
} else {
|
|
|
|
|
//取出内容
|
|
|
|
|
var cInfo = tArr[tInfo.cIndex]; //增加下标
|
|
|
|
|
tInfo.cIndex++;
|
|
|
|
|
tInfo.cFrame = Zzy.Param.ECFListShowFrame;
|
|
|
|
|
this._zzyECFVWindow.CreateSprite(cInfo);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (isNoCheck) {
|
|
|
|
|
this._zzyECFCheckList = [];
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//============================================================================================
|
|
|
|
|
//Window_ZzyECFCorona
|
|
|
|
|
//============================================================================================
|
|
|
|
|
function Window_ZzyECFCorona() {
|
|
|
|
|
this.initialize.apply(this, arguments);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Window_ZzyECFCorona.prototype = Object.create(Window_Base.prototype);
|
|
|
|
|
Window_ZzyECFCorona.prototype.constructor = Window_ZzyECFCorona;
|
|
|
|
|
|
|
|
|
|
Window_ZzyECFCorona.prototype.initialize = function () {
|
|
|
|
|
var width = Graphics.boxWidth;
|
|
|
|
|
var height = Graphics.boxHeight;
|
|
|
|
|
Window_Base.prototype.initialize.call(this, 0, 0, width, height);
|
|
|
|
|
|
|
|
|
|
this.InitWindow();
|
|
|
|
|
this.sprInfo = []; //图像管理信息组
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Window_ZzyECFCorona.prototype.InitWindow = function () //初始化
|
|
|
|
|
{
|
|
|
|
|
this.opacity = 0;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Window_ZzyECFCorona.prototype.standardPadding = function () {
|
|
|
|
|
return 0;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Window_ZzyECFCorona.prototype.textPadding = function () {
|
|
|
|
|
return 0;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Window_ZzyECFCorona.prototype.CreateSprite = function (
|
|
|
|
|
ev //创造事件光环图片
|
|
|
|
|
) {
|
|
|
|
|
//通过EV来指定图片
|
|
|
|
|
var info = {};
|
|
|
|
|
//申请位图大小
|
|
|
|
|
info.spr = new Sprite_ZzyECFCorona(ev);
|
|
|
|
|
info.evId = ev.eventId();
|
|
|
|
|
//判断ID是否重复
|
|
|
|
|
|
|
|
|
|
var isInstall = false;
|
|
|
|
|
|
|
|
|
|
for (var i = 0; i < this.sprInfo.length; i++) {
|
|
|
|
|
if (this.sprInfo[i].evId === info.evId) {
|
|
|
|
|
isInstall = true;
|
|
|
|
|
//重新安装
|
|
|
|
|
this.removeChild(this.sprInfo[i].spr);
|
|
|
|
|
this.sprInfo[i] = info;
|
|
|
|
|
this.addChild(this.sprInfo[i].spr);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!isInstall) {
|
|
|
|
|
this.sprInfo.push(info);
|
|
|
|
|
this.addChild(info.spr);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//============================================================================================
|
|
|
|
|
//Window_ZzyECFValue
|
|
|
|
|
//============================================================================================
|
|
|
|
|
function Window_ZzyECFValue() {
|
|
|
|
|
this.initialize.apply(this, arguments);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Window_ZzyECFValue.prototype = Object.create(Window_Base.prototype);
|
|
|
|
|
Window_ZzyECFValue.prototype.constructor = Window_ZzyECFValue;
|
|
|
|
|
|
|
|
|
|
Window_ZzyECFValue.prototype.initialize = function () {
|
|
|
|
|
var width = Graphics.boxWidth;
|
|
|
|
|
var height = Graphics.boxHeight;
|
|
|
|
|
Window_Base.prototype.initialize.call(this, 0, 0, width, height);
|
|
|
|
|
|
|
|
|
|
this.InitWindow();
|
|
|
|
|
this.sprCache = []; //图像缓存
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Window_ZzyECFValue.prototype.InitWindow = function () //初始化
|
|
|
|
|
{
|
|
|
|
|
this.opacity = 0;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Window_ZzyECFValue.prototype.standardPadding = function () {
|
|
|
|
|
return 0;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Window_ZzyECFValue.prototype.textPadding = function () {
|
|
|
|
|
return 0;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Window_ZzyECFValue.prototype.CreateSprite = function (
|
|
|
|
|
info //创造精灵
|
|
|
|
|
) {
|
|
|
|
|
if (!$gameSystem._ZzyECFIsShowValue) return;
|
|
|
|
|
var spr = this.RequestSprite(info);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Window_ZzyECFValue.prototype.RequestSprite = function (info) {
|
|
|
|
|
var blendM = this.GetBlendMOfInfo(info);
|
|
|
|
|
|
|
|
|
|
for (var i = 0; i < this.sprCache.length; i++) {
|
|
|
|
|
if (this.sprCache[i] && !this.sprCache[i].visible) {
|
|
|
|
|
var spr2 = this.sprCache[i];
|
|
|
|
|
spr2.visible = true;
|
|
|
|
|
spr2.resetInfo(info.text, info.color, info.index, blendM);
|
|
|
|
|
return this.sprCache[i]; //返回对象
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var spr = new Sprite_ZzyECFValue(info.text, info.color, info.index, blendM);
|
|
|
|
|
this.sprCache.push(spr);
|
|
|
|
|
this.addChild(spr);
|
|
|
|
|
return spr;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Window_ZzyECFValue.prototype.GetBlendMOfInfo = function (info) {
|
|
|
|
|
var evId = info.evId;
|
|
|
|
|
if (evId) {
|
|
|
|
|
var ev = $gameMap.event(evId);
|
|
|
|
|
return ev.zzyECF.valueBlend === undefined ? $gameSystem.getZzyECFValueBlend() : ev.zzyECF.valueBlend;
|
|
|
|
|
}
|
|
|
|
|
return $gameSystem.getZzyECFValueBlend();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//============================================================================================
|
|
|
|
|
//Sprite_ZzyECFCorona
|
|
|
|
|
//============================================================================================
|
|
|
|
|
|
|
|
|
|
function Sprite_ZzyECFCorona() {
|
|
|
|
|
this.initialize.apply(this, arguments);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Sprite_ZzyECFCorona.prototype = Object.create(Sprite_Base.prototype);
|
|
|
|
|
Sprite_ZzyECFCorona.prototype.constructor = Sprite_ZzyECFCorona;
|
|
|
|
|
|
|
|
|
|
Sprite_ZzyECFCorona.prototype.initialize = function (ev) {
|
|
|
|
|
Sprite_Base.prototype.initialize.call(this);
|
|
|
|
|
this.anchor.x = 0.5;
|
|
|
|
|
this.anchor.y = 0.5;
|
|
|
|
|
this.ev = undefined; //ev位置
|
|
|
|
|
this.bw = 0;
|
|
|
|
|
this.bh = 0;
|
|
|
|
|
this.waitSacle = false;
|
|
|
|
|
this.CreateBitmap(ev);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Sprite_ZzyECFCorona.prototype.CreateBitmap = function (ev) {
|
|
|
|
|
this.ev = ev; //记录位置
|
|
|
|
|
var eInfo = ev.zzyECF; //获取信息
|
|
|
|
|
|
|
|
|
|
var tRange = eInfo.range * 2 + 1;
|
|
|
|
|
this.bw = $gameMap.tileWidth() * tRange;
|
|
|
|
|
this.bh = $gameMap.tileHeight() * tRange;
|
|
|
|
|
|
|
|
|
|
if (!eInfo.sprPic || eInfo.sprPic === "") {
|
|
|
|
|
this.bitmap = new Bitmap(this.bw, this.bh); //申请新的位图
|
|
|
|
|
this.scale.x = 1;
|
|
|
|
|
this.scale.y = 1;
|
|
|
|
|
|
|
|
|
|
switch (eInfo.modeCorona) {
|
|
|
|
|
case 1:
|
|
|
|
|
var color = eInfo.defaultColor;
|
|
|
|
|
this.StrokeCircle(0, 0, this.bw, this.bh, color);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 2:
|
|
|
|
|
var color = eInfo.defaultColor;
|
|
|
|
|
this.StrokeRect(0, 0, this.bw, this.bh, color);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
this.bitmap = ImageManager.loadPicture(eInfo.sprPic, eInfo.pictureHue); //申请bitmap位图
|
|
|
|
|
this.waitSacle = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this.blendMode = eInfo.modeBlend;
|
|
|
|
|
this.visible = eInfo.isShowCorona ? true : false;
|
|
|
|
|
|
|
|
|
|
this.updatePosition(); //更新位置
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Sprite_ZzyECFCorona.prototype.StrokeRect = function (x, y, width, height, color) {
|
|
|
|
|
var context = this.bitmap._context;
|
|
|
|
|
context.save();
|
|
|
|
|
context.lineWidth = 6;
|
|
|
|
|
context.strokeStyle = color;
|
|
|
|
|
context.strokeRect(x, y, width, height);
|
|
|
|
|
context.restore();
|
|
|
|
|
this.bitmap._setDirty();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Sprite_ZzyECFCorona.prototype.StrokeCircle = function (x, y, width, height, color) {
|
|
|
|
|
var context = this.bitmap._context;
|
|
|
|
|
context.save();
|
|
|
|
|
context.lineWidth = 6;
|
|
|
|
|
context.strokeStyle = color;
|
|
|
|
|
context.beginPath();
|
|
|
|
|
context.arc(x + width / 2, y + height / 2, width / 2 - 3, 0, 2 * Math.PI, false);
|
|
|
|
|
context.stroke();
|
|
|
|
|
context.restore();
|
|
|
|
|
this.bitmap._setDirty();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Sprite_ZzyECFCorona.prototype.DrawArcRect = function () {
|
|
|
|
|
var hdc = this.bitmap._context;
|
|
|
|
|
var r = 6; //半径
|
|
|
|
|
var sx = 0;
|
|
|
|
|
var sy = 0;
|
|
|
|
|
if (this.bw < 2 * r) {
|
|
|
|
|
r = w / 2;
|
|
|
|
|
}
|
|
|
|
|
if (this.bh < 2 * r) {
|
|
|
|
|
r = h / 2;
|
|
|
|
|
}
|
|
|
|
|
hdc.beginPath();
|
|
|
|
|
hdc.moveTo(sx + r, sy);
|
|
|
|
|
hdc.arcTo(sx + this.bw, sy, sx + this.bw, sy + this.bh, r);
|
|
|
|
|
hdc.arcTo(sx + this.bw, sy + this.bh, sx, sy + this.bh, r);
|
|
|
|
|
hdc.arcTo(sx, sy + this.bh, sx, sy, r);
|
|
|
|
|
hdc.arcTo(sx, sy, sx + this.bw, sy, r);
|
|
|
|
|
hdc.closePath();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Sprite_ZzyECFCorona.prototype.update = function () //确认位置
|
|
|
|
|
{
|
|
|
|
|
if (!this.visible) return;
|
|
|
|
|
this.updateWaitScale();
|
|
|
|
|
this.updatePosition();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Sprite_ZzyECFCorona.prototype.updateWaitScale = function () {
|
|
|
|
|
if (!this.waitSacle) return;
|
|
|
|
|
if (this.bitmap && this.bitmap.width && this.bitmap.height) {
|
|
|
|
|
this.waitSacle = false;
|
|
|
|
|
this.scale.x = this.bw / this.bitmap.width;
|
|
|
|
|
this.scale.y = this.bh / this.bitmap.height;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Sprite_ZzyECFCorona.prototype.updatePosition = function () //设置光环位置
|
|
|
|
|
{
|
|
|
|
|
this.x = this.ev.screenX() + this.ev.zzyECF.ofx;
|
|
|
|
|
this.y = this.ev.screenY() + this.ev.zzyECF.ofy - this.CharOffsetY();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Sprite_ZzyECFCorona.prototype.CharOffsetY = function () {
|
|
|
|
|
return 24;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//============================================================================================
|
|
|
|
|
//Sprite_ZzyECFValue
|
|
|
|
|
//============================================================================================
|
|
|
|
|
|
|
|
|
|
function Sprite_ZzyECFValue() {
|
|
|
|
|
this.initialize.apply(this, arguments);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Sprite_ZzyECFValue.prototype = Object.create(Sprite_Base.prototype);
|
|
|
|
|
Sprite_ZzyECFValue.prototype.constructor = Sprite_ZzyECFValue;
|
|
|
|
|
|
|
|
|
|
Sprite_ZzyECFValue.prototype.initialize = function (textValue, color, pIndex, blendM) {
|
|
|
|
|
Sprite_Base.prototype.initialize.call(this);
|
|
|
|
|
this.anchor.x = 0.5;
|
|
|
|
|
this.anchor.y = 0.5;
|
|
|
|
|
|
|
|
|
|
this.valueText = 0;
|
|
|
|
|
this.color = 0;
|
|
|
|
|
this.pIndex = 0; //位置
|
|
|
|
|
|
|
|
|
|
this.bw = 0;
|
|
|
|
|
this.bh = 0;
|
|
|
|
|
|
|
|
|
|
this.bFrame = 0;
|
|
|
|
|
this.cbFrame = 0;
|
|
|
|
|
|
|
|
|
|
this.disX = 0;
|
|
|
|
|
this.disY = 0;
|
|
|
|
|
this.pos = {};
|
|
|
|
|
|
|
|
|
|
this.angle = 0; //角度
|
|
|
|
|
this.speed = 0; //速度
|
|
|
|
|
this.gravity = 0;
|
|
|
|
|
this.maxSpeed = 0;
|
|
|
|
|
this.gOffY = 0; //重力计数
|
|
|
|
|
|
|
|
|
|
this.fadeIn = 0;
|
|
|
|
|
this.cFadeIn = 0;
|
|
|
|
|
this.fadeOut = 0;
|
|
|
|
|
this.cFadeOut = 0;
|
|
|
|
|
|
|
|
|
|
this.blendMode = blendM;
|
|
|
|
|
|
|
|
|
|
this.resetInfo(textValue, color, pIndex, blendM);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Sprite_ZzyECFValue.prototype.resetInfo = function (
|
|
|
|
|
textValue,
|
|
|
|
|
color,
|
|
|
|
|
pIndex,
|
|
|
|
|
blendM //初始化
|
|
|
|
|
) {
|
|
|
|
|
this.bFrame = Zzy.Param.ECFTextShowFrame; //存在时长
|
|
|
|
|
this.cbFrame = 0;
|
|
|
|
|
this.color = color;
|
|
|
|
|
this.valueText = textValue;
|
|
|
|
|
this.pIndex = pIndex; //位置
|
|
|
|
|
|
|
|
|
|
this.angle = Zzy.ECF.ReturnRandom(Zzy.Param.ECFTextAngle, Zzy.Param.ECFAngleArea);
|
|
|
|
|
this.speed = Zzy.ECF.ReturnRandomOfPer(Zzy.Param.ECFTextSpeed, Zzy.Param.ECFSpeedRandPer);
|
|
|
|
|
this.gravity = Zzy.ECF.ReturnRandomOfPer(Zzy.Param.ECFTextGravity, Zzy.Param.ECFGravityRandPer);
|
|
|
|
|
this.maxSpeed = Zzy.Param.ECFGravityMaxSpeed;
|
|
|
|
|
|
|
|
|
|
this.pos = Zzy.ECF.GetPosOfParty(this.pIndex);
|
|
|
|
|
this.disX = $gameMap.tileWidth() * $gameMap.displayX();
|
|
|
|
|
this.disY = $gameMap.tileHeight() * $gameMap.displayY();
|
|
|
|
|
this.gOffY = 0;
|
|
|
|
|
|
|
|
|
|
this.fadeIn = Math.round(Zzy.ECF.ReturnRandomOfPer(Zzy.Param.ECFTextFadeIn, Zzy.Param.ECFFadeInRandPer));
|
|
|
|
|
this.cFadeIn = 0;
|
|
|
|
|
this.fadeOut = Math.round(Zzy.ECF.ReturnRandomOfPer(Zzy.Param.ECFTextFadeOut, Zzy.Param.ECFFadeOutRandPer));
|
|
|
|
|
this.cFadeOut = 0;
|
|
|
|
|
|
|
|
|
|
this.blendMode = blendM;
|
|
|
|
|
|
|
|
|
|
this.refresh();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Sprite_ZzyECFValue.prototype.refresh = function (text) {
|
|
|
|
|
if (text) {
|
|
|
|
|
this.valueText = text;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var isNeedNew = false;
|
|
|
|
|
|
|
|
|
|
var tw = $gameSystem._ZzyECFValueSize * this.valueText.length;
|
|
|
|
|
if (this.bw < tw) {
|
|
|
|
|
this.bw = tw;
|
|
|
|
|
isNeedNew = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var th = $gameSystem._ZzyECFValueSize;
|
|
|
|
|
if (this.bh < th) {
|
|
|
|
|
this.bh = th;
|
|
|
|
|
isNeedNew = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isNeedNew) {
|
|
|
|
|
this.bitmap = new Bitmap(this.bw, this.bh); //申请新的位图
|
|
|
|
|
} else {
|
|
|
|
|
this.bitmap.clear(); //清理旧位图
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this.setFontSize($gameSystem._ZzyECFValueSize); //字体大小
|
|
|
|
|
this.setTextColor(this.color); //颜色
|
|
|
|
|
|
|
|
|
|
this.bitmap.drawText(this.valueText, 0, 0, this.bw, this.bh, "center");
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Sprite_ZzyECFValue.prototype.setFontSize = function (fontSize) {
|
|
|
|
|
this.bitmap.fontSize = fontSize;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Sprite_ZzyECFValue.prototype.setTextColor = function (textColor) {
|
|
|
|
|
this.bitmap.textColor = textColor;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Sprite_ZzyECFValue.prototype.update = function () {
|
|
|
|
|
if (!this.visible) return;
|
|
|
|
|
this.updatePosition(); //更新位置
|
|
|
|
|
this.updateBeing();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Sprite_ZzyECFValue.prototype.CharOffsetY = function () {
|
|
|
|
|
return 24;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Sprite_ZzyECFValue.prototype.updatePosition = function () {
|
|
|
|
|
var tx = this.pos.x;
|
|
|
|
|
var ty = this.pos.y - this.CharOffsetY();
|
|
|
|
|
|
|
|
|
|
//角度转换弧度
|
|
|
|
|
|
|
|
|
|
var src = (this.angle / 180) * Math.PI;
|
|
|
|
|
|
|
|
|
|
tx += Math.sin(src) * this.cbFrame * this.speed;
|
|
|
|
|
ty -= Math.cos(src) * this.cbFrame * this.speed;
|
|
|
|
|
|
|
|
|
|
//计算镜头偏移
|
|
|
|
|
var disOffX = this.disX - $gameMap.tileWidth() * $gameMap.displayX();
|
|
|
|
|
var disOffY = this.disY - $gameMap.tileHeight() * $gameMap.displayY();
|
|
|
|
|
tx += disOffX;
|
|
|
|
|
ty += disOffY;
|
|
|
|
|
|
|
|
|
|
//重力
|
|
|
|
|
var time = this.cbFrame / 60; //时间
|
|
|
|
|
var gy = this.gravity * time * time;
|
|
|
|
|
gy = gy > this.maxSpeed ? this.maxSpeed : gy;
|
|
|
|
|
this.gOffY += gy;
|
|
|
|
|
ty += this.gOffY;
|
|
|
|
|
//位置
|
|
|
|
|
this.x = tx;
|
|
|
|
|
this.y = ty;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Sprite_ZzyECFValue.prototype.updateBeing = function () //刷新存在
|
|
|
|
|
{
|
|
|
|
|
if (this.cFadeIn < this.fadeIn) {
|
|
|
|
|
//渐入
|
|
|
|
|
this.cFadeIn++;
|
|
|
|
|
this.opacity = (255 * this.cFadeIn) / this.fadeIn;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (this.cbFrame < this.bFrame) {
|
|
|
|
|
this.cbFrame++;
|
|
|
|
|
this.opacity = 255;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (this.cFadeOut < this.fadeOut) {
|
|
|
|
|
this.cFadeOut++;
|
|
|
|
|
this.opacity = 255 * (1 - this.cFadeOut / this.fadeOut);
|
|
|
|
|
} else {
|
|
|
|
|
this.visible = false;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//------------------------------Zzy.ECF.Function-------------------------------
|
|
|
|
|
|
|
|
|
|
Zzy.ECF.CoronaModeToInt = function (str) {
|
|
|
|
|
switch (str) {
|
|
|
|
|
case "circle":
|
|
|
|
|
return 1;
|
|
|
|
|
case "rect":
|
|
|
|
|
return 2;
|
|
|
|
|
}
|
|
|
|
|
console.log("Error:来自LiuYue_EventCorona,检查光环模式填写是否正确");
|
|
|
|
|
return 0;
|
|
|
|
|
return 1;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Zzy.ECF.BlendModeToInt = function (str) {
|
|
|
|
|
switch (str) {
|
|
|
|
|
case "normal":
|
|
|
|
|
return Graphics.BLEND_NORMAL;
|
|
|
|
|
case "add":
|
|
|
|
|
return Graphics.BLEND_ADD;
|
|
|
|
|
case "multiply":
|
|
|
|
|
return Graphics.BLEND_MULTIPLY;
|
|
|
|
|
case "screen":
|
|
|
|
|
return Graphics.BLEND_SCREEN;
|
|
|
|
|
}
|
|
|
|
|
console.log("Error:来自LiuYue_EventCorona,检查图像叠加模式填写是否正确");
|
|
|
|
|
return 0;
|
|
|
|
|
return Graphics.BLEND_NORMAL;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Zzy.ECF.ShowValue = function (
|
|
|
|
|
value,
|
|
|
|
|
color,
|
|
|
|
|
pIndex,
|
|
|
|
|
evId //显示数值--这会让玩家队伍头顶出现数值,pIndex如果沒有写入,默认会是第一名角色
|
|
|
|
|
) {
|
|
|
|
|
pIndex = pIndex ? pIndex : 0;
|
|
|
|
|
evId = evId ? evId : 0;
|
|
|
|
|
if (SceneManager._scene instanceof Scene_Map) {
|
|
|
|
|
SceneManager._scene.PuchZzyECFValue(String(value), color, pIndex, evId); //压入数值
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Zzy.ECF.GetPosOfParty = function (
|
|
|
|
|
pIndex //基于队伍下标中获取角色的位置
|
|
|
|
|
) {
|
|
|
|
|
var info = {};
|
|
|
|
|
if (pIndex === 0) {
|
|
|
|
|
info.x = $gamePlayer.screenX();
|
|
|
|
|
info.y = $gamePlayer.screenY();
|
|
|
|
|
} else {
|
|
|
|
|
var tIndex = pIndex - 1;
|
|
|
|
|
//判断是否越界
|
|
|
|
|
var tp = $gamePlayer.followers().follower(tIndex);
|
|
|
|
|
|
|
|
|
|
if (!tp) {
|
|
|
|
|
console.log("Error:来自LiuYue_EventCorona,填写队伍下标值异常");
|
|
|
|
|
info.x = undefined;
|
|
|
|
|
info.y = undefined;
|
|
|
|
|
} else {
|
|
|
|
|
info.x = tp.screenX();
|
|
|
|
|
info.y = tp.screenY();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return info;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Zzy.ECF.ReturnRandom = function (value, offVal) {
|
|
|
|
|
if (!offVal) return value;
|
|
|
|
|
|
|
|
|
|
var tOff = Math.random() * offVal;
|
|
|
|
|
if (Math.random() * 2 <= 1) {
|
|
|
|
|
tOff = -tOff;
|
|
|
|
|
}
|
|
|
|
|
return value + tOff;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Zzy.ECF.ReturnRandomOfPer = function (value, offPer) {
|
|
|
|
|
if (!offPer) return value;
|
|
|
|
|
|
|
|
|
|
var tOff = value * (Math.random() * offPer * 0.01);
|
|
|
|
|
if (Math.random() * 2 <= 1) {
|
|
|
|
|
tOff = -tOff;
|
|
|
|
|
}
|
|
|
|
|
return value + tOff;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Zzy.ECF.IsShowCorona = function (enable) {
|
|
|
|
|
$gameSystem.setZzyECFIsShowCorona(enable);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Zzy.ECF.CoronaMode = function (str) {
|
|
|
|
|
$gameSystem.setZzyECFCoronaMode(str);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Zzy.ECF.CoronaRange = function (range) {
|
|
|
|
|
$gameSystem.setZzyECFCoronaRange(range);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Zzy.ECF.EffectFrame = function (frame) {
|
|
|
|
|
$gameSystem.setZzyECFEffectFrame(frame);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Zzy.ECF.EffectCommand = function (commonId) {
|
|
|
|
|
$gameSystem.setZzyECFEffectCommand(commonId);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Zzy.ECF.RangePic = function (picStr) {
|
|
|
|
|
$gameSystem.setZzyECFRangePic(picStr);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Zzy.ECF.OffsetX = function (offsetX) {
|
|
|
|
|
$gameSystem._ZzyECFOffsetX = offsetX;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Zzy.ECF.OffsetY = function (offsetY) {
|
|
|
|
|
$gameSystem._ZzyECFOffsetY = offsetY;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Zzy.ECF.BlendMode = function (modeStr) {
|
|
|
|
|
var modeId = Zzy.ECF.BlendModeToInt(modeStr);
|
|
|
|
|
$gameSystem.setZzyECFBlendMode(modeId);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Zzy.ECF.ValueBlend = function (modeStr) {
|
|
|
|
|
var modeId = Zzy.ECF.BlendModeToInt(modeStr);
|
|
|
|
|
$gameSystem.setZzyECFValueBlend(modeId);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Zzy.ECF.InCommand = function (commonId) {
|
|
|
|
|
$gameSystem.setZzyECFInCommand(commonId);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Zzy.ECF.OutCommand = function (commonId) {
|
|
|
|
|
$gameSystem.setZzyECFOutCommand(commonId);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Zzy.ECF.DefaultColor = function (color) {
|
|
|
|
|
$gameSystem._ZzyECFDefaultColor = color;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Zzy.ECF.PictureHue = function (hue) {
|
|
|
|
|
$gameSystem._ZzyECFPictureHue = hue;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Zzy.ECF.IsShowValue = function (enable) {
|
|
|
|
|
$gameSystem._ZzyECFIsShowValue = enable;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Zzy.ECF.ValueSize = function (size) {
|
|
|
|
|
$gameSystem._ZzyECFValueSize = size;
|
|
|
|
|
};
|