Advertisement
Dekita

exp 1.1

Nov 7th, 2012
4,126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.47 KB | None | 0 0
  1. =begin =========================================================================
  2. Dekita's v1.1
  3. ★ Perfect EXP Curve™ ★
  4.  
  5. #===============================================================================
  6. # ☆ Script Information:
  7. #=======================
  8. # As you may well know the default exp curve system in RPG Maker VX Ace is not the
  9. # most dynamic exp system...
  10. # Below is a chart to show the minimum and maximum values that you can acheive
  11. # by using the default system
  12. #---------------# #---------------#
  13. # Basis 10 - 50 # # extra 0 - 40 #
  14. #---------------# #---------------#
  15. # Acc A 10 - 50 # # Acc B 10 - 50 #
  16. #---------------# #---------------#
  17.  
  18. #-----------------------# #-----------------------#
  19. # Exp using min values # # Exp using max values #
  20. #-----------------------# #-----------------------#
  21. # Level 10 = 1400 # # Level 10 = 10,569 #
  22. # Level 25 = 17,782 # # Level 25 = 172,449 #
  23. # Level 50 = 89,936 # # Level 50 = 1,319,088 #
  24. # Level 99 = 287,815 # # Level 99 = 7,738,286 #
  25. #-----------------------# #-----------------------#
  26.  
  27. # Via the default system is is very difficult to acheive lets say a very low
  28. # amount of exp needed at low levels and a very high amount needed at higher
  29. # levels or have a set amount of exp per level
  30. # e.g lv1 - lv2 = 100 exp , lv2 - lv3 = 100 exp, lv3 - lv4 = 100 exp...
  31. # with this script you can acheive a vast number of unique exp curves.
  32. #
  33. # NOTE: if you dont insert a notetag into [x] class then [x] class will use
  34. # the default exp curve defined in the database under the class tab.
  35. #
  36. ================================================================================
  37. ★☆★☆★☆★☆★☆★☆★☆★ TERMS AND CONDITIONS: ☆★☆★☆★☆★☆★☆★☆★☆★☆
  38. ================================================================================
  39. 1. You must give credit to "Dekita"
  40. 2. You are NOT allowed to repost this script.(or modified versions)
  41. 3. You are NOT allowed to convert this script.(into other game engines e.g RGSS2)
  42. 4. You are NOT allowed to use this script for Commercial games.
  43. 5. ENJOY!
  44.  
  45. "FINE PRINT"
  46. By using this script you hereby agree to the above terms and conditions,
  47. if any violation of the above terms occurs "legal action" may be taken.
  48. Not understanding the above terms and conditions does NOT mean that
  49. they do not apply to you.
  50. If you wish to discuss the terms and conditions in further detail you can
  51. contact me at http://dekitarpg.wordpress.com/ or DekitaRPG@gmail.com
  52.  
  53. ================================================================================
  54. History:
  55. =========
  56. 05/11/2o12 - Added unique exp gain,
  57. 22/08/2o12 - Started and Finished.
  58. ===============================================================================
  59. ===============================================================================
  60. ☆ INSTRUCTIONS:
  61. =================
  62. Place this script UNDER "▼ Materials" and ABOVE "▼ Main" in your script editor.
  63.  
  64. ===============================================================================
  65. NoteTags: (place these into "class" noteboxes in the database)
  66. ===========
  67. <expcurve1>
  68. <expcurve2>
  69. <expcurve3>
  70. <expcurve4>
  71. <expcurve5>
  72. <unique exp gain>
  73.  
  74. NOTE: DO NOT PUT THE NOTETAGS IN AN ACTORS NOTEBOX < IT WONT WORK.
  75. ===============================================================================
  76. =end
  77. module DPB ###
  78. module PEXP ##
  79. #=====================#
  80. # CUSTOMISATION - YAY #
  81. #=====================#
  82. # Basis = The base value for calculating nessesary exp.
  83. #
  84. # Extra = A simple extra value added onto the exp nessesary for each level
  85. #
  86. # Acceleration A = A value representing the rate at which to increase the
  87. # nessesary exp. Affects the whole exp curve.
  88. #
  89. # Acceleration B = A value representing the degree at which to exponentially
  90. # increase the nessesary exp. Mainly affects the high level range.
  91. #
  92. #=============#
  93. # EXP CURVE 1 #
  94. #-------------#
  95. # This setting,(by default) the exp needed will be a constant 5 exp per level
  96. # TOTAL EXP NEEDED:
  97. # level 10 = 45
  98. # Level 25 = 120
  99. # Level 50 = 245
  100. # Level 99 = 490
  101. BASIS = 0
  102. EXTRA = 5
  103. ACCELERATION_A = 0
  104. ACCELERATION_B = 0
  105.  
  106. #=============#
  107. # EXP CURVE 2 #
  108. #-------------#
  109. # This setting,(by default) the exp needed per level will increase very slightly,
  110. # MUCH lower than vx ace normally allows.
  111. # TOTAL EXP NEEDED:
  112. # level 10 = 108
  113. # Level 25 = 638
  114. # Level 50 = 1561
  115. # Level 99 = 3134
  116. BASIS2 = 1
  117. EXTRA2 = 1
  118. ACCELERATION_A2 = 1
  119. ACCELERATION_B2 = 1
  120.  
  121. #=============#
  122. # EXP CURVE 3 #
  123. #-------------#
  124. # This setting,(by default) the exp needed per level will be slightly more than
  125. # vx ace normally allows.
  126. # TOTAL EXP NEEDED:
  127. # level 10 = 14,123
  128. # Level 25 = 189,663
  129. # Level 50 = 1,359,580
  130. # Level 99 = 8,797,536
  131. BASIS3 = 100
  132. EXTRA3 = 100
  133. ACCELERATION_A3 = 200
  134. ACCELERATION_B3 = 200
  135.  
  136. #=============#
  137. # EXP CURVE 4 #
  138. #-------------#
  139. # This setting,(by default) the exp needed per level will be ridiculously more
  140. # than vx ace normally allows.
  141. # TOTAL EXP NEEDED:
  142. # level 10 = 79,550
  143. # Level 25 = 4,534,130
  144. # Level 50 = 68,442,075
  145. # Level 99 = 962,585,688. lol @ 962 mil exp...
  146. BASIS4 = 100
  147. EXTRA4 = 200
  148. ACCELERATION_A4 = 400
  149. ACCELERATION_B4 = 800
  150.  
  151. #=============#
  152. # EXP CURVE 5 #
  153. #-------------#
  154. # This setting,(by default) the exp needed for low levels will be lower than vx ace
  155. # normally allows but much more than vx ace normally allows at higher levels.
  156. # TOTAL EXP NEEDED:
  157. # level 10 = 2401
  158. # Level 25 = 90,682
  159. # Level 50 = 1,371,571
  160. # Level 99 = 19,403,779
  161. BASIS5 = 2
  162. EXTRA5 = 2
  163. ACCELERATION_A5 = 250
  164. ACCELERATION_B5 = 1000
  165.  
  166. #====================#
  167. # Not Even a Curve ! #
  168. Unique_Gains = []#---#
  169. # This setting is very simple, just enter the exp you need for each level
  170. # e.g Unique_Gains[1] = 0 because you need 0 exp to reach level 1,
  171. # Unique_Gains[2] = 20, this means you need a total of 20 exp to reach level 2
  172. # Unique_Gains[3] = 30, this means you need a total of 30 exp to reach level 3
  173. # a.k.a 10 more exp than needed for level 2.
  174. # NOTE: the ' _ ' are just spacers to seperate the 0's and keep track of them :p
  175.  
  176. Unique_Gains[1] = 0
  177. Unique_Gains[2] = 20
  178. Unique_Gains[3] = 30
  179. Unique_Gains[4] = 40
  180. Unique_Gains[5] = 50
  181. Unique_Gains[6] = 60
  182. Unique_Gains[7] = 70
  183. Unique_Gains[8] = 80
  184. Unique_Gains[9] = 90
  185. Unique_Gains[10] = 1000
  186. Unique_Gains[11] = 1100
  187. Unique_Gains[12] = 1200
  188. Unique_Gains[13] = 1300
  189. Unique_Gains[14] = 1400
  190. Unique_Gains[15] = 1500
  191. Unique_Gains[16] = 1600
  192. Unique_Gains[17] = 1700
  193. Unique_Gains[18] = 1800
  194. Unique_Gains[19] = 1900
  195. Unique_Gains[20] = 20_000
  196. Unique_Gains[21] = 21_000
  197. Unique_Gains[22] = 22_000
  198. Unique_Gains[23] = 23_000
  199. Unique_Gains[24] = 24_000
  200. Unique_Gains[25] = 25_000
  201. Unique_Gains[26] = 26_000
  202. Unique_Gains[27] = 27_000
  203. Unique_Gains[28] = 28_000
  204. Unique_Gains[29] = 29_000
  205. Unique_Gains[30] = 300_000
  206. Unique_Gains[31] = 310_000
  207. Unique_Gains[32] = 320_000
  208. Unique_Gains[33] = 330_000
  209. Unique_Gains[34] = 340_000
  210. Unique_Gains[35] = 350_000
  211. Unique_Gains[36] = 360_000
  212. Unique_Gains[37] = 370_000
  213. Unique_Gains[38] = 380_000
  214. Unique_Gains[39] = 390_000
  215. Unique_Gains[40] = 4_000_000
  216. Unique_Gains[41] = 4_100_000
  217. Unique_Gains[42] = 4_200_000
  218. Unique_Gains[43] = 4_300_000
  219. Unique_Gains[44] = 4_400_000
  220. Unique_Gains[45] = 4_500_000
  221. Unique_Gains[46] = 4_600_000
  222. Unique_Gains[47] = 4_700_000
  223. Unique_Gains[48] = 4_800_000
  224. Unique_Gains[49] = 4_900_000
  225. Unique_Gains[50] = 50_000_000
  226. Unique_Gains[51] = 51_000_000
  227. Unique_Gains[52] = 52_000_000
  228. Unique_Gains[53] = 53_000_000
  229. Unique_Gains[54] = 54_000_000
  230. Unique_Gains[55] = 55_000_000
  231. Unique_Gains[56] = 56_000_000
  232. Unique_Gains[57] = 57_000_000
  233. Unique_Gains[58] = 58_000_000
  234. Unique_Gains[59] = 59_000_000
  235. Unique_Gains[60] = 600_000_000
  236. Unique_Gains[61] = 610_000_000
  237. Unique_Gains[62] = 620_000_000
  238. Unique_Gains[63] = 630_000_000
  239. Unique_Gains[64] = 640_000_000
  240. Unique_Gains[65] = 650_000_000
  241. Unique_Gains[66] = 660_000_000
  242. Unique_Gains[67] = 670_000_000
  243. Unique_Gains[68] = 680_000_000
  244. Unique_Gains[69] = 690_000_000
  245. Unique_Gains[70] = 7_000_000_000
  246. Unique_Gains[71] = 7_100_000_000
  247. Unique_Gains[72] = 7_200_000_000
  248. Unique_Gains[73] = 7_300_000_000
  249. Unique_Gains[74] = 7_400_000_000
  250. Unique_Gains[75] = 7_400_000_000
  251. Unique_Gains[76] = 7_400_000_000
  252. Unique_Gains[77] = 7_400_000_000
  253. Unique_Gains[78] = 7_400_000_000
  254. Unique_Gains[79] = 7_400_000_000
  255. Unique_Gains[80] = 80_000_000_000
  256. Unique_Gains[81] = 81_000_000_000
  257. Unique_Gains[82] = 82_000_000_000
  258. Unique_Gains[83] = 83_000_000_000
  259. Unique_Gains[84] = 84_000_000_000
  260. Unique_Gains[85] = 85_000_000_000
  261. Unique_Gains[86] = 86_000_000_000
  262. Unique_Gains[87] = 87_000_000_000
  263. Unique_Gains[88] = 88_000_000_000
  264. Unique_Gains[89] = 89_000_000_000
  265. Unique_Gains[90] = 900_000_000_000
  266. Unique_Gains[91] = 910_000_000_000
  267. Unique_Gains[92] = 920_000_000_000
  268. Unique_Gains[93] = 930_000_000_000
  269. Unique_Gains[94] = 940_000_000_000
  270. Unique_Gains[95] = 950_000_000_000
  271. Unique_Gains[96] = 960_000_000_000
  272. Unique_Gains[97] = 970_000_000_000
  273. Unique_Gains[98] = 980_000_000_000
  274. Unique_Gains[99] = 990_000_000_000
  275.  
  276. #===============================================================================
  277. #
  278. # ★ Perfect EXP Curve ★
  279. #
  280. # ★ CUSTOMISATION END ★
  281. #
  282. #===============================================================================
  283. ################################################################################
  284. end # PEXP
  285. end # DPB
  286.  
  287. #===============================================================================
  288. # ☆ Import:
  289. #===========
  290. $imported = {} if $imported.nil?
  291. $imported["DPB-PEXP"] = true
  292. #
  293. #===============================================================================
  294.  
  295. class RPG::Class < RPG::BaseItem
  296. def exp_for_level(level)
  297. if self.note =~ /<unique exp gain>/i
  298. _Exp = DPB::PEXP::Unique_Gains
  299. return _Exp[level]
  300. elsif self.note =~ /<expcurve1>/i
  301. lv = level.to_f
  302. basis = DPB::PEXP::BASIS
  303. extra = DPB::PEXP::EXTRA
  304. acc_a = DPB::PEXP::ACCELERATION_A
  305. acc_b = DPB::PEXP::ACCELERATION_B
  306. return (basis*((lv-1)**(0.9+acc_a/250))*lv*(lv+1)/
  307. (6+lv**2/50/acc_b)+(lv-1)*extra).round.to_i
  308. elsif self.note =~ /<expcurve2>/i
  309. lv = level.to_f
  310. basis = DPB::PEXP::BASIS2
  311. extra = DPB::PEXP::EXTRA2
  312. acc_a = DPB::PEXP::ACCELERATION_A2
  313. acc_b = DPB::PEXP::ACCELERATION_B2
  314. return (basis*((lv-1)**(0.9+acc_a/250))*lv*(lv+1)/
  315. (6+lv**2/50/acc_b)+(lv-1)*extra).round.to_i
  316. elsif self.note =~ /<expcurve3>/i
  317. lv = level.to_f
  318. basis = DPB::PEXP::BASIS3
  319. extra = DPB::PEXP::EXTRA3
  320. acc_a = DPB::PEXP::ACCELERATION_A3
  321. acc_b = DPB::PEXP::ACCELERATION_B3
  322. return (basis*((lv-1)**(0.9+acc_a/250))*lv*(lv+1)/
  323. (6+lv**2/50/acc_b)+(lv-1)*extra).round.to_i
  324. elsif self.note =~ /<expcurve4>/i
  325. lv = level.to_f
  326. basis = DPB::PEXP::BASIS4
  327. extra = DPB::PEXP::EXTRA4
  328. acc_a = DPB::PEXP::ACCELERATION_A4
  329. acc_b = DPB::PEXP::ACCELERATION_B4
  330. return (basis*((lv-1)**(0.9+acc_a/250))*lv*(lv+1)/
  331. (6+lv**2/50/acc_b)+(lv-1)*extra).round.to_i
  332. elsif self.note =~ /<expcurve5>/i
  333. lv = level.to_f
  334. basis = DPB::PEXP::BASIS5
  335. extra = DPB::PEXP::EXTRA5
  336. acc_a = DPB::PEXP::ACCELERATION_A5
  337. acc_b = DPB::PEXP::ACCELERATION_B5
  338. return (basis*((lv-1)**(0.9+acc_a/250))*lv*(lv+1)/
  339. (6+lv**2/50/acc_b)+(lv-1)*extra).round.to_i
  340. else
  341. lv = level.to_f
  342. basis = @exp_params[0].to_f
  343. extra = @exp_params[1].to_f
  344. acc_a = @exp_params[2].to_f
  345. acc_b = @exp_params[3].to_f
  346. return (basis*((lv-1)**(0.9+acc_a/250))*lv*(lv+1)/
  347. (6+lv**2/50/acc_b)+(lv-1)*extra).round.to_i
  348. end
  349. end # Def exp_for_lv
  350. end # class RPG::Class
  351. #===============================================================================
  352. #
  353. # ★ Perfect EXP Curve ★
  354. #
  355. # ★ SCRIPT END ★
  356. #
  357. #===============================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement