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

Project1

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

[已经解决] 如何整理物品栏物品,排序物品栏物品?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
129 小时
注册时间
2012-6-24
帖子
75
跳转到指定楼层
1
发表于 2014-8-7 11:51:58 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 R9560 于 2014-8-7 11:56 编辑

类似勇者斗恶龙、重装机兵等等RPG游戏必有的那种整理物品功能,可以自己更换排序物品栏物品的栏位,也可以自动按某种分类排序,可以做到这样吗

PS:我觉得RMVA应该有这种最基本的功能啊,要不一大堆物品乱七八糟的了。

QQ截图20140807115529.png (460.02 KB, 下载次数: 21)

QQ截图20140807115529.png

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2014-8-7 12:09:13 | 只看该作者
本帖最后由 taroxd 于 2014-8-7 12:10 编辑

默认的数据结构就可以基本让你死了这条心了

RUBY 代码复制
  1. def items
  2.     @items.keys.sort.collect {|id| $data_items[id] }
  3.   end


默认排序是这样的,你可以考虑再来一个列表储存排序什么的……总之烦死你
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21484
在线时间
9389 小时
注册时间
2012-6-19
帖子
7114

开拓者短篇九导演组冠军

3
发表于 2014-8-7 13:46:36 | 只看该作者
本帖最后由 喵呜喵5 于 2014-8-7 13:59 编辑
  1. =begin
  2. ===============================================================================
  3.   物品排序 By喵呜喵5
  4. ===============================================================================

  5. 【说明】

  6.   修改对应变量的值时,在菜单中查看物品可以按照某种顺序排序
  7.   
  8.   唯一的问题是,除了数据库ID外……物品还真没啥好排序的 = =
  9.   
  10.   有时间的话加一个按照指定备注排序算了 = =
  11.    
  12. =end
  13. $m5script ||= {};$m5script["M5IS20140807"] = 20140807
  14. module M5IS20140807
  15. #==============================================================================
  16. # 设定部分
  17. #==============================================================================

  18.   VAR1 = 1
  19.   
  20.   # 决定物品、贵重物品排序的变量ID,不需要的话,填0就好了
  21.   
  22.   # 值为正数时:
  23.   # 值为 1 时:按照 入手顺序 排序
  24.   # 值为 2 时:按照 价格 排序
  25.   # 其他值 时:按照 数据库ID 排序
  26.   # 值为负数时,先按照其相反数进行排序,之后倒序排列
  27.   
  28.   VAR2 = 2
  29.   
  30.   # 决定武器排序的变量ID,不需要的话,填0就好了
  31.   
  32.   VAR3 = 3
  33.   
  34.   # 决定防具排序的变量ID,不需要的话,填0就好了
  35.   
  36.   # 对于武器与防具
  37.   # 值为正数时:
  38.   # 值为 1    时:按照 入手顺序 排序
  39.   # 值为 2    时:按照 价格 排序
  40.   # 值为 3    时:按照 装备类型 排序
  41.   # 值为 4    时:按照 武器、防具类型 排序
  42.   # 值为 5    时:按照 武器评价 排序
  43.   # 值为 6~13 时:按照 体力上限/魔力上限/物理攻击/物理防御/魔法攻击
  44.   #                    /魔法防御/敏捷值/幸运值 排序
  45.   # 其他值    时:按照 数据库ID 排序
  46.   # 值为负数时,先按照其相反数进行排序,之后倒序排列
  47.   
  48. #==============================================================================
  49. # 设定结束
  50. #==============================================================================
  51. end
  52. class Game_Party
  53.   alias m5_20140807_items items
  54.   alias m5_20140807_weapons weapons
  55.   alias m5_20140807_armors armors  
  56.   def m5_20140807_list_reverse(list,type)
  57.     list.reverse! if type < 0
  58.     return list
  59.   end
  60.   def items
  61.     type = $game_variables[M5IS20140807::VAR1]
  62.     case type
  63.     when 1,-1
  64.       m5_20140807_items
  65.       list = @items.keys.collect {|id| $data_items[id] }
  66.       return m5_20140807_list_reverse(list,type)
  67.     when 2,-2      
  68.       list = m5_20140807_items.sort_by {|item| [item.price, item.id] }
  69.       return m5_20140807_list_reverse(list,type)
  70.     else return m5_20140807_list_reverse(m5_20140807_items,type)
  71.     end
  72.   end
  73.   def m5_20140807_sort_equip(type,list,list_sort,data,armors = false)
  74.     case type
  75.     when 1
  76.       list = list.keys.collect {|id| data[id] }
  77.       return m5_20140807_list_reverse(list,type)
  78.     when 2
  79.       list = list_sort.sort_by {|euqip| [euqip.price, euqip.id] }
  80.       return m5_20140807_list_reverse(list,type)
  81.     when 3
  82.       list = list_sort.sort_by {|euqip| [euqip.etype_id, euqip.id] }
  83.       return m5_20140807_list_reverse(list,type)
  84.     when 4
  85.       list = list_sort.sort_by {|euqip|
  86.         [armors ? euqip.atype_id : euqip.wtype_id, euqip.id] }
  87.       return m5_20140807_list_reverse(list,type)
  88.     when 5
  89.       list = list_sort.sort_by {|euqip| [euqip.performance, euqip.id]}
  90.       return m5_20140807_list_reverse(list,type)
  91.     when 6,7,8,9,10,11,12,13
  92.       list = list_sort.sort_by {|euqip| [euqip.params[type - 6], euqip.id]}      
  93.       return m5_20140807_list_reverse(list,type)
  94.     else
  95.       return m5_20140807_list_reverse(list_sort,type)
  96.     end
  97.   end
  98.   def weapons
  99.     case $game_variables[M5IS20140807::VAR2]
  100.     when 0
  101.       return m5_20140807_weapons
  102.     else
  103.       m5_20140807_sort_equip($game_variables[M5IS20140807::VAR2],
  104.         @weapons,m5_20140807_weapons,$data_weapons)
  105.     end
  106.   end  
  107.   def armors
  108.     case $game_variables[M5IS20140807::VAR3]
  109.     when 0
  110.       return m5_20140807_armors
  111.     else
  112.       m5_20140807_sort_equip($game_variables[M5IS20140807::VAR3],
  113.         @armors,m5_20140807_armors,$data_armors,true)
  114.     end
  115.   end
  116. end
复制代码

点评

脚本放任自流主义【该做的我都做了,不该做的我也做了,还不兼容就是你们自己的问题了  发表于 2014-8-7 14:26
items啥的……老老实实返回一个需要的值就好了= = 在items放特效是闹那样啊= =  发表于 2014-8-7 14:22
我其实是在给自己以后可能写出来的代码擦屁股……  发表于 2014-8-7 14:19
我也不给别人的代码擦屁股。不会为了追求兼容性多加一句没什么用的话= =  发表于 2014-8-7 14:17
只要有这个方法存在被改掉的可能,多执行一句总比少执行一句好,虽然换到我自己的情况即使执行了这样一句也无法兼容就是了……  发表于 2014-8-7 14:16

评分

参与人数 2星屑 +20 梦石 +1 收起 理由
taroxd + 1 认可答案
3106345123 + 20 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
129 小时
注册时间
2012-6-24
帖子
75
4
 楼主| 发表于 2014-8-7 14:15:35 | 只看该作者
喵呜喵5 发表于 2014-8-7 13:46

谢谢,这个好管用

点评

要能用备注排序,就更方便更牛逼了!  发表于 2014-8-7 14:21
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-25 19:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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