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

Project1

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

[已经解决] 物品排序

[复制链接]

Lv1.梦旅人

梦石
0
星屑
84
在线时间
130 小时
注册时间
2014-9-1
帖子
98
跳转到指定楼层
1
发表于 2015-8-24 05:45:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
不好意思,请问一下有没有物品排序的脚本啊?
最好是能够依据物品稀有度排序
物品稀有度原帖:https://rpg.blue/forum.php?mod=viewthread&tid=332526
如果不行,普通的脚本也可以。
谢谢
halo大家好,欢迎支持我的部落格
http://dedarknightstudio.blogspot.com

Lv1.梦旅人

梦石
0
星屑
60
在线时间
705 小时
注册时间
2007-12-23
帖子
874
2
发表于 2015-8-24 22:38:22 | 只看该作者
本帖最后由 gonglinyuan 于 2015-8-24 22:44 编辑

物品本身就是按照在数据库中的ID号来排序的,最简单的实现方式是把稀有度大的物品排在数据库的前面。

如果真的要改变默认排序方式的话可以这样:

RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 刷新
  3.   #--------------------------------------------------------------------------
  4.   def refresh
  5.     if self.contents != nil
  6.       self.contents.dispose
  7.       self.contents = nil
  8.     end
  9.     @data = []
  10.     # 添加报务
  11.     for i in 1...$data_items.size
  12.       if $game_party.item_number(i) > 0
  13.         @data.push($data_items[i])
  14.       end
  15.     end
  16.     # 在战斗中以外添加武器、防具
  17.     unless $game_temp.in_battle
  18.       for i in 1...$data_weapons.size
  19.         if $game_party.weapon_number(i) > 0
  20.           @data.push($data_weapons[i])
  21.         end
  22.       end
  23.       for i in 1...$data_armors.size
  24.         if $game_party.armor_number(i) > 0
  25.           @data.push($data_armors[i])
  26.         end
  27.       end
  28.     end
  29.  
  30.  # 按照价格排序开始
  31.     @data.sort! do |a, b|
  32.       if a.price > b.price
  33.         -1
  34.       elsif a.price < b.price
  35.         +1
  36.       else
  37.         a <=> b
  38.       end
  39.     end
  40.     # 按照价格排序结束
  41.  
  42.     # 如果项目数不是 0 就生成位图、重新描绘全部项目
  43.     @item_max = @data.size
  44.     if @item_max > 0
  45.       self.contents = Bitmap.new(width - 32, row_max * 32)
  46.       for i in 0...@item_max
  47.         draw_item(i)
  48.       end
  49.     end
  50.   end


用这段代码替换Window_Item的Refresh方法(应该在29行附近)。这是按照价格从大到小排序(price),如果要按照别的排序(比如你说的稀有度),将price一栏改成对应的即可。

评分

参与人数 1梦石 +1 收起 理由
RyanBern + 1 认可答案

查看全部评分

买了正版RMMV的同学进来看一下,谢谢~
https://rpg.blue/thread-393237-1-1.html
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-23 05:32

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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