DoubleX 208 Posted September 8, 2014 (edited) Note You may want to use DoubleX RMVXA Bug Fixes for Yanfly Engine Ace - Buff & State Manager as well: http://www.rpgmakervxace.net/topic/21201-doublex-rmvxa-bug-fixes-for-yanfly-engine-ace-buff-state-manager/ Prerequisites DoubleX RMVXA Bug Fixes to YSA Battle System: Classical ATB http://www.rpgmakervxace.net/topic/21110-doublex-rmvxa-bug-fixes-to-ysa-battle-system-classical-atb/ YSA Battle System: Classical ATB(Created by Yami) http://www.rpgmakervxace.net/topic/865-ysa-battle-system-classical-atb/page-3?hl=+active%20+time%20+battle Yanfly Engine Ace - Buff & State Manager http://yanflychannel.wordpress.com/rmvxa/gameplay-scripts/buff-state-manager/ Script name DoubleX RMVXA Countdown Addon to YSA Battle System: Classical ATB Author DoubleX: - This script Yami: - YSA Battle System: Classical ATB Terms of use Same as those of - YSA Battle System: Classical ATB - Yanfly Engine Ace - Buff & State Manager except that you must also give Yami and Yanfly credits(you should do this anyway) if you give DoubleX or his alias credit Introduction Lets users set up to 4 states with duration being 1-99 seconds They can trigger actions under conditions checked every x seconds #------------------------------------------------------------------------------| # * State Notetags: <custom catb cs: i, c, a> | # Sets a state to use the "Duration In Turns" as the duration in seconds | # "Auto Removal Timing" is ignored and duration ranges from 1 to 99 seconds | # Actions a will be triggered if condition c is met and c will be checked | # every i seconds, where s ranges from 1 to 99 seconds | #------------------------------------------------------------------------------| #==============================================================================| # ** You only need to edit this part as it's about what this script does | #------------------------------------------------------------------------------| module DoubleX_RMVXA module YSA_CATB_Countdown_Addon #------------------------------------------------------------------------------| # * Custom catb countdown condition: c in <custom catb cs: i, c, a> | # To make <custom catb cs: i, c, a> work, the requirements in c must be met.| # These requirements are ruby scripts like those in events. | # The below CATBCX are examples of writing such codes and abtracting them in| # random cast notetags to aid users in understanding and using c there. | # To use CATBCX, set the value of c in random cast notetag as CATBCX. | # Users can set their own CATBCX(or whatever name they set) to be used by c.| # CATBCX names must start with letters and only use alphanumeric characters.| # (Needs decent scripting knowledge)CATBCX is evaluated in the new method | # update_state_catb_countdown(called every second) under class Game_Battler.| #------------------------------------------------------------------------------| # CATBC1, default = "true" # c is always true CATBC1 = "true" # CATBC2, default = "state?(x)" # c is true if and only if the battler has state with id x CATBC2 = "state?(x)" # CATBC3, default = "rand(x) < y" # c is true if and only the random number is smaller than y CATBC3 = "rand(x) < y" # CATBC4, default = CATBC2 + " || " + CATBC3 # c is true if and only CATBC2 or CATBC3 is true CATBC4 = CATBC2 + " || " + CATBC3 # CATBC5, default = "!state_resist?(x)" # c is true if and only the battler isn't resistant to state with id x CATBC5 = "!state_resist?(state_id)" # CATBC6, default = "(" + CATBC4 + ") && " + CATBC5 # c is true if and only CATBC4 and CATBC5 are true CATBC6 = "(" + CATBC4 + ") && " + CATBC5 # CATBC7, default = "@ct_catb_value > 0 && !charge_skill_done?" # c is true if and only the battler started but not finished charging CATBC7 = "@ct_catb_value > 0 && !charge_skill_done?" # CATBC8, default = "@catb_action_times == x" # c is true if and only the battler has eactly x action points CATBC8 = "@catb_action_times == x" # CATBC9, default = "$game_system.catb_turn_type == :tick" # c is true if and only the battle system turn type is :tick CATBC9 = "$game_system.catb_turn_type == :tick" #------------------------------------------------------------------------------| # * Custom catb countdown action: a in <custom catb cs: i, c, a> | # To make <custom catb cs: i, c, a> work, the actions in a must be defined. | # These actions are ruby scripts like those in events. | # The below CATBAX are examples of writing such codes and abtracting them in| # random cast notetags to aid users in understanding and using a there. | # To use CATBAX, set the value of a in random cast notetag as CATBAX. | # Users can set their own CATBAX(or whatever name they set) to be used by a.| # CATBAX names must start with letters and only use alphanumeric characters.| # (Needs decent scripting knowledge)CATBAX is evaluated in the new method | # update_state_catb_countdown(called every second) under class Game_Battler.| #------------------------------------------------------------------------------| # CATBA1, default = "$game_temp.reserve_common_event(common_event_id)" # a calls common event with id common_event_id CATBA1 = "$game_temp.reserve_common_event(common_event_id)" # CATBA2, default = # "@result.clear; @result.make_damage(x, $data_skills[y]); execute_damage(self)" # a executes x damage to self with type equal to that of skill with id y CATBA2 = "@result.clear; @result.make_damage(x, $data_skills[y]); execute_damage(self)" # CATBA3, default = "add_state(x)" # a adds state with id x to self CATBA3 = "add_state(x)" # CATBA4, default = CATBA2 + "; " + CATBA3 # a first does CATBA2 and then does CATBA3 CATBA4 = CATBA2 + "; " + CATBA3 # CATBA5, default = # "if rand(x) < y; " + CATBA2 + "; end; else; " + CATBA3 + "; end" # a does either CATBA2 or CATBA3 depending on the value of a random number CATBA5 = "if rand(x) < y; " + CATBA2 + "; end; else; " + CATBA3 + "; end" # CATBA6, default = "hide" # a does the same as what Special Effect Escape does CATBA6 = "hide" # CATBA7, default = "clear_catb" # a clears the battler's atb bar CATBA7 = "clear_catb" # CATBA8, default = "@state_turns[x] -= y" # a reduces the state's remaining turn by y CATBA8 = "@state_turns[x] -= y" # CATBA9, default = "@countdown_state_freeze[x] = true" # a freezes the countdown timer of a countdown state with id x CATBA9 = "@countdown_state_freeze[x] = true" #==============================================================================| Video https://www.youtube.com/watch?v=blpLdsc9bGQ&feature=youtu.be Features Use of notetags(requires knowledge of notetag usage) to set specific states to have a duration in specific seconds and specific conditions checked every set seconds triggering specific actionsUse of module constants simplifying the condition and action strings in notetagsDecent knowledge and understanding to boolean logic, RGSS3 and YSA-CATB scripts are needed to use this script to its full potential Instructions Open the script editor and put this script into an open slot between scripts - DoubleX RMVXA Bug Fixes to YSA Battle System: Classical ATB - Yanfly Engine Ace - Buff & State Manager and Main. Save to take effect. Compatibility Same as those of - YSA Battle System: Classical ATB - Yanfly Engine Ace - Buff & State Manager FAQ Q1: How to setup my own CATBCX and/or CATBAX without any scripting nor YSA-CATB scripts knowledge? A1: You can ask me here for ways to setup your specific CATBCX and/or CATBAX but I'm afraid I'm still not proficient enough to be a scripting teacher(and I used an entire week just to briefly understand the original YSA-CATB script) Changelog v1.00a(GMT 0100 8-9-2014): - 1st version of this script finished (DoubleX)YSA CATB Countdown Addon v1.00a.txt Edited September 19, 2014 by DoubleX 1 Share this post Link to post Share on other sites