Showing posts with label Plugin. Show all posts
Showing posts with label Plugin. Show all posts

[RMMV Plugin] Event Commands Extras

Version: v1.00 Beta

Introduction

This plugin provides plugin commands that are similar to some of the built-in event commands with evalable parameters. It also provides some more 'event commands', like draw text. Such that allows possibility to, e.g. make some HUD bars, yet the built-in event commands can't do it due to mostly fixed argument values. Also event instances can be duplicated.

Contact me for support/bug report:

listra92@gmail.com
https://www.facebook.com/don.listRA92

Plugin Commands

ShowPicture pictureId name origin x y xScale yScale opacity blendMode

MovePicture pictureId origin x y xScale yScale opacity blendMode duration isWait

RotatePicture pictureId angle

DrawText pictureId text x y width height align

DuplicateEvent eventId x y

(more commands coming in the next version)

Note: The parameters are eval, which means they don't have to always be fixed value. And here string values/expressions must be in single quotes ('...'). This plugin also allows parameters in double quotes ("...") have spaces, pretty like the Windows command-line parameters.

Notes

This plugin isn't fully documented, and there are some plugin commands not documented here. More plugin commands may be added later if needed, e.g. for an action battle system.

Download Plugin

MK_AdvEvent.js

[RMMV Plugin] On-Map Bullets

Version: v1.01

Introduction

This plugin enables player character and events to spawn 'bullets' on the game map, that technically are game pictures. The bullets disappear (erased) when hitting obstacles (impassable things). If they hit an event (not the spawning one), its self switch with name configured in the plugin parameter will be turned on. If they hit the player character (not from itself), the switch with id as configured in the plugin parameter will be turned on.

Some RPGs, and mainly action RPGs use such on-map bullet system. And thus this is pretty useful to build an event-based action battle system.

This plugin is a remake from my previous work, RPG VX script 'BulletMod', which is used in a game made by myself, The Mystery House. Check out the script here.

Contact me for support/bug report:

listra92@gmail.com
https://www.facebook.com/don.listRA92

Plugin Command

ShowBullet name source inst_id speed dir atk target fixed

MoveBullet inst_id x y angle

Read the plugin instructions for explanation.

Notes

This plugin only provides rather 'raw' function to spawn bullets. You may need some special handlings with your own event commands/scripts if you want to extend some, e.g. to prevent player character spawn bullets while an autorun/triggered event is running since it is run in a parallel event.

Download Plugin

MK_OnMapBullet.js

[RMMV Plugin] Localization and String Table

Version: v1.01

Introduction

This plugin allows your game to use string table for each language stored in data\Strings.json, and the player can select language in Options menu to use. The string table contains strings for the game terms that override the ones defined in the database, and some user-defined strings. Additionally you can use escape notation for the strings on dialog messages.

Contact me for support/bug report:

listra92@gmail.com
https://www.facebook.com/don.listRA92

Strings.json

data\Strings.json stores strings for each language in the following format:

[{"langName":"value",
"locale":"value",
"term_mes_Language":"value",
"term_command_NewGame":"value",
"yourString":"value",
...},
...]

The string langName and term_mes_Language are required to display the 'Language' option item in Options menu. The string locale is necessary to determine locale used in the game (e.g. en_US, zh, jp, ru, etc). The strings for the game terms are optional, if not present the terms data in the database will be used.

Message Escape Notation

For dialog messages, scrolling texts, item and skill descriptions, and anything in window boxes, you can use escape notation in the text: \str[yourString]. The string yourString itself can contain escape notations to be processed.

Notes

The complete sample of Strings.json can be downloaded alongside with this plugin. Currently it doesn't include many languages yet, you can add more and suggest if you want.

This plugin doesn't handle item, skill, class, enemy and type names, and also terms defined and used in other plugins unless they allow escape notations to be processed.

Download Plugin

MK_Localization.js
Sample file Strings.json

[RMMV Plugin] Enemy Level

Version: v1.00

Introduction

In the default RPG MV game system, actors have level and parameter curves corresponding to each level 1~99. That means their parameters change upon leveling up. Yet enemies don't so, and thus their parameters are fixed, even while the actors keep leveling up and getting stronger.

With this plugin, you can define level and parameter curves of enemies as eval formula. The enemy level can be defined as function of average party level, so that their level will be 'adjusted' evenly at the start of the battle, like in some games like Final Fantasy Tactics. Additionally, you can define suffix on their name that indicates their level, like "Lv.XX".

Contact me for support/bug report:

listra92@gmail.com
https://www.facebook.com/don.listRA92

Enemy Notetag

Example:

<level: lvl+Math.randomInt(6)-3>
<params>
mhp: 100+(lvl-1)*50
...
</params>

Read the instructions for the explanation.

Download Plugin

MK_EnemyLevel.js

[RMMV Plugin] Pathfinding Extras

Version: v1.00

Introduction

Unlike in RPG Maker VX Ace and former, RPG Maker MV's default game system allows the player to click on a game map tile as destination. The player character will find a shortest path to it using A* pathfinding algorithm, as implemented in method Game_Character.findDirectionTo.

In this plugin, such that method is overriden and extended to allow you to select one of pathfinding algorithms: A*, Jump-point Search, Dijkstra and Greedy Best-first Search. Additionally, you can also enable the characters to move diagonally by setting the parameter '8-directional Mode'.

Contact me for support/bug report:

listra92@gmail.com
https://www.facebook.com/don.listRA92

About Pathfinding Algorithms

You can learn about the pathfinding algorithms in the following articles.

A*:

Jump-point Search:

Dijkstra:

Features and Usages

  • Option to select other pathfinding algorithms to experiment: Jump-point Search, Dijkstra and Greedy Best-first Search.
  • Option whether to keep the found path until the character reach the destination; thus the pathfinding algorithm is only executed once when being ordered to move to the destination. However, the path can be obstructed by some moving objects (other characters), as the character won't move avoiding them.
  • Option whether to draw diagnostic traces as magenta and blue squares that represent path and explored tiles.

Notes

  • If you have MK_AdvancedMove plugin installed, put this plugin under it.
  • Jump-point search is the fastest algorithm since it searches fewer tiles than A* does, but still produces shortest path.
  • Greedy best-first search often performs badly; it tends to produce much longer path. Also unless the 'Remember Path' option is enabled, the character's movement can somewhat get stalled.

Coming in the Next Version

  • Some optimizations, probably.

Known issues

  • The current implemented jump-point search somehow fails on dealing with some certain tiles, like in sample map 'School Hall'.

Download Plugin

MK_Pathfinding.js

RPG MV Plugins Wishlist

Notes

Here I have some idea of RPG Maker MV plugins to develop in some time. There's no estimation on when they'll be done. Anyway if you want to suggest some more, feel free to comment here.

Plugins Wishlist

  • Easy draw text: allows you to draw styled text as pictures on the game map. This can help you to, e.g. make some HUD and on-map popups.
  • On-map bullet: allows the player character and events to spawn 'bullets' as pictures on the game map. The bullets will vanish when hitting impassable tiles and can trigger some common events when hitting the characters.
  • Localization and string table (done, see on this link!): allows player to select a different language through the Options menu for the game terms. You can also define table of strings for each language in a file data\Strings.json, to be used for e.g. dialog messages.
  • Custom weathers: allows you to freely customize how particles spawn for each weather. You can also use image for each particle (can affect the game performance).
  • Free/pixel movement in Advanced Movement plugin: the player character won't be always snapped to the tiles upon moving.
  • Item usage dependency: enables items to use up some other items when consumed, like recipes.
  • Advanced currency: allows you to define multiple currencies and fractional terms (for example 1g 500s that's equal to 1500s).
  • Secure data & resource encryptor: provides a tool to encrypt (almost) all game files. Still being researched since resource and data files, including scripts are exposed and thus vulnerable to kind of abuses, as decrypting files using a script in the game isn't a completely secure way.
  • Vitality/hunger system: each actor has vitality points (VP) that indicates his/her hunger. His/her stats (max HP, ATK, etc.) will be penalized by certain percentage if his/her VP runs low. There's also critical level of VP where the actor can't participate in battles, and zero level (starvation) where he/she dies. VP of the actors decreases upon attacking/casting skills, while you can define skills and items ('foods') that give the user/designated targets some VP.
  • Advanced targeting and unit classification: allows you to define unit classifications (like Mechanical, Undead, etc.) and extends possible target scope of each skill (including the unit classifications), pretty like in Warcraft III. In addition, you can define different effects for each target scope, e.g. a skill that deals damage to Undead units and recover HP of non-Undead units.
  • MMO-style map navigation: displays minimap HUD and adds a menu option to show the full map. The map also contains certain icon marks for some events (e.g. NPCs that gives you quests). The player can also click on the map as destination point to auto-path.
  • MMO-style quest system: just like in most Korean MMORPGs.
  • And finally a 'project' plan, μ'ki's Action System: a whole on-map action battle system (ABS), adopted from Korean MMOs and offline RPGs like Zenonia.

[RMMV Plugin] Self Variables

Version: v1.00

Introduction

The RPG MV default game system has self switches data, but you may also need 'self variables' that belong to each event object like self switches do. That was inspired by RPG VX script "Rei Self Variable", which can be found at RPGMakerID forum, so that I developed this RPG MV plugin for it.

Contact me for support/bug report:

listra92@gmail.com
https://www.facebook.com/don.listRA92

Features and Usages

  • Allows self variables data to be stored in the game save data.
  • Provides easier access to self variables and switches:
    $gameSelfVariables.valueOf(eventId, 'name')
    $gameSelfVariables.setValueOf(eventId, 'name', value);
    $gameSelfSwitches.valueOf(eventId, 'name')
    $gameSelfSwitches.setValueOf(eventId, 'name', value);

    Note: The self switch names by default are 'A', 'B', 'C' and 'D', but here you can define the names by yourself.

Download Plugin

MK_SelfVariables.js

[RMMV Plugin] Advanced Parallax

Version: v1.00

Introduction

This plugin allows you to have more control on map parallaxes by defining them in the map notetag. It also allows you to define multiple layered parallaxes (either behind or in front of the tiles and characters), a bit like in RPG Maker XP games, which have panoramas and fogs. Additionally, you can make animated parallaxes (having more than one frame).

Contact me for support/bug report:

listra92@gmail.com
https://www.facebook.com/don.listRA92

Map Notetag

Example:

<parallax>
name: StarlitSky
loopx: true
loopy: true
sx: 4
sy: $gameVariables.value(1)
depth: 1
frames: 4
framesp: 2
</parallax>

Read the instructions for the explanation.

Animated Parallaxes

You can make parallaxes animated with more than one frame. For such that, put several files in \img\parallaxes folder, for example StarlitSky_1.png, StarlitSky_2.png, ... for each frame of the parallax StarlitSky defined in the map note. For non-animated ones, just put the file as usual, i.e. StarlitSky.png.

Download Plugin

MK_AdvParallax.js

[RMMV] How to Use & Update Plugins + General Q/A

Introduction

For those who don't know about that, plugins in RPG Maker MV are basically extending scripts that are managed by PluginManager in a game system script rpg_managers.js. Unlike in RPG Maker VX Ace and former, RPG MV editor provides plugin manager for such that, as shown in the picture below. I explain it in the next section.

Adding, Removing, and Configuring Plugins

  1. Put a plugin (.js file) to add into directory: [game_directory]\js\plugins
  2. In the RPG MV editor, open Tools -> Plugin Manager... (F10).
  3. To add a plugin, double click the blank entry at the bottom.
  4. Click the Name: combo box to select a plugin (all in the plugin directory).
  5. Click the Status: combo box to enable/disable the plugin (whether to let it loaded & executed by the game system).
  6. Some plugins provide certain parameters to configure. Double click on a parameter to change its value.
  7. Click the Help... to see instructions for the plugin.
  8. Click OK if you're done.
  9. To reorder a plugin, right click -> Cut (Ctrl+X) on it and right click -> Paste (Ctrl+V) on the place you think it should be.
  10. To remove a plugin, right click -> Delete (Del) on it. Note that the file won't be deleted from the disk.

Updating Plugins

Some 'baka's said that we have to recreate a new project for the current one in order to update some plugins. Well, here I explain the better way to update plugins. First, put an 'updated' plugin into the plugin directory and replace the existing 'old' one. Then, there are two cases:

Case 1: Only difference on some script code.

You don't need to do anything with the plugin manager, just playtest the game to see some effects.

Case 2: Difference on the parameters definition.

The plugin may not work well when running the game, especially dealing with newly added parameters. So, do the following steps:

  1. Open the plugin manager.
  2. Remove a plugin you want to update. Note that any changes on the parameter values will be lost.
  3. Add the plugin again, reconfigure the parameters, and reorder it.
  4. Save your project and playtest the game to see some effects.

RPG MV Plugins General Q/A

Q: I can't find plugin(s) I want. What should I do?
A: Try searching in the RPG Maker official forum and some other unofficial forums. They may haven't been released yet, since RPG MV was still newly released in end of October, 2015. Or if you think you can, try developing them by yourself.

Q: Do plugin orders matter?
A: In many cases, yes, like scripts in RPG VX Ace and former. Some of them may override variables and/or functions that were defined in the plugin at above, and they may be overriden by one(s) at below. Some of them may also require variables and/or functions defined in the plugin at above.

Q: What capabilities could RPG MV plugins perform?
A: Basically, RPG MV games are HTML5 applications, and the game runner is a Chrome-based mini-browser. Thus, all JavaScript and HTML5 features (including AJAX) are of course applicable. WebGL library features are also applicable due to support on it. So, we could develop a browser-based MMORPG that utilizes AJAX, or even a game using WebGL's 3D graphics renderer.

Q: I want to develop RPG MV plugins by myself. What things do I need?
A: First, and the most important, programming skill and ability to script using JavaScript, like you do for web applications. You can learn JavaScript in w3schools.com.
Second, it's necessary to learn some code in the default RPG MV game system. You can also learn the structures documented in the RPG MV help file.
If your plugin utilizes other existing plugin(s), of course you need to learn their code.

Q: Can I make and apply external JS scripts (not plugin) on RPG MV games?
A: Yes. A thing you need to do is modifying index.html in the game directory. Add the following in the <body> tag, above the element for main.js:
<script type="text/javascript" src="js/yourscript.js"></script>
But still, it's recommended to make them as plugins that can be easily managed using the plugin manager.

[RMMV Plugin] Advanced Movement

Version: v1.02

Introduction

μ'ki's Advanced Movement is remake from my previous work, Alissa Advanced Move Route (for RPG Maker XP & VX), for RPG Maker MV. It also overrides the Move Toward Player route command to use pathfinding, like my another previous work, Listra Pathfinder Module, does. However, here it uses the A* pathfinding algorithm that already exists in the RPG MV game system, with a little mod to adjust/omit the search limit.

For information about Alissa Advanced Move Route, search the thread at RPGMakerID forum. Sorry, I don't know if it exists, maybe because it has been several years ago.

For information about Listra Pathfinder Module, visit this link.

Contact me for support/bug report:

listra92@gmail.com
https://www.facebook.com/don.listRA92

Features and Usages

  • Adjusts A* pathfinding search depth limit (by default set to 12), if the shortest path to the destination is longer than that value, the character may stop in front of an obstacle.
  • Adjusts whether to use pathfinding for Move toward Player (and other characters) instead of naive movement that doesn't avoid obstacles.
  • Move towards point, just add script in the movement route: this.moveTowardPoint(X, Y);
  • Jump left(4), right(6), up(8), down(2) (one step, triggering Player/Event Touch): this.jumpStraight(direction[, turn_ok = true]);
  • Jump diagonally: this.jumpDiagonally(h, v[, turn_ok = true]);
  • Jump towards point (per step): this.jumpTowardPoint(X, Y);
  • Jump towards char (player/event): this.jumpTowardCharacter(character);
  • this.jumpTowardPlayer();
  • this.jumpAwayFromCharacter();
  • this.jumpRandom();
  • this.jumpForward();
  • this.jumpBackward();
  • this.eraseEvent(event);
  • Flow label: this.label(label_name);
  • Jump to label with condition: this.jumpLabel(label_name[, cond = "true"]);
  • this.endRoute();

Changelog

v1.02:

  • Prepared for compatibility to MK_Pathfinding.js plugin.

v1.01b:

  • 8-direction support for the pathfinding algorithm.

v1.01:

  • Improved the A* algorithm that lagged when targeting a character, since it isn't passable and causes the algorithm search entire pathable tiles.
  • Fixed followers not moving when the player character is in jump mode.
  • 8-direction player movement.

Coming in the Next Version

  • Option to use free/pixel movement system.
  • More movement route commands (probably).

Download Plugin

MK_AdvancedMove.js