Очистка переменных перед загрузкой карты
Автор: Yuryol
Движок: RPG maker MV
Описание: Плагин позволяет очищать значения переменных перед каждой загрузке карты и делать их равными дефолтным значениям. По умолчанию дефолтное значение равно нулю, но можно задать своё значение в параметре "default"
Благодарности: Спасибо ДК, Dmy, Caveman
Подойдет для подобий роуг-лайк-игр на мейкере или для игр с "уровнями"
Если кому-нибудь надо добавить сброс также переключателей пишите в теме, добавить не проблема
Значение параметров более подробно:
num
- номер переменной
default
- значение переменной после сброса
Установка:
Скопировать код ниже и вставить в файл, назвав его Yuryol_Clear_variable.js ИЛИ
скачать по ссылке
Код:
//=============================================================================
// Yuryol_Clear_variable.js
//=============================================================================
/*:
* @plugindesc Очистка переменных перед загрузкой карты
* @author Yuryol
* @help Плагин позволяет очищать значения переменных перед каждой загрузке
* карты и делать их равными дефолтным значениям. По умолчанию дефолтное
* значение равно нулю, но можно задать своё значение в параметре "default"
*
*
* Спасибо Iren_rin, ДК, Dmy, Caveman
*
* Условия использования:
* 1. Плагин полностью свободен для использования.
* 2. Описание и название плагина менять нельзя
*
* @param Variable
* @type Struct<Keys>[]
* @default ["{\"num\":\"1\",\"default\":\"10\"}"]
*/
/*~struct~Keys:
*
* @param num
* @desc Номер переменной
* @type variable
* @default 1
*
* @param default
* @desc Значение переменной по умолчанию
* @type number
* @default 0
*/
(function () {
class YuryolClearVariable {
constructor() {
this.variables = null
}
addParameters() {
this.addVariables()
}
addVariables() {
let variables = JSON.parse(PluginManager.parameters('Yuryol_Clear_variable')['Variable'])
yuryolClearVariable.variables = variables.map(v => JSON.parse(v))
}
}
let yuryolClearVariable = new YuryolClearVariable()
yuryolClearVariable.addParameters()
let yuryolTerminate = Scene_Map.prototype.terminate
Scene_Map.prototype.terminate = function() {
yuryolTerminate.call(this);
if (SceneManager.isNextScene(Scene_Map))
yuryolClearVariable.variables.map(v => {
$gameVariables.setValue(v.num, Number(v.default))
})
}
}())