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

Project1

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

[已经解决] 如何给技能/物品/装备设置优先度排序?

[复制链接]

Lv4.逐梦者

梦石
0
星屑
7098
在线时间
887 小时
注册时间
2015-2-10
帖子
248
跳转到指定楼层
1
发表于 2021-10-26 22:09:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
50星屑
本帖最后由 fbeds 于 2021-10-26 22:23 编辑

RM默认是ID小的排在前面,我想给技能/物品/装备设计一个排序的优先度。优先度大的会排在前面,优先度相同的就按照默认的以ID的大小来决定排序。请问这用脚本如何设计?

最佳答案

查看完整内容

喔喔,,,那是因为我压根沒注意到你在1L原来有问及技能,,, 所以我答的是class Window_ItemList < Window_Selectable 你用class Window_SkillList < Window_Selectable照复制一份就行了 奇怪的是, 为什么我是答的class Window_ItemList 但会有"技能显示的优先度只在战斗中有用"的情形出现,,,按理应该在战斗中也无效才对吧,,,

Lv5.捕梦者

梦石
0
星屑
24464
在线时间
5074 小时
注册时间
2016-3-8
帖子
1623
2
发表于 2021-10-26 22:09:37 | 只看该作者
本帖最后由 alexncf125 于 2021-10-28 23:35 编辑
fbeds 发表于 2021-10-28 22:11
现在是没有错误了,但是还有最后一个小BUG。就是在战斗外的菜单栏里查看角色的技能时,技能不会按照优先 ...


喔喔,,,那是因为我压根沒注意到你在1L原来有问及技能,,,
所以我答的是class Window_ItemList < Window_Selectable
你用class Window_SkillList < Window_Selectable照复制一份就行了

奇怪的是, 为什么我是答的class Window_ItemList
但会有"技能显示的优先度只在战斗中有用"的情形出现,,,按理应该在战斗中也无效才对吧,,,
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
24464
在线时间
5074 小时
注册时间
2016-3-8
帖子
1623
3
发表于 2021-10-26 23:21:56 | 只看该作者
本帖最后由 alexncf125 于 2021-10-28 09:29 编辑

class Window_ItemList < Window_Selectable
  alias :sort_item_list :make_item_list
  def make_item_list
    sort_item_list
    @data.delete(nil)
    @data.sort_by! do |item|
      if item
        item_priority = item.note =~ /<优先度:\s*(\d+)>/ ? $1.to_i : 0
        [item_priority, (item.id - 1000).abs]
      end
    end
    @data.reverse!
    @data.push(nil) if include?(nil)
  end
end

又是应该有更好更简洁的写法, 不过那又得等大神来了
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7098
在线时间
887 小时
注册时间
2015-2-10
帖子
248
4
 楼主| 发表于 2021-10-27 13:41:34 | 只看该作者
本帖最后由 fbeds 于 2021-10-27 13:45 编辑
alexncf125 发表于 2021-10-26 23:21
class Window_ItemList < Window_Selectable
  alias :sort_item_list :make_item_list
  def make_item_li ...


打开装备菜单的时候会出现错误,而且在战斗中的技能/物品选择画面中该脚本无效。

点评

修改了一下, 你测测正常不,,,  发表于 2021-10-27 23:38
晚点再看看吧,,,在上班,,,没环境,,,  发表于 2021-10-27 18:38
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7098
在线时间
887 小时
注册时间
2015-2-10
帖子
248
5
 楼主| 发表于 2021-10-28 09:04:25 | 只看该作者
本帖最后由 fbeds 于 2021-10-28 09:13 编辑
alexncf125 发表于 2021-10-26 23:21
class Window_ItemList < Window_Selectable
  alias :sort_item_list :make_item_list
  def make_item_li ...


还是有错误,打开装备栏时显示“ArgumentError occurred, comparison of Array with nil failed”
不过我新建一个工程后发现没有出错,我现在正在找问题,可能是脚本冲突。我对错误提示不是很明白,你知道这行错误提示是什么意思吗?

点评

其实我是抄的https://www.rpgmakercentral.com/topic/6758-simple-inventory-sorting/  发表于 2021-10-28 09:31
又修了一下, 再不行那我也不知道咋改了  发表于 2021-10-28 09:30
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7098
在线时间
887 小时
注册时间
2015-2-10
帖子
248
6
 楼主| 发表于 2021-10-28 22:11:43 | 只看该作者
alexncf125 发表于 2021-10-26 23:21
class Window_ItemList < Window_Selectable
  alias :sort_item_list :make_item_list
  def make_item_li ...

现在是没有错误了,但是还有最后一个小BUG。就是在战斗外的菜单栏里查看角色的技能时,技能不会按照优先度排序。其它的所有东西的优先度在任何地方都是有效的,而技能显示的优先度只在战斗中有用,在战斗外的菜单里是无效的。这是怎么回事?
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-12 15:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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