//============================================================================= // MOG_EnemyHP.js //============================================================================= /*: * @plugindesc (v1.4) Apresenta o HP do inimigo ao ataca-lo. * @author Moghunter * * @param EHP Fade Duration * @desc Definição do tempo para ativar o fade. * (Default = 120) * @default 120 * * @param EHP Layout X-Axis * @desc Posição X-Axis do layout. * @default 0 * * @param EHP Layout Y-Axis * @desc Posição Y-Axis do layout. * @default 0 * * @param EHP Meter X-Axis * @desc Posição X-Axis do medidor. * @default 4 * * @param EHP Meter Y-Axis * @desc Posição Y-Axis do medidor. * @default 2 + * @help * ============================================================================= * +++ MOG - Enemy HP Meter (v1.4) +++ * By Moghunter * [url]https://atelierrgss.wordpress.com/[/url] * ============================================================================= * Apresenta o HP do inimigo ao ataca-lo. * Serão necessários os arquivos. (img/system/) * * EnemyHP_A.png * EnemyHP_B.png * * Para ocultar o HP do inimigo use a seguinte Tag na caixa de notas * * Hide HP * * ============================================================================= * ** Histórico ** * ============================================================================= * (v1.4) Melhoria na compatibilidade de plugins. * (v1.3) Correção do Crash relativo as Notetags. * (v1.2) Melhoria na codificação. * (v1.1) - Melhoria na animação do medidor vermelho. * - Mudança da Tag para ocular o hp para HIDE HP. * - Melhoria na codificação. */ //============================================================================= // ** PLUGIN PARAMETERS //============================================================================= var Imported = Imported || {}; Imported.MOG_EnemyHP = true; var Moghunter = Moghunter || {}; Moghunter.parameters = PluginManager.parameters('MOG_EnemyHP'); Moghunter.enemyhp_a_x = Number(Moghunter.parameters['EHP Layout X-Axis'] || 0); Moghunter.enemyhp_a_y = Number(Moghunter.parameters['EHP Layout Y-Axis'] || 0); Moghunter.enemyhp_b_x = Number(Moghunter.parameters['EHP Meter X-Axis'] || 4); Moghunter.enemyhp_b_y = Number(Moghunter.parameters['EHP Meter Y-Axis'] || 2); Moghunter.enemyhp_duration = Number(Moghunter.parameters['EHP Fade Duration'] || 120); //============================================================================= // ** Game Battler //============================================================================= //============================== // * Notetags //============================== Game_Battler.prototype.notetags = function() { if (this.isEnemy()) {return this.enemy().note.split(/[\r\n]+/)}; if (this.isActor()) {return this.actor().note.split(/[\r\n]+/)}; }; //============================================================================= // ** Game_Enemy //============================================================================= //============================== // * Setup //============================== var _alias_mog_gba_setup = Game_Enemy.prototype.setup; Game_Enemy.prototype.setup = function(enemyId, x, y) { _alias_mog_gba_setup.call(this,enemyId, x, y); this._hp_meter = true for (var i = 0; i < this.notetags().length; i++) { if (this.notetags()[i] == "Hide HP") {this._hp_meter = false}; }; }; //============================================================================= // ** Spriteset_Battle //============================================================================= //============================== // * CreateLowerLayer //============================== var _alias_mog_enemyhp_createUpperLayer = Spriteset_Battle.prototype.createUpperLayer Spriteset_Battle.prototype.createUpperLayer = function() { this.create_ehp_sprites(); _alias_mog_enemyhp_createUpperLayer.call(this); }; //============================== // * Update //============================== var _alias_mog_enemyhp_update = Spriteset_Battle.prototype.update Spriteset_Battle.prototype.update = function() { _alias_mog_enemyhp_update.call(this); this.update_ehp_sprites(); }; //============================== // * Create EHP Sprites //============================== Spriteset_Battle.prototype.create_ehp_sprites = function() { this._ehp_sprites_a = []; this._ehp_sprites_b = []; this._ehp_sprites_c = []; this._ehp_sprites_data = []; for (var i = 0; i < this._enemySprites.length; i++) { if (this._enemySprites[i]._battler == null) {return;}; this._ehp_sprites_a[i] = new Sprite(ImageManager.loadSystem("EnemyHP_A")); this._ehp_sprites_b[i] = new Sprite(ImageManager.loadSystem("EnemyHP_B")); this._ehp_sprites_c[i] = new Sprite(ImageManager.loadSystem("EnemyHP_B")); this._ehp_sprites_a[i].opacity = 0; this._ehp_sprites_b[i].opacity = 0; this._ehp_sprites_c[i].opacity = 0; this._ehp_sprites_a[i].z = 50; this._ehp_sprites_b[i].z = 51; this._ehp_sprites_c[i].z = 52; if (!this._enemySprites[i]._battler._hp_meter) {this._ehp_sprites_a[i].visible = false}; this._ehp_sprites_b[i].visible = this._ehp_sprites_a[i].visible this._ehp_sprites_c[i].visible = this._ehp_sprites_a[i].visible this._battleField.addChild(this._ehp_sprites_a[i]); this._battleField.addChild(this._ehp_sprites_b[i]); this._battleField.addChild(this._ehp_sprites_c[i]); this._ehp_sprites_data[i] = [this._enemySprites[i]._battler.hp,0,0,Math.max(Moghunter.enemyhp_duration,32),this._enemySprites[i]._battler.hp,]; }; }; //============================== // * Update EHP Sprites //============================== Spriteset_Battle.prototype.update_ehp_sprites = function() { for (var i = 0; i < this._enemySprites.length; i++) { if (this._ehp_sprites_a[i] == null) {return;}; if (!this._ehp_sprites_a[i].bitmap.isReady()) {return}; this._ehp_sprites_a[i].x = this._enemySprites[i].x + Moghunter.enemyhp_a_x +this._ehp_sprites_data[i][1] - (this._ehp_sprites_a[i].bitmap.width / 2); this._ehp_sprites_a[i].y = this._enemySprites[i].y + Moghunter.enemyhp_a_y; this._ehp_sprites_b[i].x = this._ehp_sprites_a[i].x + Moghunter.enemyhp_b_x; this._ehp_sprites_b[i].y = this._ehp_sprites_a[i].y + Moghunter.enemyhp_b_y; this._ehp_sprites_c[i].x = this._ehp_sprites_a[i].x + Moghunter.enemyhp_b_x; this._ehp_sprites_c[i].y = this._ehp_sprites_a[i].y + Moghunter.enemyhp_b_y; this._ehp_sprites_b[i].opacity = this._ehp_sprites_a[i].opacity; this._ehp_sprites_c[i].opacity = this._ehp_sprites_a[i].opacity; this.update_ehp_red_bar(i); this.update_ehp_blue_bar(i) ; }; }; //============================== // * Update EHP Blue Bar //============================== Spriteset_Battle.prototype.update_ehp_blue_bar = function(i) { if (this._enemySprites[i]._battler.isDead()) { this._ehp_sprites_a[i].opacity -= 2; }; if (this._ehp_sprites_data[i][2] > 0) { this._ehp_sprites_data[i][2] -= 1 }; if (this._ehp_sprites_data[i][2] > this._ehp_sprites_data[i][3]) { this._ehp_sprites_data[i][1] += 2; this._ehp_sprites_a[i].opacity += 17 } else { if (this._ehp_sprites_data[i][1] < 30 && this._ehp_sprites_data[i][2] <= 15) { this._ehp_sprites_data[i][1] += 2;this._ehp_sprites_a[i].opacity -= 17 }; } if (this._ehp_sprites_data[i][0] != this._enemySprites[i]._battler.hp) { if (this._ehp_sprites_data[i][2] > 15 && this._ehp_sprites_data[i][2] <= this._ehp_sprites_data[i][3]) { this._ehp_sprites_data[i][2] = this._ehp_sprites_data[i][3] } else { this._ehp_sprites_data[i][1] = -30; this._ehp_sprites_data[i][2] = this._ehp_sprites_data[i][3] + 15; } } this._ehp_sprites_data[i][0] = this._enemySprites[i]._battler.hp; var meter_rate = this._ehp_sprites_c[i].bitmap.width * this._enemySprites[i]._battler.hp / this._enemySprites[i]._battler.mhp; this._ehp_sprites_c[i].setFrame(0, 0, meter_rate, this._ehp_sprites_c[i].bitmap.height / 2); }; //============================== // * Update EHP Red Bar //============================== Spriteset_Battle.prototype.update_ehp_red_bar = function(i) { if (this._ehp_sprites_data[i][4] != this._enemySprites[i]._battler.hp) { var dnspeed = 1 + (Math.abs(this._ehp_sprites_data[i][4] - this._enemySprites[i]._battler.hp) / (Moghunter.enemyhp_duration / 2)); if (this._ehp_sprites_data[i][4] > this._enemySprites[i]._battler.hp) { this._ehp_sprites_data[i][4] -= dnspeed; if (this._ehp_sprites_data[i][4] < this._enemySprites[i]._battler.hp ) { this._ehp_sprites_data[i][4] = this._enemySprites[i]._battler.hp}; } else if (this._ehp_sprites_data[i][4] < this._enemySprites[i]._battler.hp) { this._ehp_sprites_data[i][4] += dnspeed; if (this._ehp_sprites_data[i][4] > this._enemySprites[i]._battler.hp ) { this._ehp_sprites_data[i][4] = this._enemySprites[i]._battler.hp}; } var meter_rate = this._ehp_sprites_b[i].bitmap.width * this._ehp_sprites_data[i][4] / this._enemySprites[i]._battler.mhp; this._ehp_sprites_b[i].setFrame(0, this._ehp_sprites_b[i].bitmap.height / 2, meter_rate, this._ehp_sprites_b[i].bitmap.height / 2); }; };
360截图20170728140817029.jpg (7.4 KB, 下载次数: 1)
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |