Project1

标题: 法力护盾/吸血/自动复活/防秒杀/动态装备/光环等... [打印本页]

作者: 暴走的露露    时间: 2023-7-2 22:51
标题: 法力护盾/吸血/自动复活/防秒杀/动态装备/光环等...
本帖最后由 暴走的露露 于 2023-8-14 16:13 编辑

感谢Zeldashu大佬汉化和分享的Triacontane一系列MZ插件,
和一些其他MZ插件的作者和网站。
许多都十分实用。
现在追加/提供/分享一些个人喜欢的插件汉化和用法心得,希望对大伙有用。


汉化大佬:Zeldashu及一众前辈大佬
论坛链接1:大佬的三十烷插件汉化分享帖
论坛链接2:大佬分享的MZ插件汇总网站

--------------------------------------------------------------------------------------------------------------------------------------

【Triacontane(三十烷)的MZ插件汉化·第二波】 >>>论坛链接<<<

击杀奖励,暴击拓展,装备可操作变量


--------------------------------------------------------------------------------------------------------------------------------------

【Triacontane(三十烷)的MZ插件汉化·第一波】

【三十烷 DrainExtend 吸收类技能拓展】
插件功能:设置吸收类技能可以吸收的HP/MP/TP的百分比
具体用法:
1.首先在插件参数设置一组吸收拓展效果。指定ID和吸血吸蓝等比例。
2.将技能或物品的伤害类型设置为吸血或吸蓝,然后在备注栏输入命令:<DrainEx:拓展效果ID>
3.还可以设置吸收成功率,如XX=50=50%:<DrainRate:XX>
4.吸收拓展效果还可以设置突破目标剩余血量蓝量的限制、提示信息和播放音效等。
5.本插件需要PluginCommonBase.js支持,在列表中放于吸血插件之上。

搜索用关键词:吸血,吸蓝,吸特技值,吸星大法?


【三十烷 AutoRaise 自动复活】
插件功能:
1. 在武器或防具的备注栏输入命令,并佩戴装备后,可以自动复活。
可以设置复活是否失去装备,同时可以设置复活次数、复活血量、复活需要消耗的MP/TP、复活几率。
2. 在状态的备注栏输入命令,可以自动复活。
可以设置复活后解除该状态,同时可以设置复活次数、复活血量、复活需要消耗的MP/TP、复活几率。
3. 还有一些测试中遇到的特殊情况,请见插件内说明。
如,设置2次以上复活次数时,实际复活次数会-1次。原作者的说明,原因不明。

搜索用关键词:自动复活复活甲,重生十字章,信春哥???


【三十烷 DynamicEquipParam 装备能力动态化】
插件功能:
1.通过在武器或防具的备注栏输入指令,来获得能力值的动态化。(例如等级越高,攻击力越高之类的设置)
2.使用JS公式来设计动态化公式。(例如技能伤害公式那样)
3.不同装备之间的动态公式带来的能力变化不会互相计算在内。
举例:自身果体攻击力100,武器/状态各+10。那么a.atk=120(卸下装备和解除状态后就是100)
就算其他装备有1000条动态公式加到最终1w的攻击力,基础atk都是按120计算。


搜索用关键词:装备能力动态化可成长装备可进化装备,魔兽世界传家宝,村正妖刀?,能力越大责任越大???


【三十烷 TraitTotalization 特性效果全队化】
插件功能:
1.使指定的状态和装备特性适用于整个团队。
2.在你需要的设置的备注栏中输入命令<TraitTotal> ,可以是角色、职业、敌人、武器或者状态。
  如果我要做一个共享特性的状态,我就在这个状态的备注栏加<TraitTotal> 。
3.只会全队化特性里设置的效果,其他设置、装备能力加成或其他参数均不会影响其他队员。
4.当持有重复相同的全队化状态或特性时,特性效果不会重叠。
5.只有获得全队化特性的角色有状态图标和提示信息,其他只受到影响的不会有图标和信息提示。
6.可以通过插件设置全队化特性只影响战斗成员或同时影响所有战斗和非战斗成员。
7.使用此插件需要基础插件“PluginCommonBase.js”。
  “PluginCommonBase.js”位于RPG Maker MZ的安装文件夹中:
  dlc/BasicResources/plugins/official

用法心得:制作光环技能

搜索用关键词:特性全队化,光环技能

一、设置一个光环用的状态,添加特性,备注“全队化”,用技能施放给某个角色。
二、角色存活时,全队获得光环效果。当该角色阵亡,光环消失,其他角色的光环效果也消失。


【三十烷 EquipConditionExtend 装备条件拓展】
插件功能:
本插件Zeldashu大佬已汉化,仅搬运和分享用法心得。
通过在武器/防具的备注栏输入对应的备注命令
使角色符合条件时,可以使用或禁用某些武器和装备
1.持有技能 <ECE_Skill:id>
2.持有状态 <ECE_State:id>
3.开关打开 <ECE_Switch:id1, id2>
4.角色编号 <ECE_Actor:id>
5.某个公式条件(没搞懂怎么用)<ECE_Formula:f> //JS公式[f]返回true
备注1:id正数时是符合条件后可以装备,设置负数则符合条件时不能装备。
备注2:每种条件可以多个(id1, id2, id3),符合其中一个即可。

备注3:MV插件,MZ可用,兼容性未知。

用法心得:二刀流时禁用部分双手武器

搜索用关键词:禁用武器,二刀流,双持武器,双手武器

一、设置一个技能作为被动技能「武器专精-二刀流」(如果技能编号是2)
二、设置一个防具,装备时可以使用二刀流(特性设置)和习得技能二刀流(自定义技能)
三、在需要禁用的武器(如长弓)备注栏输入<ECE_Skill:-2>

最终效果:当获得二刀流技能和能力时,角色不能再装备弓。

我的使用情景如下:
我的角色是游侠,主职弓箭手。
有时候也需要双持小刀进行近战。
如果直接二刀流会出现可以双持长弓的尴尬状态。
用上述方法设置,当我装备刺客专精饰品时,
我的游侠则从弓箭手变身为双刀刺客。
就可以在不改变职业的情况下,
通过切换装备来达到禁用一些武器的效果!


--------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------

【其它作者的一些实用插件汉化】
插件主要来源:MZ Tkool Plugin Post 或对应作者官网

【Yana的永久状态】
>>>链接<<< 指定的状态不会因为角色死亡或完全恢复而解除

【NRP的新增自定义载具】
>>>链接<<< 新增自定义载具:汽车、陆行鸟、新的大船/飞艇等

【PANDA_SwitchStateTraits 状态敌我效果区分】  使用条款 MIT
相同状态施加在角色或敌人身上有不同的效果。在状态备注栏中输入命令。
1. <traitsOnlyActor:n> 第N条特性只对角色生效。(按特性列表顺序,下同)
2. <traitsOnlyEnemy:n1,n2> 第N1和N2条特性只对敌人生效。
3. 可以用","分隔来多选。
4. 没有指定的特效则对双方生效。

【流浪汤姆的AdditionalDrops 追加战利品掉落】
物品掉落不是100%时报错。
估计是比较早期的插件和现在MZ的文件有冲突。
请自行测试和自行决定是否使用。

更新:修复版请见评论区置顶帖~

------------------------------------------------------------------------------------------------------------------------------------------------------

【NUUN_StoppingFeature 防秒杀机制】  使用条款 MIT
通过设置,使目标在符合条件时不会被一击秒杀,保留1点HP。敌我有效。
一、在任何有特性的备注栏内输入:
1. <Stopping:XX, YY> 当血量在YY%以上时,有XX%几率触发防秒杀机制。
举例1:<Stopping:100, 30> 当HP在30%以上时遭到秒杀时,会100%触发防秒杀机制,使HP保留1点。
举例2:<Stopping:50, 0> 当任意血量被秒杀时,有50%几率HP会保留1点。
2.  <StoppingEraseState:X> 防秒杀触发后,解除第X号状态。
二、在技能或者物品的备注栏内输入:
<InvalidStopping:XX> 有几率使防秒杀机制失效。(这个没试过,大家自行研究一下用法)
举例:<InvalidStopping:50> 被秒杀时有50%几率不触发防秒杀机制。
三、可以在插件参数内设置防秒杀触发时的文字描述和音效。
四、可以通过NUUN的其他插件拓展触发条件,具体见插件描述。
简单用法分享:通过技能施加一个状态,持有时防止被秒杀,触发之后会解除该状态。完事~

【NUUN_ManaShield 法力护盾】  使用条款 MIT
设置一个法力护盾,可以按一定比例消耗法力值来分摊受到的伤害。
1.在备注栏设置不同角色/装备/状态可以分摊的伤害比例。
2.在插件参数设置法力护盾分摊伤害的形式和MP消耗的比例。
3.如果你用了防秒杀"NUUN_StoppingFeature",本插件在列表中必须置于防秒杀插件之下。
4. 本插件描述说明和计算方式有点复杂,详细请看插件说明。
我汉化完还没测试过每一种用法,抱歉~~~


------------------------------------------------------------------------------------------------------------------------------------------------------


会不定期持续更新推出汉化,谢谢


EquipConditionExtend.zip

3.22 KB, 下载次数: 91

装备限制拓展/禁用武器等

TraitTotalization.zip

2.18 KB, 下载次数: 137

特性能力全队化/光环

PANDA_SwitchStateTraits.zip

2.33 KB, 下载次数: 73

状态对敌我区分效果

DynamicEquipParam.zip

3.18 KB, 下载次数: 138

装备能力动态化/可成长/传家宝

NUUN_StoppingFeature.rar

3.2 KB, 下载次数: 89

防秒杀

AutoRaise.rar

3.64 KB, 下载次数: 111

自动复活、复活甲、重生十字章

DrainExtend.rar

3.92 KB, 下载次数: 118

吸收技能拓展/吸血/吸蓝/吸特技值

PluginCommonBase V1.0.5.rar

5.21 KB, 下载次数: 135

官方插件,很多日系插件需要这个支持。挂一个置顶准没错

NUUN_ManaShield.rar

3.82 KB, 下载次数: 143

法力护盾/消耗法力值抵消伤害


作者: baobaobuku    时间: 2023-7-7 02:18
大神。。。。请问TraitTotalization  要怎么能让全队都有效果呀。。可以举个栗子嘛?谢谢
作者: 暴走的露露    时间: 2023-7-7 02:33
本帖最后由 暴走的露露 于 2023-7-6 11:36 编辑
baobaobuku 发表于 2023-7-6 11:18
大神。。。。请问TraitTotalization  要怎么能让全队都有效果呀。。可以举个栗子嘛?谢谢 ...


例如:设计一个 生命力光环

1、设置一个状态,特效是MHP提高300%。持续回合解除方式您看着办。备注栏输入<TraitTotal>。
2、设置一个技能,战斗中给单个队员或者使用者自身挂这个状态。
3、当战斗中这个队员持有这个状态时,其他队员也享受MHP提高300%的效果。
4、当这个队员在战斗中死亡之后,状态消失。其他队员也失去这个MHP+300%了。
5、这是我需要和测试过的一种用法,还有在装备内设置不过我没试过额。
6、如果:在武器/防具内设置,估计就是这个队员不挂,其他成员都能共享特效效果。
7、如果:全体队员都挂这个状态,估计就是只要有一个人不挂,其他的人复活了也继续享受这个特效吧。反正不能叠加。
作者: baobaobuku    时间: 2023-7-7 02:47
暴走的露露 发表于 2023-7-7 02:33
例如:设计一个 生命力光环

1、设置一个状态,特效是MHP提高300%。持续回合解除方式您看着办。备注栏输 ...

在备注字段中输入以下内容:角色、职业、敌人角色、武器和状态。
<TraitTotal>   只是这里不是很明白。。。之需要再状态里面输入一个命令就可以嘛。。。
还是说  人物什么的也需要呀。。。
作者: 暴走的露露    时间: 2023-7-9 00:37
@sunhihi 大佬,关于PANDA_SwitchStateTraits 状态敌我区分不同效果这个插件,
您可不可以帮看看,能不能追加一个 角色id 的指定。
也就是角色方面可以指定到某一个角色。感谢~
作者: 暴走的露露    时间: 2023-7-9 02:26
汉化:装备能力动态化
作者: baobaobuku    时间: 2023-7-10 04:37
我发现哦~~~ 露露发的插件都是实用的哦
作者: baobaobuku    时间: 2023-7-10 04:49
不知道大神那里有不有类似头衔之类的。。。宝贝。。。
作者: 暴走的露露    时间: 2023-7-11 01:15
新增汉化+分享:NUUN的防秒杀插件
作者: 暴走的露露    时间: 2023-7-11 02:00
新增汉化+分享:流浪汤姆的追加战利品掉落
作者: 暴走的露露    时间: 2023-7-11 07:22
新增汉化+分享:三十烷的自动复活/复活甲插件
作者: 晓红猫    时间: 2023-7-11 09:12
卧槽我爱死你了大佬,他那个原版的复活我是怎么都没效果,visu的那个autolife我也没效果,不知为啥你这个我突然有用了…………感谢
作者: 暴走的露露    时间: 2023-7-12 07:51
新增汉化+分享:
1.三十烷的吸收技能拓展
2.NUUN的法力护盾
作者: baobaobuku    时间: 2023-7-12 16:54
baobaobuku 发表于 2023-7-10 04:49
不知道大神那里有不有类似头衔之类的。。。宝贝。。。

类似于 加属性呀,或者加什么爆率呀之类,顶在行走角色头上。。
作者: baobaobuku    时间: 2023-7-12 17:40
又更新好多好用的插件~~~
作者: baobaobuku    时间: 2023-7-12 19:10
【流浪汤姆的AdditionalDrops 追加战利品掉落】这个插件总觉着好像有问题。。又不知道是不是我的问题。。
敌人备注完之后 总是会出现些问题,但是物品100%掉落的话 就不会出现问题。。。
作者: baobaobuku    时间: 2023-7-12 19:12
baobaobuku 发表于 2023-7-12 19:10
【流浪汤姆的AdditionalDrops 追加战利品掉落】这个插件总觉着好像有问题。。又不知道是不是我的问题。。
...

TypeError: Cannot read property 'name' of null  错误提示。。
作者: 暴走的露露    时间: 2023-7-12 20:15
baobaobuku 发表于 2023-7-12 04:12
TypeError: Cannot read property 'name' of null  错误提示。。

关于这个,你在报错的时候,按F8,然后找到有显示报错具体信息那一页
把内容复制发出来,看看我能不能帮你解决。
其次,你下载我提供那个官方插件了吗?把它打开放在所有插件列表最前面再试试?

然后,关于角色顶称号有特别属性那个,
目前我可以找到一个让角色顶着昵称跑,至于能加属性的还没有。
作者: beloved57    时间: 2023-7-12 23:21
感谢分享
作者: 暴走的露露    时间: 2023-7-13 01:18
本帖最后由 暴走的露露 于 2023-7-12 10:32 编辑
baobaobuku 发表于 2023-7-12 04:10
【流浪汤姆的AdditionalDrops 追加战利品掉落】这个插件总觉着好像有问题。。又不知道是不是我的问题。。
...


流浪汤姆的掉落插件貌似和MZ内置文件有冲突,不会修。暂停下载了,抱歉抱歉~
作者: baobaobuku    时间: 2023-7-13 01:30
baobaobuku 发表于 2023-7-12 16:54
类似于 加属性呀,或者加什么爆率呀之类,顶在行走角色头上。。

好的呀。。。稀罕死你啦!!
作者: URUUR    时间: 2023-7-20 22:51
666666666666666666666666666666666
作者: ~谓伊~    时间: 2023-8-9 14:54
分城感谢
作者: sunhihi    时间: 2023-8-13 09:10
掉落物擴充插件
我修復了BUG

試試?

AdditionalDropsBugFix.7z

1.6 KB, 下载次数: 29

bug fix


作者: ~谓伊~    时间: 2023-8-13 13:30
sunhihi 发表于 2023-8-13 09:10
掉落物擴充插件
我修復了BUG

大赞啊!!!
作者: y967    时间: 2023-11-19 18:41
本帖最后由 y967 于 2023-11-19 18:59 编辑

好物,太实用了,有个小问题,吸收伤害成功,只是吸收成功率好像都是100%,设置10也是一样次次成功。
还有一个问题,自动复活设置了状态,加了<TempAutoRaise> 后,只能复活一次,不加这个命令,复活不了,如何复活多次。
装备测试正常能复活多次,PS:我的是MV1.61,是否不兼容。
作者: sunhihi    时间: 2023-11-19 21:40
y967 发表于 2023-11-19 18:41
好物,太实用了,有个小问题,吸收伤害成功,只是吸收成功率好像都是100%,设置10也是一样次次成功。
还有 ...

這裡是MZ插件討論串

MV應該...不支援巴


作者: 暴走的露露    时间: 2023-11-19 22:41
y967 发表于 2023-11-19 03:41
好物,太实用了,有个小问题,吸收伤害成功,只是吸收成功率好像都是100%,设置10也是一样次次成功。
还有 ...

用状态来做自动复活,要同时设定复活次数和复活后状态解除这两个指令。
<AutoRaise:3>
<TempAutoRaise>

PS:其中复活次数那里,设置2次以上时,实际复活次数会-1。(原因未知)
设置1次或2次,实际能复活1次。
设置3次,实际能复活2次,类推。
作者: 暴走的露露    时间: 2023-11-20 11:20
@y967
这是MV版的自动复活
//=============================================================================
// AutoRaise.js
// ----------------------------------------------------------------------------
// (C)2017 Triacontane
// This software is released under the MIT License.
// http://opensource.org/licenses/mit-license.php
// ----------------------------------------------------------------------------
// Version
// 1.2.0 2022/02/15 自動蘇生の発動確率を設定できる機能を追加
// 1.1.1 2020/02/12 蘇生時のHP割合をステートに記述している場合に値が取得できない問題を修正
// 1.1.0 2020/02/11 蘇生が発動したとき発動アイテムをロストする機能を追加
//                  戦闘中にスキルなどで一時的に自働蘇生を付与できる機能を追加
// 1.0.0 2017/04/02 初版
// ----------------------------------------------------------------------------
// [Blog]   : https://triacontane.blogspot.jp/
// [Twitter]: https://twitter.com/triacontane/
// [GitHub] : https://github.com/triacontane/
//=============================================================================

/*:
* @plugindesc AutoRaisePlugin
* @author triacontane
*
* @param RaiseAnimationId
* @desc 自働蘇生時に表示されるアニメーションのID
* @default 49
*
* @param RaiseIconId
* @desc 自働蘇生が可能な場合に表示されるアイコンのID
* @default 72
*
* @help 戦闘時に、決められた回数分だけ自働蘇生できます。
* 回数の決定は戦闘開始直後に1回だけ行われます。戦闘中は再計算されません。
* 特徴を有するメモ欄のプラグインに以下の通り入力してください。
*
* <AR_自働蘇生:3>      # 戦闘不能時に3回まで自働蘇生します。
* <AR_AutoRaise:3>     # 同上
* <AR_蘇生HPレート:50> # 自働蘇生時にHPが50%まで回復します。
* <AR_RaiseHpRate:50>  # 同上
* <AR_ロスト>          # 自動蘇生が発動したとき対象の装備品を失います。
* <AR_Lost>            # 同上
*
* スキルなどを使って戦闘中に付与したい場合はステートに
* 以下のメモ欄を設定してください。
* <AR_一時自動蘇生>    # 戦闘不能時に自働蘇生します。
* <AR_TempAutoRaise>  # 同上
*
* このプラグインにはプラグインコマンドはありません。
*
* This plugin is released under the MIT License.
*/
/*:ja
* @plugindesc 自働蘇生プラグイン
* @author トリアコンタン
*
* @param 蘇生アニメID
* @desc 自働蘇生時に表示されるアニメーションのID
* @default 49
*
* @param 蘇生アイコンID
* @desc 自働蘇生が可能な場合に表示されるアイコンのID
* @default 72
*
* @help 戦闘時に、決められた回数分だけ自働蘇生できます。
* 回数の決定は戦闘開始直後に1回だけ行われます。戦闘中は再計算されません。
* 特徴を有するメモ欄のプラグインに以下の通り入力してください。
*
* <AR_自働蘇生:3>      # 戦闘不能時に3回まで自働蘇生します。
* <AR_AutoRaise:3>     # 同上
* <AR_蘇生HPレート:50> # 自働蘇生時にHPが50%まで回復します。
* <AR_RaiseHpRate:50>  # 同上
* <AR_ロスト>          # 自動蘇生が発動したとき対象の装備品を失います。
* <AR_Lost>            # 同上
* <AR_蘇生確率:50>     # 蘇生の発動率が50%になります。
* <AR_RaiseProb:50>    # 同上
*
* スキルなどを使って戦闘中に付与したい場合はステートに
* 以下のメモ欄を設定してください。
* <AR_一時自動蘇生>    # 戦闘不能時に自働蘇生します。
* <AR_TempAutoRaise>  # 同上
*
* このプラグインにはプラグインコマンドはありません。
*
* 利用規約:
*  作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)
*  についても制限はありません。
*  このプラグインはもうあなたのものです。
*/

(function() {
    'use strict';
    var pluginName    = 'AutoRaise';
    var metaTagPrefix = 'AR_';

    //=============================================================================
    // ローカル関数
    //  プラグインパラメータやプラグインコマンドパラメータの整形やチェックをします
    //=============================================================================
    var getParamString = function(paramNames) {
        if (!Array.isArray(paramNames)) paramNames = [paramNames];
        for (var i = 0; i < paramNames.length; i++) {
            var name = PluginManager.parameters(pluginName)[paramNames];
            if (name) return name;
        }
        return '';
    };

    var getParamNumber = function(paramNames, min, max) {
        var value = getParamString(paramNames);
        if (arguments.length < 2) min = -Infinity;
        if (arguments.length < 3) max = Infinity;
        return (parseInt(value) || 0).clamp(min, max);
    };

    var getArgNumber = function(arg, min, max) {
        if (arguments.length < 2) min = -Infinity;
        if (arguments.length < 3) max = Infinity;
        return (parseInt(arg) || 0).clamp(min, max);
    };

    var getMetaValue = function(object, name) {
        var metaTagName = metaTagPrefix + name;
        return object.meta.hasOwnProperty(metaTagName) ? convertEscapeCharacters(object.meta[metaTagName]) : undefined;
    };

    var getMetaValues = function(object, names) {
        for (var i = 0, n = names.length; i < n; i++) {
            var value = getMetaValue(object, names);
            if (value !== undefined) return value;
        }
        return undefined;
    };

    var convertEscapeCharacters = function(text) {
        if (isNotAString(text)) text = '';
        var windowLayer = SceneManager._scene._windowLayer;
        return windowLayer ? windowLayer.children[0].convertEscapeCharacters(text) : text;
    };

    var isNotAString = function(args) {
        return String(args) !== args;
    };

    //=============================================================================
    // パラメータの取得と整形
    //=============================================================================
    var param              = {};
    param.raiseAnimationId = getParamNumber(['RaiseAnimationId', '蘇生アニメID']);
    param.raiseIconId      = getParamNumber(['RaiseIconId', '蘇生アイコンID']);

    //=============================================================================
    // BattleManager
    //  戦闘不能時に自働復活します。
    //=============================================================================
    var _BattleManager_setup = BattleManager.setup;
    BattleManager.setup      = function(troopId, canEscape, canLose) {
        _BattleManager_setup.apply(this, arguments);
        this.allBattleMembers().forEach(function(member) {
            member.initAutoRaiseCount();
        });
    };

    //=============================================================================
    // Game_BattlerBase
    //  戦闘不能時に自働復活します。
    //=============================================================================
    var _Game_BattlerBase_allIcons      = Game_BattlerBase.prototype.allIcons;
    Game_BattlerBase.prototype.allIcons = function() {
        return _Game_BattlerBase_allIcons.apply(this, arguments).concat(this.getAutoRaiseIcon());
    };

    Game_BattlerBase.prototype.getAutoRaiseIcon = function() {
        return (this.canRaise() && param.raiseIconId > 0) ? [param.raiseIconId] : [];
    };

    Game_BattlerBase.prototype.initAutoRaiseCount = function() {
        this._autoRaiseCount = this.getAutoRaiseCount();
    };

    Game_BattlerBase.prototype.getAutoRaiseCount = function() {
        var raiseCount = 0;
        this.traitObjects().forEach(function(state) {
            var metaValue = getMetaValues(state, ['自働蘇生', 'AutoRaise']);
            if (metaValue) {
                raiseCount += (metaValue === true ? 1 : getArgNumber(metaValue, 1));
            }
        });
        return raiseCount;
    };

    Game_BattlerBase.prototype.getRaiseHpRate = function() {
        if (!this.canRaise() || !this.isValidRaiseProbability()) {
            return 0;
        }
        var hpRate = 1;
        this.traitObjects().forEach(function(state) {
            var metaValue = getMetaValues(state, ['蘇生HPレート', 'RaiseHpRate']);
            if (metaValue) {
                var newRate = (metaValue === true ? 1 : getArgNumber(metaValue, 1, 100));
                hpRate      = Math.max(hpRate, newRate);
            }
        });
        return hpRate;
    };

    Game_BattlerBase.prototype.isValidRaiseProbability = function() {
        var probability = 0;
        this.traitObjects().forEach(state => {
            var metaValue = getMetaValues(state, ['蘇生確率', 'RaiseProb']);
            if (metaValue) {
                probability = Math.max(probability, metaValue / 100);
            }
        });
        return !probability || Math.random() < probability;
    };

    Game_BattlerBase.prototype.canRaise = function() {
        return (this.hasTempRaise() || this._autoRaiseCount > 0) && $gameParty.inBattle()
    };

    Game_BattlerBase.prototype.hasTempRaise = function() {
        return this.traitObjects().some(function(obj) {
            return getMetaValues(obj, ['一時自動蘇生', 'TempAutoRaise']) !== undefined;
        });
    };

    Game_BattlerBase.prototype.executeAutoRaise = function(rate) {
        BattleManager.processAutoRaise(this);
        this.revive();
        var hp = Math.max(Math.floor(this.mhp * rate / 100), 1);
        this.setHp(hp);
    };

    var _Game_BattlerBase_die      = Game_BattlerBase.prototype.die;
    Game_BattlerBase.prototype.die = function() {
        var rate = this.getRaiseHpRate();
        if (rate > 0 && !this.hasTempRaise()) {
            this._autoRaiseCount--;
            this.lostRaiseEquips();
        }
        _Game_BattlerBase_die.apply(this, arguments);
        if (rate) {
            this.executeAutoRaise(rate);
        }
    };

    Game_BattlerBase.prototype.lostRaiseEquips = function() { };

    Game_Actor.prototype.lostRaiseEquips = function() {
        this.equips().some(function(equip, slotId) {
            if (equip && getMetaValues(equip, ['ロスト', 'Lost']) !== undefined) {
                this.changeEquip(slotId, null);
                $gameParty.loseItem(equip, 1, false);
            }
        }, this);
    };

    BattleManager.processAutoRaise = function(target) {
        if (param.raiseAnimationId > 0) {
            this._logWindow.push('showNormalAnimation', [target], param.raiseAnimationId);
        }
    };
})();





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1