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

[转载发布] High Capability Mana Shield / Blood Magic

[复制链接]
累计送礼:
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-1 14:12:47 | 显示全部楼层 |阅读模式
    This is a high capability Mana Shield / Blood Magic script. It has high capability because it doesn't overwrite anything.


    Simply just add <MANA SHIELD> in the state's notebox for mana shield and <BLOOD MAGIC> in the state's notebox for blood magic.


            Update: The tags now works on class, enemy, and actor noteboxes.

    Spoiler#----------------------------------------------------------------------------
                            #  [ADVT] Mana Shield and Blood Magic
                            #
                            #  Compatibility: High
                            #  Difficulty: Easy
                            #
                            #  Description: 
                            #  Mana Shield is a state that causes damage to be subtracted from 
                            #  MP instead of HP. However, if you do not have enough MP, the remaining damage
                            #  will be subtracted from HP.
                            #
                            #  Blood Magic is a state that causes you to pay HP to use skills instead of MP.
                            #  However, if you do not have enough HP to use the skill, the skill can not be used.
                            #
                            #  Notetags: 
                            #  Add <MANA SHIELD> in the notebox of the state you want to be mana shield.
                            #  Add <BLOOD MAGIC> in the notebox of the state you want to be blood magic.
                            #


                            # Update:


                            # The tags now also works on classes, enemies, and actors.


                            #
                            #  Alias - Game_ActionResult > make_damage
                            #  New Method - Game_BattlerBase > bloodmagic?
                            #  Alias - Game_BattlerBase > skill_mp_cost
                            #  Alias - Game_BattlerBase > skill_cost_payable?
                            #  Alias - Game_BattlerBase > pay_skill_cost
                            #


                            #  For maximum compatibility, place this script below all other scripts.


                            #
                            #  Credit not required.
                            #  Credit "Adventurer_inc" if you want.
                            #
                            #----------------------------------------------------------------------------
                            class Game_ActionResult
                              #--------------------------------------------------------------------------
                              # * Alias: Calculate Damage
                              #--------------------------------------------------------------------------
                              alias advt_make_damage make_damage
                              def make_damage(value, item)
                                advt_make_damage(value, item)
                                manashielded = false
                                @battler.states.each{|state| manashielded = true if state.note.include?("<MANA SHIELD>")}


                                manashielded = true if @battler.note.include?("<MANA SHIELD>") || @battler.class.note.include?("<MANA SHIELD>") 
                                if manashielded && @battler.mp > 0
                                  overdamage = @hp_damage - @battler.mp
                                  @mp_damage += @hp_damage
                                  @hp_damage = (overdamage > 0 ? overdamage : 0)
                                end
                                @success = false unless item.damage.to_hp? || @mp_damage != 0
                              end
                            end
                              #--------------------------------------------------------------------------
                              # END- class Game_ActionResult
                              #--------------------------------------------------------------------------


                            class Game_BattlerBase
                              #--------------------------------------------------------------------------
                              # * New Method: bloodmagic?: for simplicity
                              #-------------------------------------------------------------------------- 
                              def bloodmagic?
                                return false if self == nil
                                bloodmagic = false
                                self.states.each{|state| bloodmagic = true if state.note.include?("<BLOOD MAGIC>")}
                                bloodmagic = true if self.note.include?("<BLOOD MAGIC>") || self.class.note.include?("<BLOOD MAGIC>")
                                return bloodmagic
                              end
                              #--------------------------------------------------------------------------
                              # * Alias: Calculate Skill's MP Cost
                              #--------------------------------------------------------------------------  
                              alias advt_skill_mp_cost skill_mp_cost
                              def skill_mp_cost(skill)
                                bloodmagic? ? 0 : advt_skill_mp_cost(skill)
                              end
                              #--------------------------------------------------------------------------
                              # * Alias: Determine if Cost of Using Skill Can Be Paid
                              #--------------------------------------------------------------------------
                              alias advt_skill_cost_payable? skill_cost_payable?
                              def skill_cost_payable?(skill)
                                return false if bloodmagic? && hp < (skill.mp_cost * mcr).to_i 
                                advt_skill_cost_payable?(skill)
                              end
                              #--------------------------------------------------------------------------
                              # * Alias: Pay Cost of Using Skill
                              #--------------------------------------------------------------------------
                              alias advt_pay_skill_cost pay_skill_cost
                              def pay_skill_cost(skill) 
                                self.hp -= (skill.mp_cost * mcr).to_i if bloodmagic?
                                advt_pay_skill_cost(skill)
                              end   
                            end
                              #--------------------------------------------------------------------------
                              # END- class Game_BattlerBase
                              #--------------------------------------------------------------------------






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

    使用道具 举报

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

    本版积分规则

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

    幸运抽奖

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

    立即查看

    聊天机器人
    Loading...

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

    GMT+8, 2026-8-18 00:25 , Processed in 0.118174 second(s), 55 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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