YEP.54 – Row Formation

============================================================================
Introduction
============================================================================

This plugin places party members into row formations to give them distinct
advantages based on row location in the form of states for maximum control.
Skills and items are capable of moving targets to different row locations.
这个插件能把队伍成员放置到阵列中,可以获得基于位置状态的最大控制。技能和道具能使目标产生不同的位移。
If you are using YEP_BattleEngineCore.js, place this plugin under the
YEP_BattleEngineCore.js plugin in the Plugin Manager list to receive extra
features such as being able to change Rows mid-battle.

============================================================================
What are Rows?什么是行(阵列)
============================================================================

Rows are positions your party members are placed in. Depending on how you
set up the rows for your project (and how many), rows can provide different
advantages to the party members for just simply being in that row.
行(阵列)是我方成员的位置。基于你如何设置,不同的行(阵列)能带来不同的优势,只要队伍成员位于这一行。
These advantages are granted through the states that are given to the party
members from the plugin parameter settings. How you set up these advantages
is entirely up to you.
这些优势以插件设定的状态的形式赋予队员。你如何设置这些优势完全取决于你。


An example of some setups:一些设置的例子

Front Row:前排
Members in the front row will receive full damage from the Melee element.
位于前排的单位会承受来自战场的全额伤害。
Middle Row:中排
Members in the middle row will receive slightly less damage from the Melee
element, but the Attack command is sealed unless they have a ranged weapon.
中排只承受轻微伤害,但近战攻击指令不可用,除非他们有一个远程武器。
Back Row:后排
Members in the back row will receive a lot less damage fom the Melee element
and also cannot use the Attack command unless equipped with a ranged weapon.
后排承受更少的伤害。


How you choose to set up your rows is dependent on how you can set up your
states that affect those rows. These states cannot be removed by skills and
are considered a passive effective.
你怎么设置你的阵列取决于你能怎样设置那些影响阵列的状态。这些状态不能被移除,他们被视为被动效果。
============================================================================
Notetags
============================================================================

You can use these notetags to modify the various aspects of row formations.
你能用这些注释标签来修改阵列结构的许多方面。
Actor and Enemy Notetags:
<Default Row: x>
<Default Row: x, x, x>
This is the default row assigned to the battler by default. This will
override the default parameter settings. If multiple x values are assigned
then the battler can start in any of those rows. If multiple rows are
included, then at the start of the game (for actors) or start of battle
(for enemies), the battler will start in a random row included.

Actor, Class, Enemy, Weapon, Armor, and State Notetags:
<Row Lock>
This causes the affected battler to be row locked and unable to switch
rows. For enemies, this will override the default parameters.

<Not Row Lock>
This causes the affected battler to be not be row locked and able to
switch rows. This is primarily for enemies since all non-enemies are not
row locked by default. This will override the default parameters.

Skill and Item Notetags:
<Row Only: x>
<Row Only: x, x, x>
<Row Only: x to y>
This makes it so that this skill/item can only be used by the battler if
the battler is in row x. If multiple rows are used, the battler can be in
any of those rows. If you use the x to y notetag, this will account for
all the rows from x to y.

<Change Target Row: x>
Changes target's current row to x. This cannot go under 1 nor can it go
past the designated maximum row set in the parameters.

<Push Back Target Row: x>击退目标
This will push the target back x rows. This cannot exceed the maximum row
set in the parameters.

<Pull Forward Target Row: x>拉近目标
This will pull the target forward x rows. This cannot exceed the maximum
rows set in the parameters.

<Change User Row: x>
Changes user's current row to x. This cannot go under 1 nor can it go
past the designated maximum row set in the parameters.

<Push Back User Row: x>
This will push the user back x rows. This cannot exceed the maximum row
set in the parameters.

<Pull Forward User Row: x>
This will pull the user forward x rows. This cannot exceed the maximum
rows set in the parameters.

============================================================================
Lunatic Mode - Conditional Row Modification
============================================================================

To the users who have a bit of JavaScript proficiency, you can use these
notetags to give your skills and items custom row modification properties.

Skill and Item Notetags基于目标/使用者自定义位置

<Custom Target Row>
if (user.hpRate() > 0.50) {
row += 1;
} else {
row = 1;
}
</Custom Target Row>
The 'row' variable refers to the target's row. This will allow you to set
or alter the target's row based on values. Remember that the lower the row
number, the closer the target is to the opposing party.

<Custom User Row>
if (user.hpRate() > 0.50) {
row += 1;
} else {
row = 1;
}
</Custom User Row>
The 'row' variable refers to the user's row. This will allow you to set or
alter the user's row based on values. Remember that the lower the row
number, the closer the user is the the opposing party.

============================================================================
Lunatic Mode - Conditional Row State
============================================================================

To the users who have a bit of JavaScript proficiency, you can use these
notetags to give your row states conditional activation properities, you can
use these notetags. These states have to be applied via the Row States in
the plugin parameters. However, they will not be applied to the battler
unless the conditions are met.

State Notetags:
<Custom Row Condition>
if (user.hp / user.mhp <= 0.25) {
condition = true;
} else {
condition = false;
}
</Custom Row Condition>
The 'condition' variable determines if the condition is met or not. If the
condition is true, the condition is met and this state will be applied to
the battler as a row state. If the 'condition' variable is false, then the
row state will not be applied to the battler.

============================================================================
Lunatic Mode - New JavaScript Functions~
============================================================================

For those with JavaScript proficiency, you can make use of some of these
newly added functions when you do an eval check for the battler info:

battler.row()
This will return the row the battler is currently resided in.

battler.rowIndex()
This will return the battler's index in relation to the other battlers of
the same team in the same row.

battler.isRowLocked()
This will return a true/false if the battler is row locked.

battler.setRow(x)
This will set the battler's row to x. In battle, this will visually move
the battler there, unless the battler is the active battler.

battler.alterRow(x)
This will alter the battler's row by x. In battle, this will visually move
the battler there, unless the battler is the active battler.

$gameParty.rowSize(x)
$gameTroop.rowSize(x)
This will return the number of members found in that group in row x.

$gameParty.rowAliveSize(x)
$gameTroop.rowAliveSize(x)
This will return the number of alive members found in that group in row x.

$gameParty.rowDeadSize(x)
$gameTroop.rowDeadSize(x)
This will return the number of dead members found in that group in row x.

$gameParty.rowMembers(x)
$gameTroop.rowMembers(x)
This will return each member of the group in row x.

$gameParty.rowAliveMembers(x)
$gameTroop.rowAliveMembers(x)
This will return each alive member of the group in row x.

$gameParty.rowDeadMembers(x)
$gameTroop.rowDeadMembers(x)
This will return each dead member of the group in row x.

$gameParty.updateRows();
$gameTroop.updateRows();
This is a special command. This will check each row in the party. If a row
is empty and/or doesn't have any alive members, all the remaining members
behind that row will move forward one row until all the empty rows are gone.

============================================================================
Main Menu Manager - Positioning the Row Command
============================================================================

For those using the Main Menu Manager and would like to position the Row
command in a place you'd like, use the following format:

  Name: Yanfly.Param.RowCmdName
Symbol: row
  Show: $gameSystem.isShowRowMenu()

Enabled: $gameSystem.isEnabledRowMenu()
Ext:
Main Bind: this.commandRow.bind(this)
Actor Bind:

Insert the above setup within a Main Menu Manager slot. Provided you copy
the exact settings to where you need it, it will appear there while using
all of the naming, enabling, disabling, hiding, and showing effects done by
the plugin parameters.

Remember to turn off 'Auto Add Menu' from the plugin parameters.

============================================================================
Plugin Commands
============================================================================

The following are some plugin commands you can use to adjust rows mid-game.

Plugin Command:

ShowMenuRow
HideMenuRow
This will either show or hide the Row command from the main menu.

EnableMenuRow
DisableMenuRow
This will either enable or disable the Row command from the main menu.

ShowBattleRow
HideBattleRow
This will either show or hide the Row command from the battle party menu.
This requires the YEP_BattleEngineCore plugin to take effect.

EnableBattleRow
DisableBattleRow
This will either enable or disable the Row command from the battle party
menu. This requires the YEP_BattleEngineCore plugin to take effect.

SetActorRow actorId x
This will set the actor represented by actorId to move to row x. If you
want to move actor 3 to the 2nd row, the plugin command would look like:
SetActorRow 3 2

SetPartyRow slotId x
This will set the party member in slotId to move to row x. If you want to
move the 3rd party member to the 2nd row, the plugin command would look
like: SetPartyRow 3 2

SetEnemyRow slotId x
This will set the enemy member in slotId to move to row x. If you want to
move the 3rd enemy member to the 2nd row, the plugin command would look
like: SetEnemyRow 3 2

  • Note: If you use this plugin command during turn 0 and the parameter
    'Adjust Relative' is set to false, the enemies will not move and
    automatically assume the position they are in will be the row they'll be
    in. On the other hand, using this plugin on anything after turn 0 will
    move the enemy visually to a different position on the screen. If the
    parameter 'Adjust Relative' is true, the enemies will move.

============================================================================
Changelog
============================================================================

Version 1.14:

  • Game now refreshes all battlers upon reentry into the battle after
    entering and leaving the Row formation menu mid-battle.

Version 1.13:

  • Bug fixed where setting an actor's home position didn't mark their
    original index value.

Version 1.12:

  • Lunatic Mode fail safes added.

Version 1.11:

  • Updated the conditional passives for rows to occur more frequently.

Version 1.10:

  • Updated <Default Row: x> notetag to also include <Default Row: x, x, x> so
    that actors or enemies can start in any of those default rows. If multiple
    rows are included, then at the start of the game (for actors) or start of
    battle (for enemies), the battler will start in a random row included.

Version 1.09b:

  • Updated Lunatic Mode to have an innate 'user' variable.
  • Added 'Auto Add Menu' to plugin parameters. This way, users don't have to
    make conflict with it if manually positioning the command with the Main Menu
    Manager plugin.
  • Documentation update for 'SetEnemyRow slotId x' plugin command.

Version 1.08:

  • Updated for RPG Maker MV version 1.1.0.

Version 1.07b:

  • Fixed a bug that prevented the Row command in-battle from updating.
  • Optimization update.
  • Disabled Row States from being applied outside of battle.

Version 1.06a:

  • Fixed a bug where Lunatic Mode effects weren't working properly.
  • Added a 'Use Map Sprite' plugin parameter for those using battlers that
    are too big for the Row changing menu.
  • Added new section to Help File on how to place Row Formation into the
    Main Menu Manager.

Version 1.05:

  • Fixed a bug with user row changing notetags not working properly.

Version 1.04:

  • Fixed a bug with the SetPartyRow slotId x plugin command.
  • Added 'Adjust Relative' plugin parameter for enemy rows.
    If this value is set to false, their positions in the Troops tab is where
    their designated row is. Meaning if you have a Wisp in Row 3, its current
    location in the Troops tab is where it would be if it be if it was in Row 3.
    If this value is set to true, their positions in the Troops tab is where
    their row 1 is. Meaning if you have a Wisp in Row 3, upon starting battle,
    it will be pushed back in positioning relative to its Troops tab position,
    which is row 1.

Version 1.03a:

  • More positioning fixes. Enemies no longer shift when entering and exiting
    the in-battle menu.

Version 1.02:

  • Made a change where enemies of different default rows don't automatically
    move positions at the start of battle.
  • Fixed an incompatibility issue for those using larger screen resolutions
    and battle repositioning.

Version 1.01:

  • Fixed a bug that caused music to not replay properly when accessing the
    Row change menu from battle.

Version 1.00:

  • Finished Plugin!
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容