Chaos Project

RPG Maker => RPG Maker Scripts => RMXP Script Database => Topic started by: Blizzard on February 10, 2010, 02:52:25 am

Title: [XP] Unlimited Levels
Post by: Blizzard on February 10, 2010, 02:52:25 am
Unlimited Levels
Authors: Blizzard
Version: 1.1
Type: Actor Attribute Modifier
Key Term: Actor Add-on

Introduction

This script will allow actors to have levels higher than 99. It automatically calculates the required EXP and the stats using RMXP's default method of calculation.

This work is licensed under BSD License 2.0:
QuoteCopyright (c) Boris "Blizzard" Mikić
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1.  Redistributions of source code must retain the above copyright notice,
    this list of conditions and the following disclaimer.

2.  Redistributions in binary form must reproduce the above copyright notice,
    this list of conditions and the following disclaimer in the documentation
    and/or other materials provided with the distribution.

3.  Neither the name of the copyright holder nor the names of its contributors
    may be used to endorse or promote products derived from this software
    without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

You may use this script for both non-commercial and commercial products without limitations as long as you fulfill the conditions presented by the above license. The "complete" way to give credit is to include the license somewhere in your product (e.g. in the credits screen), but a "simple" way is also acceptable. The "simple" way to give credit is as follows:
QuoteUnlimited Levels licensed under BSD License 2.0, Copyright (c) Boris "Blizzard" Mikić

Alternatively, if your font doesn't support diacritic characters, you may use this variant:
QuoteUnlimited Levels licensed under BSD License 2.0, Copyright (c) Boris "Blizzard" Mikic

In general other similar variants are allowed as long as it is clear who the creator is (e.g. "Unlimited Levels created by Blizzard" is acceptable). But if possible, prefer to use one of the two variants listed above.

If you fail to give credit and/or claim that this work was created by you, this may result in legal action and/or payment of damages even though this work is free of charge to use normally.


Features


v1.1


Screenshots

(http://img188.imageshack.us/img188/7818/snap166.th.png) (http://img188.imageshack.us/img188/7818/snap166.png)

Demo

Unlimited Levels (https://downloads.chaos-project.com/scripts/Unlimited Levels.zip)

Script

Just make a new script above main and paste this code into it.
Script Download (https://downloads.chaos-project.com/scripts/Unlimited Levels.txt)

Instructions

Inside the script in the first comment.

Compatibility

99% compatible with SDK v1.x. 95% compatible with SDK v2.x. Can cause incompatibility issues with custom leveling systems. WILL corrupt your old savegames.

Credits and Thanks


Author's Notes

It is recommended that you also use a script that allows unlimited Max HP, Max SP, Str, Dex, Agi, Int and EXP in combination with this script.
In case a speed setting other than -10, 0 and 10 is being used, the attributes generated by this script can be higher by 1 in some cases for some levels due to a computational error in the interpolation function.

If you find any bugs, please report them here:
http://forum.chaos-project.com

That's it! N-Joy! =D
Title: Re: [XP] Unlimited Levels
Post by: G_G on February 10, 2010, 05:27:02 am
Very nice blizz! :D Even I have been waiting for this script. *lv's up* *downloads* *goes back to bad for a few hours*
Title: Re: [XP] Unlimited Levels
Post by: Jragyn on February 10, 2010, 10:08:01 pm
Mister Blizzard,

Genius Work!

Though why not implement the unlimited Stats into this script?
I'd use your scripts over KGC's any day if you wrote your own variation of these style scripts <3


--JeR
Title: Re: [XP] Unlimited Levels
Post by: Blizzard on February 11, 2010, 02:25:31 am
Because it's an unrelated system. Just because they are all numbers in the database doesn't mean they are all the same. You wouldn't say SP cost and actor level are the same thing, would you?
Title: Re: [XP] Unlimited Levels
Post by: Jragyn on February 11, 2010, 02:50:12 am
No, but I'd be happy to have more compiled numbers of scripts together than a script for every method under the sun  :^_^':

I just figured that the unlimited part and all relating to an actor part might make it easy to tie them all together in a single script. I have to say though that I still don't know the hugest amount of scripting, so I'm apparently quite wrong  :<_<:
Title: Re: [XP] Unlimited Levels
Post by: Blizzard on February 11, 2010, 04:22:21 am
I actually think that most "Stat Limit Break" scripts out there work fine. So you can probably use any of them without problems.
Title: Re: [XP] Unlimited Levels
Post by: Jragyn on February 11, 2010, 04:51:44 am
Your likely right.
But now that THAT is settled, back to the important matter I pressed you with before:
Spoiler: ShowHide
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/    ◆戦闘難易度 - KGC_BattleDifficulty◆
#_/----------------------------------------------------------------------------
#_/  戦闘難易度の設定機能を追加します。
#_/  (メニュー等に表示する場合は[MenuAlter][TitleOption]参照)
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

#==============================================================================
# ★ カスタマイズ項目 ★
#==============================================================================

module KGC
  # ◆ Difficulty
  #  " Name ", HP, SP, STATS, EXP, Gold, Drop Rate»
  # Specify the magnification of each item (percentage).
  BD_DIFFICULTY_LIST = [#HP   SP  STAT  XP   GP  DROP
        ["Sissy-Bitch",  33,  33,  50,  25,  25,  0], # 0
        ["Weak",         66,  66,  75,  50,  50,  25], # 1
        ["Regular",     100, 100, 100, 100, 100, 100], # 2
        ["Hard-ish",    150, 150, 150, 150, 125, 150], # 3
        ["Psycho",      200, 200, 200, 200, 150, 200], # 4
        ["Infinity",    300, 300, 300, 300, 225, 400], # 5
        ["L33t Mode",   500, 500, 500, 500, 500, 800]  # 6
  ]
  # ◆初期難易度
  #  BD_DIFFICULTY_LIST のインデックス。
  BD_INITIAL_DIFFICULTY = 2
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

$imported = {} if $imported == nil
$imported["BattleDifficulty"] = true

module Difficulty
  #--------------------------------------------------------------------------
  # ● 難易度設定取得
  #--------------------------------------------------------------------------
  def self.get
    # 難易度設定を返す
    return KGC::BD_DIFFICULTY_LIST[$game_system.difficulty]
  end
  #--------------------------------------------------------------------------
  # ● 難易度設定変更
  #--------------------------------------------------------------------------
  def self.set(index)
    # 範囲外ならば変更しない
    return if index < 0 || index >= KGC::BD_DIFFICULTY_LIST.size
    $game_system.difficulty = index
  end
  #--------------------------------------------------------------------------
  # ● 能力値補正済みエネミー取得
  #--------------------------------------------------------------------------
  def self.get_revised_enemy(enemy)
    en = enemy.clone
    diff = self.get
    en.maxhp = en.maxhp * diff[1] / 100
    en.maxsp = en.maxsp * diff[2] / 100
    en.str   = en.str   * diff[3] / 100
    en.dex   = en.dex   * diff[3] / 100
    en.agi   = en.agi   * diff[3] / 100
    en.int   = en.int   * diff[3] / 100
    en.atk   = en.atk   * diff[3] / 100
    en.pdef  = en.pdef  * diff[3] / 100
    en.mdef  = en.mdef  * diff[3] / 100
    en.exp   = en.exp   * diff[4] / 100
    en.gold  = en.gold  * diff[4] / 100
    if en.treasure_prob < 100
      en.treasure_prob = [en.treasure_prob * diff[5] / 100, 100].min
    end
    return en
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Game_System
#==============================================================================

class Game_System
  attr_accessor :difficulty  # 難易度
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  alias initialize_KGC_BattleDifficulty initialize
  def initialize
    # 元の処理を実行
    initialize_KGC_BattleDifficulty

    @difficulty = KGC::BD_INITIAL_DIFFICULTY
  end
  #--------------------------------------------------------------------------
  # ● 難易度一覧
  #--------------------------------------------------------------------------
  def difficulty_list
    return KGC::BD_DIFFICULTY_LIST
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Game_Enemy
#==============================================================================

class Game_Enemy < Game_Battler
  #--------------------------------------------------------------------------
  # ● 基本 MaxHP の取得
  #--------------------------------------------------------------------------
  alias base_maxhp_KGC_BattleDifficulty base_maxhp
  def base_maxhp
    n = base_maxhp_KGC_BattleDifficulty
    n *= Difficulty.get[1]
    return n / 100
  end
  #--------------------------------------------------------------------------
  # ● 基本 MaxSP の取得
  #--------------------------------------------------------------------------
  alias base_maxsp_KGC_BattleDifficulty base_maxsp
  def base_maxsp
    n = base_maxsp_KGC_BattleDifficulty
    n *= Difficulty.get[2]
    return n / 100
  end
  #--------------------------------------------------------------------------
  # ● 基本腕力の取得
  #--------------------------------------------------------------------------
  alias base_str_KGC_BattleDifficulty base_str
  def base_str
    n = base_str_KGC_BattleDifficulty
    n *= Difficulty.get[3]
    return n / 100
  end
  #--------------------------------------------------------------------------
  # ● 基本器用さの取得
  #--------------------------------------------------------------------------
  alias base_dex_KGC_BattleDifficulty base_dex
  def base_dex
    n = base_dex_KGC_BattleDifficulty
    n *= Difficulty.get[3]
    return n / 100
  end
  #--------------------------------------------------------------------------
  # ● 基本素早さの取得
  #--------------------------------------------------------------------------
  alias base_agi_KGC_BattleDifficulty base_agi
  def base_agi
    n = base_agi_KGC_BattleDifficulty
    n *= Difficulty.get[3]
    return n / 100
  end
  #--------------------------------------------------------------------------
  # ● 基本魔力の取得
  #--------------------------------------------------------------------------
  alias base_int_KGC_BattleDifficulty base_int
  def base_int
    n = base_int_KGC_BattleDifficulty
    n *= Difficulty.get[3]
    return n / 100
  end
  #--------------------------------------------------------------------------
  # ● 基本攻撃力の取得
  #--------------------------------------------------------------------------
  alias base_atk_KGC_BattleDifficulty base_atk
  def base_atk
    n = base_atk_KGC_BattleDifficulty
    n *= Difficulty.get[3]
    return n / 100
  end
  #--------------------------------------------------------------------------
  # ● 基本物理防御の取得
  #--------------------------------------------------------------------------
  alias base_pdef_KGC_BattleDifficulty base_pdef
  def base_pdef
    n = base_pdef_KGC_BattleDifficulty
    n *= Difficulty.get[3]
    return n / 100
  end
  #--------------------------------------------------------------------------
  # ● 基本魔法防御の取得
  #--------------------------------------------------------------------------
  alias base_mdef_KGC_BattleDifficulty base_mdef
  def base_mdef
    n = base_mdef_KGC_BattleDifficulty
    n *= Difficulty.get[3]
    return n / 100
  end
  #--------------------------------------------------------------------------
  # ● 基本回避修正の取得
  #--------------------------------------------------------------------------
  alias base_eva_KGC_BattleDifficulty base_eva
  def base_eva
    n = base_eva_KGC_BattleDifficulty
    n *= Difficulty.get[3]
    return n / 100
  end
  #--------------------------------------------------------------------------
  # ● EXP の取得
  #--------------------------------------------------------------------------
  alias exp_KGC_BattleDifficulty exp
  def exp
    n = exp_KGC_BattleDifficulty
    n *= Difficulty.get[4]
    return n / 100
  end
  #--------------------------------------------------------------------------
  # ● ゴールドの取得
  #--------------------------------------------------------------------------
  alias gold_KGC_BattleDifficulty gold
  def gold
    n = gold_KGC_BattleDifficulty
    n *= Difficulty.get[5]
    return n / 100
  end
  #--------------------------------------------------------------------------
  # ● トレジャー出現率の取得
  #--------------------------------------------------------------------------
  alias treasure_prob_KGC_BattleDifficulty treasure_prob
  def treasure_prob
    n = treasure_prob_KGC_BattleDifficulty
    if n < 100
      n *= Difficulty.get[6]
      return [n / 100, 100].min
    else
      return n
    end
  end
end


How to correctly Blizofy the drop rate modifier so it works :D
Title: Re: [XP] Unlimited Levels
Post by: Blizzard on February 11, 2010, 06:49:58 am
What do you mean? So it works with Blizz-ABS? Somebody else had the same problem and I said I'll make an add-on for Tons myself a bit later. Probably next week when I get some time to add the most recent changes, etc. into Tons.
Title: Re: [XP] Unlimited Levels
Post by: Jragyn on February 11, 2010, 02:03:23 pm
Heh, that someone was probably me, as I presented this issue to yu a week or two ago.
I suppose my lack of ability to consistently follow up with my issue/requests is the reason I didn't see anything about it being added to ToNs. I am glad to hear this though.

My earballs are happier thanks to you, Blizzard.

Oh! And kudos to you and your scripting skill. I am thoroughly impressed and in awe about 20/6.


--JeR
Title: Re: [XP] Unlimited Levels
Post by: Shining Riku on February 14, 2010, 11:00:20 am
This. Is....

INCROYABLE!

This is so awesome! Thanks Blizz! :D
EDIT: Ok, I tried changing the max EXP in the main scripts but it didn't help me reach a higher level. I tried finding a script to change max EXP but couldn't find one.

If there is a Script change I can do using what I have now to make it work, please let me know! If I need another script to change Max EXP....if you know where to find it I'd like to know. Thanks again for making the script, Blizz! (I really wanna be able to get past level 150 though, lol)
EDIT AGAIN:

OMG FAIL!!! I'm so sorry! I've found what the heck I was doing wrong. Sorry for the waste of time! O_O
(why is it I never catch my own issues until after I've told others? o_oU)

Final EDIT:

Ok, I fail very hard. Level cap is still at 139 despite setting up levels in the script. I'm still lost >_<U
Title: Re: [XP] Unlimited Levels
Post by: Blizzard on February 15, 2010, 05:02:16 am
It should be in Game_Actor#exp=. There should be a line like this:

exp = [[exp, 9999999].min, 0].max


This should be where the EXP cap is. If not, press CTRL+SHIFT+F and type 9999999 and it will do a global search on that number so you can find all places where it appears. That should help you find all the necessary locations in the scripts that you need to change.
Title: Re: [XP] Unlimited Levels
Post by: Shining Riku on February 18, 2010, 11:12:16 am
That's really weird. I actually found that line and modified it.
I know my way around the default scripts enough that finding that line was easy. Very easy.

But it didn't pay any attention to my edit. Is there a chance that one of the other scripts i'm using is overwriting that line? I dunno how often people would try over-writing it. Maybe I should go dig around the scripts I added in and see if I can find anything.

Thanks Blizzard. Hopefully I can get this sorted out! If I do, well, that's one more problem I know how to handle when the time comes. I appreciate your help
Title: Re: [XP] Unlimited Levels
Post by: Jragyn on February 21, 2010, 10:02:32 pm
CTRL + SHIFT + F

Who needs to dig when you can search every bit of script for specific bits at once? :D
Title: Re: [XP] Unlimited Levels
Post by: ezrarishona on March 22, 2010, 12:35:46 pm
Blizz,

YOU ARE AWESOME!!!

you helped me ALOT!Thanks!
Title: Re: [XP] Unlimited Levels
Post by: Lobstrosity on June 08, 2010, 03:46:33 am
For this script, is there an actual maximum level it can get to? If so, can you edit what the maximum is?
Title: Re: [XP] Unlimited Levels
Post by: Blizzard on June 08, 2010, 05:42:30 am
Code: Script
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# START Level Database
#
#   Use following template to give your actors a custom maximum level:
#
#     when ID then LEVEL
#
#   ID    - ID of the actor in the database
#   LEVEL - initial level / final level of that actor
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Title: Re: [XP] Unlimited Levels
Post by: Lobstrosity on June 08, 2010, 06:59:01 am
Awesome, thanks Blizzard!
Title: Re: [XP] Unlimited Levels
Post by: Lobstrosity on June 10, 2010, 03:16:50 am
When using the script you just posted, where do I go to to change the maximum? Do I type it into the script?
Title: Re: [XP] Unlimited Levels
Post by: Blizzard on June 10, 2010, 04:01:53 am
Quote from: Blizzard on June 08, 2010, 05:42:30 am
Code: Script
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# START Level Database
#
#   Use following template to give your actors a custom maximum level:
#
#     when ID then LEVEL
#
#   ID    - ID of the actor in the database
#   LEVEL - initial level / final level of that actor
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Title: Re: [XP] Unlimited Levels
Post by: Lobstrosity on June 10, 2010, 04:12:49 am
Yes, but how do I use this script. Where do I put the maximum level?
Title: Re: [XP] Unlimited Levels
Post by: Jragyn on June 10, 2010, 11:51:29 am
Expanding on Mister Blizzard's previous quote, its all in the script. All you need to change is listed right here, what I re-wrote. Maybe you should download the demo, it's what its there for :D To teach when instructions aren't clear enough.

Quote
module BlizzCFG

#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# START Level Database
#
#   Use following template to give your actors a custom maximum level:
#
#     when ID then LEVEL
#
#   ID    - ID of the actor in the database
#   LEVEL - initial level / final level of that actor
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 
  def self.initial_level(id)
    return case id
    ### START Initial Level Database
    when 1 then 50
    when 2 then 105
    ### END Initial Level Database
    else
      nil
    end
  end 
 
  def self.final_level(id)
    return case id
    ### START Final Level Database
    when 1 then 139
    when 2 then 120
    ### END Final Level Database
    else
      nil
    end
  end 
Title: Re: [XP] Unlimited Levels
Post by: Lobstrosity on June 10, 2010, 08:26:09 pm
Okay thanks anyway, sorry about that, I just didn't understand it clearly.  :^_^': So... Where can I find a demo? Please post or send a link thanks!
Title: Re: [XP] Unlimited Levels
Post by: Blizzard on June 11, 2010, 02:21:58 am
Quote from: Blizzard on February 10, 2010, 02:52:25 am
Demo

Unlimited Levels (http://downloads.chaos-project.com/scripts/Unlimited Levels.zip)


God, I wish it was against the rules to repeatedly not read instructions and the first post so I could ban you.
Title: Re: [XP] Unlimited Levels
Post by: Lobstrosity on June 11, 2010, 02:36:57 am
QuoteGod, I wish it was against the rules to repeatedly not read instructions and the first post so I could ban you.

Sorry Blizz, didn't mean to annoy you, I just couldn't work out where the demo is. Anyway, I've got it now.  :uhm:
Title: Re: [XP] Unlimited Levels
Post by: megaman30796 on January 10, 2011, 08:12:10 am
nice one.....i've always wanted my game 2 be able 2 hit lv9999.........

BTW, can i exceed lv 9999?

How do i increase my max Str,Def...Etc...?????
Title: Re: [XP] Unlimited Levels
Post by: Blizzard on January 10, 2011, 09:16:47 am
Quote from: megaman30796 on January 10, 2011, 08:12:10 am
BTW, can i exceed lv 9999?


Is the script named "Unlimited Levels" or "Limited Levels"? *facepalm*

Quote from: megaman30796 on January 10, 2011, 08:12:10 am
How do i increase my max Str,Def...Etc...?????


*points to configuration*
Title: Re: [XP] Unlimited Levels
Post by: megaman30796 on January 10, 2011, 09:01:53 pm
nvm...i looked at the thing a bit and i figured it out already
Title: Re: [XP] Unlimited Levels
Post by: LiTTleDRAgo on January 11, 2011, 01:55:11 am
I want to ask,
could this script used together with your stat distribution system?

http://forum.chaos-project.com/index.php?topic=114.0
Title: Re: [XP] Unlimited Levels
Post by: Starrodkirby86 on January 11, 2011, 02:03:40 am
Knowing Blizzard, I'm sure there won't be compatibility issues. xD

A more hard-proof answer though would be perhaps looking at this topic.

http://forum.chaos-project.com/index.php/topic,23.0.html

Seeing that there's no complaints about those two scripts there (In fact, it seems inserting nearly all of them can work out, believe it or not), I suppose things would be OK if you have both of those scripts together! Make sure they follow that order.

I suggest to keep a safe backup or something in case of some screw-up. xD Or at least not to work it beyond possible repair.
Title: Re: [XP] Unlimited Levels
Post by: Blizzard on January 11, 2011, 03:06:41 am
Even thought I haven't tested them, I see no reason why they shouldn't work.
Title: Re: [XP] Unlimited Levels
Post by: syldocaine on February 17, 2014, 05:47:00 pm
Sometimes I get a " stack level too deep" error after winning a battle.

Does someone knows the reason for that?
Title: Re: [XP] Unlimited Levels
Post by: WhiteRose on February 21, 2014, 10:50:36 pm
Quote from: syldocaine on February 17, 2014, 05:47:00 pm
Sometimes I get a " stack level too deep" error after winning a battle.

Does someone knows the reason for that?


Are you sure that it's this script? It's possible that there's a compatibility issue with something else that you're using. If you could give me a screenshot of the error, I can take a look. Also, if you could let me know what scripts you're using, that would be great. :)
Title: Re: [XP] Unlimited Levels
Post by: syldocaine on February 26, 2014, 05:41:38 pm
Thx for your offer but i fixed it already.
I  put it below all other scripts and since then i never got the error again :)