Project1

标题: 如何给技能/物品/装备设置优先度排序? [打印本页]

作者: fbeds    时间: 2021-10-26 22:09
标题: 如何给技能/物品/装备设置优先度排序?
本帖最后由 fbeds 于 2021-10-26 22:23 编辑

RM默认是ID小的排在前面,我想给技能/物品/装备设计一个排序的优先度。优先度大的会排在前面,优先度相同的就按照默认的以ID的大小来决定排序。请问这用脚本如何设计?
作者: alexncf125    时间: 2021-10-26 22:09
本帖最后由 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
但会有"技能显示的优先度只在战斗中有用"的情形出现,,,按理应该在战斗中也无效才对吧,,,
作者: alexncf125    时间: 2021-10-26 23:21
本帖最后由 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

又是应该有更好更简洁的写法, 不过那又得等大神来了
作者: fbeds    时间: 2021-10-27 13:41
本帖最后由 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 ...


打开装备菜单的时候会出现错误,而且在战斗中的技能/物品选择画面中该脚本无效。
作者: fbeds    时间: 2021-10-28 09:04
本帖最后由 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”
不过我新建一个工程后发现没有出错,我现在正在找问题,可能是脚本冲突。我对错误提示不是很明白,你知道这行错误提示是什么意思吗?
作者: fbeds    时间: 2021-10-28 22:11
alexncf125 发表于 2021-10-26 23:21
class Window_ItemList < Window_Selectable
  alias :sort_item_list :make_item_list
  def make_item_li ...

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




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