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

Project1

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

[原创发布] 【装备立绘纸娃娃2月2日更新】SceneEquip

[复制链接]

Lv4.逐梦者 (版主)

职业の水客

梦石
0
星屑
13964
在线时间
7198 小时
注册时间
2010-6-16
帖子
3497

开拓者

跳转到指定楼层
1
发表于 2016-1-30 11:38:20 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
使用相关以及授权说明


本插件只适用于单主角显示,如果想要多人物就需要自己改了
支持多角色显示!感谢夏末渐离同学为此插件进行了拓展!
具体更新请看9L



插件不更新,不维护,不修BUG,不提供指导方法,不要问为啥用不了,如果出错可能是有BUG了,因为脚本是自用的,如有问题请自行找人解决
还有界面不够好看的 请自行找人修改插件 本人不提供任何帮助


使用方法

插件信息


JAVASCRIPT 代码复制
  1. //=============================================================================
  2. /*:
  3.  * @plugindesc 装备界面立绘纸娃娃
  4.  * @author Joritian
  5.  *
  6.  * @param 第一层装备类型ID
  7.  * @default 1
  8.  *
  9.  * @param 第二层装备类型ID
  10.  * @default 2
  11.  *
  12.  * @param 第三层装备类型ID
  13.  * @default 3
  14.  *
  15.  * @param 第四层装备类型ID
  16.  * @default 4
  17.  *
  18.  * @help 立绘图片位于"img/player""人物图片文件名为"player.png",若装备ID为 XXX 则对应的文件应命名为"clothes_XXX.png".
  19.  */
  20. //=============================================================================
  21.  
  22. var parameters = PluginManager.parameters('Scene_Equip');
  23. var equipZ = [
  24.         Number(parameters['第四层装备类型ID'] || 4),
  25.         Number(parameters['第三层装备类型ID'] || 3),
  26.         Number(parameters['第二层装备类型ID'] || 2),
  27.         Number(parameters['第一层装备类型ID'] || 1),
  28. ];
  29.  
  30. Scene_Equip.prototype.create = function() {
  31.     Scene_MenuBase.prototype.create.call(this);
  32.  
  33.         this.createPlayerPicture();
  34.  
  35.     this.createHelpWindow();
  36.     this.createStatusWindow();
  37.     this.createCommandWindow();
  38.     this.createSlotWindow();
  39.     this.createItemWindow();
  40.     this.refreshActor();
  41. };
  42.  
  43. Scene_Equip.prototype.createStatusWindow = function() {
  44.     this._statusWindow = new Window_EquipStatus(180, this._helpWindow.height);
  45.     this.addWindow(this._statusWindow);
  46. };
  47.  
  48. Scene_Equip.prototype.createCommandWindow = function() {
  49.     var wx = this._statusWindow.width + 180;
  50.     var wy = this._helpWindow.height;
  51.     var ww = Graphics.boxWidth - this._statusWindow.width - 180;
  52.     this._commandWindow = new Window_EquipCommand(wx, wy, ww);
  53.     this._commandWindow.setHelpWindow(this._helpWindow);
  54.     this._commandWindow.setHandler('equip',    this.commandEquip.bind(this));
  55.     this._commandWindow.setHandler('optimize', this.commandOptimize.bind(this));
  56.     this._commandWindow.setHandler('clear',    this.commandClear.bind(this));
  57.     this._commandWindow.setHandler('cancel',   this.popScene.bind(this));
  58.     this._commandWindow.setHandler('pagedown', this.nextActor.bind(this));
  59.     this._commandWindow.setHandler('pageup',   this.previousActor.bind(this));
  60.     this.addWindow(this._commandWindow);
  61. };
  62.  
  63. Scene_Equip.prototype.createSlotWindow = function() {
  64.     var wx = this._statusWindow.width + 180;
  65.     var wy = this._commandWindow.y + this._commandWindow.height;
  66.     var ww = Graphics.boxWidth - this._statusWindow.width - 180;
  67.     var wh = this._statusWindow.height - this._commandWindow.height;
  68.     this._slotWindow = new Window_EquipSlot(wx, wy, ww, wh);
  69.     this._slotWindow.setHelpWindow(this._helpWindow);
  70.     this._slotWindow.setStatusWindow(this._statusWindow);
  71.     this._slotWindow.setHandler('ok',       this.onSlotOk.bind(this));
  72.     this._slotWindow.setHandler('cancel',   this.onSlotCancel.bind(this));
  73.     this.addWindow(this._slotWindow);
  74. };
  75.  
  76. Scene_Equip.prototype.createItemWindow = function() {
  77.     var wx = 180;
  78.     var wy = this._statusWindow.y + this._statusWindow.height;
  79.     var ww = Graphics.boxWidth - 180;
  80.     var wh = Graphics.boxHeight - wy;
  81.     this._itemWindow = new Window_EquipItem(wx, wy, ww, wh);
  82.     this._itemWindow.setHelpWindow(this._helpWindow);
  83.     this._itemWindow.setStatusWindow(this._statusWindow);
  84.     this._itemWindow.setHandler('ok',     this.onItemOk.bind(this));
  85.     this._itemWindow.setHandler('cancel', this.onItemCancel.bind(this));
  86.     this._slotWindow.setItemWindow(this._itemWindow);
  87.     this.addWindow(this._itemWindow);
  88. };
  89.  
  90. Scene_Equip.prototype.commandOptimize = function() {
  91.     SoundManager.playEquip();
  92.     this.actor().optimizeEquipments();
  93.     this._statusWindow.refresh();
  94.     this._slotWindow.refresh();
  95.     this._commandWindow.activate();
  96.         this.updateEquipPictrues();
  97. };
  98.  
  99. Scene_Equip.prototype.commandClear = function() {
  100.     SoundManager.playEquip();
  101.     this.actor().clearEquipments();
  102.     this._statusWindow.refresh();
  103.     this._slotWindow.refresh();
  104.     this._commandWindow.activate();
  105.         this.updateEquipPictrues();
  106. };
  107.  
  108. Scene_Equip.prototype.onItemOk = function() {
  109.     SoundManager.playEquip();
  110.     this.actor().changeEquip(this._slotWindow.index(), this._itemWindow.item());
  111.     this._slotWindow.activate();
  112.     this._slotWindow.refresh();
  113.     this._itemWindow.deselect();
  114.     this._itemWindow.refresh();
  115.     this._statusWindow.refresh();
  116.         this.updateEquipPictrues();
  117. };
  118.  
  119. // TO DO
  120.  
  121. Scene_Equip.prototype.createPlayerPicture = function() {
  122.  
  123.         this._playerPicture = new Sprite(Bitmap.load("img/player/player.png"));
  124.         this._playerPicture.move(30, 150);
  125.  
  126.         this._equipPictrues = new Array();
  127.  
  128.         this.addChild(this._playerPicture);
  129.  
  130.         for(var i = 0; i < 4; i++)
  131.         {
  132.                 this._equipPictrues[i] = new Sprite();
  133.                 this._equipPictrues[i].move(30, 150);
  134.                 this.addChild(this._equipPictrues[i]);
  135.         }
  136.  
  137.         this.updateEquipPictrues();
  138. }
  139.  
  140. Scene_Equip.prototype.updateEquipPictrues = function() {
  141.  
  142.         var playerEquips = $gameActors.actor(1).armors();
  143.  
  144.         for(var t = 0; t < 4; t++) {
  145.                 for(var i = 0; i < 4; i++) {
  146.                         if (playerEquips[i]) {
  147.                                 if (equipZ[t] == playerEquips[i].etypeId) {
  148.                                         this._equipPictrues[t].bitmap = Bitmap.load("img/player/clothes_" + playerEquips[i].id + ".png");
  149.                                         break;
  150.                                 }
  151.                         } else {
  152.                                 this._equipPictrues[t].bitmap = ImageManager.loadEmptyBitmap();
  153.                         }
  154.                         this._equipPictrues[t].update();
  155.                 }
  156.         }
  157. }


素材(禁止任何途径的使用):
player.zip (214.91 KB, 下载次数: 578)

相关图片:
穿着:

穿着叠加:

插件设定:

设定类型:

评分

参与人数 2星屑 +132 梦石 +1 收起 理由
永恒の未知数 + 66
余烬之中 + 66 + 1 塞糖

查看全部评分

一个看图的地方
群爆炸重建后状态:论坛老人最多(只剩下了活跃的老人),技术力很强(依旧不变)的编程灌水群:901540785
专门讨论RM相关的Q群:56875149
PS:第一个群不是专门讨论RM的,第二个才是哦。

Lv1.梦旅人

梦石
0
星屑
50
在线时间
81 小时
注册时间
2016-1-6
帖子
150
2
发表于 2016-1-30 12:12:06 | 只看该作者
这个好像很厉害,拿来试试,谢谢楼主分享
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
81 小时
注册时间
2016-1-6
帖子
150
3
发表于 2016-1-30 12:49:57 | 只看该作者
试用了一下,还是挺简单易用的,不过大概用于商业游戏的时候游戏主角只有一个,如果我用MV默认的四人队伍,进入装备栏之后,纸娃娃的效果只显示第一个人的装备情况,后面几个人的装备情况不会显示,我再研究研究,谢谢楼主分享

点评

是啊 我做的那个游戏是单主角的 并没有考虑多人物 有能力的可以自己改改  发表于 2016-1-30 14:57
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
258 小时
注册时间
2011-12-23
帖子
72
4
发表于 2016-1-30 16:31:22 | 只看该作者
这是极好的
[
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1232
在线时间
1017 小时
注册时间
2011-4-30
帖子
1516
5
发表于 2016-1-30 18:02:53 | 只看该作者
不错的样子

点评

今天脑抽了2333  发表于 2016-1-31 21:29
……额,其实b=a之后,b那个方法就是b了,t同时也是a,然后a变成另一个方法。  发表于 2016-1-31 21:24
好吧,私有变量index还是需要在原方法a里面加个return才能让b通过call访问到的……  发表于 2016-1-31 18:12
b.call(this,x,y),是相当于b(x,y),不过把里面的this变成传入的this。  发表于 2016-1-31 16:52
b=function(index){return index+1};a=function() {var index=1;var i=b.call(this,index); return i};alert(a());  发表于 2016-1-31 16:40
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
44 小时
注册时间
2008-2-29
帖子
44
6
发表于 2016-1-30 18:31:40 | 只看该作者
好东西!多谢楼主。

P.S.有人研究出来如何加上人物了吗=w=是要调用actorID这个参数吗?JS哭手QAQ
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
575
在线时间
1752 小时
注册时间
2008-11-7
帖子
1431
7
发表于 2016-1-31 10:51:24 | 只看该作者
这图会2显示在 战斗中吗
RPG魔塔:http://rpg.blue/thread-254429-1-1.html
魔塔2:http://rpg.blue/thread-303601-1-1.html
魔塔3: 制作中...MV
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
81 小时
注册时间
2016-1-6
帖子
150
8
发表于 2016-1-31 13:33:19 | 只看该作者
z2z4 发表于 2016-1-31 10:51
这图会2显示在 战斗中吗

并不会,我看了下脚本,就是单纯的装备界面显示,如果要做到战斗中去,调用一下图片应该就行了,不过应该不适用于侧视战斗,里面涉及到很多东西。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
306 小时
注册时间
2014-8-5
帖子
416
9
发表于 2016-2-1 13:39:40 | 只看该作者
本帖最后由 夏末渐离 于 2016-2-1 13:42 编辑

遵从使用规则:
1·允许随意修改插件内容
2·修改插件内容后请保留作者信息
定义了新的内容:

插件代码

点评

本人已G,有事烧纸。  发表于 2016-5-10 23:40
想請問一下 這個如何能增加層數呢? 有沒有 連動對話中立繪的方法呢?@A@  发表于 2016-4-25 21:05

评分

参与人数 2星屑 +50 梦石 +1 收起 理由
余烬之中 + 1 精品文章
寂静的夜里 + 50 不错

查看全部评分

  点我进入    
       ↓      
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
44 小时
注册时间
2008-2-29
帖子
44
10
发表于 2016-2-23 22:47:06 | 只看该作者
本帖最后由 蜡笔小猴子 于 2016-2-23 22:52 编辑
夏末渐离 发表于 2016-2-1 13:39
遵从使用规则:
1·允许随意修改插件内容
2·修改插件内容后请保留作者信息


感谢修改!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-14 10:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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