Project1

标题: 请问这个显示敌人血条脚本,如何和行走图代替战斗图兼容 [打印本页]

作者: wmzmtz    时间: 2021-8-8 11:39
标题: 请问这个显示敌人血条脚本,如何和行走图代替战斗图兼容
用了SDR的行走图代替战斗图的脚本(SRD_WalkCharBattlers),然后又想显示敌人血条。

已经测试,在没有SRD_WalkCharBattlers的情况下,显示敌人血条能正常使用。但是一旦开启行走图代替战斗图,脚本就无效了,估计是找不到战斗图位置

显示敌人血条脚本如下,很短

JAVASCRIPT 代码复制
  1. // MLC_drawEnemyHP.js
  2.  
  3.  
  4. /*:
  5. @plugindesc 战斗图中绘制敌方血条_v09.11.2016
  6. @author 在野月光族
  7.  
  8. @help
  9. 注※ 本插件不支持由打击震动等效果所产生的偏移结算。
  10.  
  11. 插件指令(非必需)。
  12. 格式:
  13.  指令  参数
  14.  HPX   x值  --  设定血条的坐标X ,默认为 -50。
  15.  HPY   y值  --  设定血条的坐标y ,默认为相对位置。
  16.  
  17. */
  18.  
  19. /*
  20. ==========================================================================
  21.   ◆ 自定义参数
  22. ==========================================================================
  23. */
  24. var MLC = {};
  25. MLC.HPX = 0;
  26. MLC.HPY = 0;
  27.  
  28. /*导入插件指令函数*/
  29. MLC.GEPC = Game_Interpreter.prototype.pluginCommand;
  30.  
  31. /*导入更新精灵函数*/
  32. MLC.EupdateXX = Sprite_Enemy.prototype.update;
  33.  
  34. /*
  35. ==========================================================================
  36.   ◆ 调用插件指令 (重写)
  37. ==========================================================================
  38. */
  39. Game_Interpreter.prototype.pluginCommand = function(command, args) {
  40.         /*调入原函数*/
  41.         MLC.GEPC.call(this);
  42.  
  43.         /*检查插件参数*/
  44.         if( !command || !args ) return ;
  45.  
  46.         /*过滤插件指令*/
  47.         switch(command.toUpperCase() ){
  48.  
  49.                 /*指令1 - 名称*/
  50.                 case 'HPX':
  51.                         /*提取X坐标*/
  52.                         MLC.HPX = Number(args[0]);
  53.                 break;
  54.  
  55.                 /*指令2 - 名称*/
  56.                 case 'HPY':
  57.                         /*提取y坐标*/
  58.                         MLC.HPY = Number(args[0]);
  59.                 break;        
  60.         }
  61. };
  62.  
  63. /*
  64. ==========================================================================
  65.   ◆ 更新血条精灵 (新建)
  66. ==========================================================================
  67. */
  68. Sprite_Enemy.prototype.updateHpRect = function(){
  69.  
  70.         /*如果敌对单位存在*/
  71.         if (this._enemy){
  72.  
  73.                 /*如果血条精灵已创建,则移除精灵*/
  74.                 if(this.SptEnemyHp){this.removeChild(this.SptEnemyHp) };
  75.  
  76.                 /*计算当前血条的可视长度(默认值:最大100像素)*/
  77.                 var EYHP = Math.ceil(this._enemy.hp / this._enemy.mhp * 100) ;  
  78.  
  79.                 /*更新血条纵轴的相对位置*/
  80.                 this.updateStateSprite();
  81.  
  82.                 /*创建精灵*/
  83.                 this.SptEnemyHp = new Sprite();
  84.  
  85.                 /*设定血条横坐标X*/
  86.                 this.SptEnemyHp.x = MLC.HPX || - 50 ;
  87.  
  88.                 /*计算血条纵坐标Y(默认偏移值:18)*/
  89.                 this.SptEnemyHp.y = MLC.HPY || this._stateIconSprite.y + 18;  
  90.  
  91.                 /*设定血条尺寸并绘制(默认高度:2像素)*/
  92.                 this.SptEnemyHp.bitmap = new Bitmap(EYHP, 2);
  93.  
  94.                 /*设置血条颜色并填充(默认值:红色)*/
  95.                 this.SptEnemyHp.bitmap.fillAll('red');
  96.  
  97.                 /*显示血条*/
  98.                 this.addChild(this.SptEnemyHp)
  99.         };        
  100. };
  101.  
  102. /*
  103. ==========================================================================
  104.   ◆ 更新 (重写)
  105. ==========================================================================
  106. */
  107.  
  108. Sprite_Enemy.prototype.update = function(){
  109.         /*调入原函数*/
  110.         MLC.EupdateXX.call(this);
  111.  
  112.         /*更新血条精灵*/
  113.         this.updateHpRect();
  114. };





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1