设为首页收藏本站同能贴吧 切换语言 繁体中文
开启辅助访问 切换到窄版
扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 120|回复: 0

[转载发布] Item Age Sorting Script

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    2026-7-12 04:10
  • 签到天数: 209 天

    连续签到: 2 天

    [LV.7]常住居民III

    9071

    主题

    864

    回帖

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    7
    卡币
    58883
    OK点
    16
    推广点
    0
    同能卷
    50
    积分
    68848

    灌水之王

    发表于 2026-8-3 09:02:58 | 显示全部楼层 |阅读模式
    Item Age Sorting Script
    NinjaChicle

    Introduction
    This script pushes the most recent obtained item to the first index in the item list.

    Features
    - Works with weapons and armors too.
    - Compatibility with Hime's Instance Items script

    How to Use
    Paste script below Materials and start a new save in your game.

    Script
                    Code:       
    1. #------------------------------------------------------------------------------#
    2. # - Item Age Sorting Script - by NinjaChicle
    3. #
    4. # This script pushes the most recent obtained item to
    5. # the first index in the item list.
    6. #
    7. # v1.1 - Fixed issue where item disappeared after being used in the menu while
    8. #        the item number was still above 0.
    9. # v1.2 - Fixed Hime's Instance Items compatibility
    10. #------------------------------------------------------------------------------#
    11. module Sort_em_all
    12. SORT_ITEMS   = true
    13. SORT_WEAPONS = true
    14. SORT_ARMORS  = true
    15. end
    16. # Turn to false if you don't want a type of item to be sorted.
    17. # For the sorting to take effect, obtain an item in your game.
    18. #
    19. # Doesn't work well on save files that existed before using this script.
    20. module DataManager
    21.   class << self
    22.     alias :itemtastic_create_game_objects :create_game_objects
    23.     alias :itemtastic_make_save_contents :make_save_contents
    24.     alias :itemtastic_extract_save_contents :extract_save_contents
    25.   end
    26.   
    27.   def self.create_game_objects
    28.     itemtastic_create_game_objects
    29.     $awesome_items = []
    30.     $awesome_weapons = []
    31.     $awesome_armors = []
    32.   end
    33.   def self.make_save_contents
    34.     contents = itemtastic_make_save_contents
    35.     contents[:sorted_items]   = $awesome_items
    36.     contents[:sorted_weapons] = $awesome_weapons
    37.     contents[:sorted_armors]  = $awesome_armors
    38.     contents
    39.   end
    40.   
    41.   def self.extract_save_contents(contents)
    42.     itemtastic_extract_save_contents(contents)
    43.     $awesome_items = contents[:sorted_items]     || []
    44.     $awesome_weapons = contents[:sorted_weapons] || []
    45.     $awesome_armors = contents[:sorted_armors]   || []
    46.   end
    47. end
    48. class Game_Party < Game_Unit
    49.   alias sortastic_gain_item gain_item
    50.   def gain_item(item, amount, include_equip = false)
    51.     sortastic_gain_item(item, amount, include_equip)
    52.       if item.is_a?(RPG::Item) && Sort_em_all::SORT_ITEMS == true
    53.        $awesome_items ||= []
    54.        $awesome_items = $game_party.all_items.select {|item| item.is_a?(RPG::Item) } if $awesome_items == []
    55.        if $imported["TH_InstanceItems"] && !instance_enabled?(item) || !$imported["TH_InstanceItems"]
    56.         $awesome_items.delete(item) if $awesome_items.include?(item)
    57.         $awesome_items.unshift(item) unless $game_party.item_number(item) < 1
    58.        end
    59.       elsif item.is_a?(RPG::Weapon) && Sort_em_all::SORT_WEAPONS == true
    60.        $awesome_weapons ||= []
    61.        $awesome_weapons = $game_party.all_items.select {|item| item.is_a?(RPG::Weapon) } if $awesome_weapons == []
    62.        if $imported["TH_InstanceItems"] && !instance_enabled?(item) || !$imported["TH_InstanceItems"]
    63.         $awesome_weapons.delete(item) if $awesome_weapons.include?(item)
    64.         $awesome_weapons.unshift(item) unless $game_party.item_number(item) < 1
    65.        end
    66.       elsif item.is_a?(RPG::Armor) && Sort_em_all::SORT_ARMORS == true
    67.        $awesome_armors ||= []
    68.        $awesome_armors = $game_party.all_items.select {|item| item.is_a?(RPG::Armor) } if $awesome_armors == []
    69.        if $imported["TH_InstanceItems"] && !instance_enabled?(item) || !$imported["TH_InstanceItems"]
    70.         $awesome_armors.delete(item) if $awesome_armors.include?(item)
    71.         $awesome_armors.unshift(item) unless $game_party.item_number(item) < 1
    72.        end
    73.       end
    74.   end
    75. #-------------------------------------------------------------------------------#
    76. # Instance Items compatibility
    77. #-------------------------------------------------------------------------------#
    78.   if $imported["TH_InstanceItems"]
    79.    alias you_gotta_add_instance add_instance_item
    80.    def add_instance_item(item)
    81.     you_gotta_add_instance(item)
    82.     awesome_stuff = get_awesome_item(item)
    83.     awesome_stuff ||= []
    84.     awesome_stuff = select_awesome_item(item) if awesome_stuff == []
    85.     awesome_stuff.delete(item) if awesome_stuff.include?(item)
    86.     awesome_stuff.unshift(item)
    87.     set_awesome_item(awesome_stuff)
    88.    end
    89.   
    90.    alias you_gotta_lose_instance lose_instance_item
    91.    def lose_instance_item(item)
    92.     you_gotta_lose_instance(item)
    93.     awesome_stuff = get_awesome_item(item)
    94.     awesome_stuff ||= []
    95.     awesome_stuff = select_awesome_item(item) if awesome_stuff == []
    96.     awesome_stuff.delete(item) if awesome_stuff.include?(item)
    97.     set_awesome_item(awesome_stuff)
    98.    end
    99.    def lose_template_item(item, include_equip)
    100.     container_list = item_container_list(item)
    101.     item_lost = container_list.find {|obj| obj.template_id == item.template_id }
    102.     if item_lost
    103.       container = item_container(item.class)
    104.       container[item.template_id] ||= 0
    105.       container[item.template_id] -= 1
    106.       container_list.delete(item_lost)
    107.     elsif include_equip
    108.       discard_members_template_equip(item, 1)
    109.     end
    110.     awesome_stuff = get_awesome_item(item_lost)
    111.     awesome_stuff ||= []
    112.     awesome_stuff = select_awesome_item(item_lost) if awesome_stuff == []
    113.     awesome_stuff.delete(item_lost) if awesome_stuff.include?(item_lost)
    114.     set_awesome_item(awesome_stuff)
    115.     return item_lost
    116.   end
    117. end
    118. #-------------------------------------------------------------------------------#
    119. # Instance Items compatibility
    120. #-------------------------------------------------------------------------------#
    121.   def select_awesome_item(item)
    122.    return $awesome_weapons = $game_party.all_items.select {|item| item.is_a?(RPG::Weapon) } if item.is_a?(RPG::Weapon)
    123.    return $awesome_armors = $game_party.all_items.select {|item| item.is_a?(RPG::Armor) } if item.is_a?(RPG::Armor)
    124.    return $awesome_items = $game_party.all_items.select {|item| item.is_a?(RPG::Item) } if item.is_a?(RPG::Item)
    125.   end
    126.   
    127.   def set_awesome_item(item)
    128.    return $awesome_weapons = item if item.is_a?(RPG::Weapon)
    129.    return $awesome_armors = item if item.is_a?(RPG::Armor)
    130.    return $awesome_items = item if item.is_a?(RPG::Item)
    131. end
    132.   def get_awesome_item(item)
    133.    return $awesome_weapons if item.is_a?(RPG::Weapon)
    134.    return $awesome_armors if item.is_a?(RPG::Armor)
    135.    return $awesome_items if item.is_a?(RPG::Item)
    136.   end
    137. end
    138. class Window_ItemList < Window_Selectable
    139.   alias sortastic_make_item_list make_item_list
    140.   def make_item_list
    141.     sortastic_make_item_list
    142.     if SceneManager.scene_is?(Scene_Item)
    143.        if @data[0].is_a?(RPG::Weapon)
    144.         if Sort_em_all::SORT_WEAPONS == true
    145.          @data = $awesome_weapons.select {|item| include?(item) }
    146.          @data.push(nil) if include?(nil)
    147.         end
    148.       elsif @data[0].is_a?(RPG::Armor)
    149.         if Sort_em_all::SORT_ARMORS == true
    150.          @data = $awesome_armors.select {|item| include?(item) }
    151.          @data.push(nil) if include?(nil)
    152.         end
    153.       else
    154.         if Sort_em_all::SORT_ITEMS == true
    155.          @data = $awesome_items.select {|item| include?(item) }
    156.          @data.push(nil) if include?(nil)
    157.         end
    158.       end
    159.     end
    160.   end
    161. end
    复制代码




    本贴来自国际rpgmaker官方论坛作者:NinjaChicle处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/item-age-sorting-script.159669/
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    简体中文
    繁體中文
    English(英语)
    日本語(日语)
    Deutsch(德语)
    Русский язык(俄语)
    بالعربية(阿拉伯语)
    Türkçe(土耳其语)
    Português(葡萄牙语)
    ภาษาไทย(泰国语)
    한어(朝鲜语/韩语)
    Français(法语)
    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2026-8-17 07:21 , Processed in 0.083842 second(s), 52 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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