Advanced Switches & Variables (YEP)

From Yanfly.moe Wiki
Jump to navigation Jump to search


System

This is a plugin created for RPG Maker MV.

For help on how to install plugins, click here.

For help on how to update plugins, click here.

Got errors with your RPG Maker MV plugin? Click here.

Download

Yanfly Engine Plugins

This plugin is a part of the Yanfly Engine Plugins library.

Click here if you want to help support Team Yanfly on Patreon.

Introduction

For the advanced users out there with JavaScript experience, you can set
certain switches and variables to return data about the game through pieces
of code on the get go. This can be used for event page conditions, enemy AI
conditions, troop page conditions, and more!

Instructions

To use this plugin, name the switches or variables that you want to utilize
code effects with the following format:

  Eval: code

This will make the switch or variable run the piece of code after the
'Eval:' marker. The code is used for a switch, it ought to return a 'true' or
'false' boolean. If the code is used for a variable, it ought to return a
numeric value for comparison.

For example, a switch named 'Eval: $gameActors.actor(1).isLearnedSkill(5)',
then it will return true if Actor 1 has skill 5 learned or not. This can be
used for things like making a skill with 'True Sight' and making certain
things appear visible on the map if the actor has that skill.

While variables can insert their own JavaScript code easily thanks to the
help of the 'Script' option in the Control Variables event, you can save
yourself the extra step by just naming a variable 'Eval: $gameParty.gold()'.
This will automatically make it calculate the amount of gold the party has
and reference it with the variable.

!! WARNING !!

If you are using this as an event's page condition, keep in mind that any
changes made from events on the map will not reflect the changes made to
reference those switches immediately. For that, you will have to refresh the
map, which can be done using the plugin command below:

Plugin Commands

PluginCommandsMV.png

Plugin Commands are event commands that are used to call upon functions added by a plugin that aren't inherently a part of RPG Maker MV.

Here is a list of Plugin Command(s) that you may use:

These plugin commands can be used to immediately refresh a map or troop
troop event to ensure that switch/variable data gets noticed and triggered
or updated upon your call.

Plugin Command:

  RefreshMap
  - This will refresh all of the map's events. This will update any page
  conditions with Advanced Switches or Variables that may have changed
  values prior to using this plugin command. This can only be used outside
  of battle!

  RefreshTroop
  - This will refresh the current event interpreter in battle. This will
  update any page condition within the current troop that utilizes Advanced
  Switches or Variables that may have changed values prior to using this
  plugin command.
  * NOTE: If you are using the Battle Engine Core, using this won't be
  necessary for the majority of the time.

Examples

Here are some examples that you can use Advanced Switches and Variables for!

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Switches
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Eval: $gameActors.actor(1).isLearnedSkill(5)
- This will make a check if Actor 1 (in the database) has learned skill 5
(in the database). This can be used for some skills like 'True Sight' to
certain events appear differently on the map or certain events happen in
battle (like seeing through an enemy's disguise).

Eval: $gameActors.actor(2).isStateAffected(10)
- This will make a check to see if Actor 2 is affected by state 10 (in the
database). If the actor is affected by it, then the switch will return true.
Otherwise, it will return false.

Eval: $gameActors.actor(3).isEquipped($dataWeapons[100])
- This will make a check to see if Actor 3 (in the database) has Weapon 100
(in the database) equipped. If it does, then the switch will return true.
Otherwise, it will return false.

Eval: $gameActors.actor(4).isEquipped($dataArmors[200])
- This will make a check to see if Actor 4 (in the database) has Armor 200
(in the database) equipped. If it does, then the switch will return true.
Otherwise, it will return false.

Eval: $gameActors.actor(5).isDead()
- This will make a check to see if Actor 5 is currently dead. Being dead
will require that the actor is afflicted with the death state. If the actor
is dead, the switch will return true. Otherwise, it will return false.

Eval: $gameActors.actor(6).isAlive()
- This will make a check to see if Actor 6 is currently alive. Being alive
will require that the actor is not afflicted with the death state. If the
actor is alive, the switch will return true. Otherwise, it will return false.

Eval: $gameVariables.value(2) < 3
- You know how map event page conditions can only make checks if a variable
is only greater than or equal to a value? Well, now you can do the opposite
and check if a variable is less than a certain value. The example used above
will check if Variable 2 has a value less than 3 (but not equal to).

Eval: $gameSelfSwitches.value([10,20,'A'])
- This will allow an event to use another event's self switch case to
determine its condition. The example above checks if Map 10, Event 20's 'A'
self switch is turned on.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Variables
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Eval: $gameParty.leader().actorId()
- This will return the party leader's actor ID. This can be useful for
certain events that may have different reactions depending on who your party
leader is at the time.

Eval: $gameParty.gold()
- This will return the party's exact amount of gold. This can also be used
in some event's pages to make bags of gold appear in the player's HQ to show
just how rich the player is.

Eval: $gameParty.steps()
- This will return the amount of steps the player has walked. This can be
used in ways where a trophy may appear in the player's HQ depending on how
many steps the player has walked.

Eval: $gameParty.aliveMembers().length
- This will return the number of alive members in the current party. Best if
used in battle when trying to make different things happen depending on the
number of allies currently alive in battle.

Eval: $gameParty.deadMembers().length
- This will return the opposite: the number of dead members in the current
party. Also best used in battle when trying to make different things happen
depending on the number of allies that are dead in battle.

Eval: $gameParty.highestLevel()
- This will return the party's current highest level member. In battle, this
will refer to the active party in action. Outside of battle, it pertains to
any of the members in the active party or reserve party.

Eval: $gameParty.numItems($dataItems[1])
Eval: $gameParty.numItems($dataWeapons[2])
Eval: $gameParty.numItems($dataArmors[3])
- This will return the actual number of items as the condition instead of
whether or not the party has that item. For weapons and armors, this will
not include those that are equipped.

Changelog

Version 1.02:
- Bypass the isDevToolsOpen() error when bad code is inserted into a script
call or custom Lunatic Mode code segment due to updating to MV 1.6.1.

Version 1.01:
- Bug fixed to prevent compatibility problems with the Debugger.

Version 1.00:
- Finished Plugin!