Merge branch 'main' of https://git.xyzzgame.com/xyzzgzs/ycrpg
commit
37463aa483
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
File diff suppressed because one or more lines are too long
@ -0,0 +1,191 @@
|
|||||||
|
//=============================================================================
|
||||||
|
// SF_Cursor.js
|
||||||
|
/*:
|
||||||
|
* @plugindesc windows selectable cursor
|
||||||
|
* @author SaltedFish
|
||||||
|
*
|
||||||
|
* @help
|
||||||
|
* just trace on.
|
||||||
|
* Thanks galvs-scripts.com
|
||||||
|
* require img/system/cursor.png
|
||||||
|
* Change From GALV_CursorImage.js and MOG_MenuCursor
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
|
||||||
|
(function () {
|
||||||
|
Cursor = {};
|
||||||
|
Cursor.imgUrl = "img/system/Cursor.png";
|
||||||
|
Cursor.offsetx = 0; // px
|
||||||
|
Cursor.offsety = 0; // px
|
||||||
|
Cursor.moveSpeed = 0.3; // px
|
||||||
|
Cursor.moveDirection = "horizontal"; //"horizontal" : x , "vertical" : y
|
||||||
|
Cursor.moveRange = 8; // px
|
||||||
|
Cursor.iIndent = 0; // Indent items and skills in menus to make room for the cursor if required
|
||||||
|
Cursor.cIndent = 0; //Indent commands in menus to make room for the cursor if required
|
||||||
|
|
||||||
|
// Spirit_Cursor
|
||||||
|
|
||||||
|
function Sprite_Cursor() {
|
||||||
|
this.initialize.apply(this, arguments);
|
||||||
|
}
|
||||||
|
|
||||||
|
Sprite_Cursor.prototype = Object.create(Sprite_Base.prototype);
|
||||||
|
Sprite_Cursor.prototype.constructor = Sprite_Cursor;
|
||||||
|
|
||||||
|
Sprite_Cursor.prototype.initialize = function (window) {
|
||||||
|
Sprite_Base.prototype.initialize.call(this);
|
||||||
|
this._window = window;
|
||||||
|
this.createImage();
|
||||||
|
this._ticker = 0;
|
||||||
|
this.offsetx = 0;
|
||||||
|
this.offsety = 0;
|
||||||
|
this.nowMoingDirction = 1; // 1,-1
|
||||||
|
this.moveDirection = null;
|
||||||
|
this.move_x = 0;
|
||||||
|
this.move_y = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
Sprite_Cursor.prototype.createImage = function () {
|
||||||
|
this.bitmap = ImageManager.loadNormalBitmap(Cursor.imgUrl);
|
||||||
|
this.opacity = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
Sprite_Cursor.prototype.update = function () {
|
||||||
|
Sprite_Base.prototype.update.call(this);
|
||||||
|
if (this._window.isCursorVisible() && !$gameSystem._cursorHidden) {
|
||||||
|
this.opacity = this._window.openness >= 255 ? 255 : 0;
|
||||||
|
this.updatePosition();
|
||||||
|
if (this._window.isHorizontal()) {
|
||||||
|
this.moveDirection = "vertical";
|
||||||
|
} else {
|
||||||
|
this.moveDirection = "horizontal";
|
||||||
|
}
|
||||||
|
if (this._window.active) this.updateMoving();
|
||||||
|
} else {
|
||||||
|
this.opacity = 0;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
Sprite_Cursor.prototype.updatePosition = function () {
|
||||||
|
var rect = this._window._cursorRect;
|
||||||
|
var Direction = this.moveDirection ? this.moveDirection : Cursor.moveDirection;
|
||||||
|
if (Direction == "horizontal") {
|
||||||
|
this.y =
|
||||||
|
rect.y +
|
||||||
|
Cursor.offsety +
|
||||||
|
this.offsety +
|
||||||
|
this._window.standardPadding() +
|
||||||
|
this.yPos(rect.height) -
|
||||||
|
this.yPos(this.height);
|
||||||
|
this.x =
|
||||||
|
rect.x + Cursor.offsetx + this.offsetx - this.width - Cursor.moveRange + this._window.standardPadding();
|
||||||
|
if (this._window.position.x + this.x < 0) {
|
||||||
|
this.x = rect.x + Cursor.offsetx + this.offsetx + rect.width - this._window.standardPadding();
|
||||||
|
}
|
||||||
|
} else if (Direction == "vertical") {
|
||||||
|
this.y =
|
||||||
|
rect.y +
|
||||||
|
Cursor.offsety +
|
||||||
|
this.offsety -
|
||||||
|
this.height -
|
||||||
|
Cursor.moveRange +
|
||||||
|
this._window.standardPadding();
|
||||||
|
this.x =
|
||||||
|
rect.x +
|
||||||
|
Cursor.offsetx +
|
||||||
|
this.offsetx +
|
||||||
|
this._window.standardPadding() +
|
||||||
|
this.yPos(rect.width) -
|
||||||
|
this.yPos(this.width);
|
||||||
|
if (this.y + this._window.position.y < 0) {
|
||||||
|
this.y = rect.y + Cursor.offsety + this.offsety + rect.height - this._window.standardPadding();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
Sprite_Cursor.prototype.yPos = function (height) {
|
||||||
|
return height / 2;
|
||||||
|
};
|
||||||
|
|
||||||
|
Sprite_Cursor.prototype.updateMoving = function () {
|
||||||
|
var Direction = this.moveDirection ? this.moveDirection : Cursor.moveDirection;
|
||||||
|
if (Direction == "horizontal") {
|
||||||
|
var offsetx = this.move_x + Cursor.moveSpeed * this.nowMoingDirction;
|
||||||
|
if (offsetx > Cursor.moveRange) {
|
||||||
|
offsetx = 2 * Cursor.moveRange - offsetx;
|
||||||
|
this.nowMoingDirction *= -1;
|
||||||
|
} else if (offsetx < -Cursor.moveRange) {
|
||||||
|
offsetx = -2 * Cursor.moveRange - offsetx;
|
||||||
|
this.nowMoingDirction *= -1;
|
||||||
|
}
|
||||||
|
this.x = this.x + offsetx;
|
||||||
|
this.move_x = offsetx;
|
||||||
|
} else if (Direction == "vertical") {
|
||||||
|
var offsety = this.move_y + Cursor.moveSpeed * this.nowMoingDirction;
|
||||||
|
if (offsety > Cursor.moveRange) {
|
||||||
|
offsety = 2 * Cursor.moveRange - offsety;
|
||||||
|
this.nowMoingDirction *= -1;
|
||||||
|
} else if (offsety < -Cursor.moveRange) {
|
||||||
|
offsety = -2 * Cursor.moveRange - offsety;
|
||||||
|
this.nowMoingDirction *= -1;
|
||||||
|
}
|
||||||
|
this.y = this.y + offsety;
|
||||||
|
this.move_y = offsety;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Pre cache
|
||||||
|
Scene_Boot_loadSystemImages = Scene_Boot.loadSystemImages;
|
||||||
|
Scene_Boot.loadSystemImages = function () {
|
||||||
|
Scene_Boot_loadSystemImages.call(this);
|
||||||
|
ImageManager.loadNormalBitmap(Cursor.imgUrl);
|
||||||
|
};
|
||||||
|
|
||||||
|
Game_System_initialize = Game_System.prototype.initialize;
|
||||||
|
Game_System.prototype.initialize = function () {
|
||||||
|
Game_System_initialize.call(this);
|
||||||
|
this._cursorHidden = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
Window_NumberInput.prototype.createSFCursor = function () {};
|
||||||
|
|
||||||
|
Window_ShopNumber.prototype.createSFCursor = function () {};
|
||||||
|
|
||||||
|
Window_BattleStatus.prototype.createSFCursor = function () {};
|
||||||
|
|
||||||
|
Window_Selectable.prototype.createSFCursor = function () {
|
||||||
|
this._SFCursor = new Sprite_Cursor(this);
|
||||||
|
this.addChild(this._SFCursor);
|
||||||
|
};
|
||||||
|
|
||||||
|
Window_BattleActor.prototype.createSFCursor = Window_Selectable.prototype.createSFCursor;
|
||||||
|
|
||||||
|
Window_Selectable_initialize = Window_Selectable.prototype.initialize;
|
||||||
|
Window_Selectable.prototype.initialize = function (x, y, width, height) {
|
||||||
|
Window_Selectable_initialize.call(this, x, y, width, height);
|
||||||
|
this.createSFCursor();
|
||||||
|
};
|
||||||
|
|
||||||
|
Window_Command_textPadding = Window_Command.prototype.textPadding;
|
||||||
|
Window_Command.prototype.textPadding = function () {
|
||||||
|
return Window_Command_textPadding.call(this) + Cursor.cIndent;
|
||||||
|
};
|
||||||
|
|
||||||
|
Window_EquipSlot_drawText = Window_EquipSlot.prototype.drawText;
|
||||||
|
Window_EquipSlot.prototype.drawText = function (text, x, y, maxWidth, align) {
|
||||||
|
x += Cursor.iIndent;
|
||||||
|
Window_EquipSlot_drawText.call(this, text, x, y, maxWidth, align);
|
||||||
|
};
|
||||||
|
|
||||||
|
Window_Selectable_drawItemName = Window_Selectable.prototype.drawItemName;
|
||||||
|
Window_Selectable.prototype.drawItemName = function (item, x, y, width) {
|
||||||
|
x += Cursor.iIndent;
|
||||||
|
Window_Selectable_drawItemName.call(this, item, x, y, width);
|
||||||
|
};
|
||||||
|
|
||||||
|
Window_EquipSlot_drawIcon = Window_EquipSlot.prototype.drawIcon;
|
||||||
|
Window_EquipSlot.prototype.drawIcon = function (iconIndex, x, y) {
|
||||||
|
x += Cursor.iIndent;
|
||||||
|
Window_EquipSlot_drawIcon.call(this, iconIndex, x, y);
|
||||||
|
};
|
||||||
|
})();
|
@ -0,0 +1,614 @@
|
|||||||
|
//=============================================================================
|
||||||
|
// Yanfly Engine Plugins - Save Core Extension - Autosave
|
||||||
|
// YEP_X_Autosave.js
|
||||||
|
//=============================================================================
|
||||||
|
|
||||||
|
var Imported = Imported || {};
|
||||||
|
Imported.YEP_X_Autosave = true;
|
||||||
|
|
||||||
|
var Yanfly = Yanfly || {};
|
||||||
|
Yanfly.Autosave = Yanfly.Autosave || {};
|
||||||
|
Yanfly.Autosave.version = 1.00;
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*:
|
||||||
|
* @plugindesc v1.00 (Req YEP_SaveCore.js) Adds Autosave functionality to your
|
||||||
|
* RPG Maker game.
|
||||||
|
* @author Yanfly Engine Plugins
|
||||||
|
*
|
||||||
|
* @help
|
||||||
|
* ============================================================================
|
||||||
|
* Introduction
|
||||||
|
* ============================================================================
|
||||||
|
*
|
||||||
|
* This plugin requires YEP_SaveCore. Make sure this plugin is located under
|
||||||
|
* YEP_SaveCore in the plugin list.
|
||||||
|
*
|
||||||
|
* Autosave is a common feature found in standard RPG's nowadays. Games would
|
||||||
|
* save at certain triggers or upon changing maps so that the player won't lose
|
||||||
|
* any progress in case they forget to manually save. This plugin adds in an
|
||||||
|
* Autosave function to your game(s) and lets you control when to Autosave or
|
||||||
|
* set it to do it automatically under certain conditions.
|
||||||
|
*
|
||||||
|
* ============================================================================
|
||||||
|
* Instructions
|
||||||
|
* ============================================================================
|
||||||
|
*
|
||||||
|
* There are three ways to go about Autosave with this plugin. Please read them
|
||||||
|
* carefully and decide which one(s) is best suited for your game.
|
||||||
|
*
|
||||||
|
* ---
|
||||||
|
*
|
||||||
|
* Manual:
|
||||||
|
* - By default, Autosave does not happen automatically with this plugin. You,
|
||||||
|
* as the game dev, need to insert the Plugin Command: Autosave at the various
|
||||||
|
* points you want the Autosave to occur. This one gives you the most control
|
||||||
|
* over your game.
|
||||||
|
*
|
||||||
|
* ---
|
||||||
|
*
|
||||||
|
* Autosave on Map Load:
|
||||||
|
* - This is a Plugin Parameter. When it is set to true, the game will Autosave
|
||||||
|
* each time the map scene is loaded. This means entering a new map, coming out
|
||||||
|
* of a menu, or finishing a battle. All three of those conditions causes the
|
||||||
|
* Autosave function to activate.
|
||||||
|
*
|
||||||
|
* ---
|
||||||
|
*
|
||||||
|
* Autosave on Main Menu:
|
||||||
|
* - This is a Plugin Parameter. When it is set to true, the game will Autosave
|
||||||
|
* each time the player enters the Main Menu from the map scene. Autosave will
|
||||||
|
* NOT occur any other way regarding the Main Menu, meaning that coming out of
|
||||||
|
* the Item scene to the Main Menu will not activate Autosave.
|
||||||
|
*
|
||||||
|
* ---
|
||||||
|
*
|
||||||
|
* Autosaving will not occur if the player disables Autosave. If you don't want
|
||||||
|
* to give the player the ability to disable Autosave, you can set the Plugin
|
||||||
|
* Parameter "Show Option" to false.
|
||||||
|
*
|
||||||
|
* You can use all three methods of Autosaving together. You can have it done
|
||||||
|
* manually, Autosave on loading a map, and Autosave on calling the Main Menu
|
||||||
|
* to get the most coverage.
|
||||||
|
*
|
||||||
|
* *NOTE: Although you can use all three methods together, be mindful of your
|
||||||
|
* players. Sometimes, saving a game could induce a bit of lag depending on how
|
||||||
|
* big the save files are. Autosaving is no different. This is something that
|
||||||
|
* cannot be fixed by plugins.
|
||||||
|
*
|
||||||
|
* *NOTE: Autosaving will not occur until the player saved manually at least
|
||||||
|
* once in-game. After that, Autosave will take the slot that was used to save
|
||||||
|
* and continue saving to it or whichever save slot the player moved to later.
|
||||||
|
*
|
||||||
|
* ============================================================================
|
||||||
|
* Plugin Commands
|
||||||
|
* ============================================================================
|
||||||
|
*
|
||||||
|
* Autosave is manually done by the game developer using plugin commands. There
|
||||||
|
* are also other plugin commands that can control autosaving, too.
|
||||||
|
*
|
||||||
|
* Plugin Commands:
|
||||||
|
*
|
||||||
|
* Autosave
|
||||||
|
* - This will make the game automatically save in the last saved file
|
||||||
|
* slot used by the player. If the player has started a new game and did
|
||||||
|
* not save into a slot yet, nothing will happen. If autosave is disabled
|
||||||
|
* by the player through the Options menu or disabled by the system with
|
||||||
|
* a plugin command, nothing will happen either.
|
||||||
|
*
|
||||||
|
* EnableAutosave
|
||||||
|
* DisableAutosave
|
||||||
|
* - This will forcibly enable or disable autosaving done by the game.
|
||||||
|
* This will not bypass the player's option to disable Autosave if trying
|
||||||
|
* to enable it. The player's decision to disable Autosaving will take
|
||||||
|
* priority over the game dev's. If you wish to take this option away from
|
||||||
|
* the player, please change it in the plugin parameters.
|
||||||
|
*
|
||||||
|
* ============================================================================
|
||||||
|
* Options Core Settings - Adding the New Option
|
||||||
|
* ============================================================================
|
||||||
|
*
|
||||||
|
* If you are using YEP_OptionsCore.js, you can add a new Option using this
|
||||||
|
* plugin. Here's the following code/parameter settings you can use with it.
|
||||||
|
*
|
||||||
|
* ---------
|
||||||
|
* Settings:
|
||||||
|
* ---------
|
||||||
|
*
|
||||||
|
* Name:
|
||||||
|
* \i[231]Autosave
|
||||||
|
*
|
||||||
|
* Help Description:
|
||||||
|
* Enables \c[4]Autosaving\c[0] for your game if ON.
|
||||||
|
* You can still manually save your game.
|
||||||
|
*
|
||||||
|
* Symbol:
|
||||||
|
* autosave
|
||||||
|
*
|
||||||
|
* Show/Hide:
|
||||||
|
* show = Imported.AutosaveShowOpt;
|
||||||
|
*
|
||||||
|
* Enable:
|
||||||
|
* enabled = true;
|
||||||
|
*
|
||||||
|
* Ext:
|
||||||
|
* ext = 0;
|
||||||
|
*
|
||||||
|
* ----------
|
||||||
|
* Functions:
|
||||||
|
* ----------
|
||||||
|
*
|
||||||
|
* Make Option Code:
|
||||||
|
* this.addCommand(name, symbol, enabled, ext);
|
||||||
|
*
|
||||||
|
* Draw Option Code:
|
||||||
|
* var rect = this.itemRectForText(index);
|
||||||
|
* var statusWidth = this.statusWidth();
|
||||||
|
* var titleWidth = rect.width - statusWidth;
|
||||||
|
* this.resetTextColor();
|
||||||
|
* this.changePaintOpacity(this.isCommandEnabled(index));
|
||||||
|
* this.drawOptionsName(index);
|
||||||
|
* this.drawOptionsOnOff(index);
|
||||||
|
*
|
||||||
|
* Process OK Code:
|
||||||
|
* var index = this.index();
|
||||||
|
* var symbol = this.commandSymbol(index);
|
||||||
|
* var value = this.getConfigValue(symbol);
|
||||||
|
* this.changeValue(symbol, !value);
|
||||||
|
*
|
||||||
|
* Cursor Right Code:
|
||||||
|
* var index = this.index();
|
||||||
|
* var symbol = this.commandSymbol(index);
|
||||||
|
* var value = this.getConfigValue(symbol);
|
||||||
|
* this.changeValue(symbol, true);
|
||||||
|
*
|
||||||
|
* Cursor Left Code:
|
||||||
|
* var index = this.index();
|
||||||
|
* var symbol = this.commandSymbol(index);
|
||||||
|
* var value = this.getConfigValue(symbol);
|
||||||
|
* this.changeValue(symbol, false);
|
||||||
|
*
|
||||||
|
* Default Config Code:
|
||||||
|
* // Empty. Provided by this plugin.
|
||||||
|
*
|
||||||
|
* Save Config Code:
|
||||||
|
* // Empty. Provided by this plugin.
|
||||||
|
*
|
||||||
|
* Load Config Code:
|
||||||
|
* // Empty. Provided by this plugin.
|
||||||
|
*
|
||||||
|
* ============================================================================
|
||||||
|
* Changelog
|
||||||
|
* ============================================================================
|
||||||
|
*
|
||||||
|
* Version 1.00:
|
||||||
|
* - Finished Plugin!
|
||||||
|
*
|
||||||
|
* ============================================================================
|
||||||
|
* End of Helpfile
|
||||||
|
* ============================================================================
|
||||||
|
*
|
||||||
|
* @param ---Automatic---
|
||||||
|
* @default
|
||||||
|
*
|
||||||
|
* @param OnMapLoad
|
||||||
|
* @text Autosave on Map Load
|
||||||
|
* @parent ---Automatic---
|
||||||
|
* @type boolean
|
||||||
|
* @on YES
|
||||||
|
* @off NO
|
||||||
|
* @desc Autosave whenever the map is loaded.
|
||||||
|
* YES - true NO - false
|
||||||
|
* @default false
|
||||||
|
*
|
||||||
|
* @param OnMainMenu
|
||||||
|
* @text Autosave on Main Menu
|
||||||
|
* @parent ---Automatic---
|
||||||
|
* @type boolean
|
||||||
|
* @on YES
|
||||||
|
* @off NO
|
||||||
|
* @desc Autosave whenever main menu is called.
|
||||||
|
* YES - true NO - false
|
||||||
|
* @default false
|
||||||
|
*
|
||||||
|
* @param ---Option Menu---
|
||||||
|
* @default
|
||||||
|
*
|
||||||
|
* @param Show Option
|
||||||
|
* @parent ---Option Menu---
|
||||||
|
* @type boolean
|
||||||
|
* @on YES
|
||||||
|
* @off NO
|
||||||
|
* @desc Give player the option to enable or disable Autosave?
|
||||||
|
* YES - true NO - false
|
||||||
|
* @default true
|
||||||
|
*
|
||||||
|
* @param Option Name
|
||||||
|
* @parent ---Option Menu---
|
||||||
|
* @desc The option command text used in-game.
|
||||||
|
* @default Autosave
|
||||||
|
*
|
||||||
|
* @param Default
|
||||||
|
* @text Default Setting
|
||||||
|
* @parent ---Option Menu---
|
||||||
|
* @desc Do you want Autosaving to be enabled by default?
|
||||||
|
* YES - true NO - false
|
||||||
|
* @default true
|
||||||
|
*
|
||||||
|
* @param ---Visual---
|
||||||
|
* @default
|
||||||
|
*
|
||||||
|
* @param ShowAutosave
|
||||||
|
* @text Show Autosave Message
|
||||||
|
* @parent ---Visual---
|
||||||
|
* @type boolean
|
||||||
|
* @on YES
|
||||||
|
* @off NO
|
||||||
|
* @desc Show a message when Autosave happens?
|
||||||
|
* YES - true NO - false
|
||||||
|
* @default true
|
||||||
|
*
|
||||||
|
* @param AutosaveMsgSave
|
||||||
|
* @text Autosave Message On Save
|
||||||
|
* @parent ShowAutosave
|
||||||
|
* @desc Text used for the auto save message.
|
||||||
|
* Can use text codes.
|
||||||
|
* @default \i[83]Autosave Complete!
|
||||||
|
*
|
||||||
|
* @param AutosaveMsgLoad
|
||||||
|
* @text Autosave Message On Load
|
||||||
|
* @parent ShowAutosave
|
||||||
|
* @desc Text used for the auto save message.
|
||||||
|
* Can use text codes.
|
||||||
|
* @default \i[83]Autosave Loaded!
|
||||||
|
*
|
||||||
|
* @param MsgGradient1
|
||||||
|
* @text Message Gradient 1
|
||||||
|
* @parent ShowAutosave
|
||||||
|
* @desc Hex color used for the softer gradient color.
|
||||||
|
* rgba(0, 0, 0, 0) Reference: Red, Green, Blue, Alpha
|
||||||
|
* @default rgba(0, 0, 0, 0)
|
||||||
|
*
|
||||||
|
* @param MsgGradient2
|
||||||
|
* @text Message Gradient 2
|
||||||
|
* @parent ShowAutosave
|
||||||
|
* @desc Hex color used for the softer gradient color.
|
||||||
|
* rgba(0, 0, 0, 0) Reference: Red, Green, Blue, Alpha
|
||||||
|
* @default rgba(0, 0, 0, 0.6)
|
||||||
|
*
|
||||||
|
* @param MsgGradientCode
|
||||||
|
* @text Message Gradient Code
|
||||||
|
* @parent ShowAutosave
|
||||||
|
* @type note
|
||||||
|
* @desc JavaScript code for those who would like to tweak
|
||||||
|
* how the gradient is drawn.
|
||||||
|
* @default "var textWidth = this.textWidthEx(this.message());\nvar half = this.textPadding() + Math.ceil(textWidth / 2);\nvar height = this.lineHeight();\nvar color1 = Yanfly.Param.AutosaveMsgColor1;\nvar color2 = Yanfly.Param.AutosaveMsgColor2;\nthis.contents.gradientFillRect(0, 0, half, height, color1, color2);\nthis.contents.gradientFillRect(half, 0, this.width - half, height, color2, color1);"
|
||||||
|
*
|
||||||
|
* @param MsgX
|
||||||
|
* @text Message X
|
||||||
|
* @parent ShowAutosave
|
||||||
|
* @desc X position of the message.
|
||||||
|
* You can use code here.
|
||||||
|
* @default Graphics.boxWidth - 180
|
||||||
|
*
|
||||||
|
* @param MsgY
|
||||||
|
* @text Message Y
|
||||||
|
* @parent ShowAutosave
|
||||||
|
* @desc Y position of the message.
|
||||||
|
* You can use code here.
|
||||||
|
* @default Graphics.boxHeight - this.fittingHeight(1) * 2
|
||||||
|
*
|
||||||
|
* @param MsgDuration
|
||||||
|
* @text Message Duration
|
||||||
|
* @parent ShowAutosave
|
||||||
|
* @type number
|
||||||
|
* @desc Duration of the message in frames.
|
||||||
|
* @default 120
|
||||||
|
*
|
||||||
|
* @param FadeSpeed
|
||||||
|
* @text Message Fade Speed
|
||||||
|
* @parent ShowAutosave
|
||||||
|
* @desc Fade speed of the window.
|
||||||
|
* Lower - slower Higher - faster
|
||||||
|
* @default 16
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
|
||||||
|
if (Imported.YEP_SaveCore) {
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
// Parameter Variables
|
||||||
|
//=============================================================================
|
||||||
|
|
||||||
|
Yanfly.Parameters = PluginManager.parameters('YEP_X_Autosave');
|
||||||
|
Yanfly.Param = Yanfly.Param || {};
|
||||||
|
|
||||||
|
Yanfly.Param.AutosaveOnMapLoad = eval(String(Yanfly.Parameters['OnMapLoad']));
|
||||||
|
Yanfly.Param.AutosaveOnMainMenu = eval(String(Yanfly.Parameters['OnMainMenu']));
|
||||||
|
|
||||||
|
Yanfly.Param.AutosaveShowOpt = eval(String(Yanfly.Parameters['Show Option']));
|
||||||
|
Yanfly.Param.AutosaveOptionCmd = String(Yanfly.Parameters['Option Name']);
|
||||||
|
Yanfly.Param.AutosaveDefault = eval(String(Yanfly.Parameters['Default']));
|
||||||
|
|
||||||
|
Yanfly.Param.AutosaveShowMsg = eval(String(Yanfly.Parameters['ShowAutosave']));
|
||||||
|
Yanfly.Param.AutosaveMsgSave = String(Yanfly.Parameters['AutosaveMsgSave']);
|
||||||
|
Yanfly.Param.AutosaveMsgLoad = String(Yanfly.Parameters['AutosaveMsgLoad']);
|
||||||
|
Yanfly.Param.AutosaveMsgColor1 = String(Yanfly.Parameters['MsgGradient1']);
|
||||||
|
Yanfly.Param.AutosaveMsgColor2 = String(Yanfly.Parameters['MsgGradient2']);
|
||||||
|
Yanfly.Param.AutosaveMsgCode = JSON.parse(Yanfly.Parameters['MsgGradientCode']);
|
||||||
|
Yanfly.Param.AutosaveMsgX = String(Yanfly.Parameters['MsgX']);
|
||||||
|
Yanfly.Param.AutosaveMsgY = String(Yanfly.Parameters['MsgY']);
|
||||||
|
Yanfly.Param.AutosaveMsgDur = Number(Yanfly.Parameters['MsgDuration']) || 120;
|
||||||
|
Yanfly.Param.AutosaveMsgFade = Number(Yanfly.Parameters['FadeSpeed']) || 16;
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
// ConfigManager
|
||||||
|
//=============================================================================
|
||||||
|
|
||||||
|
ConfigManager.autosave = Yanfly.Param.AutosaveDefault;
|
||||||
|
|
||||||
|
Yanfly.Autosave.ConfigManager_makeData = ConfigManager.makeData;
|
||||||
|
ConfigManager.makeData = function() {
|
||||||
|
var config = Yanfly.Autosave.ConfigManager_makeData.call(this);
|
||||||
|
config.autosave = this.autosave;
|
||||||
|
return config;
|
||||||
|
};
|
||||||
|
|
||||||
|
Yanfly.Autosave.ConfigManager_applyData = ConfigManager.applyData;
|
||||||
|
ConfigManager.applyData = function(config) {
|
||||||
|
Yanfly.Autosave.ConfigManager_applyData.call(this, config);
|
||||||
|
this.autosave = config['autosave'] || Yanfly.Param.AutosaveDefault;
|
||||||
|
};
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
// DataManager
|
||||||
|
//=============================================================================
|
||||||
|
|
||||||
|
Yanfly.Autosave.DataManager_setupNewGame = DataManager.setupNewGame;
|
||||||
|
DataManager.setupNewGame = function() {
|
||||||
|
Yanfly.Autosave.DataManager_setupNewGame.call(this);
|
||||||
|
StorageManager.setCurrentAutosaveSlot(this._lastAccessedId);
|
||||||
|
$gameTemp._autosaveNewGame = true;
|
||||||
|
$gameTemp._autosaveLoading = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
Yanfly.Autosave.DataManager_saveGame = DataManager.saveGameWithoutRescue;
|
||||||
|
DataManager.saveGameWithoutRescue = function(savefileId) {
|
||||||
|
var value = Yanfly.Autosave.DataManager_saveGame.call(this, savefileId);
|
||||||
|
$gameTemp._autosaveNewGame = false;
|
||||||
|
$gameTemp._autosaveLoading = false;
|
||||||
|
StorageManager.setCurrentAutosaveSlot(savefileId);
|
||||||
|
return value;
|
||||||
|
};
|
||||||
|
|
||||||
|
Yanfly.Autosave.DataManager_loadGame = DataManager.loadGameWithoutRescue;
|
||||||
|
DataManager.loadGameWithoutRescue = function(savefileId) {
|
||||||
|
var value = Yanfly.Autosave.DataManager_loadGame.call(this, savefileId);
|
||||||
|
$gameTemp._autosaveNewGame = false;
|
||||||
|
$gameTemp._autosaveLoading = true;
|
||||||
|
StorageManager.setCurrentAutosaveSlot(savefileId);
|
||||||
|
return value;
|
||||||
|
};
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
// StorageManager
|
||||||
|
//=============================================================================
|
||||||
|
|
||||||
|
StorageManager.getCurrentAutosaveSlot = function() {
|
||||||
|
return this._currentAutosaveSlot;
|
||||||
|
};
|
||||||
|
|
||||||
|
StorageManager.setCurrentAutosaveSlot = function(savefileId) {
|
||||||
|
this._currentAutosaveSlot = savefileId;
|
||||||
|
};
|
||||||
|
|
||||||
|
StorageManager.performAutosave = function() {
|
||||||
|
if ($gameMap.mapId() <= 0) return;
|
||||||
|
if ($gameTemp._autosaveNewGame) return;
|
||||||
|
if (!$gameSystem.canAutosave()) return;
|
||||||
|
SceneManager._scene.performAutosave();
|
||||||
|
};
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
// Game_System
|
||||||
|
//=============================================================================
|
||||||
|
|
||||||
|
Yanfly.Autosave.Game_System_initialize = Game_System.prototype.initialize;
|
||||||
|
Game_System.prototype.initialize = function() {
|
||||||
|
Yanfly.Autosave.Game_System_initialize.call(this);
|
||||||
|
this.initAutosave();
|
||||||
|
};
|
||||||
|
|
||||||
|
Game_System.prototype.initAutosave = function() {
|
||||||
|
this._allowAutosave = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
Game_System.prototype.canAutosave = function() {
|
||||||
|
if (this._allowAutosave === undefined) this.initAutosave();
|
||||||
|
return this._allowAutosave;
|
||||||
|
};
|
||||||
|
|
||||||
|
Game_System.prototype.setAutosave = function(value) {
|
||||||
|
if (this._allowAutosave === undefined) this.initAutosave();
|
||||||
|
this._allowAutosave = value;
|
||||||
|
};
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
// Game_Interpreter
|
||||||
|
//=============================================================================
|
||||||
|
|
||||||
|
Yanfly.Autosave.Game_Interpreter_pluginCommand =
|
||||||
|
Game_Interpreter.prototype.pluginCommand;
|
||||||
|
Game_Interpreter.prototype.pluginCommand = function(command, args) {
|
||||||
|
Yanfly.Autosave.Game_Interpreter_pluginCommand.call(this, command, args);
|
||||||
|
if (command.match(/EnableAutosave/i)) {
|
||||||
|
$gameSystem.setAutosave(true);
|
||||||
|
} else if (command.match(/DisableAutosave/i)) {
|
||||||
|
$gameSystem.setAutosave(false);
|
||||||
|
} else if (command.match(/Autosave/i)) {
|
||||||
|
StorageManager.performAutosave();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
// Window_Options
|
||||||
|
//=============================================================================
|
||||||
|
|
||||||
|
Yanfly.Autosave.Window_Options_addGeneralOptions =
|
||||||
|
Window_Options.prototype.addGeneralOptions;
|
||||||
|
Window_Options.prototype.addGeneralOptions = function() {
|
||||||
|
Yanfly.Autosave.Window_Options_addGeneralOptions.call(this);
|
||||||
|
if (!Imported.YEP_OptionsCore && Yanfly.Param.AutosaveShowOpt) {
|
||||||
|
this.addCommand(Yanfly.Param.AutosaveOptionCmd, 'autosave');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
// Window_Autosave
|
||||||
|
//=============================================================================
|
||||||
|
|
||||||
|
function Window_Autosave() {
|
||||||
|
this.initialize.apply(this, arguments);
|
||||||
|
}
|
||||||
|
|
||||||
|
Window_Autosave.prototype = Object.create(Window_Base.prototype);
|
||||||
|
Window_Autosave.prototype.constructor = Window_Autosave;
|
||||||
|
|
||||||
|
Window_Autosave.prototype.initialize = function() {
|
||||||
|
var width = this.windowWidth();
|
||||||
|
var height = this.windowHeight();
|
||||||
|
var x = eval(Yanfly.Param.AutosaveMsgX);
|
||||||
|
var y = eval(Yanfly.Param.AutosaveMsgY);
|
||||||
|
Window_Base.prototype.initialize.call(this, x, y, width, height);
|
||||||
|
this.opacity = 0;
|
||||||
|
this.contentsOpacity = 0;
|
||||||
|
this._showCount = 0;
|
||||||
|
this.refresh();
|
||||||
|
if ($gameTemp._autosaveLoading) {
|
||||||
|
this.reveal();
|
||||||
|
$gameTemp._autosaveLoading = false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
Window_Autosave.prototype.standardPadding = function() {
|
||||||
|
return 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
Window_Autosave.prototype.windowWidth = function() {
|
||||||
|
return Graphics.boxWidth;
|
||||||
|
};
|
||||||
|
|
||||||
|
Window_Autosave.prototype.windowHeight = function() {
|
||||||
|
return this.fittingHeight(1);
|
||||||
|
};
|
||||||
|
|
||||||
|
Window_Autosave.prototype.update = function() {
|
||||||
|
Window_Base.prototype.update.call(this);
|
||||||
|
if (this._showCount > 0) {
|
||||||
|
this.updateFadeIn();
|
||||||
|
this._showCount--;
|
||||||
|
} else {
|
||||||
|
this.updateFadeOut();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
Window_Autosave.prototype.updateFadeIn = function() {
|
||||||
|
this.contentsOpacity += Yanfly.Param.AutosaveMsgFade;
|
||||||
|
};
|
||||||
|
|
||||||
|
Window_Autosave.prototype.updateFadeOut = function() {
|
||||||
|
this.contentsOpacity -= Yanfly.Param.AutosaveMsgFade;
|
||||||
|
};
|
||||||
|
|
||||||
|
Window_Autosave.prototype.reveal = function() {
|
||||||
|
if (!Yanfly.Param.AutosaveShowMsg) return;
|
||||||
|
if (this._showCount > 0) return;
|
||||||
|
this._showCount = Yanfly.Param.AutosaveMsgDur;
|
||||||
|
this.refresh();
|
||||||
|
};
|
||||||
|
|
||||||
|
Window_Autosave.prototype.message = function() {
|
||||||
|
if ($gameTemp._autosaveLoading) {
|
||||||
|
return Yanfly.Param.AutosaveMsgLoad;
|
||||||
|
} else {
|
||||||
|
return Yanfly.Param.AutosaveMsgSave;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
Window_Autosave.prototype.refresh = function() {
|
||||||
|
this.contents.clear();
|
||||||
|
this.drawGradient();
|
||||||
|
this.drawTextEx(this.message(), this.textPadding(), 0);
|
||||||
|
};
|
||||||
|
|
||||||
|
Window_Autosave.prototype.drawGradient = function() {
|
||||||
|
eval(Yanfly.Param.AutosaveMsgCode);
|
||||||
|
};
|
||||||
|
|
||||||
|
Window_Autosave.prototype.textWidthEx = function(text) {
|
||||||
|
return this.drawTextEx(text, 0, this.contents.height);
|
||||||
|
};
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
// Scene_Base
|
||||||
|
//=============================================================================
|
||||||
|
|
||||||
|
Scene_Base.prototype.performAutosave = function() {
|
||||||
|
};
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
// Scene_Map
|
||||||
|
//=============================================================================
|
||||||
|
|
||||||
|
Yanfly.Autosave.Scene_Map_createAllWindows =
|
||||||
|
Scene_Map.prototype.createAllWindows;
|
||||||
|
Scene_Map.prototype.createAllWindows = function() {
|
||||||
|
Yanfly.Autosave.Scene_Map_createAllWindows.call(this);
|
||||||
|
this.createAutosaveMessageWindow();
|
||||||
|
};
|
||||||
|
|
||||||
|
Scene_Map.prototype.createAutosaveMessageWindow = function() {
|
||||||
|
this._autosaveMsgWindow = new Window_Autosave();
|
||||||
|
this.addChild(this._autosaveMsgWindow);
|
||||||
|
};
|
||||||
|
|
||||||
|
Yanfly.Autosave.Scene_Map_onMapLoaded = Scene_Map.prototype.onMapLoaded;
|
||||||
|
Scene_Map.prototype.onMapLoaded = function() {
|
||||||
|
Yanfly.Autosave.Scene_Map_onMapLoaded.call(this);
|
||||||
|
if (Yanfly.Param.AutosaveOnMapLoad) StorageManager.performAutosave();
|
||||||
|
};
|
||||||
|
|
||||||
|
Yanfly.Autosave.Scene_Map_callMenu = Scene_Map.prototype.callMenu;
|
||||||
|
Scene_Map.prototype.callMenu = function() {
|
||||||
|
Yanfly.Autosave.Scene_Map_callMenu.call(this);
|
||||||
|
if (Yanfly.Param.AutosaveOnMainMenu) StorageManager.performAutosave();
|
||||||
|
};
|
||||||
|
|
||||||
|
Scene_Map.prototype.performAutosave = function() {
|
||||||
|
if ($gameMap.mapId() <= 0) return;
|
||||||
|
if ($gameTemp._autosaveNewGame) return;
|
||||||
|
if (!$gameSystem.canAutosave()) return;
|
||||||
|
$gameSystem.onBeforeSave();
|
||||||
|
DataManager.saveGameWithoutRescue(StorageManager.getCurrentAutosaveSlot());
|
||||||
|
if (this._autosaveMsgWindow) this._autosaveMsgWindow.reveal();
|
||||||
|
};
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
// Save Core Check
|
||||||
|
//=============================================================================
|
||||||
|
} else {
|
||||||
|
|
||||||
|
Imported.YEP_X_Autosave = false;
|
||||||
|
var text = '';
|
||||||
|
text += 'You are getting this error because you are trying to run ';
|
||||||
|
text += 'YEP_X_Autosave without the required plugins. Please visit ';
|
||||||
|
text += 'Yanfly.moe and install the required plugins neede for this plugin ';
|
||||||
|
text += 'found in this plugin\'s help file before you can use it.';
|
||||||
|
console.log(text);
|
||||||
|
require('nw.gui').Window.get().showDevTools();
|
||||||
|
|
||||||
|
}
|
||||||
|
//=============================================================================
|
||||||
|
// End of File
|
||||||
|
//=============================================================================
|
Loading…
Reference in New Issue