查看: 84|回复: 0

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

[复制链接]
  • TA的每日心情
    开心
    4 天前
  • 签到天数: 37 天

    连续签到: 3 天

    [LV.5]常住居民I

    2028

    主题

    32

    回帖

    7260

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    0
    卡币
    5184
    OK点
    16
    积分
    7260
    发表于 同元一千年八月六日(秋) | 显示全部楼层 |阅读模式
    其实我也不记得以前有没有发布过了
    先附上个简易脚本,插入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
    天天去同能,天天有童年!
    回复 论坛版权

    使用道具 举报

    ahome_bigavatar:guest
    ahome_bigavatar:welcomelogin
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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

    GMT+8, 2024-5-14 12:09 , Processed in 0.047117 second(s), 44 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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