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

[转载发布] [Ace] Difficulty Script v5.0 **UPDATED****NEW**

[复制链接]
累计送礼:
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 15:20:24 | 显示全部楼层 |阅读模式
    I have been wanting to write a difficulty script for a long time now. With the help of Dekita it has finally happened. While it is extremely simple right now, I do plan on having some more features. I just don't know what to add really.
     
    I will post the script here as it's very short, but if I end up do adding stuff, and it gets too long it will be put on pastebin, or something like that.

     
    Here is the script:

    Spoiler#=============================================================================##Script By: Bloodmorphed#Difficulty Script v3.5##Change Log:#v5.0# This is a decently big change. This version completely enables full#customization. There is no longer set in stone rules, if you want higher then#4 difficulties all you have to do is add them! I have also enabled you to use#more then 4 battlers for difficulties. You just have to change it where it#is needed.#It's Located in Script: Game_Party (Line 72) Change the return 4 to whatever.## Now a little bit how it works now.#    Param_Settings = { #don't touch#     Corresponding Params:#               MHP, MMP, ATK, DEF, MAT, MDF, AGI, LUK#      :easy => [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5],#      :normal => [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0],#      :hard => [2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0],#      :insane => [4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0],#      } #don't touch# This is the old way I have it, it will stay the same... unless you want to#change it. You can even change the name of them, for example :easy could be#renamed to :normal### Here is an example:#    Param_Settings = { #don't touch#     Corresponding Params:#               MHP, MMP, ATK, DEF, MAT, MDF, AGI, LUK#      :normal => [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5],#      :medium => [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0],#      :hard => [2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0],#      :insane => [4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0],#      :impossible = > [6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0],#      } #don't touch## See how I changed the name of two, AND created another one? Yup that works.#Now, while this will work seamlessly for using the Party, very easily, you#have to know what the variable you will be corrisponds to what.##```NOTICE````NOTICE!!!!!!#If you change ANYTHING on one thing, you MUST change it on everything! #(otherwise you will either get errors, or weird changes)#If you re-name :easy in one thing, you must re-name it in all things. if you also#make a new difficulty, such as :impossible above, you MUST make it every where else, as well.#Everything must have the same order as well! If it is:#:normal :medium :hard in one category it must be the same for every category.#For example you cant have it like this :medium :normal :hard in one category and the other way in another!### Let's say this is our Enemy settings, which is set to 99 variable by default.## When this is set to 0 it pulls from :normal# 1 = :medium# 2 = :hard# See, easy, right? So be sure to if you do this by events and not party to#use the right setting you want to!###v4.0#Condensed the script down some (reduced some line lengths.)#Added an option to use the party size for the difficulty.##v3.6#Removed the "+1" from gold and XP to avoid confusion and so that if you put#0 in the database for XP or Gold it will be 0 rather then 1.##v3.5#Added TP Settings. CAUTION: Try not to set them higher then 5! It will get#broken past that! Based on actor getting hit only!###v3.0#I've added Actor params, and you can now disable Actor edits, and Enemy edits.#Putting these both to false will disable the script, if needed.## Note:#   You can use this script as you please, as long as you give credit! This#   script was made possible by massive help from Dekita.##=============================================================================##=============================================================================## Param_Settings is each param that will be modified. You may edit these as# you please. Keep in mind I have added something that will NEVER make these# reach 0.## Exp_Settings is the experience gained based on difficulty, normally people# use higher Experience the lower the difficulty, but this your choice!## Gold_Settings increases or decreases gold gain. Again most peopel would give# more gold the lower the difficulty, but again, it is your choice!## Keep in mind everything is MULTIPLIED! Not ADDED. To go lower, use 0.9 and# lower. For example## gold * 0.5 will be HALF of what it used to be.#=============================================================================#module Blood  #-----------------------------------------------------------------------------  #Putting these both to false will disable the script, if you ever need to.  #If you are going to use Use_Party, Use_Enemy must also be true!  #  #Note: If you use party for difficulty you do not need to setup a event!  #-----------------------------------------------------------------------------  Use_Enemy = true         #Use enemy edits? Default is true  Use_Actor = false        #Use actor edits? Default is false  Use_Party = false        #Use Party? Default is false  module Enemy    Param_Settings = { #don't touch      # Corresponding Params:      #        MHP, MMP, ATK, DEF, MAT, MDF, AGI, LUK      :easy => [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5],      :normal => [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0],      :hard => [2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0],      :insane => [4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0],      } #don't touch    Exp_Settings = { #don't touch      :easy => 2,               :normal => 1,             :hard => 0.8,      :insane => 0.5,    } #don't touch    Gold_Settings = { #don't touch    :easy => 2,    :normal => 1,    :hard => 0.8,    :insane => 0.5,    } #don't touch  end #ends Enemy  module Actor#=============================================================================## Param_Settings is each param that will be modified. You may edit these as# you please. Keep in mind I have added something that will NEVER make these# reach 0.## This part people usually go higher the easier difficulty, lower the higher.#=============================================================================#    Param_Settings = { #don't touch      # Corresponding Params:      #        MHP, MMP, ATK, DEF, MAT, MDF, AGI, LUK      :easy => [2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0],      :normal => [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0],      :hard => [0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8],      :insane => [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5],      } #don't touch         #=========================================================================      # TP Settings scales QUICKLY, do not go over 5, if you do it gets pretty      # broken. I didn't test this exstensively but it works well. This only      # effects the CHARGE of TP (Getting hit)      #      # easy default = 2      # normal default = 1      # hard default = 0.8      # insane default = 0.5      #=========================================================================    TP_Settings = { #don't touch      :easy => 2,      :normal => 1,      :hard => 0.8,      :insane => 0.5,      } #don't touch  end #ends Actor  #============================================================================#  # Variable to use. This variable will be used for the difficulty setting  #============================================================================#  module Variable    Enemy_Variable = 99  # Which to use for enemy/party. Default is 99    Actor_Variable = 100 # Which to use for actor. Default 100  end #ends variableend #ends Blood#==============================================================================## Do not edit anything past this point, unless you know what you are doing# edit at your own risk, just know that if you have no idea what you are doing,# you could break it.#==============================================================================#if Blood::Use_Party == true#===============================================================================  class Scene_Map < Scene_Base#===============================================================================  alias bloody_update update      #-------------------------------------------------------------------------      #Updates our party difficulty      #-------------------------------------------------------------------------      def update        bloody_update        update_difficulty      end #ends update      #-------------------------------------------------------------------------      #Increases, or decreses the Enemy_Variable based on party members      #-------------------------------------------------------------------------    def update_difficulty      @old_size = 0 if @old_size.nil?        if @old_size != $game_party.battle_members.size          $game_variables[Blood::Variable::Enemy_Variable] =            [$game_party.battle_members.size - 1,$game_party.max_battle_members].min          @old_size = $game_party.battle_members.size        end #ends if    end #ends update_difficulty  end #ends classend #ends if Use_Partyif Blood::Use_Enemy == true#===============================================================================  class Game_Enemy#===============================================================================  #-----------------------------------------------------------------------------  # List Of Aliased Methods  #-----------------------------------------------------------------------------  alias :bloody_param
    aram  #-----------------------------------------------------------------------------  # Method to determine value of enemies params based on difficulty.  #-----------------------------------------------------------------------------    def param(param_id)      eps = Blood::Enemy:
    aram_Settings      diff = eps.keys[$game_variables[Blood::Variable::Enemy_Variable]]      return (bloody_param(param_id) * eps[diff][param_id] + 1).to_i    end #ends def  #--------------------------------------------------------------------------  # * Get Experience  #--------------------------------------------------------------------------    alias :blood_exp :exp    def exp      ees = Blood::Enemy::Exp_Settings      diff = ees.keys[$game_variables[Blood::Variable::Enemy_Variable]]      return (blood_exp * ees[diff]).to_i    end #end def  #--------------------------------------------------------------------------  # * Get Gold  #--------------------------------------------------------------------------    alias :blood_gold :gold    def gold      egs = Blood::Enemy::Gold_Settings      diff = egs.keys[$game_variables[Blood::Variable::Enemy_Variable]]      return (blood_gold * egs[diff]).to_i    end #ends def  end #ends classend #ends ifif Blood::Use_Actor == true#===============================================================================  class Game_Actor#===============================================================================  #-----------------------------------------------------------------------------  # List Of Aliased Methods  #-----------------------------------------------------------------------------  alias :bloody_param
    aram  #-----------------------------------------------------------------------------  # Method to determine value of actors params based on difficulty.  #-----------------------------------------------------------------------------    def param(param_id)      aps = Blood::Actor:
    aram_Settings      diff = aps.keys[$game_variables[Blood::Variable::Actor_Variable]]      return (bloody_param(param_id) * aps[diff][param_id] + 1).to_i    end #ends def     #    # TP Regen    #    def charge_tp_by_damage(damage_rate)      calc = self.tp += 50 * damage_rate * tcr      ats = Blood::Actor::TP_Settings      diff = ats.keys[$game_variables[Blood::Variable::Actor_Variable]]      return (calc * ats[diff]).to_i    end #ends def  end #ends classend #ends if



    You need an event like this, before your game starts.



     
    Features:-Full Customization

    -You can now use your battle members for difficulty, now also able to change the max easily (even past 4!)

    -Individual editing of each parameter.

    -Experience editing.

    -Gold Editing.

    -Actor Param edits

    -Enabaling and disabling the use of Actor, and Enemy edits. Putting both to false will disable the script, if needed.

    -Added TP Settings (This is based on the actor getting hit, not the actor hitting!)

    Future Features:

    I'm not too sure what else to put in here. If you have suggestions please let me know. I'm new to scripting and scripting something this simple is a BIG help, you have no idea.

     
    Credit:
    Bloodmorphed for writing it.
    Dekita for his major guidance in the process.
     
    Use it as you please, with credits of course.

    I'm going to add this:

    I would like to thank Dekita and others for their support and help through this, they have been patient with me! You guys are awesome!


    本贴来自国际rpgmaker官方论坛作者:Bloodmorphed处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/ace-difficulty-script-v5-0-updated-new.31237/

    本帖子中包含更多资源

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

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

    使用道具 举报

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

    本版积分规则

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

    幸运抽奖

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

    立即查看

    聊天机器人
    Loading...

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

    GMT+8, 2026-8-18 00:24 , Processed in 0.143380 second(s), 52 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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