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

Project1

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

[有事请教] 想请教一下如何做往箱子里存放装备(包括已装备的)

[复制链接]

Lv2.观梦者

梦石
0
星屑
783
在线时间
94 小时
注册时间
2022-3-2
帖子
33
跳转到指定楼层
1
发表于 2024-6-29 16:59:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
300星屑
起因是想做往箱子里存放指定装备的功能

但是,物品选择界面里只有 普通物品/重要物品/隐藏物品A/隐藏物品B(图一)

有没有什么插件或是好的办法能够将身上的装备也放入到箱子中呢?

--------------------------------------------------------------------------------------------------------------

我自己想过一个办法:

是给予武器/护甲一个重要物品的栏位,

但是存放的时候,必须先检测自己身上是否携带该装备,

才能将装备一并从身上减少掉,

这样做的话,整个过程就会变的很繁琐!

图一.png (16.03 KB, 下载次数: 169)

图一

图一

最佳答案

查看完整内容

有个YEP_MapSelectEquip插件可以让你额外选择武器或护甲作为物品选择界面的类型,但这个插件只能读取玩家队伍背包中的装备,对于你想要连同玩家身上装备一起读取的需求,一个相对更简单的做法是在打开物品选择窗口前,先把操作角色身上的装备全扒下来放回背包里,并记录下对应各个装备槽索引的ID 然后打开选择装备窗口,这时原本装备在玩家身上的装备,就会在选择窗口中显示了,接着只要你没选择对应的装备,在选择窗口关闭后,检 ...

Lv4.逐梦者

梦石
0
星屑
5469
在线时间
1231 小时
注册时间
2016-12-6
帖子
391
2
发表于 2024-6-29 16:59:11 | 只看该作者
本帖最后由 shiroin 于 2024-6-30 00:13 编辑

有个YEP_MapSelectEquip插件可以让你额外选择武器或护甲作为物品选择界面的类型,但这个插件只能读取玩家队伍背包中的装备,对于你想要连同玩家身上装备一起读取的需求,一个相对更简单的做法是在打开物品选择窗口前,先把操作角色身上的装备全扒下来放回背包里,并记录下对应各个装备槽索引的ID
然后打开选择装备窗口,这时原本装备在玩家身上的装备,就会在选择窗口中显示了,接着只要你没选择对应的装备,在选择窗口关闭后,检查之前储存的装备ID并重新给玩家强制装备回去,就可以当什么都没发生过了
但如果你选择了玩家原本正在装备的道具,就把存储的值重新赋值为0,玩家对应槽位的装备就会空下来,总的来说思路就是这样,脚本你也可以参考下:
  1. var armorSlots = [1, 2, 3, 4]; // 护甲槽位的索引,根据实际情况修改
  2. var variables = [100, 101, 102, 103]; // 记录装备ID的变量索引,根据实际情况修改
  3. for (var i = 0; i < armorSlots.length; i++) {
  4.     var slotId = armorSlots[i];
  5.     var variableId = variables[i];
  6.     var equippedItem = $gameActors.actor(1).equips()[slotId];
  7.     var itemId = equippedItem ? equippedItem.id : 0;
  8.     $gameVariables.setValue(variableId, itemId);
  9.     $gameActors.actor(1).changeEquip(slotId, null);
  10. }
复制代码
  1. var armorSlots = [1, 2, 3, 4]; // 护甲槽位的索引,根据实际情况修改
  2. var variables = [100, 101, 102, 103]; // 记录装备ID的变量索引,根据实际情况修改
  3. for (var i = 0; i < armorSlots.length; i++) {
  4.     var slotId = armorSlots[i];
  5.     var variableId = variables[i];
  6.     var itemId = $gameVariables.value(variableId);   
  7.     if (itemId !== 0) {
  8.         $gameActors.actor(1).changeEquip(slotId, $dataArmors[itemId]);
  9.     }
  10. }
复制代码

QQ截图20240630011144.png (67.55 KB, 下载次数: 167)

假设玩家有四个装备槽

假设玩家有四个装备槽

点评

我就提供一个思路,这个方法还是有瑕疵的需要优化,比如玩家装备多个同名装备时,这个方法就没法正确识别槽位了  发表于 2024-6-30 00:15
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
783
在线时间
94 小时
注册时间
2022-3-2
帖子
33
3
 楼主| 发表于 2024-6-29 22:32:48 | 只看该作者
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
783
在线时间
94 小时
注册时间
2022-3-2
帖子
33
4
 楼主| 发表于 2024-6-30 17:15:23 | 只看该作者
shiroin 发表于 2024-6-30 00:12
有个YEP_MapSelectEquip插件可以让你额外选择武器或护甲作为物品选择界面的类型,但这个插件只能读取玩家队 ...

十分感谢!!!
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-5 03:04

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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