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

[转载发布] DoubleX RMMV Skill Progress

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    2026-7-12 04:10
  • 签到天数: 209 天

    连续签到: 2 天

    [LV.7]常住居民III

    8068

    主题

    864

    回帖

    3万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    7
    卡币
    30143
    OK点
    16
    推广点
    0
    同能卷
    50
    积分
    39105

    灌水之王

    发表于 5 天前 | 显示全部楼层 |阅读模式
    Note
    This plugin's available for commercial use

    Purpose
    Lets you to set some skills to progress to some other skills after gaining enough skill experience and meeting some prerequisites

    Introduction
    Spoiler: Introduction
                    JavaScript:       
    1. *    1. This plugin lets users to set some skills to progress to some other
    2. *       skills after gaining enough skill experience and meeting some
    3. *       prerequisites, like progressing from Fire I to Fire II when the
    4. *       actor's at least level 9 and gained 100 skill experience for Fire I
    5. *    2. Skill experience's gained from using that skill as well as hitting
    6. *       targets with that skill
    复制代码


    Videos
    Spoiler: Videos
    Games using this plugin
    None so far

    Parameters
    Spoiler: Parameters
                    JavaScript:       
    1. * @param isEnabled
    2. * @desc Sets whether this plugin will be enabled
    3. * It'll be the contents of a function returning a Boolean
    4. * @default return true;
    5. *
    6. * @param condNotePriority
    7. * @desc Sets the data type priority of cond notetags
    8. * It'll be the contents of a function returning an String Array
    9. * @default return ["states", "armors", "weapons", "currentClass", "actor"];
    10. *
    11. * @param condNoteChainingRule
    12. * @desc Sets how to use multiple cond notetags
    13. * It'll be the contents of a function returning a String
    14. * @default return "every";
    15. *
    16. * @param defaultMax
    17. * @desc Sets the default max experience before chaining max notetags
    18. * It'll be the contents of a function returning a positive Number
    19. * @default return 10;
    20. *
    21. * @param maxNotePriority
    22. * @desc Sets the data type priority of max notetags
    23. * It'll be the contents of a function returning a String Array
    24. * @default return ["states", "armors", "weapons", "currentClass", "actor"];
    25. *
    26. * @param maxNoteChainingRule
    27. * @desc Sets how to use multiple max notetags
    28. * It'll be the contents of a function returning a String
    29. * @default return "/";
    30. *
    31. * @param defaultUseGain
    32. * @desc Sets the default useGain before chaining useGain notetags
    33. * It'll be the contents of a function returning a Number
    34. * @default return 2;
    35. *
    36. * @param useGainNotePriority
    37. * @desc Sets the data type priority of useGain notetags
    38. * It'll be the contents of a function returning an String Array
    39. * @default return ["states", "armors", "weapons", "currentClass", "actor"];
    40. *
    41. * @param useGainNoteChainingRule
    42. * @desc Sets how to use multiple useGain notetags
    43. * It'll be the contents of a function returning a String
    44. * @default return "*";
    45. *
    46. * @param defaultHitGain
    47. * @desc Sets the default hitGain before chaining hitGain notetags
    48. * It'll be the contents of a function returning a Number
    49. * @default return 1;
    50. *
    51. * @param hitGainNotePriority
    52. * @desc Sets the data type priority of hitGain notetags
    53. * It'll be the contents of a function returning an String Array
    54. * @default return ["states", "armors", "weapons", "currentClass", "actor"];
    55. *
    56. * @param hitGainNoteChainingRule
    57. * @desc Sets how to use multiple hitGain notetags
    58. * It'll be the contents of a function returning a String
    59. * @default return "*";
    60. *
    61. * @param nextNotePriority
    62. * @desc Sets the data type priority of next notetags
    63. * It'll be the contents of a function returning an String Array
    64. * @default return ["actor", "currentClass"];
    65. *
    66. * @param nextNoteChainingRule
    67. * @desc Sets how to use multiple next notetags
    68. * It'll be the contents of a function returning a String
    69. * @default return "every";
    70. *
    71. * @param defaultKeepCurrent
    72. * @desc Set default keepCurrent before chaining keepCurrent notetags
    73. * It'll be the contents of a function returning a Boolean
    74. * @default return true;
    75. *
    76. * @param keepCurrentNotePriority
    77. * @desc Sets the data type priority of keepCurrent notetags
    78. * It'll be the contents of a function returning an String Array
    79. * @default return ["actor", "currentClass"];
    80. *
    81. * @param keepCurrentNoteChainingRule
    82. * @desc Sets how to use multiple keepCurrent notetags
    83. * It'll be the contents of a function returning a String
    84. * @default return "first";
    85. *
    86. * @param willEnd
    87. * @desc Sets what will happen right before progressing a skill
    88. * It'll be the contents of a function with its return value unused
    89. * @default
    90. *
    91. * @param willEndNotePriority
    92. * @desc Sets the data type priority of willEnd notetags
    93. * It'll be the contents of a function returning an String Array
    94. * @default return ["states", "armors", "weapons", "currentClass", "actor"];
    95. *
    96. * @param willEndNoteChainingRule
    97. * @desc Sets how to use multiple willEnd notetags
    98. * It'll be the contents of a function returning a String
    99. * @default return "every";
    100. *
    101. * @param didEnd
    102. * @desc Sets what will happen right after progressing a skill
    103. * It'll be the contents of a function with its return value unused
    104. * @default $gameTemp.reserveCommonEvent(1);
    105. *
    106. * @param didEndNotePriority
    107. * @desc Sets the data type priority of didEnd notetags
    108. * It'll be the contents of a function returning an String Array
    109. * @default return ["states", "armors", "weapons", "currentClass", "actor"];
    110. *
    111. * @param didEndNoteChainingRule
    112. * @desc Sets how to use multiple didEnd notetags
    113. * It'll be the contents of a function returning a String
    114. * @default return "every";
    115. *
    116. * @param cmdLineH
    117. * @desc Sets the skill progress command window line height
    118. * It'll be the contents of a function returning a Number
    119. * @default return Window_Command.prototype.lineHeight.call(this);
    120. *
    121. * @param cmdFontSize
    122. * @desc Sets the skill progress command window standard font size
    123. * It'll be the contents of a function returning a Number
    124. * @default return Window_Command.prototype.standardFontSize.call(this);
    125. *
    126. * @param cmdPadding
    127. * @desc Sets the skill progress command window standard padding
    128. * It'll be the contents of a function returning a Number
    129. * @default return Window_Command.prototype.standardPadding.call(this);
    130. *
    131. * @param cmdTextPadding
    132. * @desc Sets the skill progress command window text padding
    133. * It'll be the contents of a function returning a Number
    134. * @default return Window_Command.prototype.textPadding.call(this);
    135. *
    136. * @param cmdBackOpacity
    137. * @desc Sets the skill progress command window standard back opacity
    138. * It'll be the contents of a function returning a Number
    139. * @default return Window_Command.prototype.standardBackOpacity.call(this);
    140. *
    141. * @param cmdTranslucentOpacity
    142. * @desc Sets the skill progress command window translucent opacity
    143. * It'll be the contents of a function returning a Number
    144. * @default return Window_Command.prototype.translucentOpacity.call(this);
    145. *
    146. * @param cmdSpacing
    147. * @desc Sets the skill progress command window spacing
    148. * It'll be the contents of a function returning a Number
    149. * @default return Window_Command.prototype.spacing.call(this);
    150. *
    151. * @param cmdWinW
    152. * @desc Sets the skill progress command window width
    153. * It'll be the contents of a function returning a Number
    154. * @default return Window_Command.prototype.windowWidth.call(this);
    155. *
    156. * @param cmdWinH
    157. * @desc Sets the skill progress command window height
    158. * It'll be the contents of a function returning a Number
    159. * @default return Window_Command.prototype.windowHeight.call(this);
    160. *
    161. * @param cmdWinX
    162. * @desc Sets the skill progress command window x position
    163. * It'll be the contents of a function returning a Number
    164. * @default return 0;
    165. *
    166. * @param cmdWinY
    167. * @desc Sets the skill progress command window y position
    168. * It'll be the contents of a function returning a Number
    169. * @default return 0;
    170. *
    171. * @param cmdView
    172. * @desc Sets the skill progress command window view progress command text
    173. * It'll be the contents of a function returning a String
    174. * @default return "View Progress";
    175. *
    176. * @param cmdUse
    177. * @desc Sets the skill progress command window use skill command text
    178. * It'll be the contents of a function returning a String
    179. * @default return "Use";
    180. *
    181. * @param statLineH
    182. * @desc Sets the skill progress stat window line height
    183. * It'll be the contents of a function returning a Number
    184. * @default return Window_Selectable.prototype.lineHeight.call(this);
    185. *
    186. * @param statFontSize
    187. * @desc Sets the skill progress stat window standard font size
    188. * It'll be the contents of a function returning a Number
    189. * @default return Window_Selectable.prototype.standardFontSize.call(this);
    190. *
    191. * @param statPadding
    192. * @desc Sets the skill progress stat window standard padding
    193. * It'll be the contents of a function returning a Number
    194. * @default return Window_Selectable.prototype.standardPadding.call(this);
    195. *
    196. * @param statTextPadding
    197. * @desc Sets the skill progress stat window text padding
    198. * It'll be the contents of a function returning a Number
    199. * @default return Window_Selectable.prototype.textPadding.call(this);
    200. *
    201. * @param statBackOpacity
    202. * @desc Sets the skill progress stat window standard back opacity
    203. * It'll be the contents of a function returning a Number
    204. * @default return Window_Selectable.prototype.standardBackOpacity.call(this);
    205. *
    206. * @param statTranslucentOpacity
    207. * @desc Sets the skill progress stat window translucent opacity
    208. * It'll be the contents of a function returning a Number
    209. * @default return Window_Selectable.prototype.translucentOpacity.call(this);
    210. *
    211. * @param statSpacing
    212. * @desc Sets the skill progress stat window spacing
    213. * It'll be the contents of a function returning a Number
    214. * @default return Window_Selectable.prototype.spacing.call(this);
    215. *
    216. * @param statWinW
    217. * @desc Sets the skill progress stat window width
    218. * It'll be the contents of a function returning a Number
    219. * @default return Graphics.boxWidth;
    220. *
    221. * @param statWinH
    222. * @desc Sets the skill progress stat window height
    223. * It'll be the contents of a function returning a Number
    224. * @default return this.fittingHeight(2);
    225. *
    226. * @param statWinX
    227. * @desc Sets the skill progress stat window x position
    228. * It'll be the contents of a function returning a Number
    229. * @default return 0;
    230. *
    231. * @param statWinY
    232. * @desc Sets the skill progress stat window y position
    233. * It'll be the contents of a function returning a Number
    234. * @default return 0;
    235. *
    236. * @param condLineH
    237. * @desc Sets the skill progress condition window line height
    238. * It'll be the contents of a function returning a Number
    239. * @default return Window_Selectable.prototype.lineHeight.call(this);
    240. *
    241. * @param condFontSize
    242. * @desc Sets the skill progress condition window standard font size
    243. * It'll be the contents of a function returning a Number
    244. * @default return Window_Selectable.prototype.standardFontSize.call(this);
    245. *
    246. * @param condPadding
    247. * @desc Sets the skill progress condition window standard padding
    248. * It'll be the contents of a function returning a Number
    249. * @default return Window_Selectable.prototype.standardPadding.call(this);
    250. *
    251. * @param condTextPadding
    252. * @desc Sets the skill progress condition window text padding
    253. * It'll be the contents of a function returning a Number
    254. * @default return Window_Selectable.prototype.textPadding.call(this);
    255. *
    256. * @param condBackOpacity
    257. * @desc Sets the skill progress condition window standard back opacity
    258. * It'll be the contents of a function returning a Number
    259. * @default return Window_Selectable.prototype.standardBackOpacity.call(this);
    260. *
    261. * @param condTranslucentOpacity
    262. * @desc Sets the skill progress condition window translucent opacity
    263. * It'll be the contents of a function returning a Number
    264. * @default return Window_Selectable.prototype.translucentOpacity.call(this);
    265. *
    266. * @param condSpacing
    267. * @desc Sets the skill progress condition window spacing
    268. * It'll be the contents of a function returning a Number
    269. * @default return Window_Selectable.prototype.spacing.call(this);
    270. *
    271. * @param condWinW
    272. * @desc Sets the skill progress condition window width
    273. * It'll be the contents of a function returning a Number
    274. * @default return Graphics.boxWidth / 2;
    275. *
    276. * @param condWinH
    277. * @desc Sets the skill progress condition window height
    278. * It'll be the contents of a function returning a Number
    279. * @default return Graphics.boxHeight - this.fittingHeight(2);
    280. *
    281. * @param condWinX
    282. * @desc Sets the skill progress condition window x position
    283. * It'll be the contents of a function returning a Number
    284. * @default return 0;
    285. *
    286. * @param condWinY
    287. * @desc Sets the skill progress condition window y position
    288. * It'll be the contents of a function returning a Number
    289. * @default return this.fittingHeight(2);
    290. *
    291. * @param nextLineH
    292. * @desc Sets the skill progress next skill window line height
    293. * It'll be the contents of a function returning a Number
    294. * @default return Window_Selectable.prototype.lineHeight.call(this);
    295. *
    296. * @param nextFontSize
    297. * @desc Sets the skill progress next skill window standard font size
    298. * It'll be the contents of a function returning a Number
    299. * @default return Window_Selectable.prototype.standardFontSize.call(this);
    300. *
    301. * @param nextPadding
    302. * @desc Sets the skill progress next skill window standard padding
    303. * It'll be the contents of a function returning a Number
    304. * @default return Window_Selectable.prototype.standardPadding.call(this);
    305. *
    306. * @param nextTextPadding
    307. * @desc Sets the skill progress next skill window text padding
    308. * It'll be the contents of a function returning a Number
    309. * @default return Window_Selectable.prototype.textPadding.call(this);
    310. *
    311. * @param nextBackOpacity
    312. * @desc Sets the skill progress next skill window standard back opacity
    313. * It'll be the contents of a function returning a Number
    314. * @default return Window_Selectable.prototype.standardBackOpacity.call(this);
    315. *
    316. * @param nextTranslucentOpacity
    317. * @desc Sets the skill progress next skill window translucent opacity
    318. * It'll be the contents of a function returning a Number
    319. * @default return Window_Selectable.prototype.translucentOpacity.call(this);
    320. *
    321. * @param nextSpacing
    322. * @desc Sets the skill progress next skill window spacing
    323. * It'll be the contents of a function returning a Number
    324. * @default return Window_Selectable.prototype.spacing.call(this);
    325. *
    326. * @param nextWinW
    327. * @desc Sets the skill progress next skill window width
    328. * It'll be the contents of a function returning a Number
    329. * @default return Graphics.boxWidth / 2;
    330. *
    331. * @param nextWinH
    332. * @desc Sets the skill progress next skill window height
    333. * It'll be the contents of a function returning a Number
    334. * @default return Graphics.boxHeight - this.fittingHeight(2);
    335. *
    336. * @param nextWinX
    337. * @desc Sets the skill progress next skill window x position
    338. * It'll be the contents of a function returning a Number
    339. * @default return Graphics.boxWidth / 2;
    340. *
    341. * @param nextWinY
    342. * @desc Sets the skill progress next skill window y position
    343. * It'll be the contents of a function returning a Number
    344. * @default return this.fittingHeight(2);
    345. *
    346. * @param varIds
    347. * @desc Sets the list of ids of game variables used by this plugin
    348. * It'll be the contents of a function returning a Number Array
    349. * @default return [];
    350. *
    351. * @param switchIds
    352. * @desc Sets the list of ids of game switches used by this plugin
    353. * It'll be the contents of a function returning a Number Array
    354. * @default return [];
    复制代码


    Notetags
    Spoiler: Notetags
                    JavaScript:       
    1. *    # Actor/Class/Weapon/Armor/State/Skill Notetag contents:
    2. *      1. cond suffix1 suffix2: entry1, entry2
    3. *         - Sets a prerequisite to be met for the skill to be progressed with
    4. *           descriptions to be shown
    5. *         - suffix1 and suffix2 can be cfg, val, switch, var or script
    6. *         - (Advanced)Please refer to Cond Functions in the configuration
    7. *           region for using cfg or script suffixes
    8. *         - The result of entry1 can be anything as it's used as truthy/falsy
    9. *           to check whether the prerequisite's met
    10. *         - The result of entry2 can be any String as the condition
    11. *           descriptions
    12. *         - If the result of entry2 is falsy, the result of entry1 will also
    13. *           be treated as falsy
    14. *           (Reference tag: INVALID_COND_DESC)
    15. *         - If there's no such effective notetag, the skill involved won't
    16. *           progress
    17. *         - E.g.:
    18. *           <skill progress cond switch var: 1, 2> will set a prerequisite
    19. *           for the skill to be progressed as the value of the game switch
    20. *           with id 1, with descriptions to be shown as the value of the game
    21. *           variable with id 2, provided that that variable stores a String
    22. *      2. max suffix1: entry1
    23. *         - Sets the maximum experience of the skill to be progressed
    24. *         - suffix1 can be cfg, val, var or script
    25. *         - (Advanced)Please refer to Max Functions in the configuration
    26. *           region for using cfg or script suffixes, or the eval variant
    27. *         - The result of entry1 can be any positive Number as the maximum
    28. *           experience
    29. *         - Having an invalid result is the same as not meeting prerequisites
    30. *           (Reference tag: INVALID_MAX)
    31. *         - If the maximum experience of the skill to be progressed's reduced
    32. *           to become not greater than its current experience, the skill will
    33. *           be ended progressing immediately
    34. *           (Reference tag: REDUCED_MAX_END_SKILL_PROGRESS)
    35. *         - E.g.:
    36. *           <skill progress max var: 1> will set the maximum experience of
    37. *           the skill to be progressed as the value of the game variable with
    38. *           id 1
    39. *      3. useGain suffix1: entry1
    40. *         - Sets the experience gain of the skill to be progressed upon using
    41. *           it
    42. *         - suffix1 can be cfg, val, var or script
    43. *         - (Advanced)Please refer to useGain Functions in the configuration
    44. *           region for using cfg or script suffixes, or the eval variant
    45. *         - The result of entry1 can be any Number as the experience gain
    46. *         - All invalid results will be regarded as 0
    47. *           (Reference tag: INVALID_GAIN)
    48. *         - E.g.:
    49. *           If the game variable with id 1 is "return this.luk;", then
    50. *           <skill progress useGain script: 1> will set the experience gain
    51. *           of the skill to be progressed upon using it as the luk of the
    52. *           user at that moment
    53. *      4. hitGain suffix1: entry1
    54. *         - Sets the experience gain of the skill to be progressed when the
    55. *           skill hits a target
    56. *         - suffix1 can be cfg, val, var or script
    57. *         - (Advanced)Please refer to hitGain Functions in the configuration
    58. *           region for using cfg or script suffixes, or the eval variant
    59. *         - The result of entry1 can be any Number as the experience gain
    60. *         - All invalid results will be regarded as 0
    61. *           (Reference tag: INVALID_GAIN)
    62. *         - E.g.:
    63. *           If HG1 in the configuration region is "return this.level;", then
    64. *           <skill progress hitGain cfg: HG1> will set the experience gain
    65. *           of the skill to be progressed when the skill hits a target as the
    66. *           level of the user at that moment
    67. *      5. next suffix1: entry1
    68. *         - Sets the skill to learn upon ending progressing the current one
    69. *         - suffix1 can be cfg, val, var or script
    70. *         - (Advanced)Please refer to Next Functions in the configuration
    71. *           region for using cfg or script suffixes, or the eval variant
    72. *         - The result of entry1 can be an Array of any valid id of the skills
    73. *           to learn
    74. *         - If the val suffix's used, the skill ids should be concatenated
    75. *           with the underscore, like 4_5 being skills with id 4 and 5
    76. *           (Reference tag: NUMBER_ARRAY)
    77. *         - If the var suffix's used, the variable referred by the entry
    78. *           should have skill ids concatenated with the underscore, like 4_5
    79. *           being skills with id 4 and 5
    80. *           (Reference tag: NUMBER_ARRAY)
    81. *         - Having an invalid result is the same as not meeting prerequisites
    82. *           (Reference tag: INVALID_NEXT)
    83. *         - E.g.:
    84. *           <skill progress next val: 4_5> will set the skills to learn upon
    85. *           ending progressing the current one as those with id 4 and 5
    86. *      6. keepCurrent suffix1: entry1
    87. *         - Sets whether the current skill will be kept instead of forgotten
    88. *           when it ends progressing
    89. *         - suffix1 can be cfg, val, switch, var or script
    90. *         - (Advanced)Please refer to keepCurrent Functions in the
    91. *           configuration region for using cfg or script suffixes, or the
    92. *           eval variant
    93. *         - The result of entry1 can be anything as it's used as truthy/falsy
    94. *           to sets whether the current skill will be kept
    95. *         - E.g.:
    96. *           <skill progress keepCurrent>
    97. *           return false;
    98. *           </skill progress keepCurrent>
    99. *           will set the current skill to be forgotten
    100. *      7. willEnd suffix1: entry1
    101. *         - Runs extra events just before ending progressing the skill
    102. *         - suffix1 can be cfg, event or script
    103. *         - (Advanced)Please refer to willEnd Functions in the configuration
    104. *           region for using cfg or script suffixes, or the eval variant
    105. *         - The entry1 is supposed to cause something to happen instead of
    106. *           returning anything
    107. *         - The willEnd parameter counterpart will always be run first
    108. *           (Reference tag: RUN_DEFAULT_FIRST)
    109. *         - E.g.:
    110. *           <skill progress willEnd event: 1> will reserve the common event
    111. *           with id 1 just after ending progressing the skill
    112. *      8. didEnd suffix1: entry1
    113. *         - Runs extra events just after ending progressing the skill
    114. *         - suffix1 can be cfg, event or script
    115. *         - (Advanced)Please refer to didEnd Functions in the configuration
    116. *           region for using cfg or script suffixes, or the eval variant
    117. *         - The entry1 is supposed to cause something to happen instead of
    118. *           returning anythinganything
    119. *         - The didEnd parameter counterpart will always be run first
    120. *           (Reference tag: RUN_DEFAULT_FIRST)
    121. *         - E.g.:
    122. *           If DE1 in the configuration region is unchanged,
    123. *           <skill progress didEnd cfg: DE1> will close the actor window
    124. *           when the skill involved ended progressing outside battles
    125. *           (Please refer to DE1 for details)
    复制代码


    Script Calls
    Spoiler: Script Calls
                    JavaScript:       
    1. *    # (Advanced)Configuration manipulations
    2. *      1. $gameSystem.skillProgress.params.param
    3. *         - Returns the stored value of param listed in the plugin manager or
    4. *           their configuration counterparts
    5. *         - E.g.:
    6. *           $gameSystem.skillProgress.params.isEnabled will return the
    7. *           contents of a function returning a Boolean indicating whether
    8. *           this plugin's enabled
    9. *      2. $gameSystem.skillProgress.params.param = funcContents
    10. *         - Sets the stored value of param listed in the plugin manager or
    11. *           their configuration counterpart as funcContents, which is the
    12. *           contents of a function
    13. *         - E.g.:
    14. *           $gameSystem.skillProgress.params.isEnabled = "return false;" will
    15. *           set the stored value of parameter isEnabled shown on the plugin
    16. *           manager or its configuration counterpart as "return false;",
    17. *           causing the corresponding function to always return false, thus
    18. *           always disabling this plugin
    19. *         - $gameSystem.skillProgress.params.param changes will be saved
    20. *         - DoubleX_RMMV.Skill_Progress.params.param = func, where func is
    21. *           the corresponding function having funcContents as its contents,
    22. *           should be explicitly called immediately afterwards
    23. *      3. $gameSystem.skillProgress.cfgs.cfg
    24. *         - Basically the same as $gameSystem.skillProgress.params.param,
    25. *           except that this script call applies to configurations found in
    26. *           the configuration region only
    27. *      4. $gameSystem.skillProgress.cfgs.cfg = funcContents
    28. *         - Basically the same as
    29. *           $gameSystem.skillProgress.params.param = funcContents, except that
    30. *           this script call applies to configurations found in the
    31. *           configuration region only
    32. *         - DoubleX_RMMV.Skill_Progress.cfgs.cfg = func, where func is the
    33. *           corresponding function having funcContents as its contents,
    34. *           should be explicitly called immediately afterwards
    35. *      5. $gameSystem.skillProgress.notes.note
    36. *         - Basically the same as $gameSystem.skillProgress.params.param,
    37. *           except that this script call applies to notetag values found in
    38. *           the configuration region
    39. *      6. $gameSystem.skillProgress.notes.note = funcContents
    40. *         - Basically the same as
    41. *           $gameSystem.skillProgress.params.param = funcContents, except
    42. *           that this script call applies to notetag values found in the
    43. *           configuration region
    44. *         - DoubleX_RMMV.Skill_Progress.notes.note = func, where func is the
    45. *           corresponding function having funcContents as its contents,
    46. *           should be explicitly called immediately afterwards
    47. *    # (Advanced)Actor/Class/Weapon/Armor/State/Skill notetag manipulations
    48. *      All meta.skillProgress changes can be saved if
    49. *      DoubleX RMMV Dynamic Data is used
    50. *      1. meta.skillProgress.note
    51. *         - note is either of the following:
    52. *           cond(corresponds to notetag content
    53. *                cond suffix1 suffix2: entry1, entry2)
    54. *           max(corresponds to notetag content max suffix1: entry1)
    55. *           useGain(corresponds to notetag content useGain suffix1: entry1)
    56. *           hitGain(corresponds to notetag content hitGain suffix1: entry1)
    57. *           next(corresponds to notetag content next suffix1: entry1)
    58. *           keepCurrent(corresponds to notetag content
    59. *                      keepCurrent suffix1: entry1)
    60. *           willEnd(corresponds to notetag content willEnd suffix1: entry1)
    61. *           didEnd(corresponds to notetag content didEnd suffix1: entry1)
    62. *         - Returns the Array of Objects in this form:
    63. *           { suffixi: suffixi, entryi: entryi }
    64. *           Which corresponds to <skill progress note suffixi: entryi>
    65. *         (Reference tag: MULTI_SUFFIX_ENTRY)
    66. *         - E.g.:
    67. *           $dataWeapons[3].meta.skillProgress.cond will return the Array of
    68. *           Object
    69. *           [{ suffix1: "switch", entry1: "1", suffix2: "var", entry2: "2" }]
    70. *           if the effective notetag of  weapon with id 3 is
    71. *           <skill progress cond switch var: 1, 2>
    72. *      2. meta.skillProgress.note = [{ suffixi: suffixi, entryi: entryi }]
    73. *         (Reference tag: MULTI_SUFFIX_ENTRY)
    74. *         - note is either of the following:
    75. *           cond(corresponds to notetag content
    76. *                cond suffix1 suffix2: entry1, entry2)
    77. *           max(corresponds to notetag content max suffix1: entry1)
    78. *           useGain(corresponds to notetag content useGain suffix1: entry1)
    79. *           hitGain(corresponds to notetag content hitGain suffix1: entry1)
    80. *           next(corresponds to notetag content next suffix1: entry1)
    81. *           keepCurrent(corresponds to notetag content
    82. *                       keepCurrent suffix1: entry1)
    83. *           willEnd(corresponds to notetag content willEnd suffix1: entry1)
    84. *           didEnd(corresponds to notetag content didEnd suffix1: entry1)
    85. *         - Sets the notetag to be the same as
    86. *           <skill progress note suffixi: entryi>
    87. *         - E.g.:
    88. *           $dataArmors[4].meta.skillProgress.cond =
    89. *           [{ suffix1: "switch", entry1: "1", suffix2: "var", entry2: "2" }]
    90. *           will set the max notetag of the armor with id 4 to be the same as
    91. *           <skill progress cond switch var: 1, 2>
    92. *    # Actor manipulations
    93. *      1. skillProgressCondDesc(skillId)
    94. *         - Returns the mapping with the condition descriptions as the keys
    95. *           and their statuses as the values for the skill with id skillId to
    96. *           progress for the actor involved
    97. *         - The mapping being empty means that the skill involved won't
    98. *           progress due to having no effective cond notetags and is thus
    99. *           treated as a normal skill
    100. *           (Reference tag: SKILL_COND_DESCS)
    101. *         - The mapping having only truthy values means that the prerequisites
    102. *           are met under the cond notetag chaining rule
    103. *           (Reference tag: SKILL_COND_DESCS)
    104. *         - (Advanced)It's supposed to return an Object
    105. *         - E.g.:
    106. *           $gameParty.aliveMembers()[0].skillProgressCondDesc(3) will return
    107. *           the mapping with the condition descriptions as the keys and their
    108. *           statuses as the values for the skill with id 3 to progress for
    109. *           the 1st alive party member
    110. *         - (Advanced)Using this script call might recache the return value
    111. *         - (Advanced)It's supposed to be Nullipotent other than possibly
    112. *           recaching the return value
    113. *      2. maxSkillProgress(skillId)
    114. *         - Returns the maximum experience needed to end progressing the
    115. *           skill with id skillId for the actor involved
    116. *         - (Advanced)It's supposed to return a positive Number
    117. *         - E.g.:
    118. *           If the maximum experience needed to end progressing the skill
    119. *           with id 3 is 400 for the 1st alive party member, then
    120. *           $gameParty.aliveMembers()[0].maxSkillProgress(3) will return 400
    121. *         - (Advanced)Using this script call might recache the return value
    122. *         - (Advanced)It's supposed to be Nullipotent other than possibly
    123. *           recaching the return value
    124. *      3. useGainSkillProgress(skillId)
    125. *         - Returns the experience gain of the skill with id skillId to be
    126. *           progressed upon use for the actor involved
    127. *         - (Advanced)It's supposed to return a Number
    128. *         - E.g.:
    129. *           If the experience gain of the skill with id 4 to be progressed
    130. *           upon use for the actor with id 1 is 100, then
    131. *           $gameActors.actor(1).useGainSkillProgress(4) will return 100
    132. *         - (Advanced)Using this script call might recache the return value
    133. *         - (Advanced)It's supposed to be Nullipotent other than possibly
    134. *           recaching the return value
    135. *      4. hitGainSkillProgress(skillId, target, value)
    136. *         - Returns the experience gain of the skill with id skillId to be
    137. *           progressed upon hitting target target with damage value for the
    138. *           actor involved
    139. *         - (Advanced)It's supposed to return a Number
    140. *         - E.g.:
    141. *           If the experience gain of the skill with id 5 to be progressed
    142. *           upon hitting the 1st enemy with 400 damage for the actor with id
    143. *           2 is 100, then
    144. *           $gameActors.actor(2).hitGainSkillProgress(
    145. *           5, $gameTroop.aliveMembers()[0], 400) will return 100
    146. *         - (Advanced)Using this script call might recache the return value
    147. *         - (Advanced)It's supposed to be Nullipotent other than possibly
    148. *           recaching the return value
    149. *      5. nextSkillProgress(skillId)
    150. *         - Returns the list of skill ids to be learned upon ending
    151. *           progressing that with id skillId for the actor involved
    152. *         - (Advanced)It's supposed to return a list of valid skill ids
    153. *         - E.g.:
    154. *           $gameParty.aliveMembers()[$gameParty.aliveMembers().length - 1].
    155. *           nextSkillProgress(6) will return the list of skill ids to be
    156. *           learnt upon ending progressing that with id 6 for the last alive
    157. *           party member
    158. *         - (Advanced)Using this script call might recache the return value
    159. *         - (Advanced)It's supposed to be Nullipotent other than possibly
    160. *           recaching the return value
    161. *      6. isKeepSkillProgress(skillId)
    162. *         - Returns whether the skill with id skillId will be kept or
    163. *           forgotten upon ending its progression for the actor involved
    164. *         - (Advanced)It's supposed to return a Boolean
    165. *         - E.g.:
    166. *           $gameParty.aliveMembers()[$gameParty.aliveMembers().length - 1].
    167. *           isKeepSkillProgress(4) will return whether the skill with id 4
    168. *           will be kept or forgotten upon ending its progression for the
    169. *           last alive party member
    170. *      7. currentSkillProgress(skillId)
    171. *         - Returns the current experience of the skill with id skillId to be
    172. *           progressed for the actor involved
    173. *         - (Advanced)It's supposed to return a nonnegative Number that is
    174. *           not greater than the maximum experience of the same skill
    175. *         - E.g.:
    176. *           $gameParty.aliveMembers()[0].currentSkillProgress(3) returns the
    177. *           current experience of the skill with id 3 to be progressed for
    178. *           the 1st alive party member
    179. *         - (Advanced)It's supposed to be Nullipotent
    180. *      8. setCurrentSkillProgress(skillId, value)
    181. *         - Sets the current experience of the skill with id skillId to be
    182. *           progressed for the actor involved as value
    183. *         - (Advanced)value is supposed to be a nonnegative Number that is
    184. *           not greater than the maximum experience of the same skill, so
    185. *           it'll be clamped if it's out of range and discarded if it's not
    186. *           a Number
    187. *           (Reference tag: CURRENT_EXP_RANGE)
    188. *         - E.g.:
    189. *           $gameParty.aliveMembers()[0].setCurrentSkillProgress(3, 100) sets
    190. *           the current experience of the skill with id 3 to be progressed
    191. *           for the 1st alive party member as 100
    192. *         - (Advanced)It's supposed to be Idempotent
    193. *      9. (Advanced)raiseAllSkillProgressNoteChangeFactors()
    194. *         - Applies the script call
    195. *           raiseSkillProgressNoteChangeFactor(note, factor) to all notes and
    196. *           factors
    197. *      10. (Advanced)raiseSkillProgressNoteChangeFactor(note, factor)
    198. *         - Notifies that the notetag note might need to be recached due to
    199. *           potential changes in factor factor
    200. *         - note is either of the following:
    201. *           "cond"(corresponds to notetag content
    202. *                  cond suffix1 suffix2: entry1 entry2)
    203. *           "max"(corresponds to notetag content max suffix1: entry1)
    204. *           "useGain"(corresponds to notetag content useGain suffix1: entry1)
    205. *           "hitGain"(corresponds to notetag content hitGain suffix1: entry1)
    206. *           "next"(corresponds to notetag content next suffix1: entry1)
    207. *           "keepCurrent"(corresponds to notetag content
    208. *                         keepCurrent suffix1: entry1)
    209. *           "willEnd"(corresponds to notetag content willEnd suffix1: entry1)
    210. *           "didEnd"(corresponds to notetag content didEnd suffix1: entry1)
    211. *         - factor is either of the following:
    212. *           "states"(Changes in state notetags)
    213. *           "armors"(Changes in armor notetags)
    214. *           "weapons"(Changes in weapon notetags)
    215. *           "currentClass"(Changes in class notetags)
    216. *           "actor"(Changes in actor notetags)
    217. *           "priority"(Changes in the corresponding note priorities)
    218. *           "chainingRule"(Changes in the corresponding note chaining rules)
    219. *           "result"(Changes in all intermediate results for the note)
    220. *         - It's supposed to be Idempotent
    221. *         - E.g.:
    222. *           $gameParty.aliveMembers()[0].raiseSkillProgressNoteChangeFactor(
    223. *           "cond", "states") will notify the 1st alive party member that the
    224. *           cond notetags might need to be recached due to potential changes
    225. *           in the states or their cond notetags
    226. *      11. (Advanced)skillProgressNoteResult(note, part)
    227. *         - Returns the cached intermediate result of part part in note note
    228. *           for the actor involved
    229. *         - note is either of the following:
    230. *           "cond"(corresponds to notetag content
    231. *                  cond suffix1 suffix2: entry1 entry2)
    232. *           "max"(corresponds to notetag content max suffix1: entry1)
    233. *           "useGain"(corresponds to notetag content useGain suffix1: entry1)
    234. *           "hitGain"(corresponds to notetag content hitGain suffix1: entry1)
    235. *           "next"(corresponds to notetag content next suffix1: entry1)
    236. *           "keepCurrent"(corresponds to notetag content
    237. *                         keepCurrent suffix1: entry1)
    238. *           "willEnd"(corresponds to notetag content willEnd suffix1: entry1)
    239. *           "didEnd"(corresponds to notetag content didEnd suffix1: entry1)
    240. *         - part is either of the following:
    241. *           "states"(All effective state notetags)
    242. *           "armors"(All effective armor notetags)
    243. *           "weapons"(All effective weapon notetags)
    244. *           "currentClass"(All effective class notetags)
    245. *           "actor"(All effective actor notetags)
    246. *         - It's supposed to be Nullipotent other than possible recaching
    247. *         - E.g.:
    248. *           $gameParty.aliveMembers()[0].skillProgressNoteResult(
    249. *           "cond", "states") will return the cached intermediate result of
    250. *           all effective cond notetags in states for the 1t alive party
    251. *           member
    252. *      12. (Advanced)invalidateSkillProgressNoteResult(note, part)
    253. *         - Invalidates the cached intermediate result of part part in note
    254. *           note for the actor involved
    255. *         - note is either of the following:
    256. *           "cond"(corresponds to notetag content
    257. *                  cond suffix1 suffix2: entry1 entry2)
    258. *           "max"(corresponds to notetag content max suffix1: entry1)
    259. *           "useGain"(corresponds to notetag content useGain suffix1: entry1)
    260. *           "hitGain"(corresponds to notetag content hitGain suffix1: entry1)
    261. *           "next"(corresponds to notetag content next suffix1: entry1)
    262. *           "keepCurrent"(corresponds to notetag content
    263. *                         keepCurrent suffix1: entry1)
    264. *           "willEnd"(corresponds to notetag content willEnd suffix1: entry1)
    265. *           "didEnd"(corresponds to notetag content didEnd suffix1: entry1)
    266. *         - part is either of the following:
    267. *           "states"(All effective state notetags)
    268. *           "armors"(All effective armor notetags)
    269. *           "weapons"(All effective weapon notetags)
    270. *           "currentClass"(All effective class notetags)
    271. *           "actor"(All effective actor notetags)
    272. *         - It's supposed to be Idempotent
    273. *         - E.g.:
    274. *           $gameParty.aliveMembers()[0].invalidateSkillProgressNoteResult(
    275. *           "cond", "states") will invalidate the cached intermediate result
    276. *           of all effective cond notetags in states for the 1t alive party
    277. *           member
    复制代码


    Plugin Commands
    Spoiler: Plugin Commands
                    JavaScript:       
    1. *      1. skillProgressCondDesc actorId skillId
    2. *         - The same as the script call skillProgressCondDesc(skillId) in
    3. *           Actor manipulations for the actor with id actorId
    4. *      2. maxSkillProgress actorId skillId
    5. *         - The same as the script call maxSkillProgress(skillId) in Actor
    6. *           manipulations for the actor with id actorId
    7. *      3. useGainSkillProgress actorId skillId
    8. *         - The same as the script call useGainSkillProgress(skillId) in
    9. *           Actor manipulations for the actor with id actorId
    10. *      4. hitGainSkillProgress actorId skillId target value
    11. *         - The same as the script call
    12. *           hitGainSkillProgress(skillId, target, value) in Actor
    13. *           manipulations for the actor with id actorId
    14. *      5. nextSkillProgress actorId skillId
    15. *         - The same as the script call nextSkillProgress(skillId) in Actor
    16. *           manipulations for the actor with id actorId
    17. *      6. isKeepSkillProgress actorId skillId
    18. *         - The same as the script call isKeepSkillProgress(skillId) in Actor
    19. *           manipulations for the actor with id actorId
    20. *      7. currentSkillProgress actorId skillId
    21. *         - The same as the script call currentSkillProgress(skillId) in
    22. *           Actor manipulations for the actor with id actorId
    23. *      8. setCurrentSkillProgress actorId skillId value
    24. *         - The same as the script call
    25. *           setCurrentSkillProgress(skillId, value) in Actor manipulations
    26. *           for the actor with id actorId
    27. *      9. (Advanced)raiseAllSkillProgressNoteChangeFactors actorId
    28. *         - The same as the script call
    29. *           raiseAllSkillProgressNoteChangeFactors() in Actor manipulations
    30. *           for the actor with id actorId
    31. *      10. (Advanced)raiseSkillProgressNoteChangeFactor actorId note factor
    32. *         - The same as the script call
    33. *           raiseSkillProgressNoteChangeFactor(note, factor) in Actor
    34. *           manipulations for the actor with id actorId
    35. *      11. (Advanced)skillProgressNoteResult actorId note part
    36. *         - The same as the script call skillProgressNoteResult(note, part)
    37. *           in Actor manipulations for the actor with id actorId
    38. *      12. (Advanced)invalidateSkillProgressNoteResult actorId note part
    39. *         - The same as the script call
    40. *           invalidateSkillProgressNoteResult(note, part) in Actor
    41. *           manipulations for the actor with id actorId
    复制代码


    Configurations
    Spoiler: Configurations
                    JavaScript:       
    1.         /**
    2.          * The this pointer refers to the Window_SkillProgressStat involved
    3.          * This configuration has no parameter counterparts
    4.          * Sets the skill progress stat window y position
    5.          * Hotspot/Nullipotent
    6.          * @since v1.00a @version v1.00a
    7.          * @param {Number} current - The current skill progress status
    8.          * @param {Number} max - The maximum skill progress status
    9.          * @param {Number} isKeep - If the skill will be kept upon progress
    10.          */
    11.         drawStat: function(current, max, isKeep) {
    12.             var line1Rect = this.itemRectForText(0);
    13.             var line2Rect = this.itemRectForText(1);
    14.             var line1Text = "Progress: " + current + "/" + max;
    15.             var line2Text = "Is Kept After Progress: " + isKeep;
    16.             this.drawText(line1Text, line1Rect.x, line1Rect.y, line1Rect.width);
    17.             this.drawText(line2Text, line2Rect.x, line2Rect.y, line2Rect.width);
    18.         }, // drawStat
    复制代码


    Author Notes
    Spoiler: Author Notes
                    JavaScript:       
    1. *      1. DoubleX RMMV Skill Progress aims to give extreme control and
    2. *         freedom to users by making it as flexible as I can with as little
    3. *         damage to user-friendliness as I can
    4. *      2. The configuration region is generally for more advanced uses, as
    5. *         most ordinary cases should be covered by parameters and notetags
    6. *      3. (Advanced)You might have to have a basic knowledge on what this
    7. *         Plugin Implementation does to fully utilize this plugin in intended
    8. *         ways and solid understanding on how this Plugin Implementation
    9. *         works to fully utilize this plugin with creative and unintended
    10. *         uses
    复制代码


    Instructions
    Spoiler: Instructions
                    JavaScript:       
    1. *      1. If you want to edit configurations instead of parameters, you must
    2. *         open this js file to access its configuration region
    3. *      2. The default plugin file name is doublex_rmmv_skill_progress_v100a
    4. *         If you want to change that, you must edit the value of
    5. *         DoubleX_RMMV.Skill_Progress_File, which must be done via opening
    6. *         this plugin js file directly
    7. *      3. If you wish to use DoubleX RMMV Skill Progress Unit Test, place it
    8. *         right below this plugin
    复制代码


    Prerequisites
    Spoiler: Prerequisites
                    JavaScript:       
    1. *      Abilities:
    2. *      1. Nothing special for most ordinary cases
    3. *      2. Little RMMV plugin development proficiency for more advanced uses
    4. *      3. Some RMMV plugin development proficiency to fully utilize this
    5. *         plugin in intended ways
    6. *      4. Decent RMMV plugin development proficiency to fully utilize this
    7. *         plugin with creative and unintended uses
    复制代码


    Terms Of Use
    Spoiler: Terms Of Use
                    JavaScript:       
    1. *      1. Commercial use's always allowed and crediting me's always optional.
    2. *      2. You shall keep this plugin's Plugin Info part's contents intact.
    3. *      3. You shalln't claim that this plugin's written by anyone other than
    4. *         DoubleX or my aliases. I always reserve the right to deny you from
    5. *         using any of my plugins anymore if you've violated this.
    6. *      4. If you repost this plugin directly(rather than just linking back),
    7. *         you shall inform me of these direct repostings. I always reserve
    8. *         the right to request you to edit those direct repostings.
    9. *      5. CC BY 4.0, except those conflicting with any of the above, applies
    10. *         to this plugin, unless you've my permissions not needing follow so.
    11. *      6. I always reserve the right to deny you from using this plugin
    12. *         anymore if you've violated any of the above.
    复制代码


    Authors
    DoubleX

    Todo

    Spoiler: Todo
                    JavaScript:       
    1. *      1. Add <skill progress instant suffix1: entry1>, where a falsy result
    2. *         from entry1 will let players to end progressing the skill at
    3. *         anytime they choose instead of always immediately
    复制代码


    Changelog
    Spoiler: Changelog
                    JavaScript:       
    1. *      v1.00a(GMT 0400 13-Nov-2019):
    2. *      1. 1st version of this plugin finished
    复制代码


    Download Links
    DoubleX RMMV Skill Progress
    DoubleX RMMV Skill Progress Unit Test
    DoubleX RMMV Skill Progres Compatibility


    本贴来自国际rpgmaker官方论坛作者:DoubleX处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/doublex-rmmv-skill-progress.120767/
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

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

    本版积分规则

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

    幸运抽奖

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

    立即查看

    聊天机器人
    Loading...

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

    GMT+8, 2026-8-1 11:48 , Processed in 0.067552 second(s), 52 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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