查看: 18546|回复: 27

[搬运汉化] 被动技能插件dsPassiveSkill汉化版

[复制链接]
梦石
0
星屑
3938
在线时间
444 小时
注册时间
2019-3-3
回帖
80
发表于 2019-8-7 22:29:07 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 多卡多卡 于 2019-8-7 22:55 编辑

这是以前一个在日站上找到的插件,然后为了使用方便就汉化了一下,同时加了一些私货进去,比如原版没有的道具掉率,金钱掉率,属性攻击,治疗量,TP上限等也可以作为被动技能的效果。
使用方法:
1.技能类型中多加一个被动技能类型
搜狗截图20190807221402.png
2.插件参数中把参数调至与技能类型的编号相同,该类型技能战斗外可见,而战斗中将会被隐藏
搜狗截图20190807221425.png
搜狗截图20190807222746.png 搜狗截图20190807221758.png 搜狗截图20190807221657.png
3.在技能的注释栏填入相应的文字
搜狗截图20190807221530.png
4.如果是纯被动技能,则还需要把技能的范围和使用场合做如下调整,同时技能类型一定要调成你选择的类型。
如果是拥有被动效果的主动技能则不需要进行调整,技能类型保持原样即可。
搜狗截图20190807222404.png
dsPassiveSkill.zip (5.58 KB, 下载次数: 1198)
这个东西和主题无关,想要的可以拿去用↓
把逃跑按钮塞进去的MOG_BattleCommands.zip (132.72 KB, 下载次数: 368)



评分

参与人数 8赞 +8 收起 理由
woliebe + 1 精品文章
xiri2019 + 1 我很赞同
kmyxyjyld + 1 精品文章
一梦如是 + 1 我很赞同
mog-yep + 1 精品文章
apeont + 1 精品文章
脚本盲 + 1 我很赞同
白嫩白嫩的 + 1 精品文章

查看全部评分

梦石
0
星屑
22879
在线时间
8598 小时
注册时间
2011-12-31
回帖
3270
发表于 2019-8-7 22:43:02 | 显示全部楼层
最新版dsPassiveSkill.jsver1.11.1
MITライセンス
dsPassiveSkill00.png
[fold=dsPassiveSkill.jsver1.11.1][pre lang="javascript"]//==============================================================================
// dsPassiveSkill.js
// Copyright (c) 2015 - 2019 DOURAKU
// Released under the MIT License.
// http://opensource.org/licenses/mit-license.php
//==============================================================================

/*:
* @plugindesc パッシブスキルを実装するプラグイン ver1.11.1
* @author 道楽
*
* @param Show Battle
* @desc パッシブスキルを戦闘中に表示するか
* (true なら表示する / false なら表示しない)
* @default true
* @type boolean
*
* @param Show Battle Switch ID
* @desc 戦闘中のパッシブスキル表示を制御するスイッチのID
* (0なら「Show Battle」の設定に従う)
* @default 0
* @type number
*
* @help
* このプラグインは以下のメモタグの設定ができます。
*
* -----------------------------------------------------------------------------
* スキルに設定するメモタグ
*
* --------
* ・装備できる武器の種類を追加(Equip Weapon)
* <passiveEWPN[武器タイプ]>
*  [武器タイプ] - 武器タイプの番号を2桁の数値で設定する。(数字)
*
* --------
* ・装備できる防具の種類を追加(Equip Armor)
* <passiveEARM[防具タイプ]>
*  [防具タイプ] - 防具タイプの番号を2桁の数値で設定する。(数字)
*
* --------
* ・特定の通常能力値をアップ(Parameter Boost)
* <passivePBST[能力値番号]:[上昇量(%)]>
*  [能力値番号] - 上昇させる通常能力値の番号を1桁の数値で設定する。(数字)
*                 0 - HP
*                 1 - MP
*                 2 - 攻撃力
*                 3 - 防御力
*                 4 - 魔法力
*                 5 - 魔法防御
*                 6 - 敏捷性
*                 7 - 運
*  [上昇量(%)]  - 能力値の上昇量。
*                 %ありなら倍率、なしなら直値となる。(数字)
*                 装備なし状態の能力値に対しての倍率がかかる。
*
* --------
* ・一定の条件下において、特定の通常能力値をアップ(Parameter Boost Ex)
* <passivePBSTEX[能力値番号]:[上昇量(%)],[参照する条件],[判定する値]>
*  [能力値番号]   - passivePBST参照
*  [上昇量(%)]    - passivePBST参照
*  [参照する条件] - 効果を発揮する条件を以下の中から設定する。(文字列)
*                   HPUP - HPが特定の値以上の場合に効果を発揮
*                   HPLW - HPが特定の値以下の場合に効果を発揮
*                   MPUP - MPが特定の値以上の場合に効果を発揮
*                   MPLW - MPが特定の値以下の場合に効果を発揮
*                   TPUP - TPが特定の値以上の場合に効果を発揮
*                   TPLW - TPが特定の値以下の場合に効果を発揮
*                   STAT - 特定のステートを受けている場合に効果を発揮
*  [判定する値]   - 条件の判定に使用するパーセンテージ。(数字)
*                   STATの場合はステート番号。(数字)
*
* 例) HP50%以下で攻撃力が50%アップするスキルを作成する場合
* <passivePBSTEX2:50%,HPUP,50>
*
* --------
* ・特定の追加能力値をアップ(XParameter Boost)
* <passiveXPBST[能力値番号]:[上昇量]>
*  [能力値番号] - 上昇させる追加能力値の番号を1桁の数値で設定する。(数字)
*                 0 - 命中率
*                 1 - 回避率
*                 2 - 会心率
*                 3 - 会心回避率
*                 4 - 魔法回避率
*                 5 - 魔法反射率
*                 6 - 反撃率
*                 7 - HP再生率
*                 8 - MP再生率
*                 9 - TP再生率
*  [上昇量]     - 能力値の上昇量。(数字)
*
* --------
* ・一定の条件下において、特定の追加能力値をアップ(XParameter Boost Ex)
* <passiveXPBSTEX[能力値番号]:[上昇量],[参照する条件],[判定する値]>
*  [能力値番号]   - passiveXPBST参照
*  [上昇量]       - passiveXPBST参照
*  [参照する条件] - passivePBSTEX参照
*  [判定する値]   - passivePBSTEX参照
*
* 例) MP最大時にHPが5%再生するスキルを作成する場合
* <passiveXPBSTEX7:5,MPUP,100>
*
* --------
* ・特定の特殊能力値をアップ(SParameter Boost)
* <passiveSPBST[能力値番号]:[上昇量]>
*  [能力値番号] - 上昇させる特殊能力値の番号を1桁の数値で設定する。(数字)
*                 0 - 狙われ率
*                 1 - 防御効果率
*                 2 - 回復効果率
*                 3 - 薬の知識率
*                 4 - MP消費率
*                 5 - TPチャージ率
*                 6 - 物理ダメージ率
*                 7 - 魔法ダメージ率
*                 8 - 床ダメージ率
*                 9 - 経験値獲得率
*  [上昇量]     - 能力値の上昇量。(数字)
*
* --------
* ・一定の条件下において、特定の追加能力値をアップ(XParameter Boost Ex)
* <passiveSPBSTEX[能力値番号]:[上昇量],[参照する条件],[判定する値]>
*  [能力値番号]   - passiveSPBST参照
*  [上昇量]       - passiveSPBST参照
*  [参照する条件] - passivePBSTEX参照
*  [判定する値]   - passivePBSTEX参照
*
* 例) TPが50%以上の時に狙われやすくするスキルを作成する場合
* <passiveSPBSTEX0:50,TPUP,50>
*
* --------
* ※更新に伴い非推奨 (passivePBSTEXを使用してください)
* ・一定のHP以下の場合のみ特定の通常能力値をアップ(Indomitable)
* <passiveINDM[能力値番号]:[HP残量率],[上昇量(%)]>
*  [能力値番号] - passivePBST参照
*  [HP残量率]   - 効果が発揮されるHPの残量率を%で設定する。(数字)
*  [上昇量(%)]  - 能力値の上昇量。
*                 %ありなら倍率、なしなら直値となる。(数字)
*                 装備なし状態の能力値に対しての倍率がかかる。
*
* --------
* ※更新に伴い非推奨 (passiveXPBSTEXを使用してください)
* ・一定のHP以下の場合のみ特定の追加能力値をアップ(XIndomitable)
* <passiveXINDM[能力値番号]:[HP残量率],[上昇量]>
*  [能力値番号] - passiveXPBST参照
*  [HP残量率]   - 効果が発揮されるHPの残量率を%で設定する。(数字)
*  [上昇量]     - 能力値の上昇量。(数字)
*
* --------
* ※更新に伴い非推奨 (passiveSPBSTEXを使用してください)
* ・一定のHP以下の場合のみ特定の特殊能力値をアップ(SIndomitable)
* <passiveSINDM[能力値番号]:[HP残量率],[上昇量]>
*  [能力値番号] - passiveSPBST参照
*  [HP残量率]   - 効果が発揮されるHPの残量率を%で設定する。(数字)
*  [上昇量]     - 能力値の上昇量。(数字)
*
* --------
* ・属性有効度を設定(Element Rate)
* <passiveELEM[属性番号]:[倍率]>
*  [属性番号] - 有効度を設定する属性の番号を2桁の数値で設定する。(数字)
*  [有効度]   - 有効度を表すパーセンテージ。(数字)
*               職業等で設定されている属性有効度に乗算されます。
*
* --------
* ・ステート有効度を設定(State Rate)
* <passiveSTAT[ステート番号]:[有効度]>
*  [ステート番号] - 耐性を上昇させるステートの番号を4桁の数値で設定する。(数字)
*  [有効度]       - 有効度を表すパーセンテージ。(数字)
*                   職業等で設定されているステート有効度に乗算されます。
*
* --------
* ・無効化できるステートを追加(State Regist)
* <passiveSTREG[ステート番号]>
*  [ステート番号] - 無効化できるステートの番号を4桁の数値で設定する。(数字)
*
* --------
* ・攻撃時ステートを設定(Attack State)
* <passiveATKST[ステート番号]:[付与率]>
*  [ステート番号] - 攻撃時に付与するステートの番号を4桁の数値で設定する。(数字)
*  [付与率]       - 付与率を表すパーセンテージ。(数字)
*                   職業等で設定されているステート付与率に加算されます。
*
* --------
* ・スキルタイプ追加(Add Skill Type)
* <passiveAST[スキルタイプ番号]>
*  [スキルタイプ番号] - スキルタイプの番号を2桁の数値で設定する。(数字)
*
* --------
* ・武器装備時の通常能力値の上昇量をアップ(Weapon Mastery)
* <passiveWPNM[武器タイプ]:[上昇量(%)]>
*  [武器タイプ] - 武器タイプの番号を2桁の数値で設定する。(数字)
*  [上昇量(%)]  - 装備時の能力値の上昇量。
*                 %ありなら倍率、なしなら直値となる。(数字)
*
* --------
* ・武器装備時の追加能力値の上昇量をアップ(Weapon MasteryX)
* <passiveWPNMX[武器タイプ]:[上昇量(%)]>
*  [武器タイプ] - 武器タイプの番号を2桁の数値で設定する。(数字)
*  [上昇量(%)]  - 装備時の能力値の上昇量。
*                 %ありなら倍率、なしなら直値となる。(数字)
*
* --------
* ・武器装備時の特殊能力値の上昇量をアップ(Weapon MasteryS)
* <passiveWPNMS[武器タイプ]:[上昇量(%)]>
*  [武器タイプ] - 武器タイプの番号を2桁の数値で設定する。(数字)
*  [上昇量(%)]  - 装備時の能力値の上昇量。
*                 %ありなら倍率、なしなら直値となる。(数字)
*                 (倍率は100%を基準として計算されます)
*
* --------
* ・武器装備時に特定の通常能力値をアップ(Weapon Parameter Boost)
* <passiveWPBST[武器タイプ]_[能力値番号]:[上昇量]>
*  [武器タイプ] - 武器タイプの番号を2桁の数値で設定する。(数字)
*  [能力値番号] - 上昇させる通常能力値の番号を1桁の数値で設定する。(数字)
*                 0 - HP
*                 1 - MP
*                 2 - 攻撃力
*                 3 - 防御力
*                 4 - 魔法力
*                 5 - 魔法防御
*                 6 - 敏捷性
*                 7 - 運
*  [上昇量]     - 装備時の能力値の上昇量。(数字)
*
* --------
* ・武器装備時に特定の追加能力値をアップ(Weapon XParameter Boost)
* <passiveWXPBST[武器タイプ]_[能力値番号]:[上昇量]>
*  [武器タイプ] - 武器タイプの番号を2桁の数値で設定する。(数字)
*  [能力値番号] - 上昇させる追加能力値の番号を1桁の数値で設定する。(数字)
*                 0 - 命中率
*                 1 - 回避率
*                 2 - 会心率
*                 3 - 会心回避率
*                 4 - 魔法回避率
*                 5 - 魔法反射率
*                 6 - 反撃率
*                 7 - HP再生率
*                 8 - MP再生率
*                 9 - TP再生率
*  [上昇量]     - 装備時の能力値の上昇量。(数字)
*
* --------
* ・武器装備時に特定の特殊能力値をアップ(Weapon SParameter Boost)
* <passiveWSPBST[武器タイプ]_[能力値番号]:[上昇量]>
*  [武器タイプ] - 武器タイプの番号を2桁の数値で設定する。(数字)
*  [能力値番号] - 上昇させる特殊能力値の番号を1桁の数値で設定する。(数字)
*                 0 - 狙われ率
*                 1 - 防御効果率
*                 2 - 回復効果率
*                 3 - 薬の知識率
*                 4 - MP消費率
*                 5 - TPチャージ率
*                 6 - 物理ダメージ率
*                 7 - 魔法ダメージ率
*                 8 - 床ダメージ率
*                 9 - 経験値獲得率
*  [上昇量]     - 装備時の能力値の上昇量。(数字)
*
* --------
* ・防具装備時の通常能力値をアップ(Armor Mastery)
* <passiveARMM[防具タイプ]:[上昇量(%)]>
*  [防具タイプ] - 防具タイプの番号を2桁の数値で設定する。(数字)
*  [上昇量(%)]  - 装備時の能力値の上昇量。
*                 %ありなら倍率、なしなら直値となる。(数字)
*
* --------
* ・防具装備時の追加能力値の上昇量をアップ(Armor MasteryX)
* <passiveARMMX[防具タイプ]:[上昇量(%)]>
*  [防具タイプ] - 防具タイプの番号を2桁の数値で設定する。(数字)
*  [上昇量(%)]  - 装備時の能力値の上昇量。
*                 %ありなら倍率、なしなら直値となる。(数字)
*
* --------
* ・防具装備時の特殊能力値の上昇量をアップ(Armor MasteryS)
* <passiveARMMS[防具タイプ]:[上昇量(%)]>
*  [防具タイプ] - 防具タイプの番号を2桁の数値で設定する。(数字)
*  [上昇量(%)]  - 装備時の能力値の上昇量。
*                 %ありなら倍率、なしなら直値となる。(数字)
*                 (倍率は100%を基準として計算されます)
*
* --------
* ・防具装備時に特定の通常能力値をアップ(Armor Parameter Boost)
* <passiveARBST[防具タイプ]_[能力値番号]:[上昇量]>
*  [防具タイプ] - 防具タイプの番号を2桁の数値で設定する。(数字)
*  [能力値番号] - 上昇させる通常能力値の番号を1桁の数値で設定する。(数字)
*                 0 - HP
*                 1 - MP
*                 2 - 攻撃力
*                 3 - 防御力
*                 4 - 魔法力
*                 5 - 魔法防御
*                 6 - 敏捷性
*                 7 - 運
*  [上昇量]     - 装備時の能力値の上昇量。(数字)
*
* --------
* ・防具装備時に特定の追加能力値をアップ(Armor XParameter Boost)
* <passiveAXPBST[防具タイプ]_[能力値番号]:[上昇量]>
*  [防具タイプ] - 防具タイプの番号を2桁の数値で設定する。(数字)
*  [能力値番号] - 上昇させる追加能力値の番号を1桁の数値で設定する。(数字)
*                 0 - 命中率
*                 1 - 回避率
*                 2 - 会心率
*                 3 - 会心回避率
*                 4 - 魔法回避率
*                 5 - 魔法反射率
*                 6 - 反撃率
*                 7 - HP再生率
*                 8 - MP再生率
*                 9 - TP再生率
*  [上昇量]     - 装備時の能力値の上昇量。(数字)
*
* --------
* ・防具装備時に特定の特殊能力値をアップ(Armor SParameter Boost)
* <passiveASPBST[防具タイプ]_[能力値番号]:[上昇量]>
*  [防具タイプ] - 防具タイプの番号を2桁の数値で設定する。(数字)
*  [能力値番号] - 上昇させる特殊能力値の番号を1桁の数値で設定する。(数字)
*                 0 - 狙われ率
*                 1 - 防御効果率
*                 2 - 回復効果率
*                 3 - 薬の知識率
*                 4 - MP消費率
*                 5 - TPチャージ率
*                 6 - 物理ダメージ率
*                 7 - 魔法ダメージ率
*                 8 - 床ダメージ率
*                 9 - 経験値獲得率
*  [上昇量]     - 装備時の能力値の上昇量。(数字)
*
* --------
* ・先制攻撃率をアップ(Preemptive)
* <passivePREE:[上昇量]>
*  [上昇量] - 先制攻撃率のアップ率を%で設定する。(数字)
*
* --------
* ・不意打ち率をダウン(Anti Surprise)
* <passiveASUP:[下降量]>
*  [下降量] - 不意打ち率のダウン率を%で設定する。(数字)
*
* --------
* ・二刀流を有効にする(Dual Wield)
* <passiveDUAL>
*
* --------
* ・行動回数を追加する(Action Plus)
* <passiveAPLUS:[追加確率]>
*  [追加確率(%)] - 行動を追加する確率を表すパーセンテージ。(数字)
*
* --------
* ・自動戦闘を有効にする(Auto Battle)
* <passiveAUTO>
*
* --------
* ・防御を有効にする(Guard)
* <passiveGUARD>
*
* --------
* ・身代わり状態にする(Substitute)
* <passiveSUBS>
*
* --------
* ・TP持ち越しを有効にする(Preserve Tp)
* <passivePRETP>
*
*/

var Imported = Imported || {};
Imported.dsPassiveSkill = true;

(function (exports) {
        'use strict';

        exports.Param = (function() {
                var ret = {};
                var parameters = PluginManager.parameters('dsPassiveSkill');
                ret.ShowBattle = Boolean(parameters['Show Battle'] === 'true' || false);
                ret.ShowBattleSwitchId = Number(parameters['Show Battle Switch ID']);
                return ret;
        })();

        //--------------------------------------------------------------------------
        /** Utility */
        function Utility() {}

        Utility.calcParamBoost = function(baseParam, metaData)
        {
                var ret = 0;
                var re = /([-]?\d+)(%?)/i;
                var match = re.exec(metaData);
                if ( match )
                {
                        if ( match[2] === '%' )
                        {
                                var rate = Number(match[1]) * 0.01;
                                ret = Math.floor(baseParam * rate);
                        }
                        else
                        {
                                ret = Number(match[1]);
                        }
                }
                return ret;
        };

        Utility.calcXParamBoost = function(metaData)
        {
                var ret = 0;
                var re = /([-]?\d+)/i;
                var match = re.exec(metaData);
                if ( match )
                {
                        ret = Number(match[1]) * 0.01;
                }
                return ret;
        };

        Utility.calcSParamBoost = function(metaData)
        {
                var ret = 0;
                var re = /([-]?\d+)/i;
                var match = re.exec(metaData);
                if ( match )
                {
                        ret = Number(match[1]) * 0.01;
                }
                return ret;
        };

        Utility.calcMastery = function(baseParam, metaData)
        {
                var ret = 0;
                var re = /([-]?\d+)(%?)/i;
                var match = re.exec(metaData);
                if ( match )
                {
                        if ( match[2] === '%' )
                        {
                                var rate = Number(match[1]) * 0.01;
                                ret = Math.floor(baseParam * rate);
                        }
                        else
                        {
                                ret = Number(match[1]);
                        }
                }
                return ret;
        };

        Utility.calcMasteryX = function(baseParam, metaData)
        {
                var ret = 0;
                var re = /([-]?\d+)(%?)/i;
                var match = re.exec(metaData);
                if ( match )
                {
                        if ( match[2] === '%' )
                        {
                                var rate = Number(match[1]) * 0.01;
                                ret = baseParam * rate;
                        }
                        else
                        {
                                ret = Number(match[1]);
                        }
                }
                return ret;
        };

        Utility.calcMasteryS = function(baseParam, metaData)
        {
                var ret = 0;
                var re = /([-]?\d+)(%?)/i;
                var match = re.exec(metaData);
                if ( match )
                {
                        if ( match[2] === '%' )
                        {
                                var rate = Number(match[1]) * 0.01;
                                ret = (baseParam-1.0) * rate;
                        }
                        else
                        {
                                ret = Number(match[1]);
                        }
                }
                return ret;
        };

        //--------------------------------------------------------------------------
        /** Game_Actor */
        var _Game_Actor_initMembers = Game_Actor.prototype.initMembers;
        Game_Actor.prototype.refreshSkillTypes = function()
        {
                _Game_Actor_initMembers.call(this);
                this._psSkillTypes = [];
        };

        Game_Actor.prototype.refreshSkillTypes = function()
        {
                this._psSkillTypes = [];
                var skillTypesMax = $dataSystem.skillTypes.length;
                for ( var ii = 1; ii < skillTypesMax; ii++ )
                {
                        var tag = 'passiveAST' + ('00'+ii).slice(-2);
                        var find = false;
                        this.iteratePassiveSkill(tag, function(metaData) {
                                find = true;
                        });
                        if ( find )
                        {
                                this._psSkillTypes.push(ii);
                        }
                }
        };

        var _Game_Actor_refresh = Game_Actor.prototype.refresh;
        Game_Actor.prototype.refresh = function()
        {
                _Game_Actor_refresh.call(this);
                this.refreshSkillTypes();
        };

        var _Game_Actor_learnSkill = Game_Actor.prototype.learnSkill;
        Game_Actor.prototype.learnSkill = function(skillId)
        {
                var lastDualWield = this.isDualWield();
                _Game_Actor_learnSkill.call(this, skillId);
                if ( lastDualWield !== this.isDualWield() )
                {
                        this.refresh();
                }
                this.refreshSkillTypes();
        };

        Game_Actor.prototype.iteratePassiveSkill = function(metaName, callback)
        {
                this.skills().forEach(function(skill) {
                        if ( skill.meta[metaName] )
                        {
                                callback(skill.meta[metaName]);
                        }
                });
        };

        Game_Actor.prototype.evaluateCondition = function(condition, value)
        {
                var ret = false;
                switch ( condition )
                {
                case 'HPUP': ret = (this.hpRate() >= value * 0.01) ? true : false; break;
                case 'HPLW': ret = (this.hpRate() <= value * 0.01) ? true : false; break;
                case 'MPUP': ret = (this.mpRate() >= value * 0.01) ? true : false; break;
                case 'MPLW': ret = (this.mpRate() <= value * 0.01) ? true : false; break;
                case 'TPUP': ret = (this.tpRate() >= value * 0.01) ? true : false; break;
                case 'TPLW': ret = (this.tpRate() <= value * 0.01) ? true : false; break;
                case 'STAT': ret = this.isStateAffected(value);                    break;
                }
                return ret;
        };

        Game_Actor.prototype.itemTraitsWithId = function(item, code, dataId)
        {
                return item.traits.filter(function(trait) {
                        return trait.code === code && trait.dataId === dataId;
                });
        };

        Game_Actor.prototype.itemTraitsSum = function(item, code, id)
        {
                return this.itemTraitsWithId(item, code, id).reduce(function(r, trait) {
                        return r + trait.value;
                }, 0);
        };

        var _Game_Actor_paramBase = Game_Actor.prototype.paramBase;
        Game_Actor.prototype.paramBaseDirect = function(paramId)
        {
                return _Game_Actor_paramBase.call(this, paramId);
        };

        Game_Actor.prototype.paramBaseBoost = function(paramId)
        {
                var baseParam = this.paramBaseDirect(paramId);
                var ret = 0;
                var tagPBST = 'passivePBST' + ('0'+paramId).slice(-1);
                this.iteratePassiveSkill(tagPBST, function(metaData) {
                        ret += Utility.calcParamBoost(baseParam, metaData);
                });
                var tagPBSTEX = 'passivePBSTEX' + ('0'+paramId).slice(-1);
                this.iteratePassiveSkill(tagPBSTEX, function(metaData) {
                        var splitData = metaData.split(',');
                        if ( this.evaluateCondition(splitData[1], Number(splitData[2])) )
                        {
                                ret += Utility.calcParamBoost(baseParam, splitData[0]);
                        }
                }.bind(this));
                var tagINDM = 'passiveINDM' + ('0'+paramId).slice(-1);
                this.iteratePassiveSkill(tagINDM, function(metaData) {
                        var re = /(\d+)\,([-]?\d+)(%?)/i;
                        var match = re.exec(metaData);
                        if ( match )
                        {
                                if ( this.hpRate() <= Number(match[1]) * 0.01 )
                                {
                                        if ( match[3] === '%' )
                                        {
                                                var rate = Number(match[2]) * 0.01;
                                                ret += Math.floor(baseParam * rate);
                                        }
                                        else
                                        {
                                                ret += Number(match[2]);
                                        }
                                }
                        }
                }.bind(this));
                return ret;
        };

        Game_Actor.prototype.paramBase = function(paramId)
        {
                var ret = this.paramBaseDirect(paramId);
                ret += this.paramBaseBoost(paramId);
                return ret;
        };

        var _Game_Actor_paramPlus = Game_Actor.prototype.paramPlus;
        Game_Actor.prototype.paramPlusDirect = function(paramId)
        {
                return _Game_Actor_paramPlus.call(this, paramId);
        };

        Game_Actor.prototype.paramPlusBoost = function(paramId)
        {
                var ret = 0;
                this.equips().forEach(function(item) {
                        if ( item )
                        {
                                if ( DataManager.isWeapon(item) )
                                {
                                        if ( item.params[paramId] > 0 )
                                        {
                                                var tagWPNM = 'passiveWPNM' + ('00'+item.wtypeId).slice(-2);
                                                this.iteratePassiveSkill(tagWPNM, function(metaData) {
                                                        ret += Utility.calcMastery(item.params[paramId], metaData);
                                                });
                                        }
                                        var tagWPBST = 'passiveWPBST' + ('00'+item.wtypeId).slice(-2) + '_' + paramId;
                                        this.iteratePassiveSkill(tagWPBST, function(metaData) {
                                                ret += Number(metaData);
                                        });
                                }
                                else if ( DataManager.isArmor(item) )
                                {
                                        if ( item.params[paramId] > 0 )
                                        {
                                                var tagARMM = 'passiveARMM' + ('00'+item.atypeId).slice(-2);
                                                this.iteratePassiveSkill(tagARMM, function(metaData) {
                                                        ret += Utility.calcMastery(item.params[paramId], metaData);
                                                });
                                        }
                                        var tagAPBST = 'passiveAPBST' + ('00'+item.atypeId).slice(-2) + '_' + paramId;
                                        this.iteratePassiveSkill(tagAPBST, function(metaData) {
                                                ret += Number(metaData);
                                        });
                                }
                        }
                }, this);
                return ret;
        };

        Game_Actor.prototype.paramPlus = function(paramId)
        {
                var ret = this.paramPlusDirect(paramId);
                ret += this.paramPlusBoost(paramId);
                return ret;
        };

        var _Game_Actor_xparam = Game_Actor.prototype.xparam;
        Game_Actor.prototype.xparamDirect = function(xparamId)
        {
                return _Game_Actor_xparam.call(this, xparamId);
        };

        Game_Actor.prototype.xparam = function(xparamId)
        {
                var ret = this.xparamDirect(xparamId);
                var tagPBST = 'passiveXPBST' + ('0'+xparamId).slice(-1);
                this.iteratePassiveSkill(tagPBST, function(metaData) {
                        ret += Utility.calcXParamBoost(metaData);
                });
                var tagPBSTEX = 'passiveXPBSTEX' + ('0'+xparamId).slice(-1);
                this.iteratePassiveSkill(tagPBSTEX, function(metaData) {
                        var splitData = metaData.split(',');
                        if ( this.evaluateCondition(splitData[1], Number(splitData[2])) )
                        {
                                ret += Utility.calcXParamBoost(splitData[0]);
                        }
                }.bind(this));
                var tagINDM = 'passiveXINDM' + ('0'+xparamId).slice(-1);
                this.iteratePassiveSkill(tagINDM, function(metaData) {
                        var re = /(\d+)\,([-]?\d+)/i;
                        var match = re.exec(metaData);
                        if ( match )
                        {
                                if ( this.hpRate() <= Number(match[1]) * 0.01 )
                                {
                                        ret += Number(match[2]) * 0.01;
                                }
                        }
                }.bind(this));
                this.equips().forEach(function(item) {
                        if ( item )
                        {
                                var value = this.itemTraitsSum(item, Game_BattlerBase.TRAIT_XPARAM, xparamId);
                                if ( DataManager.isWeapon(item) )
                                {
                                        if ( value > 0 )
                                        {
                                                var tagWPNMX = 'passiveWPNMX' + ('00'+item.wtypeId).slice(-2);
                                                this.iteratePassiveSkill(tagWPNMX, function(metaData) {
                                                        ret += Utility.calcMasteryX(value, metaData);
                                                });
                                        }
                                        var tagWPBST = 'passiveWXPBST' + ('00'+item.wtypeId).slice(-2) + '_' + xparamId;
                                        this.iteratePassiveSkill(tagWPBST, function(metaData) {
                                                ret += Number(metaData) * 0.01;
                                        });
                                }
                                else if ( DataManager.isArmor(item) )
                                {
                                        if ( value > 0 )
                                        {
                                                var tagARMMX = 'passiveARMMX' + ('00'+item.atypeId).slice(-2);
                                                this.iteratePassiveSkill(tagARMMX, function(metaData) {
                                                        ret += Utility.calcMasteryX(value, metaData);
                                                });
                                        }
                                        var tagAPBST = 'passiveAXPBST' + ('00'+item.atypeId).slice(-2) + '_' + xparamId;
                                        this.iteratePassiveSkill(tagAPBST, function(metaData) {
                                                ret += Number(metaData) * 0.01;
                                        });
                                }
                        }
                }, this);
                return ret;
        };

        var _Game_Actor_sparam = Game_Actor.prototype.sparam;
        Game_Actor.prototype.sparamDirect = function(sparamId)
        {
                return _Game_Actor_sparam.call(this, sparamId);
        };

        Game_Actor.prototype.sparam = function(sparamId)
        {
                var ret = this.sparamDirect(sparamId);
                var tagPBST = 'passiveSPBST' + ('0'+sparamId).slice(-1);
                this.iteratePassiveSkill(tagPBST, function(metaData) {
                        ret += Utility.calcSParamBoost(metaData);
                });
                var tagPBSTEX = 'passiveSPBSTEX' + ('0'+sparamId).slice(-1);
                this.iteratePassiveSkill(tagPBSTEX, function(metaData) {
                        var splitData = metaData.split(',');
                        if ( this.evaluateCondition(splitData[1], Number(splitData[2])) )
                        {
                                ret += Utility.calcSParamBoost(splitData[0]);
                        }
                }.bind(this));
                var tagINDM = 'passiveSINDM' + ('0'+sparamId).slice(-1);
                this.iteratePassiveSkill(tagINDM, function(metaData) {
                        var re = /(\d+)\,([-]?\d+)/i;
                        var match = re.exec(metaData);
                        if ( match )
                        {
                                if ( this.hpRate() <= Number(match[1]) * 0.01 )
                                {
                                        ret += Number(match[2]) * 0.01;
                                }
                        }
                }.bind(this));
                this.equips().forEach(function(item) {
                        if ( item )
                        {
                                var value = this.itemTraitsSum(item, Game_BattlerBase.TRAIT_SPARAM, sparamId);
                                if ( DataManager.isWeapon(item) )
                                {
                                        if ( value > 0 )
                                        {
                                                var tagWPNMS = 'passiveWPNMS' + ('00'+item.wtypeId).slice(-2);
                                                this.iteratePassiveSkill(tagWPNMS, function(metaData) {
                                                        ret += Utility.calcMasteryS(value, metaData);
                                                });
                                        }
                                        var tagWPBST = 'passiveWSPBST' + ('00'+item.wtypeId).slice(-2) + '_' + sparamId;
                                        this.iteratePassiveSkill(tagWPBST, function(metaData) {
                                                ret += Number(metaData) * 0.01;
                                        });
                                }
                                else if ( DataManager.isArmor(item) )
                                {
                                        if ( value > 0 )
                                        {
                                                var tagARMMS = 'passiveARMMS' + ('00'+item.atypeId).slice(-2);
                                                this.iteratePassiveSkill(tagARMMS, function(metaData) {
                                                        ret += Utility.calcMasteryS(value, metaData);
                                                });
                                        }
                                        var tagAPBST = 'passiveASPBST' + ('00'+item.atypeId).slice(-2) + '_' + sparamId;
                                        this.iteratePassiveSkill(tagAPBST, function(metaData) {
                                                ret += Number(metaData) * 0.01;
                                        });
                                }
                        }
                }, this);
                return ret;
        };

        var _Game_Actor_elementRate = Game_Actor.prototype.elementRate;
        Game_Actor.prototype.elementRate = function(elementId)
        {
                var ret = _Game_Actor_elementRate.call(this, elementId);
                var tag = 'passiveELEM' + ('00'+elementId).slice(-2);
                this.iteratePassiveSkill(tag, function(metaData) {
                        var re = /([-]?\d+)/i;
                        var match = re.exec(metaData);
                        if ( match )
                        {
                                ret *= Number(match[1]) * 0.01;
                        }
                });
                return ret;
        };

        var _Game_Actor_stateRate = Game_Actor.prototype.stateRate;
        Game_Actor.prototype.stateRate = function(stateId)
        {
                var ret = _Game_Actor_stateRate.call(this, stateId);
                var tag = 'passiveSTAT' + ('0000'+stateId).slice(-4);
                this.iteratePassiveSkill(tag, function(metaData) {
                        var re = /([-]?\d+)/i;
                        var match = re.exec(metaData);
                        if ( match )
                        {
                                ret *= Number(match[1]) * 0.01;
                        }
                });
                return ret;
        };

        var _Game_Actor_stateResistSet = Game_Actor.prototype.stateResistSet;
        Game_Actor.prototype.stateResistSet = function()
        {
                var ret = _Game_Actor_stateResistSet.call(this);
                var num = $dataStates.length;
                for ( var ii = 1; ii < num; ii++ )
                {
                        var tag = 'passiveSTREG' + ('0000'+ii).slice(-4);
                        this.iteratePassiveSkill(tag, function(metaData) {
                                if ( !ret.contains(ii) )
                                {
                                        ret.push(ii);
                                }
                        });
                }
                return ret;
        };

        var _Game_Actor_attackStates = Game_Actor.prototype.attackStates;
        Game_Actor.prototype.attackStates = function()
        {
                var ret = _Game_Actor_attackStates.call(this);
                var num = $dataStates.length;
                for ( var ii = 1; ii < num; ii++ )
                {
                        var tag = 'passiveATKST' + ('0000'+ii).slice(-4);
                        this.iteratePassiveSkill(tag, function(metaData) {
                                if ( !ret.contains(ii) )
                                {
                                        ret.push(ii);
                                }
                        });
                }
                return ret;
        };

        var _Game_Actor_attackStatesRate = Game_Actor.prototype.attackStatesRate;
        Game_Actor.prototype.attackStatesRate = function(stateId)
        {
                var ret = _Game_Actor_attackStatesRate.call(this, stateId);
                var tag = 'passiveATKST' + ('0000'+stateId).slice(-4);
                this.iteratePassiveSkill(tag, function(metaData) {
                        var re = /([-]?\d+)/i;
                        var match = re.exec(metaData);
                        if ( match )
                        {
                                ret += Number(match[1]) * 0.01;
                        }
                });
                return ret;
        };

        var _Game_Actor_addedSkillTypes = Game_Actor.prototype.addedSkillTypes;
        Game_Actor.prototype.addedSkillTypes = function()
        {
                var ret = _Game_Actor_addedSkillTypes.call(this);
                if ( this._psSkillTypes )
                {
                        this._psSkillTypes.forEach(function(stype) {
                                if ( ret.indexOf(stype) < 0 )
                                {
                                        ret.push(stype);
                                }
                        });
                }
                return ret;
        };

        var _Game_Actor_isEquipWtypeOk = Game_Actor.prototype.isEquipWtypeOk;
        Game_Actor.prototype.isEquipWtypeOk = function(wtypeId)
        {
                var ret = _Game_Actor_isEquipWtypeOk.call(this, wtypeId);
                var tag = 'passiveEWPN' + ('00'+wtypeId).slice(-2);
                this.iteratePassiveSkill(tag, function(metaData) {
                        ret = true;
                });
                return ret;
        };

        var _Game_Actor_isEquipAtypeOk = Game_Actor.prototype.isEquipAtypeOk;
        Game_Actor.prototype.isEquipAtypeOk = function(atypeId)
        {
                var ret = _Game_Actor_isEquipAtypeOk.call(this, atypeId);
                var tag = 'passiveEARM' + ('00'+atypeId).slice(-2);
                this.iteratePassiveSkill(tag , function(metaData) {
                        ret = true;
                });
                return ret;
        };

        var _Game_Actor_isDualWield = Game_Actor.prototype.isDualWield;
        Game_BattlerBase.prototype.isDualWield = function()
        {
                var ret = _Game_Actor_isDualWield.call(this);
                var tag = 'passiveDUAL';
                this.iteratePassiveSkill(tag, function(metaData) {
                        ret = true;
                });
                return ret;
        };

        var _Game_Actor_actionPlusSet = Game_Actor.prototype.actionPlusSet;
        Game_Actor.prototype.actionPlusSet = function()
        {
                var ret = _Game_Actor_actionPlusSet.call(this);
                var tag = 'passiveAPLUS';
                this.iteratePassiveSkill(tag, function(metaData) {
                        var re = /(\d+)/i;
                        var match = re.exec(metaData);
                        if ( match )
                        {
                                ret.push(Number(match[1]) * 0.01);
                        }
                });
                return ret;
        };

        var _Game_Actor_isAutoBattle = Game_Actor.prototype.isAutoBattle;
        Game_Actor.prototype.isAutoBattle = function()
        {
                var ret = _Game_Actor_isAutoBattle.call(this);
                var tag = 'passiveAUTO';
                this.iteratePassiveSkill(tag, function(metaData) {
                        ret = true;
                });
                return ret;
        };

        var _Game_Actor_isGuard = Game_Actor.prototype.isGuard;
        Game_Actor.prototype.isGuard = function()
        {
                var ret = _Game_Actor_isGuard.call(this);
                if ( this.canMove() )
                {
                        var tag = 'passiveGUARD';
                        this.iteratePassiveSkill(tag, function(metaData) {
                                ret = true;
                        });
                }
                return ret;
        };

        var _Game_Actor_isSubstitute = Game_Actor.prototype.isSubstitute;
        Game_Actor.prototype.isSubstitute = function()
        {
                var ret = _Game_Actor_isSubstitute.call(this);
                if ( this.canMove() )
                {
                        var tag = 'passiveSUBS';
                        this.iteratePassiveSkill(tag, function(metaData) {
                                ret = true;
                        });
                }
                return ret;
        };

        var _Game_Actor_isPreserveTp = Game_Actor.prototype.isPreserveTp;
        Game_Actor.prototype.isPreserveTp = function(flagId)
        {
                var ret = _Game_Actor_isPreserveTp.call(this);
                var tag = 'passivePRETP';
                this.iteratePassiveSkill(tag, function(metaData) {
                        ret = true;
                });
                return ret;
        };

        //--------------------------------------------------------------------------
        /** Game_Party */
        var _Game_Party_ratePreemptive = Game_Party.prototype.ratePreemptive;
        Game_Party.prototype.ratePreemptive = function(troopAgi)
        {
                var rate = _Game_Party_ratePreemptive.call(this, troopAgi);
                this.battleMembers().some(function(actor) {
                        actor.iteratePassiveSkill('passivePREE', function(metaData) {
                                rate += Number(metaData) * 0.01;
                        });
                });
                return rate.clamp(0.0, 1.0);
        };

        var _Game_Party_rateSurprise = Game_Party.prototype.rateSurprise;
        Game_Party.prototype.rateSurprise = function(troopAgi)
        {
                var rate = _Game_Party_rateSurprise.call(this, troopAgi);
                this.battleMembers().some(function(actor) {
                        actor.iteratePassiveSkill('passiveASUP', function(metaData) {
                                rate -= Number(metaData) * 0.01 * rate;
                        });
                });
                return rate.clamp(0.0, 1.0);
        };

        //--------------------------------------------------------------------------
        /** Window_BattleSkill */
        var _Window_BattleSkill_includes = Window_BattleSkill.prototype.includes;
        Window_BattleSkill.prototype.includes = function(item)
        {
                if ( !this.showPassiveSkill() )
                {
                        if ( item )
                        {
                                var re = /<passive/;
                                if ( re.test(item.note) )
                                {
                                        return false;
                                }
                        }
                }
                return _Window_BattleSkill_includes.call(this, item);
        };

        Window_BattleSkill.prototype.showPassiveSkill = function()
        {
                if ( exports.Param.ShowBattleSwitchId > 0 )
                {
                        return $gameSwitches.value(exports.Param.ShowBattleSwitchId);
                }
                else
                {
                        return exports.Param.ShowBattle;
                }
        };

}((this.dsPassiveSkill = this.dsPassiveSkill || {})));
[/pre][/fold]
回复

使用道具 举报

梦石
0
星屑
6808
在线时间
461 小时
注册时间
2012-2-19
回帖
37
发表于 2019-9-2 12:46:28 | 显示全部楼层
这插件跟yep的某个插件冲突了,不生效

点评

发现不管说什么只要配上滑稽的头像,感觉就像在开玩笑,哈哈哈  发表于 2019-9-2 17:35
回复

使用道具 举报

梦石
0
星屑
206
在线时间
27 小时
注册时间
2019-6-13
回帖
25
发表于 2020-3-8 13:47:41 | 显示全部楼层
说实话 有点没看懂怎用
回复

使用道具 举报

梦石
0
星屑
89
在线时间
11 小时
注册时间
2020-3-21
回帖
10
发表于 2020-3-21 19:04:21 | 显示全部楼层
谢谢,正要找这个
回复

使用道具 举报

梦石
0
星屑
576
在线时间
234 小时
注册时间
2015-7-21
回帖
24
发表于 2020-4-23 21:54:48 | 显示全部楼层
请问这个插件不卡吧?比YEP的被动更好吗
回复

使用道具 举报

梦石
0
星屑
17
在线时间
5 小时
注册时间
2020-8-2
回帖
16
发表于 2020-8-5 13:03:50 | 显示全部楼层
6666感谢
回复

使用道具 举报

梦石
0
星屑
68
在线时间
6 小时
注册时间
2020-9-21
回帖
5
发表于 2020-12-31 15:24:19 | 显示全部楼层
谢谢分享
回复

使用道具 举报

梦石
0
星屑
103
在线时间
12 小时
注册时间
2020-5-20
回帖
24
发表于 2021-1-18 21:59:06 | 显示全部楼层
谢谢分享
回复

使用道具 举报

梦石
0
星屑
218
在线时间
23 小时
注册时间
2021-1-10
回帖
9
发表于 2021-1-24 05:48:16 | 显示全部楼层
passiveATKST这个效果貌似只能普通攻击时候附带效果诶,有没有技能也能用的?
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部