Introduction
If you're using Yanfly plugins or many other popular plugins that let you define complex behaviors through Note tags, you're probably aware that it's a bit of a mess, especially if you're embedding Javascript code in your note through Yanfly's Lunatic Mode and so on. Really this is an abuse of the note field - it was never designed for this much text, and the only way to manage it is to write everything in a separate text editor and copy and paste it into the field, which is annoying if you want to make changes.
This is meant to be used with plugins that allow complicated features to be coded up in note fields, and though a basic knowledge of Javascript will be useful for understanding how this works and coding your own special features, I've set things up so you technically can get by with no Javascript knowledge.
Features
This script provides two notetags to use:
<JSNote:functionName>
复制代码
(where functionName is the name of a Javascript function that returns your note text)
<JSNoteParams:param1,param2>
复制代码
(where param1,...paramN is a comma-separated list of parameters to pass to the function. Commas can be escaped with
\,
复制代码
(backslash-comma).
Because now you are running Javascript to retrieve your note field, you can use all its power to add more dynamic features to your game. You could store some properties in a settings file and read it through Javascript, make certain behaviors change based on whether you start the game when the system clock says it's day or night, and so on. The sky's the limit if you're proficient in Javascript (or copy and pasting ). Of course, basically no knowledge is required to achieve the easiest feature of letting you edit and store complicated note fields.
Screenshots
I've referenced Yanfly's tutorial on Adapting Armorhere as an example of how this cleans up complicated note fields.
Spoiler: Screenshots
How to Use
Put NoteFieldsFromJs.js into your plugin folder and enable it. If you have any plugins that modify how the database loads its data, place this plugin below those. It should be fully compatible. Once enabled, use the tags referenced above as needed.
You can organize your functions however you like, but in case you're hesitant due to little or no coding knowledge that's fine too - I've included a template called NoteFields.js, a template plugin that can serve as a place to put all your note field functions. Follow the examples inside that plugin to create your own functions easily.
Changelog
Code:
v1.2
===
- Re-include NoteFields.js template plugin
- Include more detailed documentation on how to use the NoteFields.js template plugin
v1.1
===
- Change notetag parsing logic so you can now reference info from values from the $data* objects like $dataArmors, etc.
- Compatability patch for Eli's FindNameById (Database Organizer)
- Compatability patch for Yanfly's Doodads
v1.0
===
Initial release
复制代码
Terms of Use: You are free to use this code in any project you like, including commercial projects. You may also modify or distribute this code with only the following restriction: Leave my name attached somewhere to the code, be it in the plugin author field or attribution added in the code itself.