Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- =begin =========================================================================
- Dekita's v1.1
- ★ Perfect EXP Curve™ ★
- #===============================================================================
- # ☆ Script Information:
- #=======================
- # As you may well know the default exp curve system in RPG Maker VX Ace is not the
- # most dynamic exp system...
- # Below is a chart to show the minimum and maximum values that you can acheive
- # by using the default system
- #---------------# #---------------#
- # Basis 10 - 50 # # extra 0 - 40 #
- #---------------# #---------------#
- # Acc A 10 - 50 # # Acc B 10 - 50 #
- #---------------# #---------------#
- #-----------------------# #-----------------------#
- # Exp using min values # # Exp using max values #
- #-----------------------# #-----------------------#
- # Level 10 = 1400 # # Level 10 = 10,569 #
- # Level 25 = 17,782 # # Level 25 = 172,449 #
- # Level 50 = 89,936 # # Level 50 = 1,319,088 #
- # Level 99 = 287,815 # # Level 99 = 7,738,286 #
- #-----------------------# #-----------------------#
- # Via the default system is is very difficult to acheive lets say a very low
- # amount of exp needed at low levels and a very high amount needed at higher
- # levels or have a set amount of exp per level
- # e.g lv1 - lv2 = 100 exp , lv2 - lv3 = 100 exp, lv3 - lv4 = 100 exp...
- # with this script you can acheive a vast number of unique exp curves.
- #
- # NOTE: if you dont insert a notetag into [x] class then [x] class will use
- # the default exp curve defined in the database under the class tab.
- #
- ================================================================================
- ★☆★☆★☆★☆★☆★☆★☆★ TERMS AND CONDITIONS: ☆★☆★☆★☆★☆★☆★☆★☆★☆
- ================================================================================
- 1. You must give credit to "Dekita"
- 2. You are NOT allowed to repost this script.(or modified versions)
- 3. You are NOT allowed to convert this script.(into other game engines e.g RGSS2)
- 4. You are NOT allowed to use this script for Commercial games.
- 5. ENJOY!
- "FINE PRINT"
- By using this script you hereby agree to the above terms and conditions,
- if any violation of the above terms occurs "legal action" may be taken.
- Not understanding the above terms and conditions does NOT mean that
- they do not apply to you.
- If you wish to discuss the terms and conditions in further detail you can
- contact me at http://dekitarpg.wordpress.com/ or DekitaRPG@gmail.com
- ================================================================================
- History:
- =========
- 05/11/2o12 - Added unique exp gain,
- 22/08/2o12 - Started and Finished.
- ===============================================================================
- ===============================================================================
- ☆ INSTRUCTIONS:
- =================
- Place this script UNDER "▼ Materials" and ABOVE "▼ Main" in your script editor.
- ===============================================================================
- NoteTags: (place these into "class" noteboxes in the database)
- ===========
- <expcurve1>
- <expcurve2>
- <expcurve3>
- <expcurve4>
- <expcurve5>
- <unique exp gain>
- NOTE: DO NOT PUT THE NOTETAGS IN AN ACTORS NOTEBOX < IT WONT WORK.
- ===============================================================================
- =end
- module DPB ###
- module PEXP ##
- #=====================#
- # CUSTOMISATION - YAY #
- #=====================#
- # Basis = The base value for calculating nessesary exp.
- #
- # Extra = A simple extra value added onto the exp nessesary for each level
- #
- # Acceleration A = A value representing the rate at which to increase the
- # nessesary exp. Affects the whole exp curve.
- #
- # Acceleration B = A value representing the degree at which to exponentially
- # increase the nessesary exp. Mainly affects the high level range.
- #
- #=============#
- # EXP CURVE 1 #
- #-------------#
- # This setting,(by default) the exp needed will be a constant 5 exp per level
- # TOTAL EXP NEEDED:
- # level 10 = 45
- # Level 25 = 120
- # Level 50 = 245
- # Level 99 = 490
- BASIS = 0
- EXTRA = 5
- ACCELERATION_A = 0
- ACCELERATION_B = 0
- #=============#
- # EXP CURVE 2 #
- #-------------#
- # This setting,(by default) the exp needed per level will increase very slightly,
- # MUCH lower than vx ace normally allows.
- # TOTAL EXP NEEDED:
- # level 10 = 108
- # Level 25 = 638
- # Level 50 = 1561
- # Level 99 = 3134
- BASIS2 = 1
- EXTRA2 = 1
- ACCELERATION_A2 = 1
- ACCELERATION_B2 = 1
- #=============#
- # EXP CURVE 3 #
- #-------------#
- # This setting,(by default) the exp needed per level will be slightly more than
- # vx ace normally allows.
- # TOTAL EXP NEEDED:
- # level 10 = 14,123
- # Level 25 = 189,663
- # Level 50 = 1,359,580
- # Level 99 = 8,797,536
- BASIS3 = 100
- EXTRA3 = 100
- ACCELERATION_A3 = 200
- ACCELERATION_B3 = 200
- #=============#
- # EXP CURVE 4 #
- #-------------#
- # This setting,(by default) the exp needed per level will be ridiculously more
- # than vx ace normally allows.
- # TOTAL EXP NEEDED:
- # level 10 = 79,550
- # Level 25 = 4,534,130
- # Level 50 = 68,442,075
- # Level 99 = 962,585,688. lol @ 962 mil exp...
- BASIS4 = 100
- EXTRA4 = 200
- ACCELERATION_A4 = 400
- ACCELERATION_B4 = 800
- #=============#
- # EXP CURVE 5 #
- #-------------#
- # This setting,(by default) the exp needed for low levels will be lower than vx ace
- # normally allows but much more than vx ace normally allows at higher levels.
- # TOTAL EXP NEEDED:
- # level 10 = 2401
- # Level 25 = 90,682
- # Level 50 = 1,371,571
- # Level 99 = 19,403,779
- BASIS5 = 2
- EXTRA5 = 2
- ACCELERATION_A5 = 250
- ACCELERATION_B5 = 1000
- #====================#
- # Not Even a Curve ! #
- Unique_Gains = []#---#
- # This setting is very simple, just enter the exp you need for each level
- # e.g Unique_Gains[1] = 0 because you need 0 exp to reach level 1,
- # Unique_Gains[2] = 20, this means you need a total of 20 exp to reach level 2
- # Unique_Gains[3] = 30, this means you need a total of 30 exp to reach level 3
- # a.k.a 10 more exp than needed for level 2.
- # NOTE: the ' _ ' are just spacers to seperate the 0's and keep track of them :p
- Unique_Gains[1] = 0
- Unique_Gains[2] = 500
- Unique_Gains[3] = 1025
- Unique_Gains[4] = 1576
- Unique_Gains[5] = 2154
- Unique_Gains[6] = 2760
- Unique_Gains[7] = 3396
- Unique_Gains[8] = 4063
- Unique_Gains[9] = 4763
- Unique_Gains[10] = 5498
- Unique_Gains[11] = 6269
- Unique_Gains[12] = 7078
- Unique_Gains[13] = 7927
- Unique_Gains[14] = 8818
- Unique_Gains[15] = 9753
- Unique_Gains[16] = 10734
- Unique_Gains[17] = 11764
- Unique_Gains[18] = 12845
- Unique_Gains[19] = 13980
- Unique_Gains[20] = 15171
- Unique_Gains[21] = 16421
- Unique_Gains[22] = 17733
- Unique_Gains[23] = 19110
- Unique_Gains[24] = 20555
- Unique_Gains[25] = 22072
- Unique_Gains[26] = 23664
- Unique_Gains[27] = 25335
- Unique_Gains[28] = 27089
- Unique_Gains[29] = 28930
- Unique_Gains[30] = 30863
- Unique_Gains[31] = 32892
- Unique_Gains[32] = 35022
- Unique_Gains[33] = 37258
- Unique_Gains[34] = 39605
- Unique_Gains[35] = 42069
- Unique_Gains[36] = 44656
- Unique_Gains[37] = 47372
- Unique_Gains[38] = 50223
- Unique_Gains[39] = 53216
- Unique_Gains[40] = 56358
- Unique_Gains[41] = 59657
- Unique_Gains[42] = 63120
- Unique_Gains[43] = 66756
- Unique_Gains[44] = 70573
- Unique_Gains[45] = 74580
- Unique_Gains[46] = 78787
- Unique_Gains[47] = 83204
- Unique_Gains[48] = 87841
- Unique_Gains[49] = 92709
- Unique_Gains[50] = 97820
- Unique_Gains[51] = 103186
- Unique_Gains[52] = 108820
- Unique_Gains[53] = 114735
- Unique_Gains[54] = 120945
- Unique_Gains[55] = 127465
- Unique_Gains[56] = 134311
- Unique_Gains[57] = 141499
- Unique_Gains[58] = 149046
- Unique_Gains[59] = 156970
- Unique_Gains[60] = 165290
- Unique_Gains[61] = 174026
- Unique_Gains[62] = 183198
- Unique_Gains[63] = 192828
- Unique_Gains[64] = 202939
- Unique_Gains[65] = 213555
- Unique_Gains[66] = 224701
- Unique_Gains[67] = 236404
- Unique_Gains[68] = 248692
- Unique_Gains[69] = 261594
- Unique_Gains[70] = 275141
- Unique_Gains[71] = 289365
- Unique_Gains[72] = 304300
- Unique_Gains[73] = 319981
- Unique_Gains[74] = 336446
- Unique_Gains[75] = 353734
- Unique_Gains[76] = 371886
- Unique_Gains[77] = 390945
- Unique_Gains[78] = 410956
- Unique_Gains[79] = 431967
- Unique_Gains[80] = 454028
- Unique_Gains[81] = 477192
- Unique_Gains[82] = 501514
- Unique_Gains[83] = 527052
- Unique_Gains[84] = 553866
- Unique_Gains[85] = 582020
- Unique_Gains[86] = 611581
- Unique_Gains[87] = 642620
- Unique_Gains[88] = 675210
- Unique_Gains[89] = 709429
- Unique_Gains[90] = 745358
- Unique_Gains[91] = 783083
- Unique_Gains[92] = 822694
- Unique_Gains[93] = 864285
- Unique_Gains[94] = 907955
- Unique_Gains[95] = 953808
- Unique_Gains[96] = 1001953
- Unique_Gains[97] = 1052505
- Unique_Gains[98] = 1105584
- Unique_Gains[99] = 1161316
- #===============================================================================
- #
- # ★ Perfect EXP Curve ★
- #
- # ★ CUSTOMISATION END ★
- #
- #===============================================================================
- ################################################################################
- end # PEXP
- end # DPB
- #===============================================================================
- # ☆ Import:
- #===========
- $imported = {} if $imported.nil?
- $imported["DPB-PEXP"] = true
- #
- #===============================================================================
- class RPG::Class < RPG::BaseItem
- def exp_for_level(level)
- if self.note =~ /<unique exp gain>/i
- _Exp = DPB::PEXP::Unique_Gains
- return _Exp[level]
- elsif self.note =~ /<expcurve1>/i
- lv = level.to_f
- basis = DPB::PEXP::BASIS
- extra = DPB::PEXP::EXTRA
- acc_a = DPB::PEXP::ACCELERATION_A
- acc_b = DPB::PEXP::ACCELERATION_B
- return (basis*((lv-1)**(0.9+acc_a/250))*lv*(lv+1)/
- (6+lv**2/50/acc_b)+(lv-1)*extra).round.to_i
- elsif self.note =~ /<expcurve2>/i
- lv = level.to_f
- basis = DPB::PEXP::BASIS2
- extra = DPB::PEXP::EXTRA2
- acc_a = DPB::PEXP::ACCELERATION_A2
- acc_b = DPB::PEXP::ACCELERATION_B2
- return (basis*((lv-1)**(0.9+acc_a/250))*lv*(lv+1)/
- (6+lv**2/50/acc_b)+(lv-1)*extra).round.to_i
- elsif self.note =~ /<expcurve3>/i
- lv = level.to_f
- basis = DPB::PEXP::BASIS3
- extra = DPB::PEXP::EXTRA3
- acc_a = DPB::PEXP::ACCELERATION_A3
- acc_b = DPB::PEXP::ACCELERATION_B3
- return (basis*((lv-1)**(0.9+acc_a/250))*lv*(lv+1)/
- (6+lv**2/50/acc_b)+(lv-1)*extra).round.to_i
- elsif self.note =~ /<expcurve4>/i
- lv = level.to_f
- basis = DPB::PEXP::BASIS4
- extra = DPB::PEXP::EXTRA4
- acc_a = DPB::PEXP::ACCELERATION_A4
- acc_b = DPB::PEXP::ACCELERATION_B4
- return (basis*((lv-1)**(0.9+acc_a/250))*lv*(lv+1)/
- (6+lv**2/50/acc_b)+(lv-1)*extra).round.to_i
- elsif self.note =~ /<expcurve5>/i
- lv = level.to_f
- basis = DPB::PEXP::BASIS5
- extra = DPB::PEXP::EXTRA5
- acc_a = DPB::PEXP::ACCELERATION_A5
- acc_b = DPB::PEXP::ACCELERATION_B5
- return (basis*((lv-1)**(0.9+acc_a/250))*lv*(lv+1)/
- (6+lv**2/50/acc_b)+(lv-1)*extra).round.to_i
- else
- lv = level.to_f
- basis = @exp_params[0].to_f
- extra = @exp_params[1].to_f
- acc_a = @exp_params[2].to_f
- acc_b = @exp_params[3].to_f
- return (basis*((lv-1)**(0.9+acc_a/250))*lv*(lv+1)/
- (6+lv**2/50/acc_b)+(lv-1)*extra).round.to_i
- end
- end # Def exp_for_lv
- end # class RPG::Class
- #===============================================================================
- #
- # ★ Perfect EXP Curve ★
- #
- # ★ SCRIPT END ★
- #
- #===============================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement