|
|
/*:
|
|
|
* @plugindesc v1.08 FieldBless 领域加护
|
|
|
* @author 流逝的岁月
|
|
|
*
|
|
|
* @help
|
|
|
* ============================================================================
|
|
|
* 介绍
|
|
|
* ============================================================================ *
|
|
|
*
|
|
|
*
|
|
|
* 这个插件赋予一个额外的卡槽,可以用于添加'加护'效果,可以在这个'加护'卡槽中,添加你想拥有的增益效果
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*-------------------------------------------------------------------
|
|
|
*
|
|
|
*使用条例:本插件完全免费,随意魔改
|
|
|
*
|
|
|
*-------------------------------------------------------------------
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
* 注意:关于公式,可用以下的内容信息,当然如果对js不熟悉,也可以直接输入数字
|
|
|
*
|
|
|
* actor //角色
|
|
|
* a //角色,与actor相同
|
|
|
* target //目标(如果有,则可以使用)
|
|
|
* b //目标,与target相同
|
|
|
* variables[ID] //全局变量
|
|
|
* v[ID] //全局变量,与variables相同
|
|
|
* V[ID] //全局变量,与variables相同
|
|
|
* switchs[ID] //全局开关
|
|
|
* s[ID] //全局开关,与switchs相同
|
|
|
* S[ID] //全局开关,与switchs相同
|
|
|
* level //角色等级
|
|
|
* usecount //角色所使用的加护容量(并非加护数量)
|
|
|
* nullcount //角色剩余加护容量
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
* 比如想要实现HP通过人物等级*100点的效果,做出'成长形'的加护,那么可以在物品备注中这样写:
|
|
|
* <ZzyFBF HP: 100*level>
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*以下是一些插件用到的插件指令
|
|
|
*---------------------Plugin Command--------------------
|
|
|
*
|
|
|
*
|
|
|
* ZzyFBF EnableMenu x(true/false) //是否激活菜单'加护'选项
|
|
|
* ZzyFBF InsertMenu x(true/false) //是否隐藏菜单'加护'选项
|
|
|
* ZzyFBF CommandName x //这会改变命令的文本内容
|
|
|
*
|
|
|
* ZzyFBF EnableSMenu x(true/false) //是否激活角色技能菜单'加护'选项
|
|
|
* ZzyFBF InsertSMenu x(true/false) //是否隐藏角色技能菜单'加护'选项
|
|
|
* ZzyFBF SCommandName x //这会改变角色技能命令的文本内容
|
|
|
*
|
|
|
*
|
|
|
* ZzyFBF OpenActor x //这将会打开数据库x号角色的守护窗口界面
|
|
|
* ZzyFBF OpenParty x //这将会打开队伍中x号角色的守护窗口面板,请注意队长代表0号
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
* ZzyFBF EnableActorFB x(true/false) //则会开启或是关闭角色拥有的领域效果,注意这不包含自定义设定
|
|
|
* ZzyFBF MaxCount x //角色默认的最大加护槽数量,角色的加护槽不会超过这个值,这可以是一个公式,也可以输入Infinite代表无上限
|
|
|
* ZzyFBF CurrentCount x //角色目前的加护槽数量,这个值可通过角色的属性进行调整,这可以是一个公式
|
|
|
* ZzyFBF MemoryCount x //这会设置道具的默认占用格子量
|
|
|
*
|
|
|
* ZzyFBF ForceUnInstallAll x //这会强制卸载一位角色所有的加护
|
|
|
* x:输入角色的ID值
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*以下是一些插件用到的脚本函数
|
|
|
*---------------------Script Function--------------------
|
|
|
*
|
|
|
*
|
|
|
* Zzy.FBF.EnableMenu(enable) //是否激活菜单'加护'选项
|
|
|
* Zzy.FBF.InsertMenu(enable) //是否隐藏菜单'加护'选项
|
|
|
* Zzy.FBF.CommandName(commandText) //这会改变命令的文本内容
|
|
|
* Zzy.FBF.EnableSMenu(enable) //是否激活角色技能菜单'加护'选项
|
|
|
* Zzy.FBF.InsertSMenu(enable) //是否隐藏角色技能菜单'加护'选项
|
|
|
* Zzy.FBF.SCommandName(commandText) //这会改变角色技能命令的文本内容
|
|
|
* Zzy.FBF.OpenActor(actorId) //这将会打开数据库x号角色的守护窗口界面
|
|
|
* Zzy.FBF.OpenParty(index) //这将会打开队伍中x号角色的守护窗口面板,请注意队长代表0号
|
|
|
* Zzy.FBF.EnableActorFB(enable) //则会开启或是关闭角色拥有的领域效果,注意这不包含自定义设定
|
|
|
* Zzy.FBF.MaxCount(formula) //角色默认的最大加护槽数量,角色的加护槽不会超过这个值,这可以是一个公式,也可以输入Infinite代表无上限
|
|
|
* Zzy.FBF.CurrentCount(formula) //角色目前的加护槽数量,这个值可通过角色的属性进行调整,这可以是一个公式
|
|
|
* Zzy.FBF.MemoryCount(count) //这会设置道具的默认占用格子量
|
|
|
* Zzy.FBF.ForceUnInstallAll(actorId) //这会强制卸载一位角色所有的加护
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*以下是一些插件用到的便签信息
|
|
|
*---------------------Data Case--------------------
|
|
|
*可以在 数据库 物品 备注 中添加以下内容:
|
|
|
* <ZzyFBF Enable> //将此道具视为拥有'加护'效果,使用以下指令必须先为物品添加这条备注信息
|
|
|
* <ZzyFBF TextColor: x> --文字颜色-- //这将会修改显示加护文字的色彩,填写#000000~#ffffff 或是 rpga(0~255,0~255,0~255,0~1)
|
|
|
* <ZzyFBF BorderWidth: x> --文字边框宽度-- //这将会修改显示文字边框的宽度,请填写整数
|
|
|
* <ZzyFBF BorderColor: x> --文字边框颜色-- //这将会修改显示文字边框的颜色,填写#000000~#ffffff 或是 rpga(0~255,0~255,0~255,0~1)
|
|
|
* <ZzyFBF TextSize: x> --文字字体大小-- //这将会修改显示文字的字体大小,请填写整数
|
|
|
*
|
|
|
*
|
|
|
* //注意标签中公式不可以存在空格
|
|
|
*
|
|
|
*
|
|
|
* <ZzyFBF HP: x> ----生命---- //装备加护时增加HP,这可以是一个公式
|
|
|
* <ZzyFBF HPPer: x> //装备加护时增加HP百分比,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF MP: x> ----魔法---- //装备加护时增加MP,这可以是一个公式
|
|
|
* <ZzyFBF MPPer: x> //装备加护时增加MP百分比,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF ATK: x> ----攻击---- //装备加护时增加ATK,这可以是一个公式
|
|
|
* <ZzyFBF ATKPer: x> //装备加护时增加ATK百分比,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF DEF: x> ----防御---- //装备加护时增加DEF,这可以是一个公式
|
|
|
* <ZzyFBF DEFPer: x> //装备加护时增加DEF百分比,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF MAT: x> ----魔攻---- //装备加护时增加MAT,这可以是一个公式
|
|
|
* <ZzyFBF MATPer: x> //装备加护时增加MAT百分比,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF MDF: x> ----魔抗---- //装备加护时增加MDF,这可以是一个公式
|
|
|
* <ZzyFBF MDFPer: x> //装备加护时增加MDF百分比,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF AGI: x> ----速度---- //装备加护时增加AGI,这可以是一个公式
|
|
|
* <ZzyFBF AGIPer: x> //装备加护时增加AGI百分比,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF LUK: x> ----幸运---- //装备加护时增加LUK,这可以是一个公式
|
|
|
* <ZzyFBF LUKPer: x> //装备加护时增加LUK百分比,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF HIT: x> --命中-- //装备加护时增加HIT,这可以是一个公式
|
|
|
* <ZzyFBF HITPer: x> --命中-- //装备加护时增加HIT百分比,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF EVA: x> --闪避-- //装备加护时增加EVA,这可以是一个公式
|
|
|
* <ZzyFBF EVAPer: x> --闪避-- //装备加护时增加EVA百分比,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF CRI: x> --暴击-- //装备加护时增加CRI,这可以是一个公式
|
|
|
* <ZzyFBF CRIPer: x> --暴击-- //装备加护时增加CRI百分比,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF CEV: x> --暴击回避-- //装备加护时增加CEV,这可以是一个公式
|
|
|
* <ZzyFBF CEVPer: x> --暴击回避-- //装备加护时增加CEV百分比,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF MEV: x> --魔法回避-- //装备加护时增加MEV,这可以是一个公式
|
|
|
* <ZzyFBF MEVPer: x> --魔法回避-- //装备加护时增加MEV百分比,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF MRF: x> --魔法反射-- //装备加护时增加MRF,这可以是一个公式
|
|
|
* <ZzyFBF MRFPer: x> --魔法反射-- //装备加护时增加MRF百分比,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF CNT: x> --反击-- //装备加护时增加CNT,这可以是一个公式
|
|
|
* <ZzyFBF CNTPer: x> --反击-- //装备加护时增加CNT百分比,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF HRG: x> --HP自动恢复-- //装备加护时增加HRG,这可以是一个公式
|
|
|
* <ZzyFBF HRGPer: x> --HP自动恢复-- //装备加护时增加HRG百分比,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF MRG: x> --MP自动恢复-- //装备加护时增加MRG,这可以是一个公式
|
|
|
* <ZzyFBF MRGPer: x> --MP自动恢复-- //装备加护时增加MRG百分比,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF TRG: x> --TP自动恢复-- //装备加护时增加TRG,这可以是一个公式
|
|
|
* <ZzyFBF TRGPer: x> --TP自动恢复-- //装备加护时增加TRG百分比,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF TGR: x> --受到攻击几率-- //装备加护时增加TGR,这可以是一个公式
|
|
|
* <ZzyFBF TGRPer: x> --受到攻击几率-- //装备加护时增加TGR百分比,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF GRD: x> --防御效果-- //装备加护时增加GRD,这可以是一个公式
|
|
|
* <ZzyFBF GRDPer: x> --防御效果-- //装备加护时增加GRD百分比,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF REC: x> --恢复效果-- //装备加护时增加REC,这可以是一个公式
|
|
|
* <ZzyFBF RECPer: x> --恢复效果-- //装备加护时增加REC百分比,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF PHA: x> --药理知识-- //装备加护时增加PHA,这可以是一个公式
|
|
|
* <ZzyFBF PHAPer: x> --药理知识-- //装备加护时增加PHA百分比,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF MCR: x> --MP消耗率-- //装备加护时增加MCR,这可以是一个公式
|
|
|
* <ZzyFBF MCRPer: x> --MP消耗率-- //装备加护时增加MCR百分比,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF TCR: x> --TP消耗率-- //装备加护时增加TCR,这可以是一个公式
|
|
|
* <ZzyFBF TCRPer: x> --TP消耗率-- //装备加护时增加TCR百分比,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF PDR: x> --物理伤害-- //装备加护时增加PDR,这可以是一个公式
|
|
|
* <ZzyFBF PDRPer: x> --物理伤害-- //装备加护时增加PDR百分比,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF MDR: x> --魔法伤害-- //装备加护时增加MDR,这可以是一个公式
|
|
|
* <ZzyFBF MDRPer: x> --魔法伤害-- //装备加护时增加MDR百分比,这可以是一个公式
|
|
|
*
|
|
|
*
|
|
|
* <ZzyFBF FDR: x> --地板伤害-- //装备加护时增加FDR,这可以是一个公式
|
|
|
* <ZzyFBF FDRPer: x> --地板伤害-- //装备加护时增加FDR百分比,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF EXP: x> --经验值-- //装备加护时增加战斗结算EXP,这可以是一个公式
|
|
|
* <ZzyFBF EXPPer: x> --经验值-- //装备加护时增加战斗结算EXP百分比,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF GOLD: x> --金币-- //装备加护时增加战斗结算GOLD,这可以是一个公式
|
|
|
* <ZzyFBF GOLDPer: x> --金币-- //装备加护时增加战斗结算GOLD百分比,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF DAR: x> --伤害减免-- //装备加护时战斗受到伤害DAR,这可以是一个公式
|
|
|
* <ZzyFBF DARPer: x> --伤害减免-- //装备加护时战斗受到伤害DAR百分比,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF Element: x1 x2> --元素伤害-- //拥有战斗时技能元素造成伤害额外值,x1是元素ID,x2是伤害值,这可以是一个公式
|
|
|
* <ZzyFBF ElementPer: x1 x2> --元素伤害-- //增加元素的百分比,x1是元素ID,x2是伤害值,这可以是一个公式
|
|
|
*
|
|
|
* <ZzyFBF ESCPer: x> --逃跑概率-- //装备加护时增加或者减少逃跑的概率,x填写20就代表增加20%,这可以是一个公式
|
|
|
* <ZzyFBF SNAKPer: x> --偷袭概率-- //装备加护时遭遇战斗增加或减少先发制人的概率,x填写20就代表增加20%,这可以是一个公式
|
|
|
* <ZzyFBF BSAKPer: x> --被偷袭概率-- //装备加护时遭遇战斗增加或减少被偷袭的的概率,x填写20就代表增加20%,这可以是一个公式
|
|
|
*
|
|
|
*
|
|
|
* <ZzyFBF ENCT: x> --遇敌步数-- //装备加护时遭遇敌人所需要的倍数增加或减少,x填写10就代表额外10步后才有概率遭遇敌人
|
|
|
* <ZzyFBF ENCTPer: x> --遇敌步数-- //装备加护时遭遇敌人所需要的倍数增加或减少,x填写10就代表额外10%步后才有概率遭遇敌人
|
|
|
*
|
|
|
*
|
|
|
* <ZzyFBF Memory: x> //修改加护的占用量
|
|
|
* <ZzyFBF NoInstall> //这会使安装的加护无法通过界面方式进行拆卸
|
|
|
*
|
|
|
* <ZzyFBF Class: x> //限定可以使用这个加护的职业ID,设置后则会限制在这个范围中
|
|
|
* <ZzyFBF Class: x1,x2,x3...> //限定可以使用这个加护的职业ID,可输入多个ID值
|
|
|
* <ZzyFBF Actor: x> //限定可以使用这个加护的角色ID,设置后则会限制在这个范围中,此优先级高于职业设置
|
|
|
* <ZzyFBF Actor: x1,x2,x3...> //限定可以使用这个加护的角色ID,可输入多个ID值
|
|
|
* <ZzyFBF NoClass: x> //限定不可以使用这个加护的职业ID
|
|
|
* <ZzyFBF NoClass: x1,x2,x3...> //限定不可以使用这个加护的职业ID,可输入多个ID值
|
|
|
* <ZzyFBF NoActor: x> //限定不可以使用这个加护的角色ID,此优先级高于职业设置
|
|
|
* <ZzyFBF NoActor: x1,x2,x3...> //限定不可以使用这个加护的角色ID,可输入多个ID值
|
|
|
*
|
|
|
* <ZzyFBF Condition: x> //限定是否可以使用这个加护的公式,返回值为true代表可以使用,返回值为false不可使用,此优先级最高
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*可以在 数据库 角色 备注 中添加以下内容:
|
|
|
* <ZzyFBF FieldBless: x(true/false)> //这将控制这个角色是否拥有加护的能力,优先级高于插件参数设置
|
|
|
* <ZzyFBF MaxCount: x> //这将设置角色的加护槽最多为x,x可以是一个公式,也可以输入Infinite代表无上限
|
|
|
* <ZzyFBF CurrentCount: x> //通过目前的角色属性,来获得当前的加护槽,这可以是一个公式
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*可以在 数据库 护甲 武器 技能 职业 角色 添加以下内容:
|
|
|
* <ZzyFBF Count: x> //这将对相关这个角色的当前加护槽开放更多,注意x可以是一个公式
|
|
|
* <ZzyFBF MCount: x> //这将对相关这个角色的最大加护槽开放的上限,注意x可以是一个公式
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*----------------------------------------------------------
|
|
|
*
|
|
|
*
|
|
|
* 我叫坂本:v1.08 拓展脚本函数
|
|
|
* 我叫坂本:v1.07 修复一个bug,导致了与YEP独立物品以及部分插件无法兼容的问题
|
|
|
* 我叫坂本:v1.06 添加与旧存档兼容
|
|
|
* 我叫坂本:v1.05 优化,减少不必要的指令
|
|
|
* 我叫坂本:v1.04 添加呼叫界面的插件指令,添加技能界面出现加护选项
|
|
|
* 我叫坂本:v1.03 修复读档时,拆卸领域异常的bug,添加额外便签设置
|
|
|
* 我叫坂本:v1.02 修复无法增加经验值bug,添加额外便签设置
|
|
|
* 我叫坂本:v1.01 更新了元素相关的便签信息,更新了对于公式中更多的变量
|
|
|
* 我叫坂本:v1.00 完成插件功能
|
|
|
*
|
|
|
*----------------------------------------------------------
|
|
|
*
|
|
|
*
|
|
|
|
|
|
* @param ---菜单---
|
|
|
* @default
|
|
|
|
|
|
* @param EnableMenu
|
|
|
* @text 激活菜单项
|
|
|
* @parent ---菜单---
|
|
|
* @type boolean
|
|
|
* @on YES
|
|
|
* @off NO
|
|
|
* @desc 在菜单栏中'加护'是否是激活状态
|
|
|
* YES - true NO - false
|
|
|
* @default true
|
|
|
|
|
|
* @param InsertMenu
|
|
|
* @text 添加菜单项
|
|
|
* @parent ---菜单---
|
|
|
* @type boolean
|
|
|
* @on YES
|
|
|
* @off NO
|
|
|
* @desc 在菜单栏中是否添加'加护'
|
|
|
* YES - true NO - false
|
|
|
* @default true
|
|
|
|
|
|
* @param MenuCommandName
|
|
|
* @text 主菜单显示名称
|
|
|
* @parent ---菜单---
|
|
|
* @type text
|
|
|
* @desc 在主菜单上显示选项的名称,默认名称'加护'
|
|
|
* @default 加护
|
|
|
*
|
|
|
*
|
|
|
* @param ---技能菜单---
|
|
|
* @default
|
|
|
*
|
|
|
* @param EnableSMenu
|
|
|
* @text 激活角色技能菜单项
|
|
|
* @parent ---技能菜单---
|
|
|
* @type boolean
|
|
|
* @on YES
|
|
|
* @off NO
|
|
|
* @desc 在技能菜单栏中'加护'是否是激活状态
|
|
|
* YES - true NO - false
|
|
|
* @default false
|
|
|
|
|
|
* @param InsertSMenu
|
|
|
* @text 添加角色技能菜单项
|
|
|
* @parent ---技能菜单---
|
|
|
* @type boolean
|
|
|
* @on YES
|
|
|
* @off NO
|
|
|
* @desc 在角色技能菜单栏中是否添加'加护'选项
|
|
|
* YES - true NO - false
|
|
|
* @default false
|
|
|
|
|
|
* @param SMenuCommandName
|
|
|
* @text 角色技能菜单显示名称
|
|
|
* @parent ---技能菜单---
|
|
|
* @type text
|
|
|
* @desc 在角色技能菜单上显示选项的名称,默认名称'加护'
|
|
|
* @default 加护
|
|
|
*
|
|
|
* @param ---帮助窗口---
|
|
|
* @default
|
|
|
*
|
|
|
*
|
|
|
* @param HelpWindowX
|
|
|
* @text 帮助窗口x位置
|
|
|
* @parent ---帮助窗口---
|
|
|
* @type text
|
|
|
* @desc 出现帮助窗口x的位置,这可以是一段代码
|
|
|
* @default 0
|
|
|
*
|
|
|
* @param HelpWindowY
|
|
|
* @text 帮助窗口y位置
|
|
|
* @parent ---帮助窗口---
|
|
|
* @type text
|
|
|
* @desc 出现帮助窗口y的位置,这可以是一段代码
|
|
|
* @default 0
|
|
|
*
|
|
|
* @param HelpWindowW
|
|
|
* @text 帮助窗口宽度
|
|
|
* @parent ---帮助窗口---
|
|
|
* @type text
|
|
|
* @desc 出现帮助窗口宽度,这可以是一段代码
|
|
|
* @default Graphics.boxWidth
|
|
|
*
|
|
|
* @param HelpWindowH
|
|
|
* @text 帮助窗口行数
|
|
|
* @parent ---帮助窗口---
|
|
|
* @type number
|
|
|
* @desc 出现帮助窗口行数,这决定出现帮助窗口的高度
|
|
|
* @default 2
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
* @param ---加护窗口---
|
|
|
* @default
|
|
|
*
|
|
|
*
|
|
|
* @param FieldWindowX
|
|
|
* @text 加护窗口x位置
|
|
|
* @parent ---加护窗口---
|
|
|
* @type text
|
|
|
* @desc 出现加护窗口x的位置,这可以是一段代码
|
|
|
* @default 0
|
|
|
*
|
|
|
* @param FieldWindowY
|
|
|
* @text 加护窗口y位置
|
|
|
* @parent ---加护窗口---
|
|
|
* @type text
|
|
|
* @desc 出现加护窗口y的位置,这可以是一段代码
|
|
|
* @default this._helpWindow.height
|
|
|
*
|
|
|
* @param FieldWindowW
|
|
|
* @text 加护窗口宽度
|
|
|
* @parent ---加护窗口---
|
|
|
* @type text
|
|
|
* @desc 出现加护窗口宽度,这可以是一段代码
|
|
|
* @default Graphics.boxWidth / 3
|
|
|
*
|
|
|
* @param FieldWindowH
|
|
|
* @text 加护窗口高度
|
|
|
* @parent ---加护窗口---
|
|
|
* @type text
|
|
|
* @desc 出现加护窗口行数,这决定出现加护窗口的高度
|
|
|
* @default Graphics.boxHeight - this._helpWindow.height
|
|
|
*
|
|
|
*
|
|
|
* @param UnlockText
|
|
|
* @text 未解锁文字
|
|
|
* @parent ---加护窗口---
|
|
|
* @type text
|
|
|
* @desc 未解锁是出现的文字内容
|
|
|
* @default ---未解锁---
|
|
|
*
|
|
|
*
|
|
|
* @param MemoryText
|
|
|
* @text 占用文字
|
|
|
* @parent ---加护窗口---
|
|
|
* @type text
|
|
|
* @desc 未解锁是出现的文字内容
|
|
|
* @default ---占用---
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
* @param UnlockTextColor
|
|
|
* @text 未解锁文字颜色
|
|
|
* @parent ---加护窗口---
|
|
|
* @type text
|
|
|
* @desc 未解锁是出现的文字颜色
|
|
|
* @default #cc2222
|
|
|
*
|
|
|
*
|
|
|
* @param MemoryTextColor
|
|
|
* @text 占用文字颜色
|
|
|
* @parent ---加护窗口---
|
|
|
* @type text
|
|
|
* @desc 加护占用超过1格时,显示的占用文字的颜色
|
|
|
* @default #888888
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
* @param NoUnInstallColor
|
|
|
* @text 不可拆卸顔色
|
|
|
* @parent ---加护窗口---
|
|
|
* @type text
|
|
|
* @desc 不可拆卸的领域的文字颜色
|
|
|
* @default #999999
|
|
|
*
|
|
|
* @param UnlockHelpText
|
|
|
* @text 未解锁帮助文字
|
|
|
* @parent ---加护窗口---
|
|
|
* @type text
|
|
|
* @desc 选中未解锁文字时出现的帮助文本
|
|
|
* @default 封印中暂未解锁
|
|
|
*
|
|
|
* @param LockHelpText
|
|
|
* @text 解锁帮助文字
|
|
|
* @parent ---加护窗口---
|
|
|
* @type text
|
|
|
* @desc 选中解锁文字时出现的帮助文本
|
|
|
* @default 可添加加护
|
|
|
*
|
|
|
* @param FieldRectColor
|
|
|
* @text 底矩形框颜色
|
|
|
* @parent ---加护窗口---
|
|
|
* @type text
|
|
|
* @desc 底色框的颜色可以用rgba(x,x,x,x)或是#xxxxxx的方式来设置颜色
|
|
|
* @default rgba(30,30,90,0.4)
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
* @param ---加护道具窗口---
|
|
|
* @default
|
|
|
*
|
|
|
*
|
|
|
* @param FieldItemWindowX
|
|
|
* @text 加护道具窗口x位置
|
|
|
* @parent ---加护道具窗口---
|
|
|
* @type text
|
|
|
* @desc 出现加护道具窗口x的位置,这可以是一段代码
|
|
|
* @default Graphics.boxWidth / 3
|
|
|
*
|
|
|
* @param FieldItemWindowY
|
|
|
* @text 加护道具窗口y位置
|
|
|
* @parent ---加护道具窗口---
|
|
|
* @type text
|
|
|
* @desc 出现加护道具窗口y的位置,这可以是一段代码
|
|
|
* @default this._helpWindow.height
|
|
|
*
|
|
|
* @param FieldItemWindowW
|
|
|
* @text 加护道具窗口宽度
|
|
|
* @parent ---加护道具窗口---
|
|
|
* @type text
|
|
|
* @desc 出现加护道具窗口宽度,这可以是一段代码
|
|
|
* @default Graphics.boxWidth * 2 / 3
|
|
|
*
|
|
|
* @param FieldItemWindowH
|
|
|
* @text 加护道具窗口高度
|
|
|
* @parent ---加护道具窗口---
|
|
|
* @type text
|
|
|
* @desc 出现加护道具窗口行数,这决定出现加护道具窗口的高度
|
|
|
* @default Graphics.boxHeight - this._helpWindow.height
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
* @param ---数据信息---
|
|
|
* @default
|
|
|
*
|
|
|
*
|
|
|
* @param EnableActorFB
|
|
|
* @text 角色是否具备加护
|
|
|
* @parent ---数据信息---
|
|
|
* @type boolean
|
|
|
* @on YES
|
|
|
* @off NO
|
|
|
* @desc 设置角色是否默认具有加护能力
|
|
|
* YES - true NO - false
|
|
|
* @default true
|
|
|
*
|
|
|
*
|
|
|
* @param MaxFieldCount
|
|
|
* @text 最大加护槽数量
|
|
|
* @parent ---数据信息---
|
|
|
* @type text
|
|
|
* @desc 默认拥有的最大槽数量,请输入公式或是Infinite(无限),默认值为Infinite
|
|
|
* @default Infinite
|
|
|
*
|
|
|
* @param CurrentFieldCount
|
|
|
* @text 目前加护槽数量
|
|
|
* @parent ---数据信息---
|
|
|
* @type text
|
|
|
* @desc 角色通过自身属性,获取的目前加护槽的数量,这可以是一个公式
|
|
|
* @default Math.max(1,Math.min(Math.round(level/2),30));
|
|
|
*
|
|
|
* @param MemoryCount
|
|
|
* @text 占用量
|
|
|
* @parent ---数据信息---
|
|
|
* @type number
|
|
|
* @desc 这是加护道具占用的卡槽数量,输入整数,默认值为1
|
|
|
* @default 1
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
* @param ---音效---
|
|
|
* @default
|
|
|
*
|
|
|
*
|
|
|
* @param NoFieldSound
|
|
|
* @text 不存在加护音效
|
|
|
* @parent ---音效---
|
|
|
* @dir audio/se
|
|
|
* @type file
|
|
|
* @desc 不存在加护产生的声音,请填写audio/se文件夹中的文件名,不包含m4a.ogg的后缀名
|
|
|
* @default Cancel2
|
|
|
*
|
|
|
* @param NoFieldVolume
|
|
|
* @text 不存在加护音量
|
|
|
* @parent ---音效---
|
|
|
* @type number
|
|
|
* @min 0
|
|
|
* @desc 不存在加护产生的音量,默认值100
|
|
|
* @default 100
|
|
|
*
|
|
|
* @param NoFieldPitch
|
|
|
* @text 不存在加护音调
|
|
|
* @parent ---音效---
|
|
|
* @type number
|
|
|
* @min 0
|
|
|
* @desc 不存在加护产生的音调,默认值100
|
|
|
* @default 100
|
|
|
*
|
|
|
* @param NoFieldPan
|
|
|
* @text 不存在加护声道
|
|
|
* @parent ---音效---
|
|
|
* @type number
|
|
|
* @desc 不存在加护产生的声道,默认值0
|
|
|
* @default 0
|
|
|
*
|
|
|
*
|
|
|
* @param UnableSound
|
|
|
* @text 无法卸载加护音效
|
|
|
* @parent ---音效---
|
|
|
* @dir audio/se
|
|
|
* @type file
|
|
|
* @desc 无法卸载加护产生的声音,请填写audio/se文件夹中的文件名,不包含m4a.ogg的后缀名
|
|
|
* @default Knock
|
|
|
*
|
|
|
* @param UnableVolume
|
|
|
* @text 无法卸载加护音量
|
|
|
* @parent ---音效---
|
|
|
* @type number
|
|
|
* @min 0
|
|
|
* @desc 无法卸载加护产生的音量,默认值100
|
|
|
* @default 100
|
|
|
*
|
|
|
* @param UnablePitch
|
|
|
* @text 无法卸载加护音调
|
|
|
* @parent ---音效---
|
|
|
* @type number
|
|
|
* @min 0
|
|
|
* @desc 无法卸载加护产生的音调,默认值100
|
|
|
* @default 100
|
|
|
*
|
|
|
* @param UnablePan
|
|
|
* @text 无法卸载加护声道
|
|
|
* @parent ---音效---
|
|
|
* @type number
|
|
|
* @desc 无法卸载加护产生的声道,默认值0
|
|
|
* @default 0
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
* @param NoInstallSound
|
|
|
* @text 无法安装加护音效
|
|
|
* @parent ---音效---
|
|
|
* @dir audio/se
|
|
|
* @type file
|
|
|
* @desc 无法安装加护产生的声音,请填写audio/se文件夹中的文件名,不包含m4a.ogg的后缀名
|
|
|
* @default Buzzer1
|
|
|
*
|
|
|
* @param NoInstallVolume
|
|
|
* @text 无法安装加护音量
|
|
|
* @parent ---音效---
|
|
|
* @type number
|
|
|
* @min 0
|
|
|
* @desc 无法安装加护产生的音量,默认值100
|
|
|
* @default 100
|
|
|
*
|
|
|
* @param NoInstallPitch
|
|
|
* @text 无法安装加护音调
|
|
|
* @parent ---音效---
|
|
|
* @type number
|
|
|
* @min 0
|
|
|
* @desc 无法安装加护产生的音调,默认值100
|
|
|
* @default 100
|
|
|
*
|
|
|
* @param NoInstallPan
|
|
|
* @text 无法安装加护声道
|
|
|
* @parent ---音效---
|
|
|
* @type number
|
|
|
* @desc 无法安装加护产生的声道,默认值0
|
|
|
* @default 0
|
|
|
*
|
|
|
*
|
|
|
* @param InSuccessSound
|
|
|
* @text 安装成功加护音效
|
|
|
* @parent ---音效---
|
|
|
* @dir audio/se
|
|
|
* @type file
|
|
|
* @desc 安装成功加护产生的声音,请填写audio/se文件夹中的文件名,不包含m4a.ogg的后缀名
|
|
|
* @default Equip1
|
|
|
*
|
|
|
* @param InSuccessVolume
|
|
|
* @text 安装成功加护音量
|
|
|
* @parent ---音效---
|
|
|
* @type number
|
|
|
* @min 0
|
|
|
* @desc 安装成功加护产生的音量,默认值100
|
|
|
* @default 100
|
|
|
*
|
|
|
* @param InSuccessPitch
|
|
|
* @text 安装成功加护音调
|
|
|
* @parent ---音效---
|
|
|
* @type number
|
|
|
* @min 0
|
|
|
* @desc 安装成功加护产生的音调,默认值100
|
|
|
* @default 100
|
|
|
*
|
|
|
* @param InSuccessPan
|
|
|
* @text 安装成功加护声道
|
|
|
* @parent ---音效---
|
|
|
* @type number
|
|
|
* @desc 安装成功加护产生的声道,默认值0
|
|
|
* @default 0
|
|
|
*
|
|
|
*
|
|
|
* @param UnSuccessSound
|
|
|
* @text 卸载成功加护音效
|
|
|
* @parent ---音效---
|
|
|
* @dir audio/se
|
|
|
* @type file
|
|
|
* @desc 卸载成功加护产生的声音,请填写audio/se文件夹中的文件名,不包含m4a.ogg的后缀名
|
|
|
* @default Equip2
|
|
|
*
|
|
|
* @param UnSuccessVolume
|
|
|
* @text 卸载成功加护音量
|
|
|
* @parent ---音效---
|
|
|
* @type number
|
|
|
* @min 0
|
|
|
* @desc 卸载成功加护产生的音量,默认值100
|
|
|
* @default 100
|
|
|
*
|
|
|
* @param UnSuccessPitch
|
|
|
* @text 卸载成功加护音调
|
|
|
* @parent ---音效---
|
|
|
* @type number
|
|
|
* @min 0
|
|
|
* @desc 卸载成功加护产生的音调,默认值100
|
|
|
* @default 100
|
|
|
*
|
|
|
* @param UnSuccessPan
|
|
|
* @text 卸载成功加护声道
|
|
|
* @parent ---音效---
|
|
|
* @type number
|
|
|
* @desc 卸载成功加护产生的声道,默认值0
|
|
|
* @default 0
|
|
|
*
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
var LiuYue = LiuYue || {};
|
|
|
LiuYue.LiuYue_FieldBless = true;//插件启动
|
|
|
|
|
|
var Zzy = Zzy || {};
|
|
|
Zzy.FBF = Zzy.FBF || {};
|
|
|
Zzy.FBF.version = 1.08;
|
|
|
Zzy.Parameters = PluginManager.parameters('LiuYue_FieldBless');
|
|
|
Zzy.Param = Zzy.Param || {};
|
|
|
|
|
|
|
|
|
Zzy.Param.FBFEnableMenu = eval(String(Zzy.Parameters['EnableMenu']));
|
|
|
Zzy.Param.FBFInsertMenu = eval(String(Zzy.Parameters['InsertMenu']));
|
|
|
Zzy.Param.FBFMenuCommandName = String(Zzy.Parameters['MenuCommandName']);
|
|
|
|
|
|
Zzy.Param.FBFEnableSMenu = eval(String(Zzy.Parameters['EnableSMenu']));
|
|
|
Zzy.Param.FBFInsertSMenu = eval(String(Zzy.Parameters['InsertSMenu']));
|
|
|
Zzy.Param.FBFSMenuCommandName = String(Zzy.Parameters['SMenuCommandName']);
|
|
|
|
|
|
|
|
|
|
|
|
Zzy.Param.FBFHelpWindowX = String(Zzy.Parameters['HelpWindowX']);//帮助窗口x位置
|
|
|
Zzy.Param.FBFHelpWindowY = String(Zzy.Parameters['HelpWindowY']);//帮助窗口y位置
|
|
|
Zzy.Param.FBFHelpWindowW = String(Zzy.Parameters['HelpWindowW']);//帮助窗口宽度
|
|
|
Zzy.Param.FBFHelpWindowH = parseInt(Zzy.Parameters['HelpWindowH']);//帮助窗口行数
|
|
|
|
|
|
Zzy.Param.FBFFieldWindowX = String(Zzy.Parameters['FieldWindowX']);//加护窗口x位置
|
|
|
Zzy.Param.FBFFieldWindowY = String(Zzy.Parameters['FieldWindowY']);//加护窗口y位置
|
|
|
Zzy.Param.FBFFieldWindowW = String(Zzy.Parameters['FieldWindowW']);//加护窗口宽度
|
|
|
Zzy.Param.FBFFieldWindowH = String(Zzy.Parameters['FieldWindowH']);//加护窗口高度
|
|
|
|
|
|
Zzy.Param.FBFFieldItemWindowX = String(Zzy.Parameters['FieldItemWindowX']);//加护道具窗口x位置
|
|
|
Zzy.Param.FBFFieldItemWindowY = String(Zzy.Parameters['FieldItemWindowY']);//加护道具窗口y位置
|
|
|
Zzy.Param.FBFFieldItemWindowW = String(Zzy.Parameters['FieldItemWindowW']);//加护道具窗口宽度
|
|
|
Zzy.Param.FBFFieldItemWindowH = String(Zzy.Parameters['FieldItemWindowH']);//加护道具窗口高度
|
|
|
|
|
|
Zzy.Param.FBFUnlockText = String(Zzy.Parameters['UnlockText']);//未解锁文字
|
|
|
Zzy.Param.FBFUnlockTextColor = String(Zzy.Parameters['UnlockTextColor']);//未解锁文字颜色
|
|
|
Zzy.Param.FBFMemoryText = String(Zzy.Parameters['MemoryText']);//占用文字
|
|
|
Zzy.Param.FBFMemoryTextColor = String(Zzy.Parameters['MemoryTextColor']);//占用文字颜色
|
|
|
Zzy.Param.FBFNoUnInstallColor = String(Zzy.Parameters['NoUnInstallColor']);//不可拆卸的领域的文字颜色
|
|
|
|
|
|
|
|
|
Zzy.Param.FBFUnlockHelpText = String(Zzy.Parameters['UnlockHelpText']);//未解锁帮助文字
|
|
|
Zzy.Param.FBFLockHelpText = String(Zzy.Parameters['LockHelpText']);//解锁帮助文字
|
|
|
Zzy.Param.FBFFieldRectColor = String(Zzy.Parameters['FieldRectColor']);//底矩形框颜色
|
|
|
|
|
|
|
|
|
Zzy.Param.FBFEnableActorFB = eval(String((Zzy.Parameters['EnableActorFB'])));//角色是否具备加护
|
|
|
Zzy.Param.FBFMaxFieldCount = String(Zzy.Parameters['MaxFieldCount']);//最大加护槽数量
|
|
|
Zzy.Param.FBFCurrentFieldCount = String(Zzy.Parameters['CurrentFieldCount']);//目前加护槽数量
|
|
|
|
|
|
Zzy.Param.FBFMemoryCount = parseInt(Zzy.Parameters['MemoryCount']);//帮助窗口行数
|
|
|
|
|
|
|
|
|
//----------------------------------------------------声音----------------------------------------------------------
|
|
|
|
|
|
Zzy.FBF.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;
|
|
|
}
|
|
|
|
|
|
|
|
|
//SE
|
|
|
Zzy.Param.FBFNoFieldSound = String(Zzy.Parameters['NoFieldSound']);//FBF音效
|
|
|
Zzy.Param.FBFNoFieldVolume = parseInt(Zzy.Parameters['NoFieldVolume']);//FBF音量
|
|
|
Zzy.Param.FBFNoFieldPitch = parseInt(Zzy.Parameters['NoFieldPitch']);//FBF音调
|
|
|
Zzy.Param.FBFNoFieldPan = parseInt(Zzy.Parameters['NoFieldPan']);//FBF声道
|
|
|
Zzy.Param.FBFNoFieldSE = Zzy.FBF.MakeSE(Zzy.Param.FBFNoFieldSound,Zzy.Param.FBFNoFieldVolume,Zzy.Param.FBFNoFieldPitch,Zzy.Param.FBFNoFieldPan);
|
|
|
|
|
|
Zzy.Param.FBFUnableSound = String(Zzy.Parameters['UnableSound']);//FBF音效
|
|
|
Zzy.Param.FBFUnableVolume = parseInt(Zzy.Parameters['UnableVolume']);//FBF音量
|
|
|
Zzy.Param.FBFUnablePitch = parseInt(Zzy.Parameters['UnablePitch']);//FBF音调
|
|
|
Zzy.Param.FBFUnablePan = parseInt(Zzy.Parameters['UnablePan']);//FBF声道
|
|
|
Zzy.Param.FBFUnableSE = Zzy.FBF.MakeSE(Zzy.Param.FBFUnableSound,Zzy.Param.FBFUnableVolume,Zzy.Param.FBFUnablePitch,Zzy.Param.FBFUnablePan);
|
|
|
|
|
|
Zzy.Param.FBFNoInstallSound = String(Zzy.Parameters['NoInstallSound']);//FBF音效
|
|
|
Zzy.Param.FBFNoInstallVolume = parseInt(Zzy.Parameters['NoInstallVolume']);//FBF音量
|
|
|
Zzy.Param.FBFNoInstallPitch = parseInt(Zzy.Parameters['NoInstallPitch']);//FBF音调
|
|
|
Zzy.Param.FBFNoInstallPan = parseInt(Zzy.Parameters['NoInstallPan']);//FBF声道
|
|
|
Zzy.Param.FBFNoInstallSE = Zzy.FBF.MakeSE(Zzy.Param.FBFNoInstallSound,Zzy.Param.FBFNoInstallVolume,Zzy.Param.FBFNoInstallPitch,Zzy.Param.FBFNoInstallPan);
|
|
|
|
|
|
Zzy.Param.FBFInSuccessSound = String(Zzy.Parameters['InSuccessSound']);//FBF音效
|
|
|
Zzy.Param.FBFInSuccessVolume = parseInt(Zzy.Parameters['InSuccessVolume']);//FBF音量
|
|
|
Zzy.Param.FBFInSuccessPitch = parseInt(Zzy.Parameters['InSuccessPitch']);//FBF音调
|
|
|
Zzy.Param.FBFInSuccessPan = parseInt(Zzy.Parameters['InSuccessPan']);//FBF声道
|
|
|
Zzy.Param.FBFInSuccessSE = Zzy.FBF.MakeSE(Zzy.Param.FBFInSuccessSound,Zzy.Param.FBFInSuccessVolume,Zzy.Param.FBFInSuccessPitch,Zzy.Param.FBFInSuccessPan);
|
|
|
|
|
|
Zzy.Param.FBFUnSuccessSound = String(Zzy.Parameters['UnSuccessSound']);//FBF音效
|
|
|
Zzy.Param.FBFUnSuccessVolume = parseInt(Zzy.Parameters['UnSuccessVolume']);//FBF音量
|
|
|
Zzy.Param.FBFUnSuccessPitch = parseInt(Zzy.Parameters['UnSuccessPitch']);//FBF音调
|
|
|
Zzy.Param.FBFUnSuccessPan = parseInt(Zzy.Parameters['UnSuccessPan']);//FBF声道
|
|
|
Zzy.Param.FBFUnSuccessSE = Zzy.FBF.MakeSE(Zzy.Param.FBFUnSuccessSound,Zzy.Param.FBFUnSuccessVolume,Zzy.Param.FBFUnSuccessPitch,Zzy.Param.FBFUnSuccessPan);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Zzy.Param.FBFAllSE = [];
|
|
|
Zzy.Param.FBFAllSE = [undefined,
|
|
|
Zzy.Param.FBFNoFieldSE,Zzy.Param.FBFUnableSE,Zzy.Param.FBFNoInstallSE,
|
|
|
Zzy.Param.FBFInSuccessSE,Zzy.Param.FBFUnSuccessSE
|
|
|
];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
//Game_System_initialize
|
|
|
//=============================================================================
|
|
|
|
|
|
Zzy.FBF.Game_System_initialize = Game_System.prototype.initialize;
|
|
|
Game_System.prototype.initialize = function()
|
|
|
{
|
|
|
Zzy.FBF.Game_System_initialize.call(this);
|
|
|
this.ZzyFBFInitData();//初始化数据
|
|
|
this.ZzyFBFSetData();//设置数据
|
|
|
};
|
|
|
|
|
|
Game_System.prototype.ZzyFBFInitData = function()
|
|
|
{
|
|
|
this._ZzyFBFEnableMenu = Zzy.Param.FBFEnableMenu;
|
|
|
this._ZzyFBFInsertMenu = Zzy.Param.FBFInsertMenu;
|
|
|
this._ZzyFBFMenuCommandName = Zzy.Param.FBFMenuCommandName;
|
|
|
|
|
|
this._ZzyFBFEnableSMenu = Zzy.Param.FBFEnableSMenu;
|
|
|
this._ZzyFBFInsertSMenu = Zzy.Param.FBFInsertSMenu;
|
|
|
this._ZzyFBFSMenuCommandName = Zzy.Param.FBFSMenuCommandName;
|
|
|
|
|
|
this._ZzyFBFEnableActorFB = Zzy.Param.FBFEnableActorFB; //角色是否具备加护
|
|
|
this._ZzyFBFMaxFieldCount = Zzy.Param.FBFMaxFieldCount;//最大加护槽数量
|
|
|
this._ZzyFBFCurrentFieldCount = Zzy.Param.FBFCurrentFieldCount;//目前加护槽数量
|
|
|
this._ZzyFBFMemoryCount = Zzy.Param.FBFMemoryCount;//占用量
|
|
|
|
|
|
this._ZzyFBFFieldItemIdArr = [];//存在的加护
|
|
|
this._ZzyFBFActorsUseArr = [];//使用中的加护
|
|
|
this._ZzyFBFSelectActorIndex = 0;//选择角色的下标
|
|
|
this._ZzyFBFActorsMaxCountArr = [];//角色未使用容量计数
|
|
|
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.GetZzyFBFEnableMenu = function()
|
|
|
{
|
|
|
if(this._ZzyFBFEnableMenu === undefined)
|
|
|
{this._ZzyFBFEnableMenu = Zzy.Param.FBFEnableMenu;}
|
|
|
return this._ZzyFBFEnableMenu;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.SetZzyFBFEnableMenu = function(value)
|
|
|
{
|
|
|
this._ZzyFBFEnableMenu = value;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.GetZzyFBFInsertMenu = function()
|
|
|
{
|
|
|
if(this._ZzyFBFInsertMenu === undefined)
|
|
|
{this._ZzyFBFInsertMenu = Zzy.Param.FBFInsertMenu;}
|
|
|
return this._ZzyFBFInsertMenu;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.SetZzyFBFInsertMenu = function(value)
|
|
|
{
|
|
|
this._ZzyFBFInsertMenu = value;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.GetZzyFBFMenuCommandName = function()
|
|
|
{
|
|
|
if(this._ZzyFBFMenuCommandName === undefined)
|
|
|
{this._ZzyFBFMenuCommandName = Zzy.Param.FBFMenuCommandName;}
|
|
|
return this._ZzyFBFMenuCommandName;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.SetZzyFBFMenuCommandName = function(value)
|
|
|
{
|
|
|
this._ZzyFBFMenuCommandName = value;
|
|
|
}
|
|
|
|
|
|
|
|
|
Game_System.prototype.GetZzyFBFEnableSMenu = function()
|
|
|
{
|
|
|
if(this._ZzyFBFEnableSMenu === undefined)
|
|
|
{this._ZzyFBFEnableSMenu = Zzy.Param.FBFEnableSMenu;}
|
|
|
return this._ZzyFBFEnableSMenu;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.SetZzyFBFEnableSMenu = function(value)
|
|
|
{
|
|
|
this._ZzyFBFEnableSMenu = value;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.GetZzyFBFInsertSMenu = function()
|
|
|
{
|
|
|
if(this._ZzyFBFInsertSMenu === undefined)
|
|
|
{this._ZzyFBFInsertSMenu = Zzy.Param.FBFInsertSMenu;}
|
|
|
return this._ZzyFBFInsertSMenu;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.SetZzyFBFInsertSMenu = function(value)
|
|
|
{
|
|
|
this._ZzyFBFInsertSMenu = value;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.GetZzyFBFSMenuCommandName = function()
|
|
|
{
|
|
|
if(this._ZzyFBFSMenuCommandName === undefined)
|
|
|
{this._ZzyFBFSMenuCommandName = Zzy.Param.FBFSMenuCommandName;}
|
|
|
return this._ZzyFBFSMenuCommandName;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.SetZzyFBFSMenuCommandName = function(value)
|
|
|
{
|
|
|
this._ZzyFBFSMenuCommandName = value;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.GetZzyFBFEnableActorFB = function()
|
|
|
{
|
|
|
if(this._ZzyFBFEnableActorFB === undefined)
|
|
|
{this._ZzyFBFEnableActorFB = Zzy.Param.FBFEnableActorFB;}
|
|
|
return this._ZzyFBFEnableActorFB;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.SetZzyFBFEnableActorFB = function(value)
|
|
|
{
|
|
|
this._ZzyFBFEnableActorFB = value;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.GetZzyFBFMaxFieldCount = function()
|
|
|
{
|
|
|
if(this._ZzyFBFMaxFieldCount === undefined)
|
|
|
{this._ZzyFBFMaxFieldCount = Zzy.Param.FBFMaxFieldCount;}
|
|
|
return this._ZzyFBFMaxFieldCount;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.SetZzyFBFMaxFieldCount = function(value)
|
|
|
{
|
|
|
this._ZzyFBFMaxFieldCount = value;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.GetZzyFBFCurrentFieldCount = function()
|
|
|
{
|
|
|
if(this._ZzyFBFCurrentFieldCount === undefined)
|
|
|
{this._ZzyFBFCurrentFieldCount = Zzy.Param.FBFCurrentFieldCount;}
|
|
|
return this._ZzyFBFCurrentFieldCount;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.SetZzyFBFCurrentFieldCount = function(value)
|
|
|
{
|
|
|
this._ZzyFBFCurrentFieldCount = value;
|
|
|
}
|
|
|
|
|
|
|
|
|
Game_System.prototype.GetZzyFBFMemoryCount = function()
|
|
|
{
|
|
|
if(this._ZzyFBFMemoryCount === undefined)
|
|
|
{this._ZzyFBFMemoryCount = Zzy.Param.FBFMemoryCount;}
|
|
|
return this._ZzyFBFMemoryCount;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.SetZzyFBFMemoryCount = function(value)
|
|
|
{
|
|
|
this._ZzyFBFMemoryCount = value;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.GetZzyFBFFieldItemIdArr = function()
|
|
|
{
|
|
|
if(this._ZzyFBFFieldItemIdArr === undefined)
|
|
|
{
|
|
|
this._ZzyFBFFieldItemIdArr = [];
|
|
|
this.ZzyFBFSetData();//设置初始化的数据信息
|
|
|
}
|
|
|
return this._ZzyFBFFieldItemIdArr;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.GetZzyFBFActorsUseArr = function()
|
|
|
{
|
|
|
if(this._ZzyFBFActorsUseArr === undefined)
|
|
|
{this._ZzyFBFActorsUseArr = [];}
|
|
|
return this._ZzyFBFActorsUseArr;
|
|
|
}
|
|
|
|
|
|
|
|
|
Game_System.prototype.GetZzyFBFSelectActorIndex = function()
|
|
|
{
|
|
|
if(this._ZzyFBFSelectActorIndex === undefined)
|
|
|
{this._ZzyFBFSelectActorIndex = 0;}
|
|
|
return this._ZzyFBFSelectActorIndex;
|
|
|
}
|
|
|
|
|
|
|
|
|
Game_System.prototype.SetZzyFBFSelectActorIndex = function(value)
|
|
|
{
|
|
|
this._ZzyFBFSelectActorIndex = value;
|
|
|
}
|
|
|
|
|
|
|
|
|
Game_System.prototype.GetZzyFBFActorsMaxCountArr = function()
|
|
|
{
|
|
|
if(this._ZzyFBFActorsMaxCountArr === undefined)
|
|
|
{this._ZzyFBFActorsMaxCountArr = [];}
|
|
|
return this._ZzyFBFActorsMaxCountArr;
|
|
|
}
|
|
|
|
|
|
|
|
|
Game_System.prototype.SetZzyFBFActorsMaxCountArr = function(actorId,count)
|
|
|
{
|
|
|
this.GetZzyFBFActorsMaxCountArr()[actorId] = count;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.getZzyFBFActorsMaxCountArr = function(actorId)
|
|
|
{
|
|
|
var arr = this.GetZzyFBFActorsMaxCountArr();
|
|
|
return arr[actorId];
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.GetZzyFBFActorUseArr = function(actorId)//角色的加护
|
|
|
{
|
|
|
if(!this.GetZzyFBFActorsUseArr()[actorId])
|
|
|
{this._ZzyFBFActorsUseArr[actorId] = [];}
|
|
|
return this._ZzyFBFActorsUseArr[actorId];
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.GetZzyFBFActorFieldUseArr = function(actorId)//返回包括卡牌在内的存在值
|
|
|
{
|
|
|
var arr = this.GetZzyFBFActorUseArr(actorId);
|
|
|
var reArr = [];
|
|
|
for(var i=0;i<arr.length;i++)
|
|
|
{
|
|
|
if(arr[i])
|
|
|
{
|
|
|
var item = $dataItems[arr[i]];
|
|
|
|
|
|
reArr.push(item);
|
|
|
}
|
|
|
}
|
|
|
return reArr;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.UpdateZzyFBFActorUseArr = function(actorId)//更新角色的加护
|
|
|
{
|
|
|
var surplusArr = [];
|
|
|
surplusArr = this.KeepZzyFBFCurrentMax(actorId);//超标卸载
|
|
|
//重新放回背包中
|
|
|
if(surplusArr && surplusArr.length)
|
|
|
{
|
|
|
for(var i=0;i<surplusArr.length;i++)
|
|
|
{
|
|
|
|
|
|
$gameParty.gainItem(surplusArr[i],1);//存储
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.UpdateAllZzyFBFActorUseArr = function()//更新全部的角色加护
|
|
|
{
|
|
|
var arr = $gameParty._actors;
|
|
|
|
|
|
for(var i=0;i<arr.length;i++)
|
|
|
{
|
|
|
this.UpdateZzyFBFActorUseArr(arr[i]);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
Game_System.prototype.KeepZzyFBFCurrentMax = function(actorId)//保持小于最大长度
|
|
|
{
|
|
|
var tMax = this.GetZzyFBFActorFinalMaxCount(actorId);
|
|
|
if(tMax === -1)return undefined;
|
|
|
|
|
|
//计算目前卡片是否有超越
|
|
|
var surplusArr = [];
|
|
|
var fArr = this.GetZzyFBFActorUseArr(actorId);
|
|
|
var len = fArr.length;
|
|
|
if(len > tMax)//超过位数
|
|
|
{
|
|
|
//在位数位置向前遍历并t掉内容
|
|
|
var len2 = tMax-1;
|
|
|
|
|
|
for(var i=len2;i>=0;i--)
|
|
|
{
|
|
|
if(fArr[i])//并非undefined null false
|
|
|
{
|
|
|
var item = $dataItems[fArr[i]];
|
|
|
var count = this.GetZzyFBFFieldBlessMemory(item);//获取占用量
|
|
|
if(count > tMax - i)//超过了占用量
|
|
|
{
|
|
|
surplusArr.push(this.UninstallZzyFBFField(fArr,i))//卸载
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
for(var i=tMax;i<=len-1;i++)
|
|
|
{
|
|
|
if(fArr[i])
|
|
|
{
|
|
|
surplusArr.push(this.UninstallZzyFBFField(fArr,i))//卸载
|
|
|
}
|
|
|
}
|
|
|
return surplusArr;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.UninstallZzyFBFField = function(arr,index)//卸载指定下标
|
|
|
{
|
|
|
if(arr[index] === undefined || arr[index] === null || arr[index] === false || arr[index] === 0){return;}
|
|
|
|
|
|
var item = $dataItems[arr[index]];
|
|
|
var count = this.GetZzyFBFFieldBlessMemory(item);
|
|
|
|
|
|
for(var i=0;i<count;i++)
|
|
|
{
|
|
|
arr[i+index] = undefined;
|
|
|
}
|
|
|
return item;
|
|
|
}
|
|
|
|
|
|
|
|
|
Game_System.prototype.ZzyFBFSetData = function()
|
|
|
{
|
|
|
var len = $dataItems.length;
|
|
|
for(var i=0;i<len;i++)
|
|
|
{
|
|
|
var item = $dataItems[i];
|
|
|
|
|
|
if(item && item.zzyFBF && item.zzyFBF.enable)
|
|
|
{
|
|
|
this.PushZzyFBFFieldArr(item.id);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.PushZzyFBFFieldArr = function(itemId)
|
|
|
{
|
|
|
this.GetZzyFBFFieldItemIdArr().push(itemId);
|
|
|
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.IsZzyFBFActorHaveFieldBless = function(actorId)//通过角色ID返回角色是否具备加护能力
|
|
|
{
|
|
|
//判断角色是否拥有加护能力
|
|
|
var data = $dataActors[actorId];
|
|
|
if(data && data.zzyFBF)
|
|
|
{
|
|
|
if(data.zzyFBF.enable === true)
|
|
|
{return true;}
|
|
|
else if(data.zzyFBF.enable === false)
|
|
|
{return false;}
|
|
|
}
|
|
|
return this.GetZzyFBFEnableActorFB();
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.GetZzyFBFActorMaxCount = function(actorId)//通过角色ID返回角色最大领域数量
|
|
|
{
|
|
|
var data = $dataActors[actorId];
|
|
|
var maxCount = 0;
|
|
|
if(data && data.zzyFBF)
|
|
|
{
|
|
|
if(data.zzyFBF.maxCount)
|
|
|
{
|
|
|
if(data.zzyFBF.maxCount === 'Infinite')return -1;
|
|
|
|
|
|
var actor = $gameActors.actor(actorId);
|
|
|
maxCount = this.EvalZzyFBFFormula1(data.zzyFBF.maxCount,actor);
|
|
|
maxCount = Zzy.FBF.KeepNumber(maxCount);
|
|
|
return maxCount;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var fieldCount = this.GetZzyFBFMaxFieldCount();
|
|
|
|
|
|
if(fieldCount === 'Infinite')
|
|
|
{return -1;}//无限标记
|
|
|
|
|
|
maxCount = this.EvalZzyFBFFormula1(fieldCount,undefined);
|
|
|
maxCount = Zzy.FBF.KeepNumber(maxCount);
|
|
|
return maxCount;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
Game_System.prototype.GetZzyFBFActorFinalMaxCount = function(actorId)//计算最终值-最大加护槽
|
|
|
{
|
|
|
var tempMaxCount = this.GetZzyFBFActorMaxCount(actorId);
|
|
|
if(tempMaxCount === -1)return tempMaxCount;
|
|
|
|
|
|
var actorData = $dataActors[actorId];
|
|
|
var actor = $gameActors.actor(actorId);
|
|
|
|
|
|
var actors = actorData;//角色加层
|
|
|
var classs = $dataClasses[actors.classId];//职业加层
|
|
|
var equipsArr = actor.equips();//武器,护甲加层
|
|
|
var skillsArr = actor.skills();//技能加层
|
|
|
var tArr = [[actors],[classs],equipsArr,skillsArr];
|
|
|
var totalMax = 0;
|
|
|
for(var i=0;i<tArr.length;i++)
|
|
|
{
|
|
|
totalMax += this.ZzyFBFCalculationMaxCount(tArr[i],actorId);
|
|
|
}
|
|
|
var result = Math.max(0,totalMax+tempMaxCount);//防止小于0
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
|
|
|
Game_System.prototype.GetZzyFBFActorFinalCurrentCount = function(actorId)//计算最终值-开启的加护槽
|
|
|
{
|
|
|
var tempCurrentCount = this.GetZzyFBFActorCurrentCount(actorId);//本身
|
|
|
var maxCount = this.GetZzyFBFActorFinalMaxCount(actorId);
|
|
|
|
|
|
var actorData = $dataActors[actorId];
|
|
|
var actor = $gameActors.actor(actorId);
|
|
|
|
|
|
var actors = actorData;//角色加层
|
|
|
var classs = $dataClasses[actors.classId];//职业加层
|
|
|
var equipsArr = actor.equips();//武器,护甲加层
|
|
|
var skillsArr = actor.skills();//技能加层
|
|
|
var tArr = [[actors],[classs],equipsArr,skillsArr];
|
|
|
var extraCount = 0;
|
|
|
for(var i=0;i<tArr.length;i++)
|
|
|
{
|
|
|
extraCount += this.ZzyFBFCalculationCurrentCount(tArr[i],actorId);
|
|
|
}
|
|
|
var result = 0;
|
|
|
if(maxCount === -1)
|
|
|
{
|
|
|
result = Math.max(0,tempCurrentCount+extraCount);
|
|
|
this.SetZzyFBFActorsMaxCountArr(actorId,result);
|
|
|
return result;
|
|
|
}
|
|
|
result = Math.min(maxCount,Math.max(0,tempCurrentCount+extraCount));
|
|
|
this.SetZzyFBFActorsMaxCountArr(actorId,result);
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.ZzyFBFCalculationCurrentCount = function(arr,actorId)
|
|
|
{
|
|
|
var len = arr.length;
|
|
|
var totalValue = 0;
|
|
|
var actor = $gameActors.actor(actorId);
|
|
|
var count = 0;
|
|
|
for(var i=0;i<len;i++)
|
|
|
{
|
|
|
if(arr[i] && arr[i].zzyFBF)
|
|
|
{
|
|
|
if(arr[i].zzyFBF.eCount)
|
|
|
{
|
|
|
count = this.EvalZzyFBFFormula1(arr[i].zzyFBF.eCount,actor);
|
|
|
|
|
|
totalValue += Zzy.FBF.KeepNumber(count);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return totalValue;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.ZzyFBFCalculationMaxCount = function(arr,actorId)
|
|
|
{
|
|
|
var len = arr.length;
|
|
|
var totalValue = 0;
|
|
|
var actor = $gameActors.actor(actorId);
|
|
|
var count = 0;
|
|
|
for(var i=0;i<len;i++)
|
|
|
{
|
|
|
if(arr[i] && arr[i].zzyFBF)
|
|
|
{
|
|
|
if(arr[i].zzyFBF.emCount)
|
|
|
{
|
|
|
count = this.EvalZzyFBFFormula1(arr[i].zzyFBF.emCount,actor);
|
|
|
|
|
|
totalValue += Zzy.FBF.KeepNumber(count);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return totalValue;
|
|
|
}
|
|
|
|
|
|
|
|
|
Game_System.prototype.GetZzyFBFActorCurrentCount = function(actorId)//通过角色ID返回角色目前领域数量
|
|
|
{
|
|
|
var data = $dataActors[actorId];
|
|
|
var actor = $gameActors.actor(actorId);
|
|
|
|
|
|
//首先获取最大领域
|
|
|
var maxCount = this.GetZzyFBFActorFinalMaxCount(actorId);
|
|
|
var count = 0;
|
|
|
if(data && data.zzyFBF)
|
|
|
{
|
|
|
if(data.zzyFBF.currentCount)
|
|
|
{
|
|
|
count = this.EvalZzyFBFFormula1(data.zzyFBF.maxCount,actor);
|
|
|
count = Zzy.FBF.KeepNumber(count);
|
|
|
if(maxCount !== 1)
|
|
|
{count = count > maxCount ? maxCount : count;}
|
|
|
return count;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
count = this.EvalZzyFBFFormula1(this.GetZzyFBFCurrentFieldCount(),actor);
|
|
|
count = Zzy.FBF.KeepNumber(count);
|
|
|
if(maxCount !== -1)
|
|
|
{count = count > maxCount ? maxCount : count;}
|
|
|
return count;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Game_System.prototype.EvalZzyFBFFormula1 = function(formula,infor,infor2)//转换
|
|
|
{
|
|
|
var actor = infor;//角色
|
|
|
var a = actor;
|
|
|
var target = infor2 ? infor2 : undefined;//目标
|
|
|
var b = target;
|
|
|
var variables = $gameVariables._data;//全局变量
|
|
|
var switchs = $gameSwitches._data;//全局开关
|
|
|
|
|
|
var v = variables;
|
|
|
var V = variables;
|
|
|
var s = switchs;
|
|
|
var S = switchs;
|
|
|
|
|
|
var level = actor ? actor.level : undefined;//等级
|
|
|
var usecount = actor ? this.ZzyFBFUseFieldCount(actor.actorId()) : undefined;
|
|
|
var nullcount = actor ? this.ZzyFBFNullFieldCount(actor.actorId()) : undefined;
|
|
|
return eval(formula);
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.GetZzyFBFFieldBlessMemory = function(item)//返回对应的占用量
|
|
|
{
|
|
|
if(item && item.zzyFBF)
|
|
|
{
|
|
|
if(item.zzyFBF.memory !== undefined)
|
|
|
{
|
|
|
return item.zzyFBF.memory;
|
|
|
}
|
|
|
}
|
|
|
return this.GetZzyFBFMemoryCount();
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.GetZzyFBFFieldBlessNoInstall = function(item)
|
|
|
{
|
|
|
if(item && item.zzyFBF)
|
|
|
{
|
|
|
if(item.zzyFBF.noInstall)
|
|
|
{return true;}
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
|
|
|
Game_System.prototype.EnableZzyFBFFieldOfActor = function(actorId,item)//判断是否对这个角色有效
|
|
|
{
|
|
|
if(item && item.zzyFBF)
|
|
|
{
|
|
|
var actor = $gameActors.actor(actorId);
|
|
|
var classId = actor._classId
|
|
|
if(item.zzyFBF.canUseEval)
|
|
|
{
|
|
|
return this.EvalZzyFBFFormula1(item.zzyFBF.canUseEval,actor);
|
|
|
}
|
|
|
|
|
|
//判断角色包含名单
|
|
|
if(item.zzyFBF.canUseA)
|
|
|
{
|
|
|
if(item.zzyFBF.canUseA.contains(actorId)){return true;}
|
|
|
else{return false;}
|
|
|
}
|
|
|
|
|
|
if(item.zzyFBF.noCanUseA)
|
|
|
{
|
|
|
if(item.zzyFBF.noCanUseA.contains(actorId)){return false;}
|
|
|
else{return true;}
|
|
|
}
|
|
|
|
|
|
//判断职业包含名单
|
|
|
if(item.zzyFBF.canUseC)
|
|
|
{
|
|
|
if(item.zzyFBF.canUseC.contains(classId)){return true;}
|
|
|
else{return false;}
|
|
|
}
|
|
|
|
|
|
if(item.zzyFBF.noCanUseC)
|
|
|
{
|
|
|
if(item.zzyFBF.noCanUseC.contains(classId)){return false;}
|
|
|
else{return true;}
|
|
|
}
|
|
|
|
|
|
return true;
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
|
|
|
Game_System.prototype.InstallZzyFBFField = function(actorId,index,item)//安装加护
|
|
|
{
|
|
|
var actArr = this.GetZzyFBFActorUseArr(actorId);
|
|
|
var memory = this.GetZzyFBFFieldBlessMemory(item);
|
|
|
|
|
|
actArr[index] = item.id;
|
|
|
if(memory > 1)
|
|
|
{
|
|
|
for(var i=1;i<memory;i++)
|
|
|
{
|
|
|
actArr[index+i] = false;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.UnInstallZzyFBFField = function(actorId,index)//卸载加护
|
|
|
{
|
|
|
var actArr = this.GetZzyFBFActorUseArr(actorId);
|
|
|
var item = $dataItems[actArr[index]];
|
|
|
var memory = this.GetZzyFBFFieldBlessMemory(item);
|
|
|
actArr[index] = undefined;
|
|
|
if(memory > 1)
|
|
|
{
|
|
|
for(var i=1;i<memory;i++)
|
|
|
{
|
|
|
actArr[index+i] = undefined;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.ZzyFBFForceUnInstallAll = function(actorId)//强制卸载所有加护
|
|
|
{
|
|
|
var items = this.GetZzyFBFActorFieldUseArr(actorId);
|
|
|
|
|
|
for(var i=0;i<items.length;i++)
|
|
|
{
|
|
|
var item = items[i];
|
|
|
|
|
|
$gameParty.gainItem(item,1);
|
|
|
}
|
|
|
|
|
|
var sarr = this.GetZzyFBFActorUseArr(actorId);
|
|
|
for(var i=0;i<sarr.length;i++)
|
|
|
{
|
|
|
if(sarr[i] || sarr[i] === false)
|
|
|
{
|
|
|
sarr[i] = undefined;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.ZzyFBFUseFieldCount = function(actorId)//使用中槽数量
|
|
|
{
|
|
|
var items = this.GetZzyFBFActorFieldUseArr(actorId);
|
|
|
var len = items.length;
|
|
|
var count = 0;
|
|
|
|
|
|
for(var i=0;i<len;i++)
|
|
|
{
|
|
|
if(items[i])
|
|
|
{
|
|
|
var memory = this.GetZzyFBFFieldBlessMemory(items[i]);
|
|
|
count += memory;
|
|
|
}
|
|
|
}
|
|
|
return count;
|
|
|
}
|
|
|
|
|
|
Game_System.prototype.ZzyFBFNullFieldCount = function(actorId)//未使用中槽数量
|
|
|
{
|
|
|
var useCount = this.ZzyFBFUseFieldCount(actorId);
|
|
|
var maxCount = this.getZzyFBFActorsMaxCountArr(actorId);
|
|
|
maxCount = maxCount ? maxCount : 0;
|
|
|
var count = maxCount - useCount;
|
|
|
count = count > 0 ? count : 0;
|
|
|
return count;
|
|
|
}
|
|
|
|
|
|
//=============================================================================
|
|
|
//Game_Interpreter
|
|
|
//=============================================================================
|
|
|
Zzy.FBF.Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
|
|
|
Game_Interpreter.prototype.pluginCommand = function(command, args)//插件命令
|
|
|
{
|
|
|
Zzy.FBF.Game_Interpreter_pluginCommand.call(this,command,args);
|
|
|
|
|
|
if(command === 'ZzyFBF')
|
|
|
{
|
|
|
this.ZzyFBFCommand(args);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
Game_Interpreter.prototype.ZzyFBFCommand = function(args)//命令大全
|
|
|
{
|
|
|
var command = String(args[0]);
|
|
|
|
|
|
switch(command)
|
|
|
{
|
|
|
|
|
|
case 'EnableMenu':
|
|
|
var enable = eval(String(args[1]));
|
|
|
Zzy.FBF.EnableMenu(enable);
|
|
|
|
|
|
//$gameSystem.SetZzyFBFEnableMenu(enable);
|
|
|
break;
|
|
|
|
|
|
case 'InsertMenu':
|
|
|
var enable = eval(String(args[1]));
|
|
|
Zzy.FBF.InsertMenu(enable);
|
|
|
|
|
|
//$gameSystem.SetZzyFBFInsertMenu(enable);
|
|
|
break;
|
|
|
|
|
|
case 'CommandName':
|
|
|
var commandText = String(args[1]);
|
|
|
Zzy.FBF.CommandName(commandText);
|
|
|
|
|
|
//$gameSystem.SetZzyFBFMenuCommandName(commandText);
|
|
|
break;
|
|
|
|
|
|
case 'EnableSMenu':
|
|
|
var enable = eval(String(args[1]));
|
|
|
Zzy.FBF.EnableSMenu(enable);
|
|
|
|
|
|
//$gameSystem.SetZzyFBFEnableSMenu(enable);
|
|
|
break;
|
|
|
|
|
|
case 'InsertSMenu':
|
|
|
var enable = eval(String(args[1]));
|
|
|
Zzy.FBF.InsertSMenu(enable);
|
|
|
|
|
|
//$gameSystem.SetZzyFBFInsertSMenu(enable);
|
|
|
break;
|
|
|
|
|
|
case 'SCommandName':
|
|
|
var commandText = String(args[1]);
|
|
|
Zzy.FBF.SCommandName(commandText);
|
|
|
|
|
|
//$gameSystem.SetZzyFBFSMenuCommandName(commandText);
|
|
|
break;
|
|
|
|
|
|
case 'OpenActor':
|
|
|
var actorId = parseInt(args[1]);
|
|
|
Zzy.FBF.OpenActor(actorId);
|
|
|
|
|
|
//Zzy.FBF.OpenFieldOfActor(actorId);
|
|
|
break;
|
|
|
|
|
|
case 'OpenParty':
|
|
|
var index = parseInt(args[1]);
|
|
|
Zzy.FBF.OpenParty(index);
|
|
|
|
|
|
//Zzy.FBF.OpenFieldOfParty(index);
|
|
|
break;
|
|
|
|
|
|
case 'EnableActorFB':
|
|
|
var enable = eval(String(args[1]));
|
|
|
Zzy.FBF.EnableActorFB(enable);
|
|
|
|
|
|
//$gameSystem.SetZzyFBFEnableActorFB(enable);
|
|
|
break;
|
|
|
|
|
|
case 'MaxCount':
|
|
|
var formula = String(args[1]);
|
|
|
Zzy.FBF.MaxCount(formula);
|
|
|
|
|
|
//$gameSystem.SetZzyFBFMaxFieldCount(formula);
|
|
|
break;
|
|
|
|
|
|
case 'CurrentCount':
|
|
|
var formula = String(args[1]);
|
|
|
Zzy.FBF.CurrentCount(formula);
|
|
|
|
|
|
//$gameSystem.SetZzyFBFCurrentFieldCount(formula);
|
|
|
break;
|
|
|
|
|
|
case 'MemoryCount':
|
|
|
var count = parseInt(args[1]);
|
|
|
Zzy.FBF.MemoryCount(count);
|
|
|
|
|
|
//$gameSystem.SetZzyFBFMemoryCount(count);
|
|
|
break;
|
|
|
|
|
|
case 'ForceUnInstallAll':
|
|
|
var actorId = parseInt(args[1]);
|
|
|
Zzy.FBF.ForceUnInstallAll(actorId);
|
|
|
|
|
|
//$gameSystem.ZzyFBFForceUnInstallAll(actorId);
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//=================================================================
|
|
|
//Window_MenuCommand
|
|
|
//=================================================================
|
|
|
Zzy.FBF.Window_MenuCommand_addOriginalCommands = Window_MenuCommand.prototype.addOriginalCommands;
|
|
|
Window_MenuCommand.prototype.addOriginalCommands = function()
|
|
|
{
|
|
|
Zzy.FBF.Window_MenuCommand_addOriginalCommands.call(this);
|
|
|
var isEnable = $gameSystem.GetZzyFBFEnableMenu();
|
|
|
var isInsert = $gameSystem.GetZzyFBFInsertMenu();
|
|
|
if(isInsert)
|
|
|
{
|
|
|
this.addCommand($gameSystem.GetZzyFBFMenuCommandName(), 'ZzyFBFBless', isEnable);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
|
|
|
//=================================================================
|
|
|
//Window_SkillType
|
|
|
//=================================================================
|
|
|
Zzy.FBF.Window_SkillType_makeCommandList = Window_SkillType.prototype.makeCommandList;
|
|
|
Window_SkillType.prototype.makeCommandList = function()
|
|
|
{
|
|
|
Zzy.FBF.Window_SkillType_makeCommandList.call(this);
|
|
|
if(this._actor)
|
|
|
{
|
|
|
if(!!$gameSystem.GetZzyFBFInsertSMenu())
|
|
|
{
|
|
|
var isEnable = $gameSystem.GetZzyFBFEnableSMenu();
|
|
|
this.addCommand($gameSystem.GetZzyFBFSMenuCommandName(), 'ZzyFBFBless',isEnable);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
};
|
|
|
|
|
|
|
|
|
//=================================================================
|
|
|
//Scene_Skill
|
|
|
//=================================================================
|
|
|
Zzy.FBF.Scene_Skill_createSkillTypeWindow = Scene_Skill.prototype.createSkillTypeWindow;
|
|
|
Scene_Skill.prototype.createSkillTypeWindow = function()
|
|
|
{
|
|
|
Zzy.FBF.Scene_Skill_createSkillTypeWindow.call(this);
|
|
|
this._skillTypeWindow.setHandler('ZzyFBFBless', this.ZzyFBFCallField.bind(this));
|
|
|
|
|
|
};
|
|
|
|
|
|
Scene_Skill.prototype.ZzyFBFCallField = function()
|
|
|
{
|
|
|
if(this.JudgZzyFBFHaveFieldBless())//判断角色是否具备领域
|
|
|
{
|
|
|
this.setZzyFBFSelectActorId();//选择中ID
|
|
|
SceneManager.push(Scene_ZzyFBF);return;//压入场景
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
this.ReturnZzyFBFSkillWindow();//返回技能场景
|
|
|
}
|
|
|
}
|
|
|
|
|
|
Scene_Skill.prototype.JudgZzyFBFHaveFieldBless = function()
|
|
|
{
|
|
|
return $gameSystem.IsZzyFBFActorHaveFieldBless(this._actor.actorId());
|
|
|
}
|
|
|
|
|
|
Scene_Skill.prototype.ReturnZzyFBFSkillWindow = function()
|
|
|
{
|
|
|
this._skillTypeWindow.activate();
|
|
|
}
|
|
|
Scene_Skill.prototype.setZzyFBFSelectActorId = function()
|
|
|
{
|
|
|
$gameSystem.SetZzyFBFSelectActorIndex(this._actor.actorId());
|
|
|
}
|
|
|
|
|
|
|
|
|
//=================================================================
|
|
|
//Scene_Menu
|
|
|
//=================================================================
|
|
|
Zzy.FBF.Scene_Menu_createCommandWindow = Scene_Menu.prototype.createCommandWindow;
|
|
|
Scene_Menu.prototype.createCommandWindow = function()
|
|
|
{
|
|
|
Zzy.FBF.Scene_Menu_createCommandWindow.call(this);
|
|
|
this._commandWindow.setHandler('ZzyFBFBless', this.commandPersonal.bind(this));
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
Zzy.FBF.Scene_Menu_onPersonalOk = Scene_Menu.prototype.onPersonalOk;
|
|
|
Scene_Menu.prototype.onPersonalOk = function()
|
|
|
{
|
|
|
if(this._commandWindow.currentSymbol() === 'ZzyFBFBless')
|
|
|
{
|
|
|
if(this.JudgZzyFBFHaveFieldBless())
|
|
|
{
|
|
|
this.setZzyFBFSelectIndex();
|
|
|
SceneManager.push(Scene_ZzyFBF);return;//压入场景
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
this.ReturnZzyFBFStatusWindow();
|
|
|
}
|
|
|
}
|
|
|
Zzy.FBF.Scene_Menu_onPersonalOk.call(this);
|
|
|
};
|
|
|
|
|
|
|
|
|
Scene_Menu.prototype.setZzyFBFSelectIndex = function()
|
|
|
{
|
|
|
var index = this._statusWindow.index();
|
|
|
$gameSystem.SetZzyFBFSelectActorIndex($gameParty._actors[index]);
|
|
|
}
|
|
|
|
|
|
Scene_Menu.prototype.JudgZzyFBFHaveFieldBless = function()
|
|
|
{
|
|
|
var index = this._statusWindow.index();
|
|
|
var actorId = $gameParty._actors[index];
|
|
|
return $gameSystem.IsZzyFBFActorHaveFieldBless(actorId);
|
|
|
}
|
|
|
|
|
|
|
|
|
Scene_Menu.prototype.ReturnZzyFBFStatusWindow = function()
|
|
|
{
|
|
|
this._statusWindow.activate();
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//=================================================================
|
|
|
//Window_MenuStatus
|
|
|
//=================================================================
|
|
|
Zzy.FBF.Window_MenuStatus_processOk = Window_MenuStatus.prototype.processOk;
|
|
|
Window_MenuStatus.prototype.processOk = function()
|
|
|
{
|
|
|
if (this.isCurrentItemEnabled())
|
|
|
{
|
|
|
if(SceneManager._scene instanceof Scene_Menu)
|
|
|
{
|
|
|
var pointer = SceneManager._scene._commandWindow;
|
|
|
var index = SceneManager._scene._commandWindow._index;
|
|
|
if(pointer.commandName(index) === $gameSystem.GetZzyFBFMenuCommandName())//处于加护内容
|
|
|
{
|
|
|
if(!this.JudgZzyFBFHaveFieldBless())//判断角色是否拥有加护能力
|
|
|
{
|
|
|
Zzy.FBF.PlaySE(1);
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
Zzy.FBF.Window_MenuStatus_processOk.call(this);
|
|
|
};
|
|
|
|
|
|
|
|
|
Window_MenuStatus.prototype.JudgZzyFBFHaveFieldBless = function()
|
|
|
{
|
|
|
var index = this.index();
|
|
|
var actorId = $gameParty._actors[index];
|
|
|
return $gameSystem.IsZzyFBFActorHaveFieldBless(actorId);
|
|
|
}
|
|
|
|
|
|
|
|
|
//=================================================================
|
|
|
//Scene_ZzyFBF
|
|
|
//=================================================================
|
|
|
//Scene_ZzyFBF场景,用于承载加护相关的窗口
|
|
|
function Scene_ZzyFBF()
|
|
|
{
|
|
|
this.initialize.apply(this, arguments);
|
|
|
}
|
|
|
|
|
|
Scene_ZzyFBF.prototype = Object.create(Scene_MenuBase.prototype);
|
|
|
Scene_ZzyFBF.prototype.constructor = Scene_ZzyFBF;
|
|
|
|
|
|
Scene_ZzyFBF.prototype.initialize = function()
|
|
|
{
|
|
|
Scene_MenuBase.prototype.initialize.call(this);
|
|
|
};
|
|
|
|
|
|
Scene_ZzyFBF.prototype.create = function() //创造窗口
|
|
|
{
|
|
|
Scene_MenuBase.prototype.create.call(this);
|
|
|
this.createHelpWindow();
|
|
|
this.CreateFieldWindow();
|
|
|
this.CreateFieldItemWindow();
|
|
|
|
|
|
this._fieldWindow.setFieldItemWindow(this._fieldItemWindow);
|
|
|
this._fieldItemWindow.setFieldWindow(this._fieldWindow);
|
|
|
|
|
|
};
|
|
|
|
|
|
Scene_ZzyFBF.prototype.createHelpWindow = function()
|
|
|
{
|
|
|
this._helpWindow = new Window_ZzyFBFHelp(2);
|
|
|
this._helpWindow.setText('');
|
|
|
this.addWindow(this._helpWindow);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
Scene_ZzyFBF.prototype.CreateFieldWindow = function()
|
|
|
{
|
|
|
this._fieldWindow = new Window_ZzyFBFField();
|
|
|
this._fieldWindow.setHelpWindow(this._helpWindow);
|
|
|
this._fieldWindow.InitPosition();
|
|
|
|
|
|
this._fieldWindow.deactivate();
|
|
|
this._fieldWindow.deselect();
|
|
|
|
|
|
this._fieldWindow.setHandler('cancel',this.ZzyFBFPopField.bind(this));
|
|
|
this._fieldWindow.setHandler('ok',this.OnZzyFBFSelectFieldBless.bind(this));
|
|
|
this.addWindow(this._fieldWindow);
|
|
|
}
|
|
|
|
|
|
|
|
|
Scene_ZzyFBF.prototype.CreateFieldItemWindow = function()
|
|
|
{
|
|
|
this._fieldItemWindow = new Window_ZzyFBFItemField();
|
|
|
this._fieldItemWindow.setHelpWindow(this._helpWindow);
|
|
|
|
|
|
this._fieldItemWindow.InitPosition();
|
|
|
this._fieldItemWindow.activate();
|
|
|
this._fieldItemWindow.select(0);
|
|
|
|
|
|
this._fieldItemWindow.setHandler('cancel', this.popScene.bind(this));
|
|
|
this._fieldItemWindow.setHandler('ok',this.OnZzyFBFAddFieldBless.bind(this));
|
|
|
this.addWindow(this._fieldItemWindow);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
Scene_ZzyFBF.prototype.ZzyFBFPopField = function()
|
|
|
{
|
|
|
this._fieldWindow.deactivate();
|
|
|
this._fieldWindow.deselect();
|
|
|
this._fieldItemWindow.activate();
|
|
|
}
|
|
|
|
|
|
|
|
|
Scene_ZzyFBF.prototype.OnZzyFBFAddFieldBless = function()
|
|
|
{
|
|
|
var pointer = this._fieldItemWindow;
|
|
|
|
|
|
|
|
|
|
|
|
if(pointer.active)//保持活跃
|
|
|
{pointer.OnSelectField();}//触发选择
|
|
|
|
|
|
|
|
|
|
|
|
this._fieldItemWindow.activate();//保持活跃
|
|
|
this._fieldWindow.deactivate();//失去活跃
|
|
|
}
|
|
|
|
|
|
Scene_ZzyFBF.prototype.OnZzyFBFSelectFieldBless = function()
|
|
|
{
|
|
|
var pointer = this._fieldWindow;
|
|
|
|
|
|
|
|
|
if(pointer.active)//保持活跃
|
|
|
{pointer.OnSelectField();}//触发选择
|
|
|
|
|
|
|
|
|
|
|
|
this._fieldWindow.activate();//保持活跃
|
|
|
this._fieldItemWindow.deactivate();//失去活跃
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//=================================================================
|
|
|
//Window_ZzyFBFField
|
|
|
//=================================================================
|
|
|
|
|
|
function Window_ZzyFBFField() {
|
|
|
this.initialize.apply(this, arguments);
|
|
|
}
|
|
|
|
|
|
Window_ZzyFBFField.prototype = Object.create(Window_Selectable.prototype);
|
|
|
Window_ZzyFBFField.prototype.constructor = Window_ZzyFBFField;
|
|
|
|
|
|
Window_ZzyFBFField.prototype.initialize = function()
|
|
|
{
|
|
|
Window_Selectable.prototype.initialize.call(this, 0, 0);
|
|
|
this._list = [];//列表
|
|
|
this._fieldItemWindow = undefined;
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
Window_ZzyFBFField.prototype.InitPosition = function()
|
|
|
{
|
|
|
this.x = eval(Zzy.Param.FBFFieldWindowX);
|
|
|
this.y = eval(Zzy.Param.FBFFieldWindowY);
|
|
|
this.width = eval(Zzy.Param.FBFFieldWindowW)
|
|
|
this.height = eval(Zzy.Param.FBFFieldWindowH);
|
|
|
|
|
|
this.RefreshActorField();//刷新角色加护
|
|
|
|
|
|
this.refresh();
|
|
|
}
|
|
|
|
|
|
|
|
|
Window_ZzyFBFField.prototype.maxCols = function() {
|
|
|
return 1;
|
|
|
};
|
|
|
|
|
|
|
|
|
Window_ZzyFBFField.prototype.drawItem = function(index)
|
|
|
{
|
|
|
var item = this._list[index];
|
|
|
var rect = this.itemRect(index);
|
|
|
|
|
|
this.drawDeepFillRect(rect,2);
|
|
|
|
|
|
var srcInfo = {};
|
|
|
this.SaveZzyFBFContents(srcInfo);
|
|
|
|
|
|
if (item)//存在道具
|
|
|
{
|
|
|
rect.width -= this.textPadding();
|
|
|
|
|
|
if($gameSystem.GetZzyFBFFieldBlessNoInstall(item))//未安装
|
|
|
{
|
|
|
this.changeTextColor(Zzy.Param.FBFNoUnInstallColor);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if(item.zzyFBF)
|
|
|
{
|
|
|
if(item.zzyFBF.textColor)//存在设置的文字
|
|
|
{this.changeTextColor(item.zzyFBF.textColor);}
|
|
|
|
|
|
if(item.zzyFBF.borderColor)
|
|
|
{this.contents.outlineColor = item.zzyFBF.borderColor;}
|
|
|
|
|
|
if(item.zzyFBF.borderWidth)
|
|
|
{this.contents.outlineWidth = item.zzyFBF.borderWidth;}
|
|
|
|
|
|
if(item.zzyFBF.textSize)//字体大小
|
|
|
{this.contents.fontSize = item.zzyFBF.textSize;}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
this.drawItemName(item, rect.x, rect.y, rect.width);
|
|
|
}
|
|
|
else if(item === null)//不存在
|
|
|
{
|
|
|
this.changeTextColor(Zzy.Param.FBFUnlockTextColor);
|
|
|
this.drawText(Zzy.Param.FBFUnlockText,rect.x,rect.y,rect.width,'center');
|
|
|
}
|
|
|
else if(item === false)
|
|
|
{
|
|
|
this.changeTextColor(Zzy.Param.FBFMemoryTextColor);
|
|
|
this.drawText(Zzy.Param.FBFMemoryText,rect.x,rect.y,rect.width,'center');
|
|
|
}
|
|
|
|
|
|
|
|
|
this.LoadZzyFBFContents(srcInfo);
|
|
|
|
|
|
};
|
|
|
|
|
|
Window_ZzyFBFField.prototype.SaveZzyFBFContents = function(srcInfo)
|
|
|
{
|
|
|
srcInfo.textColor = this.contents.textColor;
|
|
|
srcInfo.outlineColor = this.contents.outlineColor;
|
|
|
srcInfo.outlineWidth = this.contents.outlineWidth;
|
|
|
srcInfo.fontSize = this.contents.fontSize;
|
|
|
}
|
|
|
|
|
|
Window_ZzyFBFField.prototype.LoadZzyFBFContents = function(srcInfo)
|
|
|
{
|
|
|
this.contents.textColor = srcInfo.textColor;
|
|
|
this.contents.outlineColor = srcInfo.outlineColor;
|
|
|
this.contents.outlineWidth = srcInfo.outlineWidth;
|
|
|
this.contents.fontSize = srcInfo.fontSize;
|
|
|
}
|
|
|
|
|
|
Window_ZzyFBFField.prototype.drawItemName = function(item, x, y, width)
|
|
|
{
|
|
|
width = width || 312;
|
|
|
if (item) {
|
|
|
var iconBoxWidth = Window_Base._iconWidth + 4;
|
|
|
//this.resetTextColor();
|
|
|
this.drawIcon(item.iconIndex, x + 2, y + 2);
|
|
|
this.drawText(item.name, x + iconBoxWidth, y, width - iconBoxWidth);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
Window_ZzyFBFField.prototype.drawDeepFillRect = function(rect,dis)
|
|
|
{
|
|
|
this.contents.fillRect(rect.x+dis, rect.y+dis, rect.width-dis*2, rect.height-dis*2, this.deepColor());
|
|
|
}
|
|
|
|
|
|
Window_ZzyFBFField.prototype.deepColor = function()
|
|
|
{
|
|
|
return Zzy.Param.FBFFieldRectColor;
|
|
|
}
|
|
|
|
|
|
Window_ZzyFBFField.prototype.processTouch = function()
|
|
|
{
|
|
|
if(!this.active && this.checkActive())
|
|
|
{
|
|
|
this.activate();//设置为活跃
|
|
|
this._fieldItemWindow.deactivate();
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
Window_Selectable.prototype.processTouch.call(this);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
Window_ZzyFBFField.prototype.checkActive = function()
|
|
|
{
|
|
|
if(TouchInput.isTriggered() && this.isTouchedInsideFrame())
|
|
|
{
|
|
|
return true;
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
|
|
|
Window_ZzyFBFField.prototype.setFieldItemWindow = function(pointer)
|
|
|
{
|
|
|
this._fieldItemWindow = pointer;
|
|
|
}
|
|
|
|
|
|
|
|
|
Window_ZzyFBFField.prototype.refresh = function()
|
|
|
{
|
|
|
this.createContents();
|
|
|
this.drawAllItems();
|
|
|
};
|
|
|
|
|
|
|
|
|
Window_ZzyFBFField.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_ZzyFBFField.prototype.item = function()
|
|
|
{
|
|
|
var index = this.index();
|
|
|
return this._list && index >= 0 ? this._list[index] : false;
|
|
|
};
|
|
|
|
|
|
Window_ZzyFBFField.prototype.updateHelp = function()
|
|
|
{
|
|
|
this.setHelpWindowItem(this.item());
|
|
|
};
|
|
|
|
|
|
Window_ZzyFBFField.prototype.maxItems = function()
|
|
|
{
|
|
|
return this._list ? this._list.length : 0;
|
|
|
};
|
|
|
|
|
|
|
|
|
Window_ZzyFBFField.prototype.RefreshActorField = function()//刷新槽
|
|
|
{
|
|
|
//判断角色领域是否为无限
|
|
|
var actorId = $gameSystem.GetZzyFBFSelectActorIndex();
|
|
|
$gameSystem.UpdateZzyFBFActorUseArr(actorId);//更新角色的加护
|
|
|
var tMax = $gameSystem.GetZzyFBFActorFinalMaxCount(actorId);//最大格子数
|
|
|
var currentCount = $gameSystem.GetZzyFBFActorFinalCurrentCount(actorId);
|
|
|
|
|
|
if(tMax !== -1)
|
|
|
{
|
|
|
currentCount = currentCount > tMax ? tMax : currentCount;
|
|
|
}
|
|
|
for(var i=0;i<currentCount;i++)//拷贝
|
|
|
{
|
|
|
this._list[i] = undefined;
|
|
|
}
|
|
|
|
|
|
//计算拥有的加护格子数
|
|
|
var arr = $gameSystem.GetZzyFBFActorUseArr(actorId);
|
|
|
var arrLen = arr.length;
|
|
|
arrLen = arrLen > currentCount ? currentCount : arrLen;
|
|
|
for(var i=0;i<arrLen;i++)//拷贝
|
|
|
{
|
|
|
this._list[i] = $dataItems[arr[i]];
|
|
|
}
|
|
|
|
|
|
var addLen = 0;
|
|
|
if(tMax === -1)
|
|
|
{addLen = this.maxPageRows();}
|
|
|
else
|
|
|
{addLen = tMax - currentCount;}
|
|
|
|
|
|
//添加额外
|
|
|
var last = this._list.length;
|
|
|
for(var i=0;i<addLen;i++)//添加到_list列表中
|
|
|
{
|
|
|
this._list[last+i] = null;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//赋予内容
|
|
|
var useArr = $gameSystem.GetZzyFBFActorUseArr(actorId);
|
|
|
for(var i=0;i<useArr.length;i++)
|
|
|
{
|
|
|
if(this._list[i] === null)continue;
|
|
|
if(useArr[i] === false)
|
|
|
{
|
|
|
this._list[i] = false;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
this._list[i] = $dataItems[useArr[i]];
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
Window_ZzyFBFField.prototype.maxPageRows = function()
|
|
|
{
|
|
|
var pageHeight = this.height - this.padding * 2;
|
|
|
return Math.floor(pageHeight / this.itemHeight());
|
|
|
};
|
|
|
|
|
|
|
|
|
Window_ZzyFBFField.prototype.IsCanInstall = function(index,installItem)
|
|
|
{
|
|
|
var max = this._list.length-1;
|
|
|
if(index > max)return false;
|
|
|
if(this._list[index] === false || this._list[index] === null){return false;}
|
|
|
if($gameSystem.GetZzyFBFFieldBlessNoInstall(this._list[index])){return false;}
|
|
|
|
|
|
var count = $gameSystem.GetZzyFBFFieldBlessMemory(this._list[index]);//检测容量是否超标
|
|
|
var iCount = $gameSystem.GetZzyFBFFieldBlessMemory(installItem);
|
|
|
|
|
|
if(this._list[index])
|
|
|
{
|
|
|
if(iCount > count)
|
|
|
{
|
|
|
for(var i=count;i<iCount;i++)
|
|
|
{
|
|
|
if(this._list[index+i] !== undefined)
|
|
|
{return false;}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if(this._list[index] === undefined)
|
|
|
{
|
|
|
for(var i=1;i<iCount;i++)
|
|
|
{
|
|
|
if(this._list[index+i] || this._list[index+i] === false || this._list[index+i] === null)
|
|
|
{return false;}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
Window_ZzyFBFField.prototype.IsCanUnInstall = function(index,installItem)
|
|
|
{
|
|
|
var max = this._list.length-1;
|
|
|
if(index > max)return true;
|
|
|
if(this._list[index] === false || this._list[index] === null){return true;}
|
|
|
if($gameSystem.GetZzyFBFFieldBlessNoInstall(this._list[index])){return true;}//不可卸载
|
|
|
|
|
|
var count = $gameSystem.GetZzyFBFFieldBlessMemory(this._list[index]);//检测容量是否超标
|
|
|
var iCount = $gameSystem.GetZzyFBFFieldBlessMemory(installItem);
|
|
|
|
|
|
if(this._list[index])
|
|
|
{
|
|
|
if(iCount > count)
|
|
|
{
|
|
|
for(var i=count;i<iCount;i++)
|
|
|
{
|
|
|
if(this._list[index+i] !== undefined)
|
|
|
{return true;}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
if(this._list[index] === undefined)
|
|
|
{
|
|
|
for(var i=1;i<iCount;i++)
|
|
|
{
|
|
|
if(this._list[index+i] || this._list[index+i] === false || this._list[index+i] === null)
|
|
|
{return true;}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
|
|
|
Window_ZzyFBFField.prototype.processOk = function()
|
|
|
{
|
|
|
if (this.isCurrentItemEnabled())
|
|
|
{
|
|
|
//this.playOkSound();
|
|
|
this.updateInputData();
|
|
|
//this.deactivate();
|
|
|
this.callOkHandler();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
this.playBuzzerSound();
|
|
|
}
|
|
|
};
|
|
|
|
|
|
|
|
|
Window_ZzyFBFField.prototype.OnSelectField = function()
|
|
|
{
|
|
|
if(this.IsSatisfyUnInstall(this.index()))//满足拆卸
|
|
|
{
|
|
|
this.ExecuteUnInstallField();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//不满足拆卸
|
|
|
Zzy.FBF.PlaySE(2);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
Window_ZzyFBFField.prototype.ExecuteUnInstallField = function()//卸载领域
|
|
|
{
|
|
|
this._fieldItemWindow.ProcessGainItem(this.item());
|
|
|
this._fieldItemWindow.refresh();
|
|
|
|
|
|
var actorId = $gameSystem.GetZzyFBFSelectActorIndex();
|
|
|
var fArr = $gameSystem.GetZzyFBFActorUseArr(actorId);
|
|
|
|
|
|
var item = $dataItems[fArr[this.index()]];
|
|
|
var memory = $gameSystem.GetZzyFBFFieldBlessMemory(item);
|
|
|
|
|
|
for(var i=0;i<memory;i++)
|
|
|
{
|
|
|
var index = this.index()+i;
|
|
|
fArr[index] = undefined;
|
|
|
this._list[index] = undefined;
|
|
|
}
|
|
|
|
|
|
Zzy.FBF.PlaySE(5);
|
|
|
this.refresh();
|
|
|
}
|
|
|
|
|
|
|
|
|
Window_ZzyFBFField.prototype.IsSatisfyUnInstall = function(index)
|
|
|
{
|
|
|
var max = this._list.length-1;
|
|
|
if(index > max)return false;
|
|
|
if(this._list[index] === false || this._list[index] === null || this._list[index] === undefined){return false;}
|
|
|
if($gameSystem.GetZzyFBFFieldBlessNoInstall(this._list[index])){return false;}
|
|
|
if(this._list[index]){return true;}
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
Window_ZzyFBFField.prototype.ExecuteInstallItem = function(index,item)
|
|
|
{
|
|
|
//首先拆卸原来
|
|
|
|
|
|
var memory = $gameSystem.GetZzyFBFFieldBlessMemory(item);
|
|
|
|
|
|
|
|
|
if(this._list[index])//存在内容
|
|
|
{
|
|
|
var oldItem = this._list[index];//卸载旧的
|
|
|
var oldMemory = $gameSystem.GetZzyFBFFieldBlessMemory(oldItem);
|
|
|
for(var i=0;i<oldMemory;i++)
|
|
|
{
|
|
|
this._list[index+i] = undefined;
|
|
|
}
|
|
|
|
|
|
this._list[index] = item;//安装新的
|
|
|
for(var i=1;i<memory;i++)
|
|
|
{
|
|
|
this._list[index+i] = false;//占位
|
|
|
}
|
|
|
|
|
|
this.refresh();
|
|
|
return oldItem;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
this._list[index] = item;
|
|
|
for(var i=1;i<memory;i++)
|
|
|
{
|
|
|
this._list[index+i] = false;//占位
|
|
|
}
|
|
|
|
|
|
this.refresh();
|
|
|
return undefined;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//=================================================================
|
|
|
//Window_ZzyFBFItemField
|
|
|
//=================================================================
|
|
|
|
|
|
function Window_ZzyFBFItemField()
|
|
|
{
|
|
|
this.initialize.apply(this, arguments);
|
|
|
}
|
|
|
|
|
|
Window_ZzyFBFItemField.prototype = Object.create(Window_Selectable.prototype);
|
|
|
Window_ZzyFBFItemField.prototype.constructor = Window_ZzyFBFItemField;
|
|
|
|
|
|
Window_ZzyFBFItemField.prototype.initialize = function()
|
|
|
{
|
|
|
Window_Selectable.prototype.initialize.call(this, 0, 0);
|
|
|
|
|
|
//创建完成后,读取有效的内容
|
|
|
this._list = [];
|
|
|
this._fieldWindow = undefined;
|
|
|
this.EarnFieldItemList();
|
|
|
this.refresh();
|
|
|
};
|
|
|
|
|
|
|
|
|
Window_ZzyFBFItemField.prototype.EarnFieldItemList = function()
|
|
|
{
|
|
|
var items = $gameParty.items();
|
|
|
var enableArr = $gameSystem.GetZzyFBFFieldItemIdArr();
|
|
|
var len = items.length;
|
|
|
for(var i=0;i<len;i++)
|
|
|
{
|
|
|
var item = items[i];
|
|
|
|
|
|
if(enableArr.contains(item.id))
|
|
|
{
|
|
|
this._list.push(item);
|
|
|
}
|
|
|
}
|
|
|
//asd
|
|
|
}
|
|
|
|
|
|
Window_ZzyFBFItemField.prototype.InitPosition = function()
|
|
|
{
|
|
|
this.x = eval(Zzy.Param.FBFFieldItemWindowX);
|
|
|
this.y = eval(Zzy.Param.FBFFieldItemWindowY);
|
|
|
this.width = eval(Zzy.Param.FBFFieldItemWindowW);
|
|
|
this.height = eval(Zzy.Param.FBFFieldItemWindowH);
|
|
|
this.refresh();
|
|
|
}
|
|
|
|
|
|
Window_ZzyFBFItemField.prototype.maxCols = function()
|
|
|
{
|
|
|
return 2;
|
|
|
};
|
|
|
|
|
|
|
|
|
Window_ZzyFBFItemField.prototype.drawItem = function(index)
|
|
|
{
|
|
|
var item = this._list[index];
|
|
|
if (item)
|
|
|
{
|
|
|
var numberWidth = this.numberWidth();
|
|
|
var rect = this.itemRect(index);
|
|
|
rect.width -= this.textPadding();
|
|
|
|
|
|
if(this.IsEnable(item))
|
|
|
{
|
|
|
var srcInfo = {};
|
|
|
this.SaveZzyFBFContents(srcInfo);
|
|
|
|
|
|
if(item.zzyFBF)
|
|
|
{
|
|
|
if(item.zzyFBF.textColor)//存在设置的文字
|
|
|
{this.changeTextColor(item.zzyFBF.textColor);}
|
|
|
|
|
|
if(item.zzyFBF.borderColor)
|
|
|
{this.contents.outlineColor = item.zzyFBF.borderColor;}
|
|
|
|
|
|
if(item.zzyFBF.borderWidth)
|
|
|
{this.contents.outlineWidth = item.zzyFBF.borderWidth;}
|
|
|
|
|
|
if(item.zzyFBF.textSize)//字体大小
|
|
|
{this.contents.fontSize = item.zzyFBF.textSize;}
|
|
|
}
|
|
|
|
|
|
this.drawItemName(item, rect.x, rect.y, rect.width - numberWidth);
|
|
|
this.drawItemNumber(item, rect.x, rect.y, rect.width);
|
|
|
|
|
|
this.LoadZzyFBFContents(srcInfo);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
this.changePaintOpacity(false);
|
|
|
this.drawItemName(item, rect.x, rect.y, rect.width - numberWidth);
|
|
|
this.drawItemNumber(item, rect.x, rect.y, rect.width);
|
|
|
}
|
|
|
this.changePaintOpacity(1);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
|
|
|
Window_ZzyFBFItemField.prototype.drawItemName = function(item, x, y, width)
|
|
|
{
|
|
|
width = width || 312;
|
|
|
var iconBoxWidth = Window_Base._iconWidth + 4;
|
|
|
this.drawIcon(item.iconIndex, x + 2, y + 2);
|
|
|
this.drawText(item.name, x + iconBoxWidth, y, width - iconBoxWidth);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
Window_ZzyFBFItemField.prototype.drawItemNumber = function(item, x, y, width)
|
|
|
{
|
|
|
this.drawText(':', x, y, width - this.textWidth('00'), 'right');
|
|
|
this.drawText($gameParty.numItems(item), x, y, width, 'right');
|
|
|
};
|
|
|
|
|
|
|
|
|
Window_ZzyFBFItemField.prototype.SaveZzyFBFContents = function(srcInfo)
|
|
|
{
|
|
|
srcInfo.textColor = this.contents.textColor;
|
|
|
srcInfo.outlineColor = this.contents.outlineColor;
|
|
|
srcInfo.outlineWidth = this.contents.outlineWidth;
|
|
|
srcInfo.fontSize = this.contents.fontSize;
|
|
|
}
|
|
|
|
|
|
Window_ZzyFBFItemField.prototype.LoadZzyFBFContents = function(srcInfo)
|
|
|
{
|
|
|
this.contents.textColor = srcInfo.textColor;
|
|
|
this.contents.outlineColor = srcInfo.outlineColor;
|
|
|
this.contents.outlineWidth = srcInfo.outlineWidth;
|
|
|
this.contents.fontSize = srcInfo.fontSize;
|
|
|
}
|
|
|
|
|
|
|
|
|
Window_ZzyFBFItemField.prototype.IsEnable = function(item)
|
|
|
{
|
|
|
var actorId = $gameSystem.GetZzyFBFSelectActorIndex();
|
|
|
var enable = $gameSystem.EnableZzyFBFFieldOfActor(actorId,item);
|
|
|
return enable;
|
|
|
}
|
|
|
|
|
|
Window_ZzyFBFItemField.prototype.IsEnableOfIndex = function(index)
|
|
|
{
|
|
|
var item = this.item();
|
|
|
return this.IsEnable(item);
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Window_ZzyFBFItemField.prototype.numberWidth = function()
|
|
|
{
|
|
|
return this.textWidth('000');
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Window_ZzyFBFItemField.prototype.maxItems = function()
|
|
|
{
|
|
|
return this._list ? this._list.length : 0;
|
|
|
};
|
|
|
|
|
|
|
|
|
Window_ZzyFBFItemField.prototype.refresh = function()
|
|
|
{
|
|
|
this.createContents();
|
|
|
this.drawAllItems();
|
|
|
};
|
|
|
|
|
|
|
|
|
Window_ZzyFBFItemField.prototype.item = function()
|
|
|
{
|
|
|
var index = this.index();
|
|
|
return this._list && index >= 0 ? this._list[index] : null;
|
|
|
};
|
|
|
|
|
|
Window_ZzyFBFItemField.prototype.updateHelp = function()
|
|
|
{
|
|
|
this.setHelpWindowItem(this.item());
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
Window_ZzyFBFItemField.prototype.setFieldWindow = function(pointer)
|
|
|
{
|
|
|
this._fieldWindow = pointer;
|
|
|
}
|
|
|
|
|
|
Window_ZzyFBFItemField.prototype.processTouch = function()
|
|
|
{
|
|
|
if(!this.active && this.checkActive())
|
|
|
{
|
|
|
this.activate();//设置为活跃
|
|
|
this._fieldWindow.deactivate();
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
Window_Selectable.prototype.processTouch.call(this);
|
|
|
|
|
|
};
|
|
|
|
|
|
Window_ZzyFBFItemField.prototype.checkActive = function()
|
|
|
{
|
|
|
if(TouchInput.isTriggered() && this.isTouchedInsideFrame())
|
|
|
{
|
|
|
return true;
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
|
|
|
Window_ZzyFBFItemField.prototype.processOk = function()
|
|
|
{
|
|
|
if (this.isCurrentItemEnabled())
|
|
|
{
|
|
|
//this.playOkSound();
|
|
|
this.updateInputData();
|
|
|
//this.deactivate();
|
|
|
this.callOkHandler();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
this.playBuzzerSound();
|
|
|
}
|
|
|
};
|
|
|
|
|
|
Window_ZzyFBFItemField.prototype.OnSelectField = function()
|
|
|
{
|
|
|
//激活
|
|
|
var index = this.index();
|
|
|
var isValid = this.IsEnableOfIndex(index);
|
|
|
if(isValid)
|
|
|
{
|
|
|
this.ExecuteInstallField();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
Zzy.FBF.PlaySE(3);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
Window_ZzyFBFItemField.prototype.ExecuteInstallField = function()//执行安装加护
|
|
|
{
|
|
|
|
|
|
var installItem = this.item();
|
|
|
var index = this._fieldWindow.index();
|
|
|
var tList = this._fieldWindow._list;
|
|
|
if(index >= 0)//防止-1
|
|
|
{
|
|
|
if(this._fieldWindow.IsCanUnInstall(index,installItem))
|
|
|
{
|
|
|
Zzy.FBF.PlaySE(3);
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
else//遍历
|
|
|
{
|
|
|
var len = tList.length;
|
|
|
var isCan = false;
|
|
|
for(var i=0;i<len;i++)
|
|
|
{
|
|
|
if(this._fieldWindow.IsCanInstall(i,installItem))//可以安装
|
|
|
{
|
|
|
index = i;
|
|
|
isCan = true;
|
|
|
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
if(!isCan)
|
|
|
{
|
|
|
Zzy.FBF.PlaySE(3);
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var oldItem = this._fieldWindow.ExecuteInstallItem(index,installItem);//执行安装
|
|
|
//目标向后跳跃
|
|
|
var memory = $gameSystem.GetZzyFBFFieldBlessMemory(installItem);//获取内存大小
|
|
|
this._fieldWindow.select(index+memory);
|
|
|
|
|
|
//减少道具
|
|
|
this.ProcessLoseItem(installItem);
|
|
|
this.ProcessGainItem(oldItem);
|
|
|
|
|
|
var actorId = $gameSystem.GetZzyFBFSelectActorIndex();
|
|
|
|
|
|
if(oldItem)
|
|
|
{
|
|
|
$gameSystem.UnInstallZzyFBFField(actorId,index);
|
|
|
}
|
|
|
$gameSystem.InstallZzyFBFField(actorId,index,installItem);
|
|
|
|
|
|
|
|
|
Zzy.FBF.PlaySE(4);
|
|
|
this.refresh();
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
Window_ZzyFBFItemField.prototype.ProcessGainItem = function(item)
|
|
|
{
|
|
|
if(!item)return;//获取道具
|
|
|
//item = $dataItems[6];
|
|
|
|
|
|
$gameParty.gainItem(item,1);
|
|
|
//判断卸下来的是否拥有
|
|
|
if(!this.IsListHaveOfItem(item))
|
|
|
{
|
|
|
this._list.push(item);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
Window_ZzyFBFItemField.prototype.ProcessLoseItem = function(item)
|
|
|
{
|
|
|
if(!item)return;
|
|
|
$gameParty.loseItem(item,1);//减少道具
|
|
|
for(var i=0;i<this._list.length;i++)
|
|
|
{
|
|
|
if(this._list[i].id === item.id)
|
|
|
{
|
|
|
var count = $gameParty._items[item.id];
|
|
|
if(!count)//不存在数量,需要移除这个内容
|
|
|
{
|
|
|
this.DeleteListOfIndex(i);//移除元素
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
Window_ZzyFBFItemField.prototype.DeleteListOfIndex = function(index)
|
|
|
{
|
|
|
var len = this._list.length;
|
|
|
|
|
|
for(var i=index;i<len;i++)
|
|
|
{
|
|
|
this._list[i] = this._list[i+1];
|
|
|
}
|
|
|
this._list[len-1] = undefined;
|
|
|
this._list.length--;
|
|
|
}
|
|
|
|
|
|
|
|
|
Window_ZzyFBFItemField.prototype.IsListHaveOfItem = function(item)
|
|
|
{
|
|
|
for(var i=0;i<this._list.length;i++)
|
|
|
{
|
|
|
if(this._list[i].id === item.id)
|
|
|
{
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//=================================================================
|
|
|
//Window_ZzyFBFHelp
|
|
|
//=================================================================
|
|
|
|
|
|
function Window_ZzyFBFHelp()
|
|
|
{
|
|
|
this.initialize.apply(this, arguments);
|
|
|
}
|
|
|
|
|
|
Window_ZzyFBFHelp.prototype = Object.create(Window_Help.prototype);
|
|
|
Window_ZzyFBFHelp.prototype.constructor = Window_ZzyFBFHelp;
|
|
|
|
|
|
Window_ZzyFBFHelp.prototype.initialize = function(numLines)
|
|
|
{
|
|
|
numLines = this.DefaultNumLines();
|
|
|
Window_Help.prototype.initialize.call(this,numLines);
|
|
|
|
|
|
this.x = eval(Zzy.Param.FBFHelpWindowX);
|
|
|
this.y = eval(Zzy.Param.FBFHelpWindowY);
|
|
|
this.width = eval(Zzy.Param.FBFHelpWindowW);
|
|
|
};
|
|
|
|
|
|
|
|
|
Window_ZzyFBFHelp.prototype.DefaultNumLines = function()
|
|
|
{
|
|
|
return Zzy.Param.FBFHelpWindowH;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Window_ZzyFBFHelp.prototype.setText = function(text)
|
|
|
{
|
|
|
if (this._text !== text)
|
|
|
{
|
|
|
this._text = text;
|
|
|
this.refresh();
|
|
|
}
|
|
|
};
|
|
|
|
|
|
Window_ZzyFBFHelp.prototype.clear = function()
|
|
|
{
|
|
|
this.setText('');
|
|
|
};
|
|
|
|
|
|
Window_ZzyFBFHelp.prototype.setItem = function(item)
|
|
|
{
|
|
|
if(item === null)
|
|
|
{
|
|
|
this.setText(Zzy.Param.FBFUnlockHelpText);
|
|
|
}
|
|
|
else if(item === undefined)
|
|
|
{
|
|
|
this.setText(Zzy.Param.FBFLockHelpText);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
this.setText(item ? item.description : '');
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
Window_ZzyFBFHelp.prototype.refresh = function()
|
|
|
{
|
|
|
this.contents.clear();
|
|
|
this.drawTextEx(this._text, this.textPadding(), 0);
|
|
|
};
|
|
|
|
|
|
|
|
|
//================================================================
|
|
|
//DataManager
|
|
|
//================================================================
|
|
|
Zzy.FBF.DataManager_isDatabaseLoaded = DataManager.isDatabaseLoaded;
|
|
|
DataManager.isDatabaseLoaded = function()
|
|
|
{
|
|
|
if (!Zzy.FBF.DataManager_isDatabaseLoaded.call(this)) return false;
|
|
|
|
|
|
//添加标签内容
|
|
|
this.ZzyFBFLoadNoteCase1($dataItems);//物品
|
|
|
|
|
|
this.ZzyFBFLoadNoteCase2($dataActors);//角色
|
|
|
|
|
|
this.ZzyFBFLoadNoteCase3($dataArmors);//护甲
|
|
|
this.ZzyFBFLoadNoteCase3($dataWeapons);//武器
|
|
|
this.ZzyFBFLoadNoteCase3($dataSkills);//技能
|
|
|
this.ZzyFBFLoadNoteCase3($dataClasses);//职业
|
|
|
this.ZzyFBFLoadNoteCase3($dataActors);//角色
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
DataManager.ZzyFBFLoadNoteCase3 = function(objArr)
|
|
|
{
|
|
|
for (var i = 1; i < objArr.length; i++)
|
|
|
{
|
|
|
var obj = objArr[i];
|
|
|
var noteData = obj.note.split(/[\r\n]+/);
|
|
|
|
|
|
obj.zzyFBF = obj.zzyFBF || {};
|
|
|
|
|
|
for(var j=0;j<noteData.length;j++)
|
|
|
{
|
|
|
var lineStr = noteData[j];
|
|
|
|
|
|
if(lineStr.match(/<ZZYFBF COUNT:[ ](.*)>/i))//增添卡槽
|
|
|
{
|
|
|
var count = String(RegExp.$1);
|
|
|
obj.zzyFBF['eCount'] = count;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF MCOUNT:[ ](.*)>/i))//增添最大卡槽
|
|
|
{
|
|
|
var count = String(RegExp.$1);
|
|
|
obj.zzyFBF['emCount'] = count;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
DataManager.ZzyFBFLoadNoteCase2 = function(objArr)//加载标签
|
|
|
{
|
|
|
|
|
|
for (var i = 1; i < objArr.length; i++)
|
|
|
{
|
|
|
var obj = objArr[i];
|
|
|
var noteData = obj.note.split(/[\r\n]+/);
|
|
|
|
|
|
obj.zzyFBF = obj.zzyFBF || {};
|
|
|
|
|
|
for(var j=0;j<noteData.length;j++)
|
|
|
{
|
|
|
var lineStr = noteData[j];
|
|
|
|
|
|
if(lineStr.match(/<ZZYFBF FIELDBLESS:[ ](.*)>/i))//作为卡片
|
|
|
{
|
|
|
var enable = eval(String(RegExp.$1));
|
|
|
obj.zzyFBF['enable'] = enable;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF MAXCOUNT:[ ](.*)>/i))
|
|
|
{
|
|
|
var count = String(RegExp.$1);
|
|
|
obj.zzyFBF['maxCount'] = count;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF CURRENTCOUNT:[ ](.*)>/i))
|
|
|
{
|
|
|
var count = String(RegExp.$1);
|
|
|
obj.zzyFBF['currentCount'] = count;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
DataManager.ZzyFBFLoadNoteCase1 = function(objArr)//加载标签
|
|
|
{
|
|
|
for (var i = 1; i < objArr.length; i++)
|
|
|
{
|
|
|
var obj = objArr[i];
|
|
|
var noteData = obj.note.split(/[\r\n]+/);
|
|
|
|
|
|
obj.zzyFBF = obj.zzyFBF || {};
|
|
|
//基本参数
|
|
|
obj.zzyFBF['param'] = [];
|
|
|
obj.zzyFBF['paramPer'] = [];
|
|
|
//额外参数
|
|
|
obj.zzyFBF['exParam'] = [];
|
|
|
obj.zzyFBF['exParamPer'] = [];
|
|
|
//特殊参数
|
|
|
obj.zzyFBF['spParam'] = [];
|
|
|
obj.zzyFBF['spParamPer'] = [];
|
|
|
//元素参数
|
|
|
obj.zzyFBF['elParam'] = [];
|
|
|
obj.zzyFBF['elParamPer'] = [];
|
|
|
|
|
|
//0生命 1魔法 2攻击 3防御 4魔攻 5魔抗 6速度 7幸运
|
|
|
|
|
|
//0命中 1闪避 2暴击 3暴击回避 4魔法回避 5魔法反射
|
|
|
//6反击 7HP自动回复 8MP自动回复 9TP自动恢复
|
|
|
|
|
|
//1受击几率 2防御效果 3恢复效果 4药理知识 5MP消耗率 6TP消耗率
|
|
|
//7物理伤害 8魔法伤害 9地形伤害 10经验值 11金币概率 12伤害减免
|
|
|
//13逃跑概率 14先发制人概率 15被偷袭概率 16遇敌步数
|
|
|
|
|
|
|
|
|
for(var j=0;j<noteData.length;j++)
|
|
|
{
|
|
|
var lineStr = noteData[j];
|
|
|
|
|
|
if(lineStr.match(/<ZZYFBF ENABLE>/i))//作为卡片
|
|
|
{
|
|
|
obj.zzyFBF['enable'] = true;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF TEXTCOLOR:[ ](.*)>/i))
|
|
|
{
|
|
|
obj.zzyFBF['textColor'] = String(RegExp.$1);
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF BORDERWIDTH:[ ](.*)>/i))
|
|
|
{
|
|
|
obj.zzyFBF['borderWidth'] = parseInt(RegExp.$1);
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF BORDERCOLOR:[ ](.*)>/i))
|
|
|
{
|
|
|
obj.zzyFBF['borderColor'] = String(RegExp.$1);
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF TEXTSIZE:[ ](.*)>/i))
|
|
|
{
|
|
|
obj.zzyFBF['textSize'] = parseInt(RegExp.$1);
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF HP:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['param'][0] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF HPPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var per = String(RegExp.$1);
|
|
|
obj.zzyFBF['paramPer'][0] = per;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF MP:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['param'][1] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF MPPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var per = String(RegExp.$1);
|
|
|
obj.zzyFBF['paramPer'][1] = per;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF ATK:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['param'][2] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF ATKPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var per = String(RegExp.$1);
|
|
|
obj.zzyFBF['paramPer'][2] = per;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF DEF:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['param'][3] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF DEFPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var per = String(RegExp.$1);
|
|
|
obj.zzyFBF['paramPer'][3] = per;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF MAT:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['param'][4] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF MATPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var per = String(RegExp.$1);
|
|
|
obj.zzyFBF['paramPer'][4] = per;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF MDF:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['param'][5] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF MDFPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var per = String(RegExp.$1);
|
|
|
obj.zzyFBF['paramPer'][5] = per;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF AGI:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['param'][6] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF AGIPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var per = String(RegExp.$1);
|
|
|
obj.zzyFBF['paramPer'][6] = per;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF LUK:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['param'][7] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF LUKPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var per = String(RegExp.$1);
|
|
|
obj.zzyFBF['paramPer'][7] = per;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF HIT:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['exParam'][0] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF HITPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['exParamPer'][0] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF EVA:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['exParam'][1] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF EVAPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['exParamPer'][1] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF CRI:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['exParam'][2] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF CRIPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['exParamPer'][2] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF CEV:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['exParam'][3] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF CEVPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['exParamPer'][3] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF MEV:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['exParam'][4] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF MEVPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['exParamPer'][4] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF MRF:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['exParam'][5] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF MRFPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['exParamPer'][5] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF CNT:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['exParam'][6] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF CNTPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['exParamPer'][6] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF HRG:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['exParam'][7] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF HRGPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['exParamPer'][7] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF MRG:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['exParam'][8] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF MRGPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['exParamPer'][8] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF TRG:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['exParam'][9] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF TRGPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['exParamPer'][9] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF MEMORY:[ ](\d+)>/i))
|
|
|
{
|
|
|
var memory = parseInt(RegExp.$1);
|
|
|
obj.zzyFBF['memory'] = memory;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF NOINSTALL>/i))
|
|
|
{
|
|
|
obj.zzyFBF['noInstall'] = true;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF CLASS:[ ](.*)>/i))
|
|
|
{
|
|
|
var str = String(RegExp.$1);
|
|
|
var intArr = Zzy.FBF.StringToIntArr(str);
|
|
|
obj.zzyFBF['canUseC'] = intArr;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF ACTOR:[ ](.*)>/i))
|
|
|
{
|
|
|
var str = String(RegExp.$1);
|
|
|
var intArr = Zzy.FBF.StringToIntArr(str);
|
|
|
obj.zzyFBF['canUseA'] = intArr;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF NOCLASS:[ ](.*)>/i))
|
|
|
{
|
|
|
var str = String(RegExp.$1);
|
|
|
var intArr = Zzy.FBF.StringToIntArr(str);
|
|
|
obj.zzyFBF['noCanUseC'] = intArr;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF NOACTOR:[ ](.*)>/i))
|
|
|
{
|
|
|
var str = String(RegExp.$1);
|
|
|
var intArr = Zzy.FBF.StringToIntArr(str);
|
|
|
obj.zzyFBF['noCanUseA'] = intArr;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF CONDITION:[ ](.*)>/i))
|
|
|
{
|
|
|
var evalStr = String(RegExp.$1);
|
|
|
obj.zzyFBF['canUseEval'] = evalStr;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF TGR:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['spParam'][1] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF TGRPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['spParamPer'][1] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF GRD:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['spParam'][2] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF GRDPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['spParamPer'][2] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF REC:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['spParam'][3] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF RECPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['spParamPer'][3] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF PHA:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['spParam'][4] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF PHAPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['spParamPer'][4] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF MCR:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['spParam'][5] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF MCRPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['spParamPer'][5] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF TCR:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['spParam'][6] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF TCRPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['spParamPer'][6] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF PDR:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['spParam'][7] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF PDRPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['spParamPer'][7] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF MDR:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['spParam'][8] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF MDRPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['spParamPer'][8] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF FDR:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['spParam'][9] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF FDRPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['spParamPer'][9] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF EXP:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['spParam'][10] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF EXPPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['spParamPer'][10] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF GOLD:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['spParam'][11] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF GOLDPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['spParamPer'][11] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF DAR:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['spParam'][12] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF DARPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['spParamPer'][12] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF ELEMENT:[ ](.*)[ ](.*)>/i))
|
|
|
{
|
|
|
var elId = parseInt(RegExp.$1);
|
|
|
var value = String(RegExp.$2);
|
|
|
obj.zzyFBF['elParam'][elId] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF ELEMENTPER:[ ](.*)[ ](.*)>/i))
|
|
|
{
|
|
|
var elId = parseInt(RegExp.$1);
|
|
|
var value = String(RegExp.$2);
|
|
|
obj.zzyFBF['elParamPer'][elId] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF ESCPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var per = String(RegExp.$1);
|
|
|
obj.zzyFBF['spParam'][13] = per;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF SNAKPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var per = String(RegExp.$1);
|
|
|
obj.zzyFBF['spParam'][14] = per;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF BSAKPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var per = String(RegExp.$1);
|
|
|
obj.zzyFBF['spParam'][15] = per;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF ENCT:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['spParam'][16] = value;
|
|
|
}
|
|
|
else if(lineStr.match(/<ZZYFBF ENCTPER:[ ](.*)>/i))
|
|
|
{
|
|
|
var value = String(RegExp.$1);
|
|
|
obj.zzyFBF['spParamPer'][16] = value;
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
//Game_Actor
|
|
|
//=============================================================================
|
|
|
|
|
|
|
|
|
Zzy.FBF.Game_Actor_paramPlus = Game_Actor.prototype.paramPlus;
|
|
|
Game_Actor.prototype.paramPlus = function(paramId)
|
|
|
{
|
|
|
var value = Zzy.FBF.Game_Actor_paramPlus.call(this,paramId);
|
|
|
var useArr = $gameSystem.GetZzyFBFActorFieldUseArr(this.actorId());
|
|
|
value += this.ZzyFBFCalculationValue(useArr,paramId);//计算增益数值
|
|
|
|
|
|
return Math.floor(value);
|
|
|
};
|
|
|
|
|
|
Game_Actor.prototype.ZzyFBFCalculationValue = function(itemArr,paramId)//增益
|
|
|
{
|
|
|
|
|
|
var formula = undefined;
|
|
|
|
|
|
var value = 0;
|
|
|
var valuePer = 0;
|
|
|
var srcValue = this.paramBase(paramId);
|
|
|
|
|
|
for(var i=0;i<itemArr.length;i++)//计算拥有的实量和百分比
|
|
|
{
|
|
|
var item = itemArr[i];
|
|
|
if(item.zzyFBF.param[paramId] !== undefined)
|
|
|
{
|
|
|
formula = item.zzyFBF.param[paramId];
|
|
|
value += $gameSystem.EvalZzyFBFFormula1(formula,this);
|
|
|
value = value ? value : 0;
|
|
|
}
|
|
|
|
|
|
if(item.zzyFBF.paramPer[paramId] !== undefined)
|
|
|
{
|
|
|
formula = item.zzyFBF.paramPer[paramId];
|
|
|
valuePer += $gameSystem.EvalZzyFBFFormula1(formula,this);
|
|
|
valuePer = valuePer ? valuePer : 0;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
return (value + (srcValue*valuePer*0.01));
|
|
|
}
|
|
|
|
|
|
|
|
|
//经验值
|
|
|
Zzy.FBF.Game_Actor_finalExpRate = Game_Actor.prototype.finalExpRate;
|
|
|
Game_Actor.prototype.finalExpRate = function()
|
|
|
{
|
|
|
var expRate = Zzy.FBF.Game_Actor_finalExpRate.call(this);
|
|
|
var exExpRate = Zzy.FBF.SpParamPerValueOfActor(this,10,expRate);
|
|
|
|
|
|
|
|
|
return expRate+exExpRate;
|
|
|
};
|
|
|
Zzy.FBF.Game_Actor_gainExp = Game_Actor.prototype.gainExp;
|
|
|
Game_Actor.prototype.gainExp = function(exp)
|
|
|
{
|
|
|
var exExp = Zzy.FBF.SpParamValueOfActor(this,10);
|
|
|
exp += exExp;//添加额外经验值
|
|
|
Zzy.FBF.Game_Actor_gainExp.call(this,exp);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//地板伤害
|
|
|
Zzy.FBF.Game_Actor_basicFloorDamage = Game_Actor.prototype.basicFloorDamage;
|
|
|
Game_Actor.prototype.basicFloorDamage = function()
|
|
|
{
|
|
|
var damage = Zzy.FBF.Game_Actor_basicFloorDamage.call(this);
|
|
|
var exDamage = Zzy.FBF.SpParamPerValueOfActor(this,9,damage);
|
|
|
return Math.floor(damage+exDamage);
|
|
|
};
|
|
|
|
|
|
|
|
|
Zzy.FBF.Game_Actor_executeFloorDamage = Game_Actor.prototype.executeFloorDamage;
|
|
|
Game_Actor.prototype.executeFloorDamage = function()
|
|
|
{
|
|
|
Zzy.FBF.Game_Actor_executeFloorDamage.call(this);
|
|
|
var exDamage = Zzy.FBF.SpParamValueOfActor(this,9);//地板额外伤害
|
|
|
exDamage = Math.min(exDamage, this.maxFloorDamage());
|
|
|
this.gainHp(-exDamage);
|
|
|
if (exDamage > 0)
|
|
|
{
|
|
|
this.performMapDamage();
|
|
|
}
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//===========================================================================
|
|
|
//Game_Action
|
|
|
//===========================================================================
|
|
|
Zzy.FBF.Game_Action_calcElementRate = Game_Action.prototype.calcElementRate;
|
|
|
Game_Action.prototype.calcElementRate = function(target)//元素概率
|
|
|
{
|
|
|
var srcRate = Zzy.FBF.Game_Action_calcElementRate.call(this,target);
|
|
|
var exRate = 0;
|
|
|
if(target.isEnemy())
|
|
|
{
|
|
|
var actor = this.subject();
|
|
|
if(actor && actor.isActor())
|
|
|
{
|
|
|
var elementId = this.item().damage.elementId;
|
|
|
exRate = BattleManager.ZzyFBFElParamPerValueOfActor(elementId,actor,target);
|
|
|
}
|
|
|
}
|
|
|
return srcRate+exRate;
|
|
|
};
|
|
|
|
|
|
|
|
|
Zzy.FBF.Game_Action_itemHit = Game_Action.prototype.itemHit;
|
|
|
Game_Action.prototype.itemHit = function(target)
|
|
|
{
|
|
|
var value = Zzy.FBF.Game_Action_itemHit.call(this,target);
|
|
|
|
|
|
var exValue = 0;
|
|
|
if(this.isPhysical() && this.subject() && this.subject().isActor())//物理命中
|
|
|
{
|
|
|
exValue = BattleManager.ZzyFBFSetExParamValueOfActor(0,this.subject(),value,target);
|
|
|
}
|
|
|
return value+exValue;
|
|
|
};
|
|
|
|
|
|
|
|
|
Zzy.FBF.Game_Action_itemEva = Game_Action.prototype.itemEva;
|
|
|
Game_Action.prototype.itemEva = function(target)
|
|
|
{
|
|
|
var value = Zzy.FBF.Game_Action_itemEva.call(this,target);
|
|
|
var exValue = 0;
|
|
|
|
|
|
if(target && target.isActor())
|
|
|
{
|
|
|
if (this.isPhysical())//物理闪避
|
|
|
{
|
|
|
exValue = BattleManager.ZzyFBFSetExParamValueOfActor(1,target,value,this.subject());
|
|
|
}
|
|
|
else if(this.isMagical())//魔法闪避
|
|
|
{
|
|
|
exValue = BattleManager.ZzyFBFSetExParamValueOfActor(4,target,value,this.subject());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
return value+exValue;
|
|
|
};
|
|
|
|
|
|
|
|
|
Zzy.FBF.Game_Action_itemCri = Game_Action.prototype.itemCri;
|
|
|
Game_Action.prototype.itemCri = function(target)
|
|
|
{
|
|
|
var value = Zzy.FBF.Game_Action_itemCri.call(this,target);
|
|
|
var exValue = 0;
|
|
|
if(this.item().damage.critical)//存在暴击
|
|
|
{
|
|
|
if(this.subject() && this.subject().isActor())//攻击者
|
|
|
{
|
|
|
exValue = BattleManager.ZzyFBFSetExParamValueOfActor(2,this.subject(),value,target);
|
|
|
return value+exValue;
|
|
|
|
|
|
}
|
|
|
else if(target && target.isActor())//防御者
|
|
|
{
|
|
|
exValue = BattleManager.ZzyFBFSetExParamValueOfActor(3,target,value,target);
|
|
|
return Math.max(0,value-exValue);
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return value;
|
|
|
}
|
|
|
return value;
|
|
|
};
|
|
|
|
|
|
|
|
|
Zzy.FBF.Game_Action_itemMrf = Game_Action.prototype.itemMrf;
|
|
|
Game_Action.prototype.itemMrf = function(target)
|
|
|
{
|
|
|
var value = Zzy.FBF.Game_Action_itemMrf.call(this,target);
|
|
|
var exValue = 0;
|
|
|
|
|
|
if(this.isMagical() && target && target.isActor())
|
|
|
{
|
|
|
exValue = BattleManager.ZzyFBFSetExParamValueOfActor(5,target,value,this.subject());
|
|
|
}
|
|
|
return value+exValue;
|
|
|
};
|
|
|
|
|
|
Zzy.FBF.Game_Action_itemCnt = Game_Action.prototype.itemCnt;
|
|
|
Game_Action.prototype.itemCnt = function(target)
|
|
|
{
|
|
|
var value = Zzy.FBF.Game_Action_itemCnt.call(this,target);
|
|
|
var exValue = 0;
|
|
|
|
|
|
if(this.isPhysical() && target.canMove() && target && target.isActor())
|
|
|
{
|
|
|
exValue = BattleManager.ZzyFBFSetExParamValueOfActor(6,target,value,this.subject());
|
|
|
}
|
|
|
return value+exValue;
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//恢复效果 物理伤害 魔法伤害
|
|
|
|
|
|
Zzy.FBF.Game_Action_makeDamageValue = Game_Action.prototype.makeDamageValue;
|
|
|
Game_Action.prototype.makeDamageValue = function(target, critical)
|
|
|
{
|
|
|
var value = Zzy.FBF.Game_Action_makeDamageValue.call(this,target,critical);
|
|
|
var item = this.item();
|
|
|
var isRecover = false;
|
|
|
if(target.isActor())
|
|
|
{
|
|
|
var baseValue = this.evalDamageFormula(target);
|
|
|
if (this.isPhysical())
|
|
|
{
|
|
|
var exValue1 = Zzy.FBF.SpParamValueOfActor(target,7,this.subject());
|
|
|
var exValue2 = Zzy.FBF.SpParamPerValueOfActor(target,7,value,this.subject());
|
|
|
value += (exValue1+exValue2);
|
|
|
|
|
|
}
|
|
|
if (this.isMagical())
|
|
|
{
|
|
|
var exValue1 = Zzy.FBF.SpParamValueOfActor(target,8,this.subject());
|
|
|
var exValue2 = Zzy.FBF.SpParamPerValueOfActor(target,8,value,this.subject());
|
|
|
value += (exValue1+exValue2);
|
|
|
}
|
|
|
if (baseValue < 0)
|
|
|
{
|
|
|
isRecover = true;
|
|
|
var exValue1 = Zzy.FBF.SpParamValueOfActor(target,3,this.subject());
|
|
|
var exValue2 = Zzy.FBF.SpParamPerValueOfActor(target,3,value,this.subject());
|
|
|
value -= (exValue1+exValue2);
|
|
|
}
|
|
|
|
|
|
|
|
|
if(!isRecover)
|
|
|
{
|
|
|
//计算伤害减免
|
|
|
var exValue1 = Zzy.FBF.SpParamValueOfActor(target,12,this.subject());
|
|
|
var exValue2 = Zzy.FBF.SpParamPerValueOfActor(target,12,value,this.subject());
|
|
|
|
|
|
value -= (exValue1+exValue2);
|
|
|
value = value > 0 ? value : 0;
|
|
|
}
|
|
|
|
|
|
//value = this.applyVariance(value, item.damage.variance);
|
|
|
//value = this.applyGuard(value, target);
|
|
|
|
|
|
|
|
|
}
|
|
|
else if(target.isEnemy())
|
|
|
{
|
|
|
var actor = this.subject();
|
|
|
if(actor && actor.isActor())
|
|
|
{
|
|
|
//插入元素直接伤害
|
|
|
var baseValue = this.evalDamageFormula(actor);
|
|
|
|
|
|
var elementId = this.item().damage.elementId;
|
|
|
var exValue = BattleManager.ZzyFBFElParamValueOfActor(elementId,actor);
|
|
|
if (baseValue < 0)
|
|
|
{
|
|
|
value -= exValue;
|
|
|
value = value < 0 ? value : 0;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
value += exValue;
|
|
|
value = value > 0 ? value : 0;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
value = Math.round(value);
|
|
|
|
|
|
|
|
|
return value;
|
|
|
};
|
|
|
|
|
|
//TP补充率
|
|
|
Zzy.FBF.Game_Action_applyItemUserEffect = Game_Action.prototype.applyItemUserEffect;
|
|
|
Game_Action.prototype.applyItemUserEffect = function(target)
|
|
|
{
|
|
|
Zzy.FBF.Game_Action_applyItemUserEffect.call(this,target);
|
|
|
if(target.isActor())
|
|
|
{
|
|
|
var value = Math.floor(this.item().tpGain * this.subject().tcr);
|
|
|
var exValue1 = Zzy.FBF.SpParamValueOfActor(target,6,this.subject());
|
|
|
var exValue2 = Zzy.FBF.SpParamPerValueOfActor(target,6,value,this.subject());
|
|
|
this.subject().gainSilentTp(exValue1+exValue2);
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
Zzy.FBF.Game_Action_itemEffectRecoverHp = Game_Action.prototype.itemEffectRecoverHp;
|
|
|
Game_Action.prototype.itemEffectRecoverHp = function(target, effect)
|
|
|
{
|
|
|
Zzy.FBF.Game_Action_itemEffectRecoverHp.call(this,target,effect);
|
|
|
|
|
|
if(target.isActor() && this.isItem())
|
|
|
{
|
|
|
var value = (target.mhp * effect.value1 + effect.value2) * target.rec;
|
|
|
var exValue1 = Zzy.FBF.SpParamValueOfActor(target,4,this.subject());
|
|
|
var exValue2 = Zzy.FBF.SpParamPerValueOfActor(target,4,value,this.subject());
|
|
|
value += (exValue1+exValue2);
|
|
|
}
|
|
|
value = Math.floor(value);
|
|
|
if (value !== 0)
|
|
|
{
|
|
|
target.gainHp(value);
|
|
|
this.makeSuccess(target);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
|
|
|
Zzy.FBF.Game_Action_itemEffectRecoverMp = Game_Action.prototype.itemEffectRecoverMp;
|
|
|
Game_Action.prototype.itemEffectRecoverMp = function(target, effect)
|
|
|
{
|
|
|
Zzy.FBF.Game_Action_itemEffectRecoverMp.call(this,target,effect);
|
|
|
|
|
|
if(target.isActor() && this.isItem())
|
|
|
{
|
|
|
var value = (target.mmp * effect.value1 + effect.value2) * target.rec;
|
|
|
var exValue1 = Zzy.FBF.SpParamValueOfActor(target,4,this.subject());
|
|
|
var exValue2 = Zzy.FBF.SpParamPerValueOfActor(target,4,value,this.subject());
|
|
|
value += (exValue1+exValue2);
|
|
|
}
|
|
|
value = Math.floor(value);
|
|
|
if (value !== 0)
|
|
|
{
|
|
|
target.gainMp(value);
|
|
|
this.makeSuccess(target);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
Zzy.FBF.Game_Action_applyGuard = Game_Action.prototype.applyGuard;
|
|
|
Game_Action.prototype.applyGuard = function(damage, target)
|
|
|
{
|
|
|
if(target.isActor())
|
|
|
{
|
|
|
|
|
|
var exValue1 = Zzy.FBF.SpParamValueOfActor(target,2,this.subject());
|
|
|
var exValue2 = Zzy.FBF.SpParamPerValueOfActor(target,2,target.grd,this.subject());
|
|
|
var result = exValue1 + exValue2 + target.grd;
|
|
|
return damage / (damage > 0 && target.isGuard() ? 2 * result : 1);
|
|
|
|
|
|
}
|
|
|
return Zzy.FBF.Game_Action_applyGuard.call(this,damage,target);
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
//Game_Unit
|
|
|
//=============================================================================
|
|
|
|
|
|
Game_Unit.prototype.tgrSum = function()
|
|
|
{
|
|
|
|
|
|
return this.aliveMembers().reduce(function(r, member)
|
|
|
{
|
|
|
var exValue1 = Zzy.FBF.SpParamValueOfActor(member,1);
|
|
|
var exValue2 = Zzy.FBF.SpParamPerValueOfActor(member,1,member.tgr);
|
|
|
return r + member.tgr + exValue1 + exValue2;
|
|
|
}, 0);
|
|
|
};
|
|
|
|
|
|
|
|
|
Game_Unit.prototype.randomTarget = function()
|
|
|
{
|
|
|
|
|
|
var tgrRand = Math.random() * this.tgrSum();
|
|
|
var target = null;
|
|
|
this.aliveMembers().forEach(function(member)
|
|
|
{
|
|
|
var exValue1 = Zzy.FBF.SpParamValueOfActor(member,1);
|
|
|
var exValue2 = Zzy.FBF.SpParamPerValueOfActor(member,1,member.tgr);
|
|
|
|
|
|
tgrRand -= (member.tgr + exValue1 + exValue2);
|
|
|
if (tgrRand <= 0 && !target) {
|
|
|
target = member;
|
|
|
}
|
|
|
});
|
|
|
return target;
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
//Game_Player
|
|
|
//=============================================================================
|
|
|
Zzy.FBF.Game_Player_makeEncounterCount = Game_Player.prototype.makeEncounterCount;
|
|
|
Game_Player.prototype.makeEncounterCount = function()//遇敌人步数
|
|
|
{
|
|
|
Zzy.FBF.Game_Player_makeEncounterCount.call(this);
|
|
|
|
|
|
var totalV1 = 0;
|
|
|
var totalV2 = 0;
|
|
|
for(var i=0;i<$gameParty._actors.length;i++)
|
|
|
{
|
|
|
var actorId = $gameParty._actors[i];
|
|
|
var actor = $gameActors.actor(actorId);
|
|
|
|
|
|
totalV1 += Zzy.FBF.SpParamValueOfActor(actor,16);
|
|
|
totalV2 += Zzy.FBF.SpParamPerValueOfActor(actor,16,this._encounterCount);
|
|
|
}
|
|
|
|
|
|
this._encounterCount += totalV1;
|
|
|
this._encounterCount += totalV2;
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
//BattleManager
|
|
|
//=============================================================================
|
|
|
|
|
|
BattleManager.ZzyFBFElParamPerValueOfActor = function(elementId,target,enemy)
|
|
|
{
|
|
|
|
|
|
var actor = target;
|
|
|
//遍历所有领域
|
|
|
var formula = undefined;
|
|
|
var useArr = $gameSystem.GetZzyFBFActorFieldUseArr(actor.actorId());
|
|
|
var exPer = 0;
|
|
|
|
|
|
for(var i=0;i<useArr.length;i++)
|
|
|
{
|
|
|
var item = useArr[i];
|
|
|
|
|
|
if(item.zzyFBF.elParamPer[elementId] !== undefined)
|
|
|
{
|
|
|
formula = item.zzyFBF.elParamPer[elementId];
|
|
|
exPer += $gameSystem.EvalZzyFBFFormula1(formula,actor,enemy);
|
|
|
exPer = exPer ? exPer : 0;
|
|
|
}
|
|
|
}
|
|
|
return exPer * 0.01;
|
|
|
}
|
|
|
|
|
|
BattleManager.ZzyFBFElParamValueOfActor = function(elementId,target)
|
|
|
{
|
|
|
|
|
|
var actor = target;
|
|
|
//遍历所有领域
|
|
|
var formula = undefined;
|
|
|
var useArr = $gameSystem.GetZzyFBFActorFieldUseArr(actor.actorId());
|
|
|
var exValue = 0;
|
|
|
|
|
|
for(var i=0;i<useArr.length;i++)
|
|
|
{
|
|
|
var item = useArr[i];
|
|
|
if(item.zzyFBF.elParam[elementId] !== undefined)
|
|
|
{
|
|
|
formula = item.zzyFBF.elParam[elementId];
|
|
|
exValue += $gameSystem.EvalZzyFBFFormula1(formula,actor);
|
|
|
exValue = exValue ? exValue : 0;
|
|
|
}
|
|
|
}
|
|
|
return exValue;
|
|
|
}
|
|
|
|
|
|
|
|
|
//增加金币
|
|
|
Zzy.FBF.BattleManager_gainGold = BattleManager.gainGold;
|
|
|
BattleManager.gainGold = function()
|
|
|
{
|
|
|
Zzy.FBF.BattleManager_gainGold.call(this);
|
|
|
|
|
|
var gold = this._rewards.gold;//原始金币
|
|
|
var totalV1 = 0;
|
|
|
var totalV2 = 0;
|
|
|
|
|
|
for(var i=0;i<$gameParty._actors.length;i++)
|
|
|
{
|
|
|
var actorId = $gameParty._actors[i];
|
|
|
var actor = $gameActors.actor(actorId);
|
|
|
|
|
|
totalV1 += Zzy.FBF.SpParamValueOfActor(actor,11);
|
|
|
totalV2 += Zzy.FBF.SpParamPerValueOfActor(actor,11,gold);
|
|
|
|
|
|
}
|
|
|
|
|
|
$gameParty.gainGold(totalV1+totalV2);
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
BattleManager.ZzyFBFSetExParamValueOfActor = function(exParamId,target,exSrcValue,enemy)
|
|
|
{
|
|
|
exSrcValue = exSrcValue ? exSrcValue : 0;
|
|
|
|
|
|
var actor = target;
|
|
|
//遍历所有领域
|
|
|
var formula = undefined;
|
|
|
var useArr = $gameSystem.GetZzyFBFActorFieldUseArr(actor.actorId());
|
|
|
var exValue = 0;
|
|
|
var exValuePer = 0;
|
|
|
|
|
|
for(var i=0;i<useArr.length;i++)
|
|
|
{
|
|
|
var item = useArr[i];
|
|
|
if(item.zzyFBF.exParam[exParamId] !== undefined)
|
|
|
{
|
|
|
formula = item.zzyFBF.exParam[exParamId];
|
|
|
exValue += $gameSystem.EvalZzyFBFFormula1(formula,actor,enemy);
|
|
|
exValue = exValue ? exValue : 0;
|
|
|
}
|
|
|
|
|
|
if(item.zzyFBF.exParamPer[exParamId] !== undefined)
|
|
|
{
|
|
|
formula = item.zzyFBF.exParamPer[exParamId];
|
|
|
exValuePer += $gameSystem.EvalZzyFBFFormula1(formula,actor,enemy);
|
|
|
exValuePer = exValuePer ? exValuePer : 0;
|
|
|
}
|
|
|
}
|
|
|
return (exValue + (exSrcValue*exValuePer*0.01));
|
|
|
}
|
|
|
|
|
|
//逃跑
|
|
|
Zzy.FBF.BattleManager_BattleManager = BattleManager.makeEscapeRatio;
|
|
|
BattleManager.makeEscapeRatio = function()
|
|
|
{
|
|
|
Zzy.FBF.BattleManager_BattleManager.call(this);
|
|
|
//改变逃跑概率
|
|
|
var actorArr = $gameParty.battleMembers();
|
|
|
for(var i=0;i<actorArr.length;i++)
|
|
|
{
|
|
|
var value = Zzy.FBF.SpParamValueOfActor(actorArr[i],13);
|
|
|
this._escapeRatio += value * 0.01;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
//先发制人
|
|
|
Zzy.FBF.BattleManager_ratePreemptive = BattleManager.ratePreemptive;
|
|
|
BattleManager.ratePreemptive = function() //先发制人概率
|
|
|
{
|
|
|
var rate = Zzy.FBF.BattleManager_ratePreemptive.call(this);
|
|
|
var exRate = 0;
|
|
|
var actorArr = $gameParty.battleMembers();
|
|
|
for(var i=0;i<actorArr.length;i++)
|
|
|
{
|
|
|
var value = Zzy.FBF.SpParamValueOfActor(actorArr[i],14);
|
|
|
exRate += value * 0.01;
|
|
|
}
|
|
|
return rate+exRate;
|
|
|
};
|
|
|
|
|
|
|
|
|
//被偷袭
|
|
|
Zzy.FBF.BattleManager_rateSurprise = BattleManager.rateSurprise;
|
|
|
BattleManager.rateSurprise = function()
|
|
|
{
|
|
|
var rate = Zzy.FBF.BattleManager_rateSurprise.call(this);
|
|
|
var exRate = 0;
|
|
|
var actorArr = $gameParty.battleMembers();
|
|
|
for(var i=0;i<actorArr.length;i++)
|
|
|
{
|
|
|
var value = Zzy.FBF.SpParamValueOfActor(actorArr[i],15);
|
|
|
exRate += value * 0.01;
|
|
|
}
|
|
|
return rate+exRate;
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
//Game_BattlerBase
|
|
|
//=============================================================================
|
|
|
Zzy.FBF.Game_BattlerBase_skillMpCost = Game_BattlerBase.prototype.skillMpCost;
|
|
|
Game_BattlerBase.prototype.skillMpCost = function(skill)
|
|
|
{
|
|
|
var value = Zzy.FBF.Game_BattlerBase_skillMpCost.call(this,skill);
|
|
|
if(this.isActor() && skill.id !== 1 && skill.id !== 2)//排除攻击和防御
|
|
|
{
|
|
|
var exValue1 = Zzy.FBF.SpParamValueOfActor(this,5);
|
|
|
var exValue2 = Zzy.FBF.SpParamPerValueOfActor(this,5,value);
|
|
|
return Math.floor(value+exValue1+exValue2);
|
|
|
}
|
|
|
return value;
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
//Game_Battler
|
|
|
//=============================================================================
|
|
|
|
|
|
//TP补充率
|
|
|
|
|
|
Zzy.FBF.Game_Battler_chargeTpByDamage = Game_Battler.prototype.chargeTpByDamage;
|
|
|
Game_Battler.prototype.chargeTpByDamage = function(damageRate)
|
|
|
{
|
|
|
Zzy.FBF.Game_Battler_chargeTpByDamage.call(this,damageRate);
|
|
|
if(this.isActor())
|
|
|
{
|
|
|
var value = Math.floor(50 * damageRate * this.tcr);
|
|
|
var exValue1 = Zzy.FBF.SpParamValueOfActor(this,6);
|
|
|
var exValue2 = Zzy.FBF.SpParamPerValueOfActor(this,6,value);
|
|
|
this.gainSilentTp(exValue1+exValue2);
|
|
|
|
|
|
}
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
Zzy.FBF.Game_Battler_regenerateHp = Game_Battler.prototype.regenerateHp;//HP自动恢复
|
|
|
Game_Battler.prototype.regenerateHp = function()
|
|
|
{
|
|
|
Zzy.FBF.Game_Battler_regenerateHp.call(this);
|
|
|
var exValue = 0;
|
|
|
var exSrcValue = Math.floor(this.mhp);
|
|
|
if(this.isActor())
|
|
|
{
|
|
|
exValue = BattleManager.ZzyFBFSetExParamValueOfActor(7,this,exSrcValue);
|
|
|
if (exValue !== 0)
|
|
|
{this.gainHp(exValue);}
|
|
|
}
|
|
|
};
|
|
|
|
|
|
Zzy.FBF.Game_Battler_regenerateMp = Game_Battler.prototype.regenerateMp;//MP自动恢复
|
|
|
Game_Battler.prototype.regenerateMp = function()
|
|
|
{
|
|
|
Zzy.FBF.Game_Battler_regenerateMp.call(this);
|
|
|
var exValue = 0;
|
|
|
|
|
|
|
|
|
var exSrcValue = Math.floor(this.mmp);
|
|
|
|
|
|
|
|
|
if(this.isActor())
|
|
|
{
|
|
|
exValue = BattleManager.ZzyFBFSetExParamValueOfActor(8,this,exSrcValue);
|
|
|
|
|
|
if (exValue !== 0)
|
|
|
{this.gainMp(exValue);}
|
|
|
}
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
Zzy.FBF.Game_Battler_regenerateTp = Game_Battler.prototype.regenerateTp;//TP自动恢复
|
|
|
Game_Battler.prototype.regenerateTp = function()
|
|
|
{
|
|
|
Zzy.FBF.Game_Battler_regenerateTp.call(this);
|
|
|
var exValue = 0;
|
|
|
var exSrcValue = Math.floor(100);
|
|
|
if(this.isActor())
|
|
|
{
|
|
|
exValue = BattleManager.ZzyFBFSetExParamValueOfActor(9,this,exSrcValue);
|
|
|
if (exValue !== 0)
|
|
|
{this.gainSilentTp(exValue);}
|
|
|
}
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//-----------------------------------------------Zzy.FBF.Function------------------------------------------
|
|
|
Zzy.FBF.OpenFieldOfActor = function(actorId)//调用打开一个角色的领域
|
|
|
{
|
|
|
if(!$gameActors.actor(actorId))
|
|
|
{
|
|
|
console.log('Error:来自LiuYue_FileBless,检查Open指令填写角色ID是否正确');return;
|
|
|
}
|
|
|
if(!(SceneManager._scene instanceof Scene_Map))
|
|
|
{
|
|
|
console.log('Error:来自LiuYue_FileBless,请在地图界面使用Open指令');return;
|
|
|
}
|
|
|
|
|
|
$gameSystem.SetZzyFBFSelectActorIndex(actorId);
|
|
|
SceneManager.push(Scene_ZzyFBF);//压入场景
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
Zzy.FBF.OpenFieldOfParty = function(index)
|
|
|
{
|
|
|
var actorId = $gameParty._actors[index];
|
|
|
if(!actorId)
|
|
|
{
|
|
|
console.log('Error:来自LiuYue_FileBless,检查Open指令填写队伍队员ID是否正确');return;
|
|
|
}
|
|
|
Zzy.FBF.OpenFieldOfActor(actorId);
|
|
|
}
|
|
|
|
|
|
Zzy.FBF.PlaySE = function(soundID)//播放声音
|
|
|
{
|
|
|
var se = Zzy.Param.FBFAllSE[soundID];
|
|
|
|
|
|
if(se && se.name)
|
|
|
{
|
|
|
AudioManager.playSe(se);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
Zzy.FBF.KeepNumber = function(num)
|
|
|
{
|
|
|
if(num === undefined || num === NaN)
|
|
|
{return 0;}
|
|
|
return num;
|
|
|
}
|
|
|
|
|
|
Zzy.FBF.StringToIntArr = function(str)
|
|
|
{
|
|
|
var strArr = str.split('str');
|
|
|
var len = strArr.length;
|
|
|
var intArr = [];
|
|
|
for(var i=0;i<len;i++)
|
|
|
{
|
|
|
intArr[i] = parseInt(strArr[i]);
|
|
|
}
|
|
|
return intArr;
|
|
|
}
|
|
|
|
|
|
Zzy.FBF.SpParamValueOfActor = function(actor,spParamId,target)
|
|
|
{
|
|
|
var formula = undefined;
|
|
|
var useArr = $gameSystem.GetZzyFBFActorFieldUseArr(actor.actorId());
|
|
|
var spValue = 0;
|
|
|
|
|
|
for(var i=0;i<useArr.length;i++)
|
|
|
{
|
|
|
var item = useArr[i];
|
|
|
if(item.zzyFBF.spParam[spParamId] !== undefined)
|
|
|
{
|
|
|
formula = item.zzyFBF.spParam[spParamId];
|
|
|
spValue += $gameSystem.EvalZzyFBFFormula1(formula,actor,target);
|
|
|
spValue = spValue ? spValue : 0;
|
|
|
}
|
|
|
}
|
|
|
return spValue;
|
|
|
}
|
|
|
|
|
|
Zzy.FBF.SpParamPerValueOfActor = function(actor,spParamId,srcParam,target)
|
|
|
{
|
|
|
srcParam = srcParam ? srcParam : 0;
|
|
|
var formula = undefined;
|
|
|
var useArr = $gameSystem.GetZzyFBFActorFieldUseArr(actor.actorId());
|
|
|
var spValuePer = 0;
|
|
|
|
|
|
for(var i=0;i<useArr.length;i++)
|
|
|
{
|
|
|
var item = useArr[i];
|
|
|
if(item.zzyFBF.spParamPer[spParamId] !== undefined)
|
|
|
{
|
|
|
formula = item.zzyFBF.spParamPer[spParamId];
|
|
|
spValuePer += $gameSystem.EvalZzyFBFFormula1(formula,actor,target);
|
|
|
spValuePer = spValuePer ? spValuePer : 0;
|
|
|
}
|
|
|
}
|
|
|
return srcParam*spValuePer*0.01;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//-----------------------------------------------Zzy.FBF.Function------------------------------------------
|
|
|
|
|
|
|
|
|
Zzy.FBF.EnableMenu = function(enable)
|
|
|
{
|
|
|
$gameSystem.SetZzyFBFEnableMenu(enable);
|
|
|
}
|
|
|
|
|
|
Zzy.FBF.InsertMenu = function(enable)
|
|
|
{
|
|
|
$gameSystem.SetZzyFBFInsertMenu(enable);
|
|
|
}
|
|
|
|
|
|
Zzy.FBF.CommandName = function(commandText)
|
|
|
{
|
|
|
$gameSystem.SetZzyFBFMenuCommandName(commandText);
|
|
|
}
|
|
|
|
|
|
Zzy.FBF.EnableSMenu = function(enable)
|
|
|
{
|
|
|
$gameSystem.SetZzyFBFEnableSMenu(enable);
|
|
|
}
|
|
|
|
|
|
Zzy.FBF.InsertSMenu = function(enable)
|
|
|
{
|
|
|
$gameSystem.SetZzyFBFInsertSMenu(enable);
|
|
|
}
|
|
|
|
|
|
Zzy.FBF.SCommandName = function(commandText)
|
|
|
{
|
|
|
$gameSystem.SetZzyFBFSMenuCommandName(commandText);
|
|
|
}
|
|
|
|
|
|
Zzy.FBF.OpenActor = function(actorId)
|
|
|
{
|
|
|
Zzy.FBF.OpenFieldOfActor(actorId);
|
|
|
}
|
|
|
|
|
|
Zzy.FBF.OpenParty = function(index)
|
|
|
{
|
|
|
Zzy.FBF.OpenFieldOfParty(index);
|
|
|
}
|
|
|
|
|
|
Zzy.FBF.EnableActorFB = function(enable)
|
|
|
{
|
|
|
$gameSystem.SetZzyFBFEnableActorFB(enable);
|
|
|
}
|
|
|
|
|
|
Zzy.FBF.MaxCount = function(formula)
|
|
|
{
|
|
|
$gameSystem.SetZzyFBFMaxFieldCount(formula);
|
|
|
}
|
|
|
|
|
|
Zzy.FBF.CurrentCount = function(formula)
|
|
|
{
|
|
|
$gameSystem.SetZzyFBFCurrentFieldCount(formula);
|
|
|
}
|
|
|
|
|
|
Zzy.FBF.MemoryCount = function(count)
|
|
|
{
|
|
|
$gameSystem.SetZzyFBFMemoryCount(count);
|
|
|
}
|
|
|
|
|
|
Zzy.FBF.ForceUnInstallAll = function(actorId)
|
|
|
{
|
|
|
$gameSystem.ZzyFBFForceUnInstallAll(actorId);
|
|
|
}
|
|
|
|
|
|
|