//============================================================================= // NRP_ParallaxesPlus.js //============================================================================= /*: * @target MZ * @plugindesc v1.02 Display parallaxes freely. * @author Takeshi Sunagawa (http://newrpg.seesaa.net/) * @url http://newrpg.seesaa.net/article/488413806.html * * @help Provides the ability to display parallaxes at will. * You can display as many parallaxes as you like, * at any coordinates, in any range, and with any display priority. * They can also be used during battle. * * Although the term "parallax" is used, * it can be used for various purposes by changing the display priority. * ※e.g., clouds displayed on top of a map. * * You can also change the settings of the parallaxes once displayed. * Feel free to change the scrolling speed and display coordinates. * * ------------------------------------------------------------------- * [Usage] * ------------------------------------------------------------------- * Invoke plugin commands as needed. * * Note that there is no function to reflect the map settings themselves. * I think it would be better to use parallel processing (+Erase Event), * etc., to display the map immediately after the map starts. * * ------------------------------------------------------------------- * [Plugin Commands MZ] * ------------------------------------------------------------------- * ◆AddParallax * Add Parallax to the current map or battle screen. * See [Setting Items] for details. * * ◆ChangeParallax * Manipulate & change Parallax information for the specified ID. * Unspecified items inherit the settings at the time of creation. * * ◆RemoveParallax * Removes the Parallax with the specified ID. * If ID is not specified, all Parallaxes will be removed. * * ------------------------------------------------------------------- * [Script For MV] * ------------------------------------------------------------------- * This plugin does not support plugin commands for MV, * but can be called from MV via an external plugin. * * The following is an example using callPluginCommandMZ.js(unagi ootoro). * https://raw.githubusercontent.com/unagiootoro/RPGMZ/master/callPluginCommandMZ.js * * Note that it is executed by a script, not a plugin command. * ※Check the definitions of item * and command names in the JS file on your own. * ------------------------------------------------------------------- * // Basic * const args = {}; * args.Image = "StarlitSky"; // parallaxes file * args.Z = 0.5; * args.MapX = 2; * args.MapY = 2; * args.Width = 240; * args.Height= 240; * args.ParallaxTile = true; * * // Options * args.Options = {}; * args.Options.BlendMode = 1; * * // execute * callPluginCommand(this, "NRP_ParallaxesPlus", "AddParallax", args); * * ------------------------------------------------------------------- * [Setting Items] * ------------------------------------------------------------------- * Items that can be used with the plugin commands * (AddParallax / ChangeParallax). * The basic items are the same as for normal Parallax, * but some of them are explained below. * * ◆Z * Z coordinate (priority) to be displayed. * The meaning of the Z-coordinate is as follows. * * 0 : Lower tiles * 1 : Lower characters * 3 : Normal characters * 4 : Upper tiles * 5 : Upper characters * 6 : Airship shadow * 7 : Balloon * 8 : Animation * 9 : Touch Operation Destination * * For example, if you want to display between "Lower tiles" * and "Lower characters", you can set a value such as "z = 0.5". * The default value is -1, * because it is displayed below the Lower tiles. * * Note that it cannot be displayed * below the standard Parallax of RPG Maker. * * ◆ParallaxTile * Make Parallax scroll the same way as tiles when the screen scrolls. * (Same behavior as when the filename is prefixed * with ! at the beginning of the filename) * * For more detailed settings, see "Options > ParallaxX, ParallaxY". * * ◆MapX, MapY * Place Parallax at the specified coordinates on the map. * The specified coordinates will be the starting point (upper left). * The end point should be controlled by "Width" and "Height". * * ◆Options > ParallaxX, ParallaxY * Set the details of the linkage method when scrolling the screen. * Settings take precedence over "ParallaxTile". * * "Screen" is not affected by scrolling at all. * "Tile" scrolls like a tile. (Same as ParallaxTile) * "1/2 Speed" scrolls at 1/2 the speed of tile. * (Same behavior as when Loop Horizontally / Vertically is turned on) * * If not specified, it will be "Screen", but if the filename * starts with "! at the beginning of the file name, * it will be treated as a "Tile". * * You can also set other numbers * by changing to text mode when entering. * For example, if you set 2, * it will scroll twice as fast as the tile. * * ◆Options > NoLoopX, NoLoopY * Displays images that do not loop like pictures. * * ------------------------------------------------------------------- * [Behavior during battle] * ------------------------------------------------------------------- * It behaves much the same as the map scene, * but with the following caveats. * * ◆Z * Setting Z-coordinates does not work by default. * Must be used in conjunction with a plugin that enables * Z-coordinate sorting (display priority change), * such as NRP_DynamicMotionMZ.js. * * Also, by default, Parallax cannot be displayed * behind the battle background. * If necessary, turn on the plugin parameter "UseBattlebackSort". * * ◆MapX, MapY * The behavior is almost the same as in the map scene. * During battle, there are no tiles, so 1 square = 48 pixels. * * ------------------------------------------------------------------- * [Terms] * ------------------------------------------------------------------- * There are no restrictions. * Modification, redistribution freedom, commercial availability, * and rights indication are also optional. * The author is not responsible, * but will deal with defects to the extent possible. * * @----------------------------------------------------- * @ [Plugin Commands] * @----------------------------------------------------- * * @command AddParallax * @desc Add Parallax to the current map or battle screen. * * @arg Id * @desc ID to manage Parallax. * Can be omitted if no further operations are performed. * * @arg Image * @type file * @dir img/parallaxes/ * @desc Parallax image file to be displayed. * * @arg Z * @default -1 * @desc Priority. 0:Lower tile, 1:Lower character, 3:Normal character, * 4:Upper tile, 5:Upper character, 7:Balloon, 8:Animation * * @arg ParallaxTile * @type boolean * @desc When scrolling the screen, link Parallax to the tiles. * If not specified, the file name ! in the file name. * * @arg ScrollX * @type string * @desc Horizontal scrolling speed. Formula available. * * @arg ScrollY * @type string * @desc Vertical scrolling speed. Formula available. * * @arg MapX * @desc X-coordinate of the map where the image will be placed. * 1 square = 48 pixels, even in battle. Formula available. * * @arg MapY * @desc Y-coordinate of the map where the image will be placed. * 1 square = 48 pixels, even in battle. Formula available. * * @arg Width * @desc Width to display Parallax. Formula available. * * @arg Height * @desc Height to display Parallax. Formula available. * * @arg Opacity * @type number * @max 255 * @default 255 * @desc The opacity of the image; Max 255. * Formula is also valid (e.g. $gameVariables.value(1)) * * @arg Duration * @type number * @max 9999 * @desc The time it takes to complete the opacity change. * Specify in 1/60 second increments. * * @arg Options * @type struct