扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 200|回复: 0

[转载发布] 【简易坑爹系列】多背包脚本

[复制链接]
累计送礼:
0 个
累计收礼:
0 个
  • TA的每日心情
    开心
    2025-4-27 05:27
  • 签到天数: 128 天

    连续签到: 1 天

    [LV.7]常住居民III

    2358

    主题

    429

    回帖

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    6
    卡币
    11525
    OK点
    16
    推广点
    0
    同能卷
    0
    积分
    14340

    灌水之王

    发表于 2024-4-19 23:34:07 | 显示全部楼层 |阅读模式
    其实我也不记得以前有没有发布过了
    先附上个简易脚本,插入Game_Party之后,Main之前的任何位置RUBY 代码
    1. #===============================================================================
    2. # ● 【简易坑爹系列】多背包脚本
    3. #===============================================================================
    4. class GameBag
    5.   # 背包判定条件
    6.   defself.identifier
    7.     # 若需要以别的条件来判定背包请更改下面的脚本
    8.     #===========================================
    9.     $game_variables[1]# 以一号开关来判定
    10.     #===========================================
    11.     # 若需要以别的条件来判定背包请更改上面的脚本
    12.   end
    13.   # 将当前背包复制到缓存背包
    14.   defself.push
    15.     ObjectSpace.each_object(GameBag)do |bag|
    16.       bag.cache = (bag.data[GameBag.identifier]||{}).clone
    17.     end
    18.   end
    19.   # 将缓存背包复制到当前背包
    20.   defself.pull
    21.     ObjectSpace.each_object(GameBag)do |bag|
    22.       bag.data[GameBag.identifier] = bag.cache.clone
    23.     end
    24.   end
    25.   # 将当前背包叠加到缓存背包
    26.   defself.merge
    27.     ObjectSpace.each_object(GameBag)do |bag|
    28.       (bag.data[GameBag.identifier] || {}).eachdo |k, v|
    29.         bag.cache[k] = [bag.cache[k] + v, 99].min
    30.       end
    31.     end
    32.   end
    33.   # 清空当前背包
    34.   defself.clear
    35.     ObjectSpace.each_object(GameBag)do |bag|
    36.       bag.data.delete(GameBag.identifier)
    37.     end
    38.   end
    39.   # 清空缓存背包
    40.   defself.drop
    41.     ObjectSpace.each_object(GameBag)do |bag|
    42.       bag.cache.clear
    43.     end
    44.   end
    45.   # 初始化
    46.   def initialize
    47.     @data = {}
    48.     @cache = {}
    49.   end
    50.   # 不需要理会
    51.   def method_missing(meth, *args)
    52.     begin
    53.       (@data[GameBag.identifier] ||= {}).__send__(meth, *args)
    54.     rescueException
    55.       raise $!, $!.message, caller
    56.     end
    57.   end
    58.   attr_accessor :data
    59.   attr_accessor :cache
    60. end
    61. $ORIG_MULTIBAG_PARTY = Game_Party.cloneunless$ORIG_MULTIBAG_PARTY
    62. class Game_Party < $ORIG_MULTIBAG_PARTY
    63.   def initialize
    64.     super
    65.     @items = GameBag.new
    66.     @armors = GameBag.new
    67.     @weapons = GameBag.new
    68.   end
    69. end
    复制代码
    再附上个简易截图范例      
                本帖来自P1论坛作者英顺的马甲,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=393697  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

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

    本版积分规则

    关闭

    幸运抽奖

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

    立即查看

    聊天机器人
    Loading...

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

    GMT+8, 2025-5-5 12:07 , Processed in 0.116190 second(s), 55 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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