扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 130|回复: 0

[转载发布] 这个状态插件如何改坐标

[复制链接]
累计送礼:
0 个
累计收礼:
0 个
  • TA的每日心情
    开心
    2024-11-27 10:08
  • 签到天数: 108 天

    连续签到: 4 天

    [LV.6]常住居民II

    2219

    主题

    376

    回帖

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    6
    卡币
    9661
    OK点
    16
    推广点
    0
    同能卷
    0
    积分
    12284

    灌水之王

    发表于 2024-2-16 16:10:20 | 显示全部楼层 |阅读模式
    我想把它改成这样的

    我想把人物的立绘带入变量,我之前VA搞过,XX+变量显示立绘,这样可以让玩家选择自己想要的立绘。。

    RUBY 代码
    1. //=============================================================================
    2. // MrTS_LuminusStatus.js
    3. //=============================================================================
    4. /*:
    5. * @plugindesc Luminus Status Screen. Changes how data is displayed there.
    6. *@author Mr. Trivel
    7. *
    8. * @param Short Attack
    9. * @desc Short text for Attack
    10. * Default: ATK
    11. * @default ATK
    12. *
    13. * @param Short Defense
    14. * @desc Short text for Defense
    15. * Default: DEF
    16. * @defaultDEF
    17. *
    18. * @param Short MAttack
    19. * @desc Short text for Magical Attack
    20. * Default: MAT
    21. * @default MAT
    22. *
    23. * @param Short MDefense
    24. * @desc Short text for MDefense
    25. * Default: MDF
    26. * @default MDF
    27. *
    28. * @param Short Agility
    29. * @desc Short text for Agility
    30. * Default: AGI
    31. * @default AGI
    32. *
    33. * @param Short Luck
    34. * @desc Short text for Luck
    35. * Default: LUK
    36. * @default LUK
    37. *
    38. * @help
    39. * --------------------------------------------------------------------------------
    40. * Free for non commercial use.
    41. * Version 1.0
    42. * --------------------------------------------------------------------------------
    43. *
    44. * --------------------------------------------------------------------------------
    45. * Required Files
    46. * --------------------------------------------------------------------------------
    47. * "img\system\LuminusBackground.png" - At least as big as screen. Background.
    48. *"img\system\LuminusStatus.png" - 348x539 - Background for stats and equipment.
    49. *"img\system\LuminusBar.png" - 324x48 - background for equipment.
    50. *"img\system\LuminusSeparator.png" - 327x9 - separator bar between blocks.
    51. *"img\system\LuminusStatusName.png" - 264x70 - Status Scene name in top right.
    52. *"img\system\LuminusActor#.png" - any preferred size. # - Actor ID
    53. *    E.g. LuminusActor5.png would be actor's with ID 5 image.
    54. * "img\system\LuminusBottomBar.png" - 40height, width - as big as screen.
    55. *    Is at the very bottom of status screen. Can be used to display controls.
    56. *
    57. *
    58. * --------------------------------------------------------------------------------
    59. * Map Tags
    60. * --------------------------------------------------------------------------------
    61. *
    62. * Luminus Status Scene background is set depending on the map you're in.
    63. *If no tag set it uses default background - "LuminusBackground".
    64. * --------------------------------------------------------------------------------
    65. * Version History
    66. * --------------------------------------------------------------------------------
    67. * 1.0 - Release
    68. */
    69. (function(){
    70.         var parameters = PluginManager.parameters('MrTS_LuminusStatus');
    71.         var paramATK  = String(parameters['Short Attack']         || "ATK")
    72.         var paramDEF  = String(parameters['Short Defense']         || "DEF")
    73.         var paramMATK = String(parameters['Short MAttack']         || "MAT")
    74.         var paramMDEF = String(parameters['Short MDefense'] || "MDF")
    75.         var paramAGI  = String(parameters['Short Agility']         || "AGI")
    76.         var paramLUK  = String(parameters['Short Luck']         || "LUK")
    77.         Scene_Status.prototype.create = function(){
    78.             Scene_MenuBase.prototype.create.call(this);
    79.             this._statusWindow = new Window_Status();
    80.             this._statusWindow.setHandler('cancel',   this.popScene.bind(this));
    81.             this._statusWindow.setHandler('pagedown', this.nextActor.bind(this));
    82.             this._statusWindow.setHandler('pageup',   this.previousActor.bind(this));
    83.             this.addWindow(this._statusWindow);
    84.             this.refreshActor();
    85.         };
    86.         Scene_Status.prototype.createBackground = function(){
    87.             this._backgroundSprite = new Sprite();
    88.             if($dataMap.meta.LuminusBackground)
    89.             {
    90.                     var fileName = String($dataMap.meta.LuminusBackground);
    91.                     if(fileName[0] == " ") fileName = fileName.substring(1);
    92.                     this._backgroundSprite.bitmap = ImageManager.loadSystem(fileName);
    93.             }
    94.             else
    95.                     this._backgroundSprite.bitmap = ImageManager.loadSystem("LuminusBackground");
    96.             this.addChild(this._backgroundSprite);
    97.             this._statusBackground = new Sprite();
    98.             this._statusBackground.bitmap = ImageManager.loadSystem("LuminusStatus");
    99.             this._statusBackground.x = 30;
    100.             this._statusBackground.y = Graphics.boxHeight/2 - 540/2;
    101.             this.addChild(this._statusBackground);
    102.             this._actorSprite = new Sprite()
    103.             this.addChild(this._actorSprite);
    104.             this._barSprites = [];
    105.             var equips = $gameActors.actor(1).equips();
    106.             for(var i = 0; i < equips.length; i++){
    107.                     var sprite = new Sprite();
    108.                     sprite.bitmap = ImageManager.loadSystem("LuminusBar");
    109.                     sprite.x = this._statusBackground.x + 9;
    110.                     sprite.y = this._statusBackground.y + 250 + 48*i;
    111.                         this.addChild(sprite);
    112.             };
    113.             this._bottomBarSprite = new Sprite();
    114.             this._bottomBarSprite.bitmap = ImageManager.loadSystem("LuminusBottomBar");
    115.             this._bottomBarSprite.y = Graphics.boxHeight - 40;
    116.             this.addChild(this._bottomBarSprite);
    117.             this._statusName = new Sprite();
    118.             this._statusName.bitmap = ImageManager.loadSystem("LuminusStatusName");
    119.             var sprite = this._statusName;
    120.             sprite.bitmap.addLoadListener(function(){
    121.                     sprite.x = Graphics.width - sprite.width;
    122.             });
    123.             this.addChild(this._statusName);
    124.         };
    125.         Scene_Status.prototype.refreshActor = function(){
    126.             var actor = this.actor();
    127.             this._statusWindow.setActor(actor);
    128.             var actorSprite = this._actorSprite;
    129.             var statusSprite = this._statusBackground;
    130.             actorSprite.bitmap = ImageManager.loadSystem("LuminusActor" + actor.actorId());
    131.             actorSprite.bitmap.addLoadListener(function(){
    132.                     var w = Graphics.boxWidth - statusSprite.x - statusSprite.width;
    133.                     var x = statusSprite.x + statusSprite.width;
    134.                     var y = Graphics.boxHeight - actorSprite.height;
    135.                     if(y < 0) y = 0;
    136.                     actorSprite.x = x + w/2 - actorSprite.width/2;
    137.                     actorSprite.y = y;
    138.             });
    139.         };
    140.         Window_Status.prototype.initialize = function(){
    141.             var width = Graphics.boxWidth;
    142.             var height = Graphics.boxHeight;
    143.             Window_Selectable.prototype.initialize.call(this, 0, 0, width, height);
    144.             this.refresh();
    145.             this.activate();
    146.             this.opacity = 0;
    147.         };
    148.         Window_Status.prototype.refresh = function(){
    149.             this.contents.clear();
    150.             var positions = [];
    151.             var x = 30 - this.standardPadding();
    152.             if(this._actor){
    153.                     var actor = this._actor;
    154.                 var lineHeight = this.lineHeight();
    155.                 var y = Graphics.boxHeight/2 - 540/2 - this.standardPadding() + 8;
    156.                 var mw = 348/2;
    157.                 this.drawText(TextManager.levelA, x + 9, y);
    158.                 this.drawText(actor.level, x, y, mw - 6, 'right');
    159.                 this.drawText(actor.name(), x + mw, y, mw, 'center');
    160.                 y += lineHeight;
    161.                 this.drawText(TextManager.exp, x + 9, y, mw - 6);
    162.                 var exp = (actor.currentExp()-actor.currentLevelExp()) + "/" + (actor.nextLevelExp()-actor.currentLevelExp());
    163.                 this.drawText(exp, x, y, mw*2-12, 'right');
    164.                 y += lineHeight;
    165.                 this.drawText(TextManager.hpA, x + 9, y);
    166.                 var hp = actor.hp + "/" + actor.mhp;
    167.                 var whp = this.textWidth(hp);
    168.                 this.drawText(hp, x, y, mw - 6, 'right');
    169.                 this.drawText(TextManager.mpA, x + mw + 6, y);
    170.                 var mp = actor.mp + "/" + actor.mmp;
    171.                 this.drawText(mp, mw, y, mw, 'right');
    172.                 y += lineHeight;
    173.                 positions.push(y)
    174.                 y += lineHeight/3;
    175.                 var sw = mw  - this.textWidth(paramATK);
    176.                 var swx = this.textWidth(paramATK);
    177.                 this.drawText(paramATK, x + 9, y);
    178.                 this.drawText(actor.atk, x + swx, y, sw, 'center');
    179.                 this.drawText(paramDEF, x + mw + 6, y);
    180.                 this.drawText(actor.def, mw + swx, y, sw, 'center');
    181.                 y += lineHeight;
    182.                 this.drawText(paramMATK, x + 9, y);
    183.                 this.drawText(actor.mat, x + swx, y, sw, 'center');
    184.                 this.drawText(paramMDEF, x + mw + 6, y);
    185.                 this.drawText(actor.mdf, mw + swx, y, sw, 'center');
    186.                 y += lineHeight;
    187.                 this.drawText(paramAGI, x + 9, y);
    188.                 this.drawText(actor.agi, x + swx, y, sw, 'center');
    189.                 this.drawText(paramLUK, x + mw + 6, y);
    190.                 this.drawText(actor.luk, mw + swx, y, sw, 'center');
    191.                 y += lineHeight;
    192.                 positions.push(y);
    193.                 y += lineHeight/3+2;
    194.                 var equips = this._actor.equips();
    195.                     var count = Math.min(equips.length, this.maxEquipmentLines());
    196.                     for(var i = 0; i < count; i++){
    197.                             this.drawItemName(equips[i], x + 18, y + 48 * i + 6);
    198.                     }
    199.             }
    200.             var bitmapSeparator = ImageManager.loadSystem("LuminusSeparator");
    201.             var c = this.contents;
    202.             bitmapSeparator.addLoadListener(function(){
    203.                     for(var i = 0; i < positions.length; i ++)
    204.                             c.blt(bitmapSeparator, 0, 0, bitmapSeparator.width, bitmapSeparator.height, x + 9, positions[i]);
    205.             });
    206.         };
    207.         Window_Status.prototype.drawVertLine = function(x){
    208.             this.contents.paintOpacity = 48;
    209.             this.contents.fillRect(x, 0, 2, this.contentsHeight(), this.lineColor());
    210.             this.contents.paintOpacity = 255;
    211.         };
    212. })();
    复制代码

                本帖来自P1论坛作者西姐,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=387727  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2025-1-16 13:52 , Processed in 0.068781 second(s), 58 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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