添加了状态叠加插件 #2

main
Salted 2 years ago
parent e01a5aec74
commit 3406abaa0a
Signed by: SaltedFish
GPG Key ID: FCF3F47D9BD7AD42

@ -21,9 +21,10 @@
## 更新记录
- **2022/9/24****咸鱼**;添加了状态叠加插件 #2
- **2022/9/24****咸鱼**;添加了状态覆盖插件 #1
- **2022/9/17****咸鱼**;修改了 Galv_MessageBusts 支持了预先扫描文件来获取相关信息
- **2022/9/17****咸鱼**;添加了普攻替换插件 #
- **2022/9/17****咸鱼**;添加了普攻替换插件 #3
- **2022/9/7****面具**;数值整理,素材整理,添加怪物
- **2022/8/30****不明枪兵**;更新海上的剧情
- **2022/8/25****不明枪兵**;更新海滩前的剧情

@ -32,6 +32,8 @@ var $plugins =
{"name":"--------------------","status":true,"description":"------------------------------------------------------------","parameters":{}},
{"name":"SF_SkillUpdate","status":true,"description":"v1.0 Allows you to auto Update skills.","parameters":{}},
{"name":"SF_CommonAttack","status":true,"description":"v1.0 普攻替换插件","parameters":{}},
{"name":"SF_StateSuperpose","status":true,"description":"状态叠加插件","parameters":{}},
{"name":"SF_StatesOverride","status":true,"description":"状态覆盖插件","parameters":{}},
{"name":"SF_QuestSystem","status":true,"description":"v1.0 Allows you to show quests.","parameters":{"Quest List Window":"","Quest List Window X":"260","Quest List Window Y":"90","Quest List Window Width":"120","Quest List Window Height":"370","Quest List Window Font Size":"18","Quest Detail Window":"","Quest Detail Window X":"380","Quest Detail Window Y":"90","Quest Detail Window Width":"440","Quest Detail Window Height":"370","Quest Detail Window Font Size":"18","Quest Editor":"","Quest Editor Enable":"false","Quest List Info X":"0","Quest List Info Y":"90","Quest List Info Width":"240","Quest List Info Height":"370","Quest List Info Font Size":"18"}},
{"name":"--------------------","status":true,"description":"------------------------------------------------------------","parameters":{}},
{"name":"MOG_ActorHud","status":true,"description":"(v2.0 *) Adiciona uma Hud com os parâmetros do personagem.","parameters":{"-> MAIN <<<<<<<<<<<<<<<<<<<<<<<":"","Initial Visible":"true","Hud X-Axis":"0","Hud Y-Axis":"0","Smart Fade":"true","Auto Fade":"true","":"","-> LAYOUT 2 <<<<<<<<<<<<<<<<<<<<<<<":"","Layout Overlay Visible":"false","Layout Overlay X-Axis":"0","Layout Overlay Y-Axis":"0","-> FACE <<<<<<<<<<<<<<<<<<<<<<<":"","Face Visible":"true","Face X-Axis":"51","Face Y-Axis":"50","Face Priority":"1","-> NAME <<<<<<<<<<<<<<<<<<<<<<<":"","Name Visible":"false","Name X-Axis":"5","Name Y-Axis":"20","Name Font Size":"20","Name Bold Size":"4","Name Font Italic":"false","-> HP <<<<<<<<<<<<<<<<<<<<<<<":"","HP Meter Visible":"true","HP Meter X-Axis":"110","HP Meter Y-Axis":"33","HP Meter Angle":"0","HP Meter Flow Anime":"true","HP Meter Flow Speed":"4","HP Number Visible":"false","HP Number Align":"0","HP Number X-Axis":"270","HP Number Y-Axis":"70","MaxHP Number Visible":"false","MaxHP Number X-Axis":"185","MaxHP Number Y-Axis":"40","HP Icon Visible":"false","HP Icon Half Mode":"false","HP Icon Max Colors":"2","HP Icon Max Rows":"10","HP Icon Max Columns":"2","HP Icon X-Axis":"143","HP Icon Y-Axis":"85","HP Icon Space X":"0","HP Icon Space Y":"0","HP Icon Zoom Anime":"true","-> MP <<<<<<<<<<<<<<<<<<<<<<<":"","MP Meter Visible":"true","MP Meter X-Axis":"110","MP Meter Y-Axis":"48","MP Meter Angle":"0","MP Meter Flow Anime":"true","MP Meter Flow Speed":"4","MP Number Visible":"false","MP Number Align":"0","MP Number X-Axis":"287","MP Number Y-Axis":"100","MaxMP Number Visible":"false","MaxMP Number X-Axis":"196","MaxMP Number Y-Axis":"78","MP Icon Visible":"false","MP Icon Half Mode":"false","MP Icon Max Colors":"2","MP Icon Max Rows":"10","MP Icon Max Columns":"2","MP Icon X-Axis":"143","MP Icon Y-Axis":"120","MP Icon Space X":"0","MP Icon Space Y":"0","MP Icon Zoom Anime":"true","-> TP <<<<<<<<<<<<<<<<<<<<<<<":"","TP Meter Visible":"false","TP Meter X-Axis":"143","TP Meter Y-Axis":"50","TP Meter Angle":"0","TP Meter Flow Anime":"true","TP Meter Flow Speed":"4","TP Number Visible":"false","TP Number Align":"0","TP Number X-Axis":"270","TP Number Y-Axis":"130","MaxTP Number Visible":"false","MaxTP Number X-Axis":"185","MaxTP Number Y-Axis":"116","TP Icon Visible":"false","TP Icon Half Mode":"false","TP Icon Max Colors":"2","TP Icon Max Rows":"10","TP Icon Max Columns":"2","TP Icon X-Axis":"143","TP Icon Y-Axis":"50","TP Icon Space X":"0","TP Icon Space Y":"0","TP Icon Zoom Anime":"true","-> EXP <<<<<<<<<<<<<<<<<<<<<<<":"","EXP Meter Visible":"true","EXP Meter X-Axis":"110","EXP Meter Y-Axis":"63","EXP Meter Angle":"0","Level Number Visible":"false","Level Number Align":"1","Level Number X-Axis":"65","Level Number Y-Axis":"153","-> STATES <<<<<<<<<<<<<<<<<<<<<<<":"","States Visible":"false","States X-Axis":"5","States Y-Axis":"64"}},

@ -0,0 +1,98 @@
//=============================================================================
// Salted Fish Plugins - State Superpose
// SF_StateSuperpose.js
//=============================================================================
"use strict";
var Imported = Imported || {};
Imported.SF_StateSuperpose = True;
var SF_Plugins = SF_Plugins || {};
//=============================================================================
/*:
* @plugindesc 状态叠加插件
* @author Salted Fish
*
* @help
* ============================================================================
* 介绍
* ============================================================================
* 获得同类状态时将已有的同类状态持续时间刷新到与新获得的同类状态一致
*
* 使用 状态ID 作为状态的类别标识
*
* ============================================================================
* 使用
* ============================================================================
* <SF_StatesSuperpose: 状态ID>
*
* ============================================================================
* 举例
* ============================================================================
* 定义五个状态
* 1.a 抓伤a
* 1.b 抓伤b
* 1.c 抓伤c
* 1.d 抓伤d
* 1.e 抓伤e
*
* 插件需要实现的效果是
* 在拥有1.a 抓伤a的情况下获得1.e抓伤e
* 则将1.a抓伤a的持续回合数刷新到与1.e抓伤e相同
*
* 在拥有1.b 抓伤b和1.d 抓伤d的情况下获得1.a 抓伤a
* 则将1.b 抓伤b和1.d 抓伤d的持续回合数刷新到与1.a 抓伤a相同
*
* ============================================================================
* 已知问题
* ============================================================================
* - 与状态覆盖插件不兼容不能两个状态既属于需要覆盖的又属于需要叠加的
* 如果出现这种情况取决于在插件列表中的顺序行为暂时不可预测
*
*/
//=============================================================================
SF_Plugins.SF_StateSuperpose = SF_Plugins.SF_StateSuperpose || {};
SF_Plugins.SF_StateSuperpose.version = 1.0;
//=============================================================================
// DataManager
//=============================================================================
SF_Plugins.SF_StateSuperpose.DataManager_isDatabaseLoaded = DataManager.isDatabaseLoaded;
DataManager.isDatabaseLoaded = function () {
if (!SF_Plugins.SF_StateSuperpose.DataManager_isDatabaseLoaded.call(this)) return false;
if (!this.SF_StateSuperpose_isDatabaseLoaded($dataStates)) return false;
return true;
};
DataManager.SF_StateSuperpose_isDatabaseLoaded = function (group) {
var note = /<SF_StateSuperpose:\s*?(\d+)\s*?>/i;
for (var i = 1; i < group.length; i++) {
var obj = group[i];
var noteData = obj.note.split(/[\r\n]+/);
for (var j = 0; j < noteData.length; j++) {
var line = noteData[j];
if (line.match(note)) {
obj.SF_StateSuperpose_ID = RegExp.$1;
}
}
}
return true;
};
//=============================================================================
// Game_Battler
//=============================================================================
SF_Plugins.SF_StateSuperpose.GameBattler_addState = Game_Battler.prototype.addState;
Game_Battler.prototype.addState = function (stateId) {
SF_Plugins.SF_StateOverride.GameBattler_addState.call(this, stateId);
var stateSuperpose_ID = $dataStates[stateId].SF_StateSuperpose_ID;
if (this.result().isStateAdded(stateId) && stateSuperpose_ID !== undefined) {
var turns = this._stateTurns[stateId];
this.states().forEach(function (state) {
if (state.SF_StateSuperpose_ID === stateSuperpose_ID) {
this._stateTurns[stateId] = turns;
}
}, this);
}
};

@ -63,7 +63,7 @@ SF_Plugins.SF_StateOverride.version = 1.0;
SF_Plugins.SF_StateOverride.DataManager_isDatabaseLoaded = DataManager.isDatabaseLoaded;
DataManager.isDatabaseLoaded = function () {
if (!SF_Plugins.SF_SkillUpdate.DataManager_isDatabaseLoaded.call(this)) return false;
if (!SF_Plugins.SF_StateOverride.DataManager_isDatabaseLoaded.call(this)) return false;
if (!this.SF_StateOverride_isDatabaseLoaded($dataStates)) return false;
return true;
};
@ -116,25 +116,3 @@ Game_Battler.prototype.addState = function (stateId) {
}
SF_Plugins.SF_StateOverride.GameBattler_addState.call(this, stateId);
};
SF_Plugins.SF_StateOverride.GameBattler_isStateAddable = Game_Battler.prototype.isStateAddable;
Game_Battler.prototype.isStateAddable = function (stateId) {
if (!SF_Plugins.SF_StateOverride.GameBattler_isStateAddable.call(this, stateId)) {
return false;
}
// 判断是否存在优先级更高的状态
var needAddState = $dataStates[stateId];
var isAddable = true;
if (needAddState.SF_StateOverride_ID != undefined) {
this.states().forEach(function (state) {
if (
state.SF_StateOverride_ID === needAddState.SF_StateOverride_ID &&
state.SF_StateOverride_Priority > needAddState.SF_StateOverride_Priority
) {
isAddable = false;
}
});
}
return isAddable;
};

Loading…
Cancel
Save