设为首页收藏本站同能贴吧 切换语言 繁体中文
开启辅助访问 切换到窄版
返回列表
+ 发新帖
查看: 361|回复: 0

[转载发布] 仿《南方公园;真理之杖》护盾值系统

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    18 小时前
  • 签到天数: 222 天

    连续签到: 1 天

    [LV.7]常住居民III

    9102

    主题

    893

    回帖

    7万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

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

    灌水之王

    发表于 2026-4-8 02:06:58 | 显示全部楼层 |阅读模式
    RUBY 代码





    RUBY 代码

    RUBY 代码

    RUBY 代码
    [code]#==============================================================================
    # ★ 护盾系统 - Falcao 宝石镶嵌联动补丁
    #==============================================================================
    # 功能:使镶嵌在装备上的宝石如果备注了“护盾值:数字”,也会累加到角色的护盾值中。
    # 注意:宝石物品必须至少有一个属性标签(如)才能被镶嵌系统识别。
    #==============================================================================

    ifdefined?(FalMana) && $imported["ShieldSystem"]

      #============================================================================
      # ■ 扩展 RPG::Item:添加护盾值读取方法
      #============================================================================
      classRPG::Item < RPG::UsableItem
        def shield_value
          if@shield_value.nil?
            ifself.note =~ /#{SHIELD_CONFIG::SHIELD_NOTE_TAG}(\d+)/
              @shield_value = $1.to_i
            else
              @shield_value = 0
            end
          end
          @shield_value
        end
      end

      #============================================================================
      # ■ Game_Actor 护盾计算扩展(包含宝石护盾)
      #============================================================================
      class Game_Actor < Game_Battler
        # 完全覆盖护盾计算,确保宝石护盾被累加
        def refresh_shield_from_armors
          total_shield = 0

          # 遍历所有已装备物品(武器 + 防具)
          equips.eachdo |equip|
            nextif equip.nil?

            # 1. 装备自身护盾值
            if equip.note =~ /#{SHIELD_CONFIG::SHIELD_NOTE_TAG}(\d+)/
              total_shield += $1.to_i
            end

            # 2. 镶嵌宝石的护盾值
            slots = equip.manaslots
            nextunless slots.is_a?(Array)

            slots.eachdo |gem|
              nextif gem.nil?
              # 读取宝石的护盾值
              total_shield += gem.shield_valueif gem.respond_to?(:shield_value)
            end
          end

          # 应用总护盾值
          self.shield_max = total_shield
        end

        # 确保更换装备、镶嵌宝石后自动刷新护盾
        alias shield_gem_change_equip change_equip
        def change_equip(slot_id, item)
          shield_gem_change_equip(slot_id, item)
          refresh_shield_from_armors
        end
      end

      #============================================================================
      # ■ 宝石操作后立即刷新护盾
      #============================================================================
      module FalMana
        class

    帖子地址: 

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

    使用道具 举报

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

    本版积分规则

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

    幸运抽奖

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

    立即查看

    聊天机器人
    Loading...

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

    GMT+8, 2026-10-21 21:47 , Processed in 0.129947 second(s), 55 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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