累计送礼: 0 个 累计收礼: 1 个 TA的每日心情 开心 4 天前
签到天数: 209 天
连续签到: 2 天
[LV.7]常住居民III
管理员
VIP
7
卡币
23195
OK点
16
推广点
0
同能卷
50
积分 28683
Purpose
Lets you use plugin queries in conditional branch and control variables
Introduction
Code:
* 1. The RMMZ plugin commands are supposed to make side effects but not * return end results * 2. With this plugin, other plugins can declare plugin queries that * behave like RMMV plugin commands but return end results instead of * making side effects * 3. Plugin queries can replace skill/item damage formulae * 4. Plugin queries can also replace script calls in conditional branch * and control variables event commands 复制代码
Video
https://www.youtube.com/embed/_6L8IJDiTcI
Games using this plugin
None so far
Spoiler: Parameters
Code: * @param newDamageFormulaPluginQueries * @type struct<NewPluginQuery>[] * @desc Sets the list of new damage formula plugin queries * This list shouldn't include those already added by other plugins * @default [] * * @param newEventCmdPluginQueries * @type struct<NewPluginQuery>[] * @desc Sets the list of new event command plugin queries * This list shouldn't include those already added by other plugins * @default [] 复制代码
Spoiler: Plugin Query Info
Code: * 1. General form * queryName argName1 argName2 argName3 argNameI argNameN * E.g.: * - If the plugin query has its query name as abcdefg and arguments * as h, i, j and k, then the plugin query is abcdefg h i j k * 2. (Plugin Developers Only)Registration * PluginManager.damageFormulaPluginQueries.set(name, func); * - Registers a plugin query with the name being name and function * returning the result being func * - The first 5 arguments of the function must be the following: * i. item - The skill/item having the damage formula * ii. a - The subject executing the skill/item * iii. b - The target having the damage formula applied to * iv. v - The raw data list of the game variables * v. sign - 1(damage)/-1(recovery) * - The registered plugin query can be used in skill/item damage * formulae * E.g.: * - PluginManager.damageFormulaPluginQueries.set("matDmg", (item, a, b, v, sign, baseDmg) => { * return +baseDmg + a.mat * 2 - b.mdf * 2; * }); * Will define the plugin query atkDmg in the skill/item damage * formulae as baseDmg + a.mat * 2 - b.mdf * 2 * Where baseDmg must be a Number * PluginManager.eventCmdPluginQueries.set(name, func); * - Registers a plugin query with the name being name and function * returning the result being func * - The registered plugin query can be used in conditional branch and * control variables event commands * E.g.: * - PluginManager.eventCmdPluginQueries.set("isActorAnyStateAffected", (actorId, paramIds) => { * return $gameActors.actor(+actorId).isAnyStateAffected(paramIds.split("_").map(Number)); * }); * Will define the plugin query * isActorAnyStateAffected actorId paramIds * in the conditional branch/control variables event commands as * $gameActors.actor(actorId).isAnyStateAffected(paramIds); * If paramIds is written in the form of * paramId1_paramId2_paramId3_paramIdI_paramIdN 复制代码
Spoiler: Author Notes
Code: * 1. The plugin command name collision issues in RMMV applies to * plugin queries registed to this RMMZ plugin as well, and in this * case, the last registered plugin query having the same name will be * used * 2. DON'T MAKE SIDE EFFECTS IN THE SKILL/ITEM DAMAGE FORMULA PLUGIN * QUERIES UNLESS YOU REALLY KNOW WHAT YOU'RE TRULY DOING 复制代码
Spoiler: Prerequisites
Plugins:
1. DoubleX RMMZ Enhanced Codebase
Abilities(Plugin Users):
1. Nothing special
Abilities(Plugin Developers):
1. Little RMMZ plugin development proficiency to fully utilize this
(Elementary Javascript exposures being able to write beginner codes up to 300LoC scale) Spoiler: Terms Of Use
Code: * 1. Commercial use's always allowed and crediting me's always optional. * 2. You shall keep this plugin's Plugin Info part's contents intact. * 3. You shalln't claim that this plugin's written by anyone other than * DoubleX or my aliases. I always reserve the right to deny you from * using any of my plugins anymore if you've violated this. * 4. If you repost this plugin directly(rather than just linking back), * you shall inform me of these direct repostings. I always reserve * the right to request you to edit those direct repostings. * 5. CC BY 4.0, except those conflicting with any of the above, applies * to this plugin, unless you've my permissions not needing follow so. * 6. I always reserve the right to deny you from using this plugin * anymore if you've violated any of the above. 复制代码
Spoiler: Contributors
Code: * Authors: * 1. DoubleX * Plugin Development Collaborators: * - None So Far * Bug Reporters: * - None So Far * Compatibility Issue Raisers: * - None So Far * Feature Requesters: * - None So Far 复制代码
Spoiler: Changelog
Code: * { codebase: "1.1.0", plugin: "v1.00b" }(2020 Dec 2 GMT 0700): * 1. You no longer have to edit the value of * DoubleX_RMMZ.Plugin_Query.PLUGIN_NAME when changing this plugin * file name * { codebase: "1.0.2", plugin: "v1.00a" }(2020 Oct 6 GMT 1600): * 1. 1st version of this plugin finished 复制代码
Download Link
Demo Link
本贴来自国际rpgmaker官方论坛作者:DoubleX处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:
https://forums.rpgmakerweb.com/threads/doublex_rmmz_plugin_query.128382/