じ☆ve冰风 发表于 2026-7-27 13:45:10

Super Skill Nerf XP

Super Skill Nerf XP

by Kyonides​

Introduction

Nerf! Nerf! Nerf your favorite super duper skills!
Yes, even up to the point where your heroes can only use them once per battle!
Just add the Skill ID to the ONLY_ONCE_SKILL_IDS array and that's it!
Or add it to the ONLY_TWICE_SKILL_IDS to cast the skill twice!

Or Cool Them Down!
Just add the Skill ID to the COOLDOWN_SKILL_IDS and how many turns that skill should not be used and that's it!

Example:
                Ruby:       
COOLDOWN_SKILL_IDS = { 12 => 2, 20 => 4 }


And just in case you want to clear this skill use limit once per call:
                Ruby:       
$game_party.clear_used_skills!


If you want to clear the cooldowns ingame, use this:
                Ruby:       
$game_party.clear_skill_cooldowns!


The Script - Simple Version

                Ruby:       
# * Super Skill Nerf XP * #
#   Scripter : Kyonides
#   v1.2.1 - 2025-09-25

# Nerf! Nerf! Nerf your favorite super duper skills!
# Even up to the point where your heroes can only use them once per battle!
# Just add the Skill ID to the ONLY_ONCE_SKILL_IDS array and that's it!
# Or add it to the ONLY_TWICE_SKILL_IDS to cast the skill twice!

# Or Cool Them Down!
# Just add the Skill ID to the COOLDOWN_SKILL_IDS and how many turns that skill
# should not be used and that's it!
# Example: COOLDOWN_SKILL_IDS = { 12 => 2, 20 => 4 }

# * Optional Script Calls * #

# - Just in case you want to clear this skill use limit once per call:
# $game_party.clear_used_skills!

# - Just in case you want to clear the skill cooldowns:
# $game_party.clear_skill_cooldowns!

module RPG
class Skill
    ONLY_ONCE_SKILL_IDS=
    ONLY_TWICE_SKILL_IDS = []
    COOLDOWN_SKILL_IDS = { 7 => 2 }
    def cast_once?
      ONLY_ONCE_SKILL_IDS.include?(@id)
    end

    def cast_twice?
      ONLY_TWICE_SKILL_IDS.include?(@id)
    end

    def has_cooldown?
      COOLDOWN_SKILL_IDS.has_key?(@id)
    end

    def cooldown
      COOLDOWN_SKILL_IDS[@id] || 0
    end
end
end

class Game_Battler
alias :kyon_ssn_gm_btlr_sk_fx :skill_effect
def skill_effect(user, skill)
    user.refresh_skill_data(skill) if user.actor?
    kyon_ssn_gm_btlr_sk_fx(user, skill)
end

def actor?
    false
end
end

class Game_Actor
alias :kyon_ssn_gm_act_stp :setup
alias :kyon_ssn_gm_act_sk_cn_use? :skill_can_use?
def setup(actor_id)
    kyon_ssn_gm_act_stp(actor_id)
    @used_skills = {}
    @skill_cd = {}
    @used_skills.default = 0
    @skill_cd.default = 0
end

def skill_used?(skill_id)
    @used_skills > 0
end

def skill_cd?(skill_id)
    @skill_cd > 0
end

def skill_can_use?(skill_id)
    skill = $data_skills
    return unless skill
    return if skill.has_cooldown? and skill_cd?(skill_id)
    return if @used_skills != 0 and skill.cast_once?
    return if @used_skills == 2 and skill.cast_twice?
    kyon_ssn_gm_act_sk_cn_use?(skill_id)
end

def refresh_skill_data(skill)
    @used_skills += 1
    @skill_cd = skill.cooldown
end

def decrease_skill_cooldowns!
    @skill_cd.keys.each {|k| @skill_cd -= 1 }
    @skill_cd.delete_if {|k, v| v < 1 }
end

def clear_used_skills!
    @used_skills.clear
end

def clear_skill_cooldowns!
    @skill_cd.clear
end

def actor?
    true
end
attr_reader :used_skills, :skill_cd
end

class Game_Party
def decrease_skill_cooldowns!
    @actors.each {|actor| actor.decrease_skill_cooldowns! }
end
   
def clear_used_skills!
    @actors.each {|actor| actor.clear_used_skills! }
end

def clear_skill_cooldowns!
    @actors.each {|actor| actor.clear_skill_cooldowns! }
end
end

class Scene_Battle
alias :kyon_ssn_scn_btl_st_ph4 :start_phase4
alias :kyon_ssn_scn_btl_btl_end :battle_end
def start_phase4
    $game_party.decrease_skill_cooldowns!
    kyon_ssn_scn_btl_st_ph4
end

def battle_end(result)
    $game_party.clear_used_skills!
    $game_party.clear_skill_cooldowns!
    kyon_ssn_scn_btl_btl_end(result)
end
end


You'd need to download a demo to get the Colored version.

DOWNLOAD DEMOS NOW!​

Terms & Conditions

Free as in beer for non commercial games.
Include my nickname in your game credits.
Thank Opozorilo for making the script request. (Optional aka a Joke)
That's it!
data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7


本贴来自国际rpgmaker官方论坛作者:kyonides处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/super-skill-nerf-xp.179971/
页: [1]
查看完整版本: Super Skill Nerf XP