游戏已经测试一段时间了,在加入新插件之后,如果是重新开始新游戏,那不会报错。但是读取旧存档的时候就会报错。请问如何在旧存档中继续运行? 个人拙见:是不是需要用旧存档重新读取遍历一次插件内容? ...
//============================================================================= // MOG_ActorPictureCM.js //============================================================================= /*: * @target MZ * @plugindesc (v1.0) Apresenta a imagem do personagem durante a seleção de comandos. * @author Moghunter * * @param -> MAIN <<<<<<<<<<<<<<<<<<<<<<< * @desc * * @param Slide Speed * @parent -> MAIN <<<<<<<<<<<<<<<<<<<<<<< * @desc Definição da velocidade de deslize. * @default 10 * * @param * * @param -> BUST <<<<<<<<<<<<<<<<<<<<<<< * @desc * * @param Bust Visible * @parent -> BUST <<<<<<<<<<<<<<<<<<<<<<< * @text Visible * @type boolean * @desc Ativar a imagem do personagem. * @default true * * @param Bust X-Axis * @text X-Axis * @parent -> BUST <<<<<<<<<<<<<<<<<<<<<<< * @desc Definição da posição X-axis da imagem. * @default 608 * * @param Bust Y-Axis * @text Y-Axis * @parent -> BUST <<<<<<<<<<<<<<<<<<<<<<< * @desc Definição da posição Y-axis da imagem. * @default 624 * * @param Bust Slide X * @text Slide Animation X * @parent -> BUST <<<<<<<<<<<<<<<<<<<<<<< * @desc Definição de deslize X-Axis. * @default -150 * * @param Bust Slide Y * @text Slide Animation Y * @parent -> BUST <<<<<<<<<<<<<<<<<<<<<<< * @desc Definição de deslize Y-Axis. * @default 0 * * @param Breath Effect * @text Breath Animation * @parent -> BUST <<<<<<<<<<<<<<<<<<<<<<< * @type boolean * @desc Ativar respiração de respiração. * @default false * * @param * * @param -> FACE <<<<<<<<<<<<<<<<<<<<<<< * @desc * * @param Face Visible * @text Visible * @parent -> FACE <<<<<<<<<<<<<<<<<<<<<<< * @type boolean * @desc Ativar a imagem da Face. * @default true * * @param Face X-Axis * @text X-Axis * @parent -> FACE <<<<<<<<<<<<<<<<<<<<<<< * @desc Definição da posição X-axis da imagem. * @default 570 * * @param Face Y-Axis * @text Y-Axis * @parent -> FACE <<<<<<<<<<<<<<<<<<<<<<< * @desc Definição da posição Y-axis da imagem. * @default 0 * * @param Face Slide X * @text Slide Animation X * @parent -> FACE <<<<<<<<<<<<<<<<<<<<<<< * @desc Definição de deslize X-Axis. * @default 150 * * @param Face Slide Y * @text Slide Animation Y * @parent -> FACE <<<<<<<<<<<<<<<<<<<<<<< * @desc Definição de deslize Y-Axis. * @default 0 * * @command ActorPicture_setFileName * @desc Mudar o gráfico do personagem. * @text FileName (Bust) * * @arg id * @desc Definição da ID do personagem * @text Id * @default 1 * @type number * @min 1 * * @arg filename * @desc Definição do arquivo de imagem. * @text File Name * @default Bust_Test * @type file * @dir img/actor_picture_cm/ * * @arg breath * @desc Ativar o efeito de respirar. * @text Breath Effect * @default false * @type boolean * * @arg visible * @desc Apresentar ou ocultar a imagem. * @text Visible * @default true * @type boolean * * @command ActorPicture_setFileName2 * @desc Mudar o gráfico do personagem Suport. * @text FileName (Sup) * * @arg id * @desc Definição da ID do personagem * @text Id * @default 1 * @type number * @min 1 * * @arg filename * @desc Definição do arquivo de imagem. * @text File Name * @default Bust_Test2 * @type file * @dir img/actor_picture_cm/ * * @arg visible * @desc Apresentar ou ocultar a imagem. * @text Visible * @default true * @type boolean * * @help * ============================================================================= * +++ MOG - Actor Picture CM (v1.0) +++ * By Moghunter * [url]https://atelierrgss.wordpress.com/[/url] * ============================================================================= * Apresenta a imagem do personagem durante a seleção de comandos. * * ============================================================================= * - REQUIRED FILES - * ============================================================================= * As imagens dos personagens devem ser gravadas na pasta. /img/actor_picture_cm/ * A nomeação dos arquivos devem ser feitas da seguinte forma. * * Actor_ + ID + _bust.png * * Exemplo * * -> Actor_1_bust.png * -> Actor_2_bust.png * -> Actor_3_bust.png * * ---------------------------------------------------------------------------- * * Para definir a imagem secundária do personagem nomeie o arquivo da seguinte * forma. * * -> Actor_ ID + _sub.png * * Exemplo * * -> Actor_1_sub.png * -> Actpr_2_sub.png * -> ... * */ //============================================================================= // ** PLUGIN PARAMETERS //============================================================================= //============================================================================= // ** PLUGIN PARAMETERS //============================================================================= var Imported = Imported || {}; Imported.MOG_ActorPictureCM = true; var Moghunter = Moghunter || {}; Moghunter.parameters = PluginManager.parameters('MOG_ActorPictureCM'); Moghunter.actor_slideSpeed = Number(Moghunter.parameters['Slide Speed'] || 10); Moghunter.actor_fileName = String(Moghunter.parameters['File Name'] || "Actor_"); Moghunter.actor_cm1_visible = String(Moghunter.parameters['Face Visible'] || "true"); Moghunter.actor_cm1_slideX = Number(Moghunter.parameters['Face Slide X'] || 150); Moghunter.actor_cm1_slideY = Number(Moghunter.parameters['Face Slide Y'] || 0); Moghunter.actor_cm1_x = Number(Moghunter.parameters['Face X-Axis'] || 570); Moghunter.actor_cm1_y = Number(Moghunter.parameters['Face Y-Axis'] || 0); Moghunter.actor_cm2_visible = String(Moghunter.parameters['Bust Visible'] || "true"); Moghunter.actor_cm2_slideX = Number(Moghunter.parameters['Bust Slide X'] || -150); Moghunter.actor_cm2_slideY = Number(Moghunter.parameters['Bust Slide Y'] || 0); Moghunter.actor_cm2_x = Number(Moghunter.parameters['Bust X-Axis'] || 408); Moghunter.actor_cm2_y = Number(Moghunter.parameters['Bust Y-Axis'] || 624); Moghunter.actor_cm2_breathEffect = String(Moghunter.parameters['Breath Effect'] || "true"); //============================================================================= // ■■■ PluginManager ■■■ //============================================================================= PluginManager.registerCommand('MOG_ActorPictureCM', "ActorPicture_setFileName", data => { var id = Number(data.id); var fileName = data.filename; var visible = String(data.visible) == "true" ? true : false; var breath = String(data.breath) == "true" ? true : false; for (var i = 0; i < $gameParty.members().length; i++) { var actor = $gameParty.members()[i]; if (actor._actorId === id) { if (actor) { actor.setBattleBust_1(fileName); actor.visbattleBust_1(visible); actor.setActorCMbreathEffect(breath) }; }; }; }); PluginManager.registerCommand('MOG_ActorPictureCM', "ActorPicture_setFileName2", data => { var id = Number(data.id); var fileName = data.filename; var visible = String(data.visible) == "true" ? true : false; for (var i = 0; i < $gameParty.members().length; i++) { var actor = $gameParty.members()[i]; if (actor._actorId === id) { if (actor) { actor.setBattleBust_2(fileName); actor.visbattleBust_2(visible); }; }; }; }); //============================================================================= // ■■■ ImageManager ■■■ //============================================================================= //============================== // * Load Actor Pic CM //============================== ImageManager.loadActorpicCM = function(filename) { return this.loadBitmap('img/actor_picture_cm/', filename, 0, true); }; //============================================================================= // ■■■ Game_Temp ■■■ //============================================================================= //============================== // ♦ ALIAS ♦ Initialize //============================== var _alias_mog_actorcm_temp_initialize = Game_Temp.prototype.initialize; Game_Temp.prototype.initialize = function() { _alias_mog_actorcm_temp_initialize.call(this); this._actorCmData = [false,false,true]; }; //============================================================================= // ■■■ Game_System ■■■ //============================================================================= //============================== // ♦ ALIAS ♦ Initialize //============================== var _alias_mog_actorcm_sys_initialize = Game_System.prototype.initialize; Game_System.prototype.initialize = function() { _alias_mog_actorcm_sys_initialize.call(this); this._actorCmOffSet = [true,0,0]; }; //============================================================================= // ■■■ Game Interpreter ■■■ //============================================================================= //============================== // * PluginCommand //============================== var _mog_actorCM_gint_pluginCommand = Game_Interpreter.prototype.pluginCommand Game_Interpreter.prototype.pluginCommand = function(command, args) { _mog_actorCM_gint_pluginCommand.call(this,command, args) if (command === "actorCM_fileName") {this.setActorCM(args)}; if (command === "actorCM_breathEffect") {this.setActorBreathEffect(args)}; return true; }; //============================== // * Set Actor CM //============================== Game_Interpreter.prototype.setActorCM = function(args) { var id = Number(args[1]); var fileName = String(args[3]); for (var i = 0; i < $gameParty.members().length; i++) { var actor = $gameParty.members()[i]; if (actor._actorId === id) { if (actor) {actor.setActorCMNAme(fileName)}; }; }; }; //============================== // * Set Actor Breath Effect //============================== Game_Interpreter.prototype.setActorBreathEffect = function(args) { var id = Number(args[1]); var enable = String(args[3]) == "true" ? true : false; for (var i = 0; i < $gameParty.members().length; i++) { var actor = $gameParty.members()[i]; if (actor._actorId === id) { if (actor) {actor.setActorCMbreathEffect(enable)}; }; }; }; //============================================================================= // ■■■ Game_Actor ■■■ //============================================================================= //============================== // ♦ ALIAS ♦ Initialize //============================== var _mog_actorcm_gactor_initMembers = Game_Actor.prototype.initMembers; Game_Actor.prototype.initMembers = function() { _mog_actorcm_gactor_initMembers.call(this); var breathEffect = String(Moghunter.actor_cm2_breathEffect) == "true" ? true : false; this._actorCMData = ["",0,0,breathEffect,"",true,true]; }; //============================== // ♦ ALIAS ♦ Setup //============================== var _mog_actorcm_gactor_setup = Game_Actor.prototype.setup; Game_Actor.prototype.setup = function(actorId) { _mog_actorcm_gactor_setup.call(this,actorId); this._actorCMData[0] = "Actor_" + this._actorId + "_bust"; this._actorCMData[4] = "Actor_" + this._actorId + "_sup"; }; //============================== // * battle Bust 1 //============================== Game_Actor.prototype.battleBust_1 = function() { return String(this._actorCMData[0]); }; //============================== // * battle Bust 2 //============================== Game_Actor.prototype.battleBust_2 = function() { return String(this._actorCMData[4]); }; //============================== // * set Battle bust 1 //============================== Game_Actor.prototype.setBattleBust_1 = function(filename) { this._actorCMData[0] = filename; }; //============================== // * vis Battle bust 1 //============================== Game_Actor.prototype.visbattleBust_1 = function(visible) { this._actorCMData[5] = visible; }; //============================== // * set Battle bust 2 //============================== Game_Actor.prototype.setBattleBust_2 = function(filename) { this._actorCMData[4] = filename; }; //============================== // * vis Battle bust 2 //============================== Game_Actor.prototype.visbattleBust_2 = function(visible) { this._actorCMData[6] = visible; }; //============================== // * set Actor CM Breath Effect //============================== Game_Actor.prototype.setActorCMbreathEffect = function(enable) { this._actorCMData[3] = enable; }; //============================================================================= // ■■■ Scene Base ■■■ //============================================================================= //============================== // ** create Hud Field //============================== Scene_Base.prototype.createHudField = function() { this._hudField = new Sprite(); this._hudField.z = 10; this.addChild(this._hudField); }; //============================== // ** sort MZ //============================== Scene_Base.prototype.sortMz = function() { this._hudField.children.sort((a, b) => a.z - b.z); }; //============================================================================= // ■■■ Scene Battle ■■■ //============================================================================= //============================== // ♦ ALIAS ♦ create Spriteset //============================== var _mog_actorPicCM_sbattle_createSpriteset = Scene_Battle.prototype.createSpriteset; Scene_Battle.prototype.createSpriteset = function() { _mog_actorPicCM_sbattle_createSpriteset.call(this); if (!this._hudField) {this.createHudField()}; this.createActorCM(); this.sortMz(); }; //============================== // * Create Actor CM //============================== Scene_Battle.prototype.createActorCM = function() { this.actorPictureCM = new Actor_CMPicture(); this.actorPictureCM.z = 3; this._hudField.addChild(this.actorPictureCM); }; //============================== // ♦ ALIAS ♦ Update //============================== var _alias_mog_actorcm_scbat_update = Scene_Battle.prototype.update; Scene_Battle.prototype.update = function() { _alias_mog_actorcm_scbat_update.call(this); $gameTemp._actorCmData[0] = this.sprite_actor_cm_visible(); }; //============================== // * Sprite Actor CM Visible //============================== Scene_Battle.prototype.sprite_actor_cm_visible = function() { if (!BattleManager.actor()) {return false}; if (this._actorWindow.active) {return false}; if (this._enemyWindow.active) {return false}; if (this._partyCommandWindow.active) {return false}; if ($gameMessage.isBusy()) {return false}; if (!BattleManager.isInputting()) {return false}; return true; }; //============================================================================= // ■■■ Actor_CMPicture ■■■ //============================================================================= function Actor_CMPicture() { this.initialize.apply(this, arguments); }; Actor_CMPicture.prototype = Object.create(Sprite.prototype); Actor_CMPicture.prototype.constructor = Actor_CMPicture; //============================== // * Initialize //============================== Actor_CMPicture.prototype.initialize = function() { Sprite.prototype.initialize.call(this); this._actor = null; this._CmName = null; this._breahEffect = false; $gameTemp._actorCmData = [false,false,true]; this._cm1 = String(Moghunter.actor_cm1_visible) === "true" ? true : false; this._cm2 = String(Moghunter.actor_cm2_visible) === "true" ? true : false; this._xf = 816 - Graphics.width; this._yf = 624 - Graphics.height; this._sldSpd = Math.min(Math.max(Moghunter.actor_slideSpeed,1),999); if (this._cm1) {this.createCM1()}; if (this._cm2) {this.createCM2()}; }; //============================== // * is Visible //============================== Actor_CMPicture.prototype.isVisible = function() { if (!$gameSystem._actorCmOffSet[0]) {return false}; if (!$gameTemp._actorCmData[2]) {return false}; return $gameTemp._actorCmData[0]; }; //============================== // * create CM1 //============================== Actor_CMPicture.prototype.createCM1 = function() { this._supSprite = new Sprite(); this._supSprite.visible = false; this._supSpriteData = null; this.addChild(this._supSprite); }; //============================== // * create CM2 //============================== Actor_CMPicture.prototype.createCM2 = function() { this._bust = new Sprite(); this._bust.anchor.x = 0.5; this._bust.anchor.y = 1.0; this._bust.visible = false; this._bustData = null; this.addChild(this._bust); }; //============================== // * Hide Sprites //============================== Actor_CMPicture.prototype.hideSprites = function() { if (this._supSprite) {this._supSprite.visible = false}; if (this._bust) {this._bust.visible = false}; }; //============================== // * move To //============================== Actor_CMPicture.prototype.moveto = function(value,real_value) { if (value == real_value) {return value}; var dnspeed = 2 + (Math.abs(value - real_value) / this._sldSpd); if (value > real_value) {value -= dnspeed; if (value < real_value) {value = real_value};} else if (value < real_value) {value += dnspeed; if (value > real_value) {value = real_value}; }; return Math.floor(value); }; //============================== // * Need Refresh Actor //============================== Actor_CMPicture.prototype.refreshActor = function() { this._actor = BattleManager.actor(); if (this._actor) {this.refreshSprites()}; }; //============================== // * refresh Bitmap CM1 //============================== Actor_CMPicture.prototype.refreshBitmapCM1 = function() { var fileName = !this._actor._actorCMData[6] ? "" : this._actor.battleBust_2(); this._supSprite.bitmap = ImageManager.loadActorpicCM(fileName); this._supSprite.visible = false; this._supSpriteData = null; }; //============================== // * refresh Bitmap CM2 //============================== Actor_CMPicture.prototype.refreshBitmapCM2 = function() { var fileName = !this._actor._actorCMData[5] ? "" : this._actor.battleBust_1(); this._bust.bitmap = ImageManager.loadActorpicCM(fileName); this._bust.visible = false; this._bust.zoom = {} this._bust.zoom.speed = 0.0004; this._bust.zoom.maxScale = 0.008; this._bust.zoom.phase = 0; this._bust.zoom.y = 0; this._breahEffect = false; this._bustData = null; }; //============================== // * refresh Sprites //============================== Actor_CMPicture.prototype.refreshSprites = function() { this._CmName = this._actor ? this._actor.battleBust_1() : null; if (this._supSprite) {this.refreshBitmapCM1()}; if (this._bust) {this.refreshBitmapCM2()}; }; //============================== // * Need Refresh Actor //============================== Actor_CMPicture.prototype.needRefreshActor = function() { if ($gameTemp._actorCmData[1]) {return true}; if (BattleManager.actor() != this._actor) {return true}; if (this._actor && this._CmName != this._actor.battleBust_1()) return false; }; //============================== // * get Data CM1 //============================== Actor_CMPicture.prototype.getDataCM1 = function() { this._supSpriteData = [this._supSprite.bitmap.width,this._supSprite.bitmap.height, Moghunter.actor_cm1_x,Moghunter.actor_cm1_y,0,0,true, Moghunter.actor_cm1_slideX,Moghunter.actor_cm1_slideY ]; this._supSprite.visible = this._actor._actorCMData[6]; this._supSprite.opacity = 0; this._supSprite.x = this._supSpriteData[6] ? this._supSpriteData[2] + this._supSpriteData[7] : this._supSpriteData[2]; this._supSprite.y = this._supSpriteData[6] ? this._supSpriteData[3] + this._supSpriteData[8] : this._supSpriteData[3]; }; //============================== // * Update CM1 //============================== Actor_CMPicture.prototype.updateCM1 = function() { if (!this.isVisible()) { this._supSpriteData[4] = this._supSpriteData[2] + this._supSpriteData[7]; this._supSpriteData[5] = this._supSpriteData[3] + this._supSpriteData[8]; this._supSprite.opacity -= 15; } else { this._supSpriteData[4] = this._supSpriteData[2]; this._supSpriteData[5] = this._supSpriteData[3]; this._supSprite.opacity += 15; }; this._supSprite.x = this.moveto(this._supSprite.x,this._supSpriteData[4]); this._supSprite.y = this.moveto(this._supSprite.y,this._supSpriteData[5]); }; //============================== // * need Get Data 1 //============================== Actor_CMPicture.prototype.needGetData1 = function() { if (!this._supSprite) {return false}; if (this._supSpriteData) {return false}; if (!this._supSprite.bitmap) {return false}; if (!this._supSprite.bitmap.isReady()) {return false}; return true; }; //============================== // * get Data CM2 //============================== Actor_CMPicture.prototype.getDataCM2 = function() { this._bustData = [this._bust.bitmap.width,this._bust.bitmap.height, Moghunter.actor_cm2_x,Moghunter.actor_cm2_y,0,0,true, Moghunter.actor_cm2_slideX,Moghunter.actor_cm2_slideY, 0,0,0]; this._bust.visible = this._actor._actorCMData[5]; this._bust.opacity = 0; this._bustData[2] = Moghunter.actor_cm2_x; this._bustData[3] = Moghunter.actor_cm2_y; this._bust.x = this._bustData[6] ? this._bustData[2] + this._bustData[7] : this._bustData[2]; this._bust.y = this._bustData[6] ? this._bustData[3] + this._bustData[8] : this._bustData[3]; this._breahEffect = this._actor._actorCMData[3]; }; //============================== // * refresh Frame //============================== Actor_CMPicture.prototype.refreshFrame = function(sprite,index) { var cw = this._eyesData.cw; var ch = this._eyesData.ch; var fr = cw * index; sprite.setFrame(fr,0,cw,ch) }; //============================== // * breathSpeed //============================== Actor_CMPicture.prototype.breathSpeed = function() { return 0.000225; }; //============================== // * Update CM2 //============================== Actor_CMPicture.prototype.updateCM2 = function() { if (!this.isVisible()) { this._bustData[4] = this._bustData[2] + this._bustData[7]; this._bustData[5] = this._bustData[3] + this._bustData[8]; this._bust.opacity -= 15; } else { this._bustData[4] = this._bustData[2]; this._bustData[5] = this._bustData[3]; this._bust.opacity += 15; }; this._bust.x = this.moveto(this._bust.x,this._bustData[4]); this._bust.y = this.moveto(this._bust.y,this._bustData[5]); if (this._breahEffect && this._bust.opacity > 0) {this.updateBreathEffect()}; }; //============================== // * Update Breath Effect //============================== Actor_CMPicture.prototype.updateBreathEffect = function() { this._bust.zoom.speed = this.breathSpeed(); if (this._bust.zoom.phase === 0) { this._bust.zoom.y += this._bust.zoom.speed if (this._bust.zoom.y >= this._bust.zoom.maxScale) { this._bust.zoom.y = this._bust.zoom.maxScale; this._bust.zoom.phase = 1; }; } else { this._bust.zoom.y -= this._bust.zoom.speed if (this._bust.zoom.y <= 0) { this._bust.zoom.y = 0; this._bust.zoom.phase = 0; }; }; this._bust.scale.y = 1.00 + this._bust.zoom.y; }; //============================== // * update Other //============================== Actor_CMPicture.prototype.updateOther = function() { this.x = -this._xf; this.y = -this._yf; }; //============================== // * need Get Data 2 //============================== Actor_CMPicture.prototype.needGetData2 = function() { if (!this._bust) {return false}; if (this._bustData) {return false}; if (!this._bust.bitmap) {return false}; if (!this._bust.bitmap.isReady()) {return false}; return true; }; //============================== // * Update //============================== Actor_CMPicture.prototype.update = function() { Sprite.prototype.update.call(this); if (this.needRefreshActor()) {this.refreshActor()}; if (this.needGetData1()) {this.getDataCM1()}; if (this.needGetData2()) {this.getDataCM2()}; if (this._supSpriteData ) {this.updateCM1()}; if (this._bustData) {this.updateCM2()}; this.updateOther(); };
折叠内容标题(非必须)
折叠内容
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2024-11-26 09:51
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.