设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1993|回复: 12
打印 上一主题 下一主题

[已经解决] MOG_HPGauge显示能否超过6位数

[复制链接]
头像被屏蔽

Lv3.寻梦者

梦石
0
星屑
2379
在线时间
912 小时
注册时间
2014-10-14
帖子
1331

开拓者

跳转到指定楼层
1
发表于 2017-10-9 22:21:35 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽

Lv5.捕梦者

梦石
0
星屑
36645
在线时间
10850 小时
注册时间
2009-3-15
帖子
4820
2
发表于 2017-10-10 11:29:05 | 只看该作者
for (var i = 0; i < 6; i++) {
6是指6位数..不排除还有其他位置要改..

点评

叫你这么一说有种高精度的感觉(刚复习了下高精度算法所以特别敏感)......  发表于 2017-10-10 22:25
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv3.寻梦者

梦石
0
星屑
2379
在线时间
912 小时
注册时间
2014-10-14
帖子
1331

开拓者

3
 楼主| 发表于 2017-10-11 13:19:18 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36645
在线时间
10850 小时
注册时间
2009-3-15
帖子
4820
4
发表于 2017-10-11 13:41:42 | 只看该作者
JAVASCRIPT 代码复制
  1. //=============================================================================
  2. // MOG_BossHP.js
  3. //=============================================================================
  4.  
  5. /*:
  6.  * @plugindesc (v2.1) Apresenta um medidor de HP para os chefes.
  7.  * @author Moghunter
  8.  *
  9.  * @param Shake Effect
  10.  * @desc Ativar o efeito tremer.
  11.  * @default true
  12.  *
  13.  * @param HP Number Visible
  14.  * @desc Apresentar o HP em numeros.
  15.  * @default true
  16.  *
  17.  * @param Show Face
  18.  * @desc Apresentar a face do inimigo.
  19.  * @default true
  20.  *
  21.  * @param Slant Animation
  22.  * @desc Ativar a animação de Flow no medidor de HP.
  23.  * @default true
  24.  *
  25.  * @param Flow Speed
  26.  * @desc Definição da velocidade da animação.
  27.  * @default 4
  28.  *  
  29.  * @param Name Font Size
  30.  * @desc Definição do tamanho da fonte.
  31.  * @default 18
  32.  *
  33.  * @param Layout X-Axis
  34.  * @desc Posição X-Axis do layout.
  35.  * @default 150
  36.  *
  37.  * @param Layout Y-Axis
  38.  * @desc Posição Y-Axis do layout.
  39.  * @default 10
  40.  *
  41.  * @param BHP Name X-Axis
  42.  * @desc Posição X-Axis do numero.
  43.  * @default 36
  44.  *
  45.  * @param Name Y-Axis
  46.  * @desc Posição Y-Axis do numero.
  47.  * @default 23   
  48.  *
  49.  * @param Face X-Axis
  50.  * @desc Posição X-Axis da face.
  51.  * @default -50
  52.  *
  53.  * @param Face Y-Axis
  54.  * @desc Posição Y-Axis da face.
  55.  * @default 10   
  56.  *
  57.  * @param Meter X-Axis
  58.  * @desc Posição X-Axis do medidor.
  59.  * @default 22
  60.  *
  61.  * @param Meter Y-Axis
  62.  * @desc Posição Y-Axis do medidor.
  63.  * @default 28
  64.  *
  65.  * @param Number X-Axis
  66.  * @desc Posição X-Axis do numero.
  67.  * @default 460
  68.  *
  69.  * @param Number Y-Axis
  70.  * @desc Posição Y-Axis do numero.
  71.  * @default 32  
  72.  *
  73.  * @help  
  74.  * =============================================================================
  75.  * +++ MOG - Boss HP Meter (v2.1) +++
  76.  * By Moghunter
  77.  * [url]https://atelierrgss.wordpress.com/[/url]
  78.  * =============================================================================
  79.  * Apresenta um medidor de HP para os chefes.
  80.  *
  81.  * Serão necessários os arquivos. (img/bosshp/)
  82.  *
  83.  * Boss_HP_A.png
  84.  * Boss_HP_A.png
  85.  * Boss_HP_C.png
  86.  *
  87.  * =============================================================================
  88.  * Use a Tag abaixo na caixa de notas para definir quais os inimigos terão o
  89.  * medidor de chefe.
  90.  *
  91.  * Boss HP
  92.  *
  93.  * =============================================================================
  94.  * FACE NAME
  95.  * =============================================================================
  96.  * Nomeie as faces dos inimigos da seguinte maneira.
  97.  *
  98.  * Face_ + ID.png
  99.  *
  100.  * EG
  101.  *
  102.  * Face_1.png
  103.  * Face_2.png
  104.  * Face_3.png
  105.  * ....
  106.  *
  107.  * -----------------------------------------------------------------------------
  108.  * Para definir a posição do medidor de HP use o seguinte comentário através do
  109.  * comando PLUGIN COMMAND.
  110.  *
  111.  * boss_hp_position : X : Y
  112.  *
  113.  * X - Posição X-axis.
  114.  * Y - Posição X-axis.
  115.  *
  116.  * -----------------------------------------------------------------------------
  117.  * Para ocultar ou mostrar os numeros de HP use o seguinte comentário através do
  118.  * comando PLUGIN COMMAND.
  119.  *
  120.  * boss_hp_number_hide
  121.  * boss_hp_number_show
  122.  *
  123.  * -----------------------------------------------------------------------------
  124.  * HISTÓRICO
  125.  * -----------------------------------------------------------------------------
  126.  * v2.1 - Compatibilidade com o Chrono Engine.
  127.  * v2.0 - Opção de apresentar a Face do inimigo.
  128.  *      - Adição da animação de flow.
  129.  *
  130.  */
  131.  
  132. //=============================================================================
  133. // ** PLUGIN PARAMETERS
  134. //=============================================================================
  135.   var Imported = Imported || {};
  136.   Imported.MOG_BossHP = true;
  137.   var Moghunter = Moghunter || {};
  138.  
  139.    Moghunter.parameters = PluginManager.parameters('MOG_BossHP');
  140.         Moghunter.bosshp_flowAnimation = String(Moghunter.parameters['Slant Animation'] || "true");
  141.         Moghunter.bosshp_flowAnimationSpeed = Number(Moghunter.parameters['Flow Speed'] || 4);
  142.         Moghunter.bosshp_face = String(Moghunter.parameters['Show Face'] || "true");
  143.     Moghunter.bosshp_faceX = Number(Moghunter.parameters['Face X-Axis'] || -50);
  144.         Moghunter.bosshp_faceY = Number(Moghunter.parameters['Face Y-Axis'] || 10);
  145.     Moghunter.bosshp_layout_x = Number(Moghunter.parameters['Layout X-Axis'] || 150);
  146.     Moghunter.bosshp_layout_y = Number(Moghunter.parameters['Layout Y-Axis'] || 10)
  147.     Moghunter.bosshp_meter_x = Number(Moghunter.parameters['Meter X-Axis'] || 22);
  148.     Moghunter.bosshp_meter_y = Number(Moghunter.parameters['Meter Y-Axis'] || 28);       
  149.     Moghunter.bosshp_number_x = Number(Moghunter.parameters['Number X-Axis'] || 460);
  150.     Moghunter.bosshp_number_y = Number(Moghunter.parameters['Number Y-Axis'] || 32);
  151.     Moghunter.bosshp_name_x = Number(Moghunter.parameters['Name X-Axis'] || 36);
  152.     Moghunter.bosshp_name_y = Number(Moghunter.parameters['Name Y-Axis'] || 23);
  153.         Moghunter.bosshp_font_size = Number(Moghunter.parameters['Name Font Size'] || 18);
  154.         Moghunter.bosshp_shake_effect = String(Moghunter.parameters['Shake Effect'] || true);       
  155.         Moghunter.bosshp_hp_number_visible = String(Moghunter.parameters['HP Number Visible'] || true);
  156.  
  157.  
  158. //=============================================================================
  159. // ** ImageManager
  160. //=============================================================================
  161.  
  162. //==============================
  163. // * Boss Hp
  164. //==============================
  165. ImageManager.loadBossHp = function(filename) {
  166.     return this.loadBitmap('img/bosshp/', filename, 0, true);
  167. };
  168.  
  169.  
  170. //=============================================================================
  171. // ** Game_Temp
  172. //=============================================================================
  173.  
  174. //==============================
  175. // * Initialize
  176. //==============================
  177. var _alias_mog_bosshp_temp_initialize = Game_Temp.prototype.initialize
  178. Game_Temp.prototype.initialize = function() {
  179.         _alias_mog_bosshp_temp_initialize.call(this);
  180.         this._battler_bhp_temp = [null,0,false,0];
  181.         this._battler_bhp_refresh = false;
  182.         this._battler_bhp_remove = false;
  183. };
  184.  
  185. //=============================================================================
  186. // ** Game_System
  187. //=============================================================================
  188.  
  189. //==============================
  190. // * Initialize
  191. //==============================
  192. var _alias_mog_bosshp_sys_initialize = Game_System.prototype.initialize
  193. Game_System.prototype.initialize = function() {
  194.         _alias_mog_bosshp_sys_initialize.call(this);
  195.         this._bosshp_data = [Moghunter.bosshp_layout_x,Moghunter.bosshp_layout_y,Moghunter.bosshp_hp_number_visible];
  196.         this._battler_bhp_oldNumber = [0,0];
  197.         this._chronoBossEnemy = null;
  198.         this._chronoBossMapID = 0;
  199. }
  200.  
  201. //=============================================================================
  202. // ** Game_Interpreter
  203. //=============================================================================       
  204.  
  205. //==============================
  206. // * PluginCommand
  207. //==============================
  208. var _alias_mog_bosshp_ex_pluginCommand = Game_Interpreter.prototype.pluginCommand
  209. Game_Interpreter.prototype.pluginCommand = function(command, args) {
  210.         _alias_mog_bosshp_ex_pluginCommand.call(this,command, args)
  211.     this.setPluginCommandBossHP(command, args);
  212.         return true;
  213. };
  214.  
  215. //==============================
  216. // * set Plugin Command Boss HP
  217. //==============================
  218. Game_Interpreter.prototype.setPluginCommandBossHP = function(command, args) {
  219.         if (command === "boss_hp_position")  { $gameSystem._bosshp_data[0] = args[1];
  220.              $gameSystem._bosshp_data[1] = args[3];};
  221.         if (command === "boss_hp_number_hide")  {$gameSystem._bosshp_data[2] = "false";};
  222.         if (command === "boss_hp_number_show")  {$gameSystem._bosshp_data[2] = "true";};
  223.         if (command === "boss_hp_erase")  {$gameTemp._battler_bhp_remove = "true";};
  224.         if (Imported.MOG_ChronoEngine) {
  225.                 if (command === "boss_set_event_battler_id")  {
  226.                         for (var i = 0; i < $gameMap.allEnemiesOnMap().length; i++) {
  227.                                 var ev = $gameMap.allEnemiesOnMap()[i];
  228.                                 var battler = ev.battler();;
  229.                                 if (battler._bosshp_meter) {
  230.                                     $gameSystem._chronoBossEnemy = battler;
  231.                                         $gameTemp._battler_bhp_refresh = true;
  232.                                         break
  233.                                 };
  234.                         };               
  235.                 };
  236.         };
  237. };
  238.  
  239. //=============================================================================
  240. // ** BattleManager
  241. //=============================================================================
  242.  
  243. //==============================
  244. // * processVictory
  245. //==============================
  246. var _alias_mog_bosshp_processVictory = BattleManager.processVictory;
  247. BattleManager.processVictory = function() {
  248.          $gameTemp._battler_bhp_temp[2] = true
  249.          _alias_mog_bosshp_processVictory.call(this);         
  250. };
  251.  
  252. //==============================
  253. // * processAbort
  254. //==============================
  255. var _alias_mog_bosshp_processAbort = BattleManager.processAbort;
  256. BattleManager.processAbort = function() {
  257.          $gameTemp._battler_bhp_temp[2] = true
  258.          _alias_mog_bosshp_processAbort.call(this);         
  259. };
  260.  
  261. //==============================
  262. // * processDefeat
  263. //==============================
  264. var _alias_mog_bosshp_processDefeat = BattleManager.processDefeat;
  265. BattleManager.processDefeat = function() {
  266.          $gameTemp._battler_bhp_temp[2] = true
  267.          _alias_mog_bosshp_processDefeat.call(this);         
  268. };
  269.  
  270. //=============================================================================
  271. // ** Game Battler
  272. //=============================================================================
  273.  
  274. //==============================
  275. // * Notetags
  276. //==============================
  277. Game_Battler.prototype.notetags = function() {
  278.         if (this.isEnemy()) {return this.enemy().note.split(/[\r\n]+/)};
  279.         if (this.isActor()) {return this.actor().note.split(/[\r\n]+/)};
  280. };
  281.  
  282. //==============================
  283. // * Appear
  284. //==============================
  285. var _mog_bhp_gbat_appear = Game_BattlerBase.prototype.appear;
  286. Game_BattlerBase.prototype.appear = function() {
  287.     _mog_bhp_gbat_appear.call(this);
  288.         $gameTemp._battler_bhp_refresh = true;
  289. };
  290.  
  291. //=============================================================================
  292. // ** Game_Enemy
  293. //=============================================================================
  294.  
  295. //==============================
  296. // * initMembers
  297. //==============================
  298. var _alias_mog_bosshp_initMembers = Game_Enemy.prototype.initMembers;
  299. Game_Enemy.prototype.initMembers = function() {
  300.         _alias_mog_bosshp_initMembers.call(this);
  301.         this._bosshp_meter = false;
  302. };
  303.  
  304. //==============================
  305. // * Setup
  306. //==============================
  307. var _alias_mog_bosshp_setup = Game_Enemy.prototype.setup;
  308. Game_Enemy.prototype.setup = function(enemyId, x, y) {
  309.         _alias_mog_bosshp_setup.call(this,enemyId, x, y);
  310.     this.checkBossHPnoteTag();       
  311. };
  312.  
  313. //==============================
  314. // * Setup
  315. //==============================
  316. Game_Enemy.prototype.checkBossHPnoteTag = function() {
  317.         for (var i = 0; i < this.notetags().length; i++) {
  318.                 if (this.notetags()[i] == "Boss HP") {this._bosshp_meter = true};
  319.         };       
  320. };
  321.  
  322. //==============================
  323. // * transform
  324. //==============================
  325. var _mog_bosshp_enemy_transform = Game_Enemy.prototype.transform;
  326. Game_Enemy.prototype.transform = function(enemyId) {
  327.         _mog_bosshp_enemy_transform.call(this,enemyId)
  328.     $gameTemp._battler_bhp_refresh = true;
  329.         this.checkBossHPnoteTag();       
  330. };
  331.  
  332. //=============================================================================
  333. // ** Game Action
  334. //=============================================================================
  335.  
  336. //==============================
  337. // * Apply
  338. //==============================
  339. var _alias_mog_bosshp_apply = Game_Action.prototype.apply;
  340. Game_Action.prototype.apply = function(target) {
  341.          if (target.isEnemy() && target._bosshp_meter) {
  342.                  $gameTemp._battler_bhp_temp[1] = target.hp;
  343.              var old_hp = target.hp; $gameTemp._battler_bhp_temp[3] = 0
  344.          };
  345.          _alias_mog_bosshp_apply.call(this,target);
  346.          if (target.isEnemy() && target._bosshp_meter) {
  347.                  $gameTemp._battler_bhp_temp[0] = target;
  348.              if (old_hp > target.hp) {$gameTemp._battler_bhp_temp[3] = 60};
  349.          };
  350. };
  351.  
  352.  
  353. //=============================================================================
  354. // ** Scene Map
  355. //=============================================================================       
  356.  
  357. //==============================
  358. // * Terminate
  359. //==============================
  360. var _mog_bossHP_smap_terminate = Scene_Map.prototype.terminate;
  361. Scene_Map.prototype.terminate = function() {
  362.         $gameSystem._chronoBossEnemy = null;
  363.         $gameSystem._chronoBossMapID = $gameMap._mapId;
  364.         if (this._spriteset && this._spriteset._bosshp_sprites) {
  365.                 var battler = this._spriteset._bosshp_sprites._battler;
  366.                 if (!battler.isDead()) {       
  367.                 $gameSystem._chronoBossEnemy = battler;
  368.                         $gameSystem._battler_bhp_oldNumber[0] = this._spriteset._bosshp_sprites._hp_data[2];
  369.                         $gameSystem._battler_bhp_oldNumber[1] = this._spriteset._bosshp_sprites._hp_data[6];
  370.                 };
  371.         };         
  372.     _mog_bossHP_smap_terminate.call(this);
  373. };
  374.  
  375. //=============================================================================
  376. // ** Spriteset_Base
  377. //=============================================================================       
  378.  
  379. //==============================
  380. // * Initialize
  381. //==============================
  382. var _mog_bossHPCN_sprBase_initialize = Sprite_Base.prototype.initialize;
  383. Sprite_Base.prototype.initialize = function() {
  384.    _mog_bossHPCN_sprBase_initialize.call(this);
  385.    if ($gameSystem._chronoBossMapID != $gameMap._mapId) {;
  386.        $gameSystem._chronoBossEnemy = null;
  387.            $gameSystem._chronoBossMapID = $gameMap._mapId;
  388.    };   
  389. };
  390.  
  391. //==============================
  392. // * Create Boss HP Sprites
  393. //==============================
  394. Spriteset_Base.prototype.createBossHPGauge = function() {       
  395.         $gameTemp._battler_bhp_refresh = false;
  396.         var init_battler = this.checkBossHpEnemies();
  397.         this.removeBossHPGauge();
  398.         if (init_battler) {
  399.                 if (!this._bosshp_sprites) {
  400.           if (Imported.MOG_ChronoEngine) {
  401.                            this.removeBossHPGauge();
  402.                            this._bosshp_sprites = new Sprite_BossHP(init_battler);
  403.                            this._hudField.addChild(this._bosshp_sprites);                          
  404.                    } else {
  405.                            this._bosshp_sprites = new Sprite_BossHP(init_battler);
  406.                            this.addChild(this._bosshp_sprites);
  407.                    };
  408.                 };
  409.         };
  410. };
  411.  
  412. //==============================
  413. // * Create Boss HP Sprites
  414. //==============================
  415. Spriteset_Base.prototype.checkBossHpEnemies = function() {
  416.         var boss = null;
  417.         if (Imported.MOG_ChronoEngine) {
  418.                 if ($gameSystem.isChronoMode()) {
  419.                         $gameMap.enemiesF().forEach(function(enemy) {
  420.                                  battler = enemy.battler()
  421.                                  if (battler._bosshp_meter) {boss = battler};
  422.                         },this);                       
  423.                 } else if ($gameSystem._chronoBossEnemy) {
  424.                      boss = $gameSystem._chronoBossEnemy;
  425.             };
  426.         } else {
  427.                 $gameTroop.members().forEach(function(enemy) {
  428.                                 if (enemy._bosshp_meter && !enemy.isHidden()) {boss = enemy};
  429.                 },this);
  430.         };
  431.         return boss;
  432. };
  433.  
  434. //==============================
  435. // ** remove Boss HP Gauge
  436. //==============================
  437. Spriteset_Base.prototype.removeBossHPGauge = function() {
  438.         $gameTemp._battler_bhp_remove = false;
  439.         $gameSystem._chronoBossEnemy = null;
  440.         if (!this._bosshp_sprites) {return};
  441.         if (this._hudField) {
  442.                 this._hudField.removeChild(this._bosshp_sprites);
  443.         } else {
  444.             this.removeChild(this._bosshp_sprites);
  445.         };
  446.     this._bosshp_sprites = null;
  447. };
  448.  
  449. //==============================
  450. // * Update
  451. //==============================
  452. var _mog_bosshp_SprtBase_update = Spriteset_Base.prototype.update;
  453. Spriteset_Base.prototype.update = function() {
  454.         _mog_bosshp_SprtBase_update.call(this);
  455.         if ($gameTemp._battler_bhp_refresh) {this.createBossHPGauge()};
  456.         if (!this._bosshp_sprites && $gameSystem._chronoBossEnemy) {
  457.              this.createBossHPGauge();
  458.         };
  459.         if ($gameTemp._battler_bhp_remove) {this.removeBossHPGauge()};
  460. };
  461.  
  462. //=============================================================================
  463. // ** Spriteset_Battle
  464. //=============================================================================       
  465.  
  466. //==============================
  467. // * CreateLowerLayer
  468. //==============================
  469. var _alias_mog_bosshp_createLowerLayer = Spriteset_Battle.prototype.createLowerLayer
  470. Spriteset_Battle.prototype.createLowerLayer = function() {
  471.         _alias_mog_bosshp_createLowerLayer.call(this);
  472.         this.createBossHPGauge();
  473. };
  474.  
  475.  
  476. //=============================================================================
  477. // ** Sprite_BossHP
  478. //=============================================================================       
  479. function Sprite_BossHP() {
  480.     this.initialize.apply(this, arguments);
  481. }
  482.  
  483. Sprite_BossHP.prototype = Object.create(Sprite.prototype);
  484. Sprite_BossHP.prototype.constructor = Sprite_BossHP;
  485.  
  486. //==============================
  487. // * Initialize
  488. //==============================
  489. Sprite_BossHP.prototype.initialize = function(init_battler) {
  490.     Sprite.prototype.initialize.call(this);       
  491.         this._init = true;
  492.         $gameTemp._battler_bhp_temp = [init_battler,init_battler.hp,false,0];
  493.         this._flowAnimation = String(Moghunter.bosshp_flowAnimation) === "true" ? true : false;
  494.         this._battler = init_battler;
  495.         this._hp_data = [-1,-1,0,0,0,0,0,0,0,Number($gameSystem._bosshp_data[0]),Number($gameSystem._bosshp_data[1]),false,true];
  496.     this.createSprites();
  497.         if (String(Moghunter.bosshp_shake_effect) === "true") {this._hp_data[11] = true};
  498.         if (String($gameSystem._bosshp_data[2]) != "true") {this._hp_data[12] = false};
  499. };
  500.  
  501. //==============================
  502. // * create Sprites
  503. //==============================
  504. Sprite_BossHP.prototype.createSprites = function() {
  505.     this.createLayout();
  506.     this.createHPMeter();
  507.         if (String(Moghunter.bosshp_face) === "true") {this.createFace()};
  508.         this.createHPNumber();
  509.     this.createName();
  510. };
  511.  
  512. //==============================
  513. // * createLayout
  514. //==============================
  515. Sprite_BossHP.prototype.createLayout = function() {
  516.         this._layout = new Sprite(ImageManager.loadBossHp("Boss_HP_A"));
  517.         this._layout.x = this._hp_data[9];
  518.         this._layout.y = this._hp_data[10];
  519.         this._layout.opacity = 0;
  520.         this.addChild(this._layout);       
  521. };
  522.  
  523. //==============================
  524. // * create Face
  525. //==============================
  526. Sprite_BossHP.prototype.createFace = function() {
  527.      this._face = new Sprite();
  528.          this.addChild(this._face);
  529.          this.refreshFace();
  530.          this.updateFace();
  531. };
  532.  
  533. //==============================
  534. // * update Face
  535. //==============================
  536. Sprite_BossHP.prototype.updateFace = function() {
  537.          this._face.x = this._layout.x + Moghunter.bosshp_faceX;
  538.          this._face.y = this._layout.y + Moghunter.bosshp_faceY;
  539.          this._face.visible = this._layout.visible;
  540.          this._face.opacity = this._layout.opacity;
  541. };
  542.  
  543. //==============================
  544. // * refresh Face
  545. //==============================
  546. Sprite_BossHP.prototype.refreshFace = function() {
  547.     this._face.bitmap = ImageManager.loadBossHp("Face_" + String(this._battler._enemyId));
  548. };
  549.  
  550. //==============================
  551. // * create HP Meter
  552. //==============================
  553. Sprite_BossHP.prototype.createHPMeter = function() {
  554.         this._hp_meter_red = new Sprite(ImageManager.loadBossHp("Boss_HP_B"));
  555.         this._hp_meter_red.x = this._layout.x + Moghunter.bosshp_meter_x;
  556.         this._hp_meter_red.y = this._layout.y + Moghunter.bosshp_meter_y;
  557.         this._hp_meter_red.opacity = 0;
  558.         this._hp_meter_redFlow = [-1,0,0,0];
  559.         this._hp_meter_red.setFrame(0,0,1,1);       
  560.         this.addChild(this._hp_meter_red);
  561.         this._hp_meter_blue = new Sprite(ImageManager.loadBossHp("Boss_HP_B"));
  562.         this._hp_meter_blue.x = this._hp_meter_red.x;
  563.         this._hp_meter_blue.y = this._hp_meter_red.y;       
  564.         this._hp_meter_blue.opacity = 0;
  565.         this._hp_meter_blueFlow = [-1,0,0,0];
  566.         this._hp_meter_blue.setFrame(0,0,1,1);       
  567.         this.addChild(this._hp_meter_blue);
  568. };       
  569.  
  570. //==============================
  571. // * create HP Number
  572. //==============================
  573. Sprite_BossHP.prototype.createHPNumber = function() {
  574.         this._hp_number = [];
  575.         this._hp_number_data = []
  576.         this._hp_number_img = ImageManager.loadBossHp("Boss_HP_C");
  577.         for (var i = 0; i < 9; i++) {
  578.                  this._hp_number[i] = new Sprite(this._hp_number_img);
  579.                  this._hp_number[i].visible = false;
  580.                  this._hp_number[i].opacity = 0;
  581.                  this._hp_number[i].x = this._layout.x + Moghunter.bosshp_number_x;
  582.                  this._hp_number[i].y = this._layout.y + Moghunter.bosshp_number_y;
  583.                  this._hp_number_data[i] = 0;
  584.                  this.addChild(this._hp_number[i]);                 
  585.         };
  586. };
  587.  
  588. //==============================
  589. // * create Name
  590. //==============================
  591. Sprite_BossHP.prototype.createName = function() {
  592.         this._name = new Sprite(new Bitmap(300,48));
  593.         this.addChild(this._name);
  594.         this._name.bitmap.fontSize = Moghunter.bosshp_font_size;
  595.         this.refresh_name();
  596.         this._name.x = this._layout.x + Moghunter.bosshp_name_x;
  597.         this._name.y = this._layout.y + Moghunter.bosshp_name_y;
  598.         this._name.opacity = 0;
  599. };
  600.  
  601. //==============================
  602. // * get Sprite Data
  603. //==============================
  604. Sprite_BossHP.prototype.getSpriteData = function() {
  605.             this._hp_meter_blueFlow[0] = this._flowAnimation ? (this._hp_meter_blue.bitmap.width / 3) : this._hp_meter_blue.bitmap.width;
  606.                 this._hp_meter_blueFlow[1] = this._hp_meter_blue.bitmap.height;
  607.                 this._hp_meter_blueFlow[2] = this._hp_meter_blueFlow[0] * 2;
  608.                 this._hp_meter_blueFlow[3] = 0;
  609.             this._hp_meter_redFlow[0] = this._flowAnimation ? (this._hp_meter_red.bitmap.width / 3) : this._hp_meter_red.bitmap.width;
  610.                 this._hp_meter_redFlow[1] = this._hp_meter_red.bitmap.height;
  611.                 this._hp_meter_redFlow[2] = this._hp_meter_redFlow[0] * 2;
  612.                 this._hp_meter_redFlow[3] = 0;               
  613. };
  614.  
  615. //==============================
  616. // * Update
  617. //==============================
  618. Sprite_BossHP.prototype.update = function() {
  619.     Sprite.prototype.update.call(this);       
  620.         if (this._hp_meter_blueFlow[0] === -1) {
  621.             if (this._layout.bitmap.isReady()) {
  622.                         this.getSpriteData();
  623.                 } else {
  624.                         return
  625.                 };
  626.     };
  627.         if (this._flowAnimation) {this.updateFlowAnimation()};
  628.         if ($gameTemp._battler_bhp_temp[3] != 0) {this.refreshShake()};
  629.         if (this.need_onSkillCancelites()) {this.onSkillCancelites(5)} else {this.onSkillCancelites(-5)};
  630.         if ($gameTemp._battler_bhp_temp[0] != this._battler) {this.refresh_all();        };
  631.         if (this._flowAnimation) {
  632.             this.refresh_blue_meter();
  633.         } else if (this._hp_data[0] != this._battler.hp || this._hp_data[1] != this._battler.mhp) {
  634.                 this.refresh_blue_meter();
  635.         };
  636.         if (this._hp_data[2] != this._battler.hp) {this.refresh_red_meter();};
  637.         if (this._hp_data[6] != this._battler.hp) {this.update_hp_number();};
  638.         if (this._hp_data[11]) {this.update_shake_effect();};
  639.         if (this._face) {this.updateFace()};
  640.         this._init = false;
  641. };
  642.  
  643. //==============================
  644. // * refresh Shake
  645. //==============================
  646. Sprite_BossHP.prototype.refreshShake = function() {
  647.         this._hp_data[7] = $gameTemp._battler_bhp_temp[3];
  648.         $gameTemp._battler_bhp_temp[3] = 0;
  649. };
  650.  
  651. //==============================
  652. // * Update Flow Animation
  653. //==============================
  654. Sprite_BossHP.prototype.updateFlowAnimation = function() {
  655.     this._hp_meter_blueFlow[3] += Moghunter.bosshp_flowAnimationSpeed;
  656.         if (this._hp_meter_blueFlow[3] > this._hp_meter_blueFlow[2]) {
  657.                 this._hp_meter_blueFlow[3] = 0;
  658.         };
  659.     this._hp_meter_redFlow[3] += Moghunter.bosshp_flowAnimationSpeed;
  660.         if (this._hp_meter_redFlow[3] > this._hp_meter_redFlow[2]) {
  661.                 this._hp_meter_redFlow[3] = 0;
  662.         };       
  663. };
  664.  
  665. //==============================
  666. // * Update Shake Effect
  667. //==============================
  668. Sprite_BossHP.prototype.update_shake_effect = function() {
  669.     if (this._hp_data[7] <= 0) {return;};
  670.         this._hp_data[7] -= 1;
  671.         this._layout.y = -3 + this._hp_data[10] + Math.floor(Math.random() * 6);
  672.         if (this._hp_data[7] <= 0) {this._layout.y = this._hp_data[10]};
  673. };
  674.  
  675. //==============================
  676. // * Update HP Number
  677. //==============================
  678. Sprite_BossHP.prototype.update_hp_number = function() {
  679.           if (!this._hp_data[12]) {return};
  680.           if (this._init && $gameSystem._battler_bhp_oldNumber[1] != 0) {
  681.                   this._hp_data[6] = $gameSystem._battler_bhp_oldNumber[1];
  682.                   $gameSystem._battler_bhp_oldNumber[1] = 0;
  683.           };          
  684.       var nspd = 1 + Math.floor((Math.abs(this._hp_data[6] - this._battler.hp) / 30))
  685.       if (this._hp_data[6] < this._battler.hp) {
  686.                   this._hp_data[6] += nspd;
  687.                   if (this._hp_data[6] > this._battler.hp) {this._hp_data[6] = this._battler.hp};
  688.           }
  689.           else if (this._hp_data[6] > this._battler.hp) {
  690.                   this._hp_data[6] -= nspd;
  691.                   if (this._hp_data[6] < this._battler.hp) {this._hp_data[6] = this._battler.hp};
  692.           };
  693.           this.refresh_hp_number();
  694. };
  695.  
  696. //==============================
  697. // * Refresh HP Number
  698. //==============================
  699. Sprite_BossHP.prototype.refresh_hp_number = function() {
  700.    var w = this._hp_number_img.width / 10;
  701.    var h = this._hp_number_img.height;       
  702.    //$gameMessage.add(this._hp_number.length)
  703.    this._hp_data[4] = Math.abs(this._hp_data[6]).toString().split("");  
  704.    if (this._hp_data[4].length > this._hp_number.length) {return};
  705.    if (this._hp_data[4].length != this._hp_data[5]) {
  706.            for (var i = 0; i < 9) {this._hp_number[i].visible = false};this._hp_data[5] = this._hp_data[4].length};
  707.    for (var i = 0; i < this._hp_data[4].length; i++) {
  708.            var n = Number(this._hp_data[4][i]);
  709.            this._hp_number[i].setFrame(n * w, 0, w, h);
  710.            this._hp_number[i].visible = true;          
  711.            var nx = -(w * i) + (w * this._hp_data[4].length)
  712.            this._hp_number[i].x = (this._layout.x + Moghunter.bosshp_number_x) - nx;
  713.    };
  714. };
  715.  
  716. //==============================
  717. // * Refresh Name
  718. //==============================
  719. Sprite_BossHP.prototype.refresh_name = function() {
  720.         this._name.bitmap.clear();
  721.         this._name.bitmap.drawText(this._battler.enemy().name, 0, 0, this._name.bitmap.width, this._name.bitmap.height,0);       
  722. };
  723.  
  724. //==============================
  725. // * Need Fade Sprites
  726. //==============================
  727. Sprite_BossHP.prototype.need_onSkillCancelites = function() {
  728.         if ($gameMessage.isBusy()) {return true} ;       
  729.         if ($gameTemp._battler_bhp_temp[2]) {return true} ;
  730.         if (!this._battler) {return true} ;
  731.         if (this._battler.isDead()) {return true};
  732.         return false;
  733. };
  734.  
  735. //==============================
  736. // * Fade Sprites
  737. //==============================
  738. Sprite_BossHP.prototype.onSkillCancelites = function(value) {
  739.         if (this._init) {
  740.            this._layout.opacity = 255;
  741.            this._hp_meter_blue.opacity = this._layout.opacity;
  742.            this._hp_meter_red.opacity = this._layout.opacity;
  743.            this._name.opacity = this._layout.opacity;
  744.            for (var i = 0; i < 9; i++) {this._hp_number[i].opacity = this._layout.opacity};       
  745.            return       
  746.         };
  747.         this._layout.opacity -= value;
  748.         this._hp_meter_blue.opacity = this._layout.opacity;
  749.         this._hp_meter_red.opacity = this._layout.opacity;
  750.         this._name.opacity = this._layout.opacity;
  751.         for (var i = 0; i < 9; i++) {this._hp_number[i].opacity -= value};
  752. };
  753.  
  754. //==============================
  755. // * Refresh All
  756. //==============================
  757. Sprite_BossHP.prototype.refresh_all = function() {
  758.          this._battler = $gameTemp._battler_bhp_temp[0];
  759.          this._hp_data[2] = $gameTemp._battler_bhp_temp[1];
  760.          this._hp_data[6] = $gameTemp._battler_bhp_temp[1];  
  761.          this.refresh_hp_number();  
  762.          this.refresh_blue_meter();
  763.          this.refresh_red_meter();
  764.          this.refresh_name();
  765.          if (this._face) {this.refreshFace()};
  766. };
  767.  
  768. //==============================
  769. // * Refresh Blue Meter
  770. //==============================
  771. Sprite_BossHP.prototype.refresh_blue_meter = function() {
  772.          this._hp_data[0] = this._battler.hp;
  773.          this._hp_data[1] = this._battler.mhp;
  774.      this._layout.y = this._hp_data[10]         
  775.          var meter_rate = this._hp_meter_blueFlow[0] * this._battler.hp / this._battler.mhp;
  776.          this._hp_meter_blue.setFrame(this._hp_meter_blueFlow[3], 0, meter_rate, this._hp_meter_blue.bitmap.height / 2);
  777. };
  778.  
  779. //==============================
  780. // * Refresh Red Meter
  781. //==============================
  782. Sprite_BossHP.prototype.refresh_red_meter = function() {
  783.           if (this._init) {
  784.                   if ($gameSystem._battler_bhp_oldNumber[0] != 0) {
  785.                       this._hp_data[2] = $gameSystem._battler_bhp_oldNumber[0];
  786.                       $gameSystem._battler_bhp_oldNumber[0] = 0;
  787.                   } else {
  788.                         this._hp_data[2] = this._battler.mhp;                       
  789.                   };
  790.          };               
  791.           var dnspeed = 1 + (Math.abs(this._hp_data[2] - this._battler.hp) / 160);
  792.           if (this._hp_data[2] > this._battler.hp) {this._hp_data[2] -= dnspeed;
  793.                   if (this._hp_data[2] < this._battler.hp) {this._hp_data[2] = this._battler.hp};}
  794.           else if (this._hp_data[2] < this._battler.hp) {this._hp_data[2]  += dnspeed;
  795.                   if (this._hp_data[2]  > this._battler.hp) {this._hp_data[2]  = this._battler.hp};                       
  796.           };
  797.          var meter_rate = this._hp_meter_redFlow[0] * this._hp_data[2] / this._battler.mhp;
  798.          this._hp_meter_red.setFrame(this._hp_meter_redFlow[3], this._hp_meter_red.bitmap.height / 2, meter_rate, this._hp_meter_red.bitmap.height / 2);       
  799. };

点评

扯远了 这个血条你知道在哪里修改不、。、、、  发表于 2017-10-11 22:07
芯大的血条和MOG 血条有冲突 我该怎么办呢  发表于 2017-10-11 22:07
这是新的血条 BOSS血条我重新找芯大做了一条 可惜工资一直没发 使用权我还没有  发表于 2017-10-11 22:06
...BOSS血条很久 就解决了  发表于 2017-10-11 22:05
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36645
在线时间
10850 小时
注册时间
2009-3-15
帖子
4820
5
发表于 2017-10-12 10:01:20 | 只看该作者
本帖最后由 soulsaga 于 2017-10-12 10:12 编辑
soulsaga 发表于 2017-10-11 13:41
//=============================================================================
// MOG_BossHP.js
//= ...

不是说了for (var i = 0; i < 6; i++) {里面的6么..亲测有效啊..


MVHP.png (111.65 KB, 下载次数: 15)

MVHP.png

点评

谢谢 估计跟我定制的血条 出问题了O(∩_∩)O谢谢  发表于 2017-10-14 22:13

评分

参与人数 2星屑 +50 +1 收起 理由
余烬之中 + 50 认可答案
j296196585 + 1 认可答案

查看全部评分

回复 支持 0 反对 1

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
13
在线时间
0 小时
注册时间
2017-10-14
帖子
5
6
发表于 2017-10-14 15:48:42 | 只看该作者
你这个是横版战斗嘛?人物攻击是动态的,还是原地不动的那种?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-3 04:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表