have you ever wanted a patch for yanfly's YEZ: custom skill effects issues with tankentai? like the one that renders the tankentai action sequence useless. or tired of the hard configuration the KH ability system for the AP gaining? or how about having a ring like in RIBS? well all that for one super patch script. and whats more you can request your patch needed.. and now without further ado
Lvl 2: i now add a built in patch for tankentai m/ ATB vs KGC large party.
Lvl.3: now the ever wait tankentai w/ ATB custom action command patch is ready
Lvl.4: now a little fix for ICY's inventory system issues againts tankentai w/ ATB(non ATB works well with this)
Lvl.5: now presenting Auto-Patches. Patches that dont have specific configs.
Lvl.6: by request i made a little tweak on Wora's Neo gauge and all of yanfly's VAM(victory aftermath)
Lv.7: added to RubyCrystal's victory aftermath request he also added including it to menu redux as well
*new*
Lv.8: I added a new nece config for tankentai in effect of ability system. this allow to check if ability is equipped
Lv.9: Added a feature that creates a conflicting abilities. examples is autolife 1 cannot activate with autolife 2 so only one of them is active.
CODE
################################################################################
# #
# #
# ASCIIgod's Universal Script Pacthes #
# Lvl -9- #
# #
# #
################################################################################
=begin
-Introduction-
Before i begin my introduction first i must thank RRR and RMVX community
for providing me the scripts for my daily task on RPG making. And to all
of the author of those codes i salute you for your marvelous work. And to
honor your greatness i shall dedicate myself into making a single script
containing everything i patched with your works. For that i will add
your name here in the credit section for your script. As for my own motto
of "Credit isnt needed but appreciated", you, the auth0r of the script,
feel free to credit me for my work but as i said, i dont take credit.
Now for the intro. As i said in the name, This will be a single coded,
universal script patch where i add the specific code i implemented with the
specific script within this code. You might as well as say this will be a big
project ahead of me... I am aware of what im gonna do for as my work are all
patches and some whole code.
now without further ado, I shall give you ASCIIgod's USP..
Config: The config section will control how my USP will work. Each option has
its own description so read it well.
Changelog.
-Lvl.1 : Initial Coding. First ever patches(AP raised when level)
YEZ: Custom Skill Effect(fix the tankentai anim issue)
Boneless R.I.B.S. by OriginalWij(allows ring for tankentai)
-Lvl.2 : Adding a patch for tankentai with ATB and KGC Large party.
-Lvl.3 : Adding a patch for tankentai w/ ATB and YERD Custom Battle Action
-Lvl.4 : Adding a patch fir tankentai w/ ATB and ICY's Inventory system
-Lvl.5 : introducing Auto-Patches. Patches that dont need configurations...
AP01 -Adding a fix for tankentai w/ or w/o ATB vs YERD/YEM Victory Aftermath
AP02 -Adds a little tweak on OECS Durablity system that changes how durablity
decreases. Instead of each use of Attack command, now it depends on how
many hits you do... tankentai compliant
AP03 -Adding a very cool addon so if you have Walking Sprites Menu v2.0
by wltr3565 that enables changing actor pose when HP is low or dead...
-Lvl.6 : requested by RubyCrystal, he want YEZ or YERD Victory aftermath to inherit
the gauges from woratana NEO gauge.
-Lvl.7 : requested by RubyCrystal, Yanfly Menu Redux is now recompatible
w/ Neo Gauge of wora
-Lvl.8 :Added new nece for tankentai related for Ability system.
Now you can nece abilities as well.
-Lvl.9 :Added a feature that creates incompatible Abilities with
KH styled ability system. Example is Autolife 1 cannot
activate with Autolife 2... only 1 will be on. It will
save players AP when equipping abilities.
Credits:
-wltr3565 for Ability System AKA Kingdom Hearts Abilities
-Yanfly for YEZ: Custom Skill Effect
-Yanfly for YERD: CustomBattleAction
-Yanfly for Victory aftermath
-OriginalWij for Boneless R.I.B.S.
-whoever made KGC... the only pips in the credit in the code is the
translators which is mr. bubbles and mr. anonnimous
-ICY for his Inventory System
-Woratana for the Neo Gauge
Request Credits
-RubyCrystal(Lvl.6 & Lvl.7)
=end
module CONFIG
=begin
This is where all the controlling happens
=end
################################################################################
#This Triggers the activation of Auto-Patches... It has an Auto Detect system
#which prevent missing errors.
AUTO_PATCH_ON = false
################################################################################
################################################################################
#do you have wltr3565's Ability System??? if you do then turn it true
HAS_AP_SYSTEM = false
#if the above is true, would you like a static AP gaining system?
#this will render the code inside the ability system itself.(i find it
#harder to use)
ALLOW_LEVEL_AP = false
#when ALLOW_LEVEL_AP is true, how much per level?
AP_GAIN_LEVEL = 1
#when ALLOW_LEVEL_AP is false, set how you liked the AP is increased
#note that all equation must be inside the "". the code eval() will do the
#rest. use your imagination
#use this items, level, maxhp, maxmp, atk, def, spi, agi
#for the operators, you can use +, -, *, /, %, **, ()
#example: (level * 2) - 1 meaning.
#at level 3. you gain 5. (3 * 2 = 6),(6) - 1 = 5
AP_GAIN_FALSE = "level - 3"
################################################################################
################################################################################
=begin
here is the instruction for tankentai action when using
the new nece [5 = Ability]
Ex.
"NECE_SATORI" => ["nece",0,5,270,1]
or
"NECE_SATORI" => ["nece",B,C,D,E]
where the B indicating the target is self
the C means it calls the new nece
the D is the skill id turned into ability
and E means how many must be active...
=end
# A single action you can perform when ability isnt equipped and it returned
# false
ABILITY_NECE_CHANGE = "FLEE_RESET"
################################################################################
################################################################################
#List Ability that has an incompatibililty issues
CONFLICT_ABILITY =
{
270 => 271,
271 => 270,
}
################################################################################
################################################################################
#Do you both have tankentai w/ ATB and ICY's Inventory system
HAS_ATB_ICY_INVENT = false
################################################################################
################################################################################
#do you have both tankentai ATB and the new KGC party form?
HAS_TANKENTAIATB_PARTYFORM = false
################################################################################
################################################################################
#do you have YEZ: Custom Skill effect? This mark also the patching process
#for both scripts
HAS_YEZ_SKILL = true
################################################################################
################################################################################
#do you have Woratana's Neo gauge?
HAS_WORA_GAUGE = false
#what kind of yanfly series you got?
#can be YERD, YEZ or BEM/YEM
YANFLY_SERIES = "YEZ"
#same as above but currently i cant support BEM yet or YEZ
YANFLY_MENU = "YERD"
################################################################################
################################################################################
#do you have both tankentai ATB and YERD: CustomBattleAction?
HAS_YERD_CUSTOMACTION = false
################################################################################
################################################################################
#do you have OriginalWij's Boneless RIBS?
HAS_RIBS_RING = false
#do you want it for attacks?
RIBS_ATTACK = true
#do you want it for skills?
RIBS_SKILLS = true
#do you want it for items?
RIBS_ITEMS = true
#are you gonna use it with tankentai as well?
RIBS_TANKENTAI = true
=begin
to set up your ring, follow this steps
"do_ring( x_loc,y_loc,[hit_start,hit_end(add as many as you liked)],start_angle )"
where x_loc is the X location of the ring
where y_loc is the Y Location of the ring
hit_start is where the starting line of the hit range
hit_end is where the hit range terminates.
as i said, you can add as many hit_start and hit_ends. but my estimates says
is you can only make up to 10 to prevent over lappings
start_angle is where the spinning line start.
dont worry the detail much as it will be eval().
btw i will left everything editable blank as for you can edit it as first
=end
#if RIBS_ATTACK is true, would you like it fix configured or actor configured?
#true = fixed configured
#false = actor configured
RIBS_ATTACK_STATE = true
#when RIBS_ATTACK_STATE is true, how does the ring act?
RIBS_ATTACK_RING_FIX = "do_ring(150,150,[15,30,60,75,90,105],-90)"
#when RIBS_ATTACK_STATE is false who does the ring act?
RIBS_ATTACK_RING_ACTOR = {} #do not delete this. this is an important hash
RIBS_ATTACK_RING_ACTOR[1] = "do_ring(150,150,[15,30,60,75,90,105],-90)"
#if RIBS_SKILL is true, would you like it fix configured or actor configured?
#true = fixed configured
#false = actor configured
RIBS_SKILLS_STATE = true
#when RIBS_SKILLS_STATE is true, how does the ring act?
RIBS_SKILLS_RING_FIX = "do_ring(150,150,[15,30,60,75,90,105],-90)"
#when RIBS_SKILLS_STATE is false, how does the ring act?
RIBS_SKILLS_RING_ACTOR = {} #do not delete this. this is an important hash
RIBS_SKILLS_RING_ACTOR[1] = "do_ring(150,150,[15,30,60,75,90,105],-90)"
#if RIBS_ITEMS is true, would you like it fix configured or actor configured?
#true = fixed configured
#false = actor configured
RIBS_ITEMS_STATE = true
#when RIBS_ITEMS_STATE is true, how does the ring act?
RIBS_ITEMS_RING_FIX = "do_ring(150,150,[15,30,60,75,90,105],-90)"
#when RIBS_ITEMS_STATE is false, how does the ring act?
RIBS_ITEMS_RING_ACTOR = {} #do not delete this. this is an important hash
RIBS_ITEMS_RING_ACTOR[1] = "do_ring(150,150,[15,30,60,75,90,105],-90)"
#you can use this stuffs.
=begin
attacker = the one producing the damage
self = the one being targetted
atk
def
spi
agi
maxhp
hp
maxmp
mp
damage
$game_system.press_count
thats how many successful hit you done
unless attacker.is_a?(Game_Enemy)
add that to the end of your calculation to prevent bug when enemy attack
=end
#Adjust damages here
RIBS_ATTACK_ADJUSTMENT = "
if $game_system.press_count > 0
damage *= ($game_system.press_count) unless attacker.is_a?(Game_Enemy)
else
damage /= 2
end
"
RIBS_SKILLS_ADJUSTMENT = ""
RIBS_ITEMS_ADJUSTMENT = ""
################################################################################
end
=begin
This is where you back off. anything editted here will cause my patch to fail
=end
if CONFIG::HAS_WORA_GAUGE == true
if CONFIG::YANFLY_MENU == "YERD"
class Window_ReDuxMenuStatus < Window_MenuStatus
def refresh
@item_max = $game_party.members.size
create_contents
fill_stand_by_background if $imported["LargeParty"]
for actor in $game_party.members
draw_rd_menu_actor(actor)
x = 104
y = actor.index * 96
draw_actor_name(actor, x, y)
draw_actor_class(actor, x + 120, y)
draw_actor_level(actor, x, y + WLH * 1)
draw_actor_state(actor, x, y + WLH * 2)
draw_actor_hp(actor, x + 120, y + WLH * 1, 120)
draw_actor_mp(actor, x + 120, y + WLH * 2, 120)
draw_rd_menu_exp(actor, x + 120, y + WLH * 3, 120)
end
end
def draw_rd_menu_exp(actor, x, y, size = 120)
if actor.next_exp != 0
gw = size * actor.now_exp
gw /= actor.next_exp
else
gw = size
end
gc1 = text_color(YE::REDUX::MENU::EXP_GAUGE_1)
gc2 = text_color(YE::REDUX::MENU::EXP_GAUGE_2)
draw_neo_gauge(x, y + WLH - 8, size, 9, gauge_back_color, gauge_back_color, gauge_back_color, false,
true, size, 50)
draw_neo_gauge(x, y + WLH - 8, size, 9, gc1, gc2, gauge_back_color, false,
true, gw, 50)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 40, WLH, YE::REDUX::MENU::EXP_TEXT)
self.contents.font.color = normal_color
if actor.next_exp != 0
expercent = actor.now_exp * 100.000
expercent /= actor.next_exp
else
expercent = 100.000
end
expercent = 100.000 if expercent > 100.000
text = sprintf(YE::REDUX::MENU::PERCENT_EXP, expercent)
self.contents.draw_text(x, y, size, WLH, text, 2)
end
end
end
if CONFIG::YANFLY_SERIES == "YERD"
class Window_Party_Exp_Front < Window_Base
def refresh(extraper = 0)
self.contents.clear
px = (self.width - 32) / 2 - ($game_party.members.size * 120) / 2
@full_actors = 0
for actor in $game_party.members
#---
self.contents.font.color = normal_color
self.contents.font.size = Font.default_size
py = WLH * 4
#---
pw = 96
gc1 = text_color(YE::BATTLE::DISPLAY::VA_EXP_GAUGE_COLOUR1)
gc2 = text_color(YE::BATTLE::DISPLAY::VA_EXP_GAUGE_COLOUR2)
if actor.level > $old_level[actor.id]
gw = pw
gc1 = text_color(YE::BATTLE::DISPLAY::VA_LVL_UP_GAUGE1)
gc2 = text_color(YE::BATTLE::DISPLAY::VA_LVL_UP_GAUGE2)
elsif actor.next_exp != 0
gw = pw * (actor.now_exp + exp_gained(extraper, actor))
gw /= actor.next_exp
gw = pw if gw > pw
else
gw = pw
end
draw_neo_gauge(px + 12, py - 6, 96, 10, gauge_back_color, gauge_back_color, gauge_back_color, false,
true, 96, 50)
draw_neo_gauge(px + 12, py - 6, 96, 10, gc1, gc2, gauge_back_color, false,
true, gw, 50)
#---
self.contents.font.size = YE::BATTLE::DISPLAY::VA_FONT_SIZE
if actor.level > $old_level[actor.id]
colour = text_color(YE::BATTLE::DISPLAY::VA_LVL_UP_TEXT_COLOUR)
self.contents.font.color = colour
text = YE::BATTLE::DISPLAY::VA_LVL_UP_TEXT
elsif actor.next_exp != 0
text = sprintf(YE::BATTLE::DISPLAY::VA_MSG_NEXT_LVL, actor.level + 1)
else
text = YE::BATTLE::DISPLAY::VA_MSG_MAX_LVL
end
self.contents.draw_text(px, py, 120, WLH, text, 1)
self.contents.font.color = normal_color
#---
py += WLH
if actor.level > $old_level[actor.id]
expercent = 100.000
text = sprintf(YE::BATTLE::DISPLAY::VA_PERCENT_EXP, expercent)
self.contents.draw_text(px, py - WLH * 2, 120, WLH, text, 1)
text = sprintf(YE::BATTLE::DISPLAY::VA_LVL_UP_LEVEL, actor.level)
self.contents.draw_text(px, py, 120, WLH, text, 1)
else
if actor.next_exp != 0
expercent = (actor.now_exp + exp_gained(extraper, actor))* 100.000
expercent /= actor.next_exp
if expercent > 100.000
expercent = 100.000
@full_actors += 1
end
value = actor.next_rest_exp_s - exp_gained(extraper, actor)
value = 0 if value < 0
else
expercent = 100.000
@full_actors += 1
end
text = sprintf(YE::BATTLE::DISPLAY::VA_PERCENT_EXP, expercent)
self.contents.draw_text(px, py - WLH * 2, 120, WLH, text, 1)
if actor.next_exp != 0
text = sprintf(YE::BATTLE::DISPLAY::VA_NEXT_LV_EXP, value)
else
text = ""
end
self.contents.draw_text(px, py, 120, WLH, text, 1)
end
#---
px += 120
end
end
end
end
if CONFIG::YANFLY_MENU == "YEZ"
end
if CONFIG::YANFLY_SERIES == "YEZ"
class Window_Party_Exp_Front < Window_Base
def draw_exp_gauge(actor, dx, dy, extra_per)
self.contents.font.size = YEZ::VICTORY::EXP_FONT_SIZE
gc1 = text_color(YEZ::VICTORY::EXP_GAUGE_1)
gc2 = text_color(YEZ::VICTORY::EXP_GAUGE_2)
if actor.level > $game_temp.victory_clone[actor.id].level
gc1 = text_color(YEZ::VICTORY::LVL_GAUGE_1)
gc2 = text_color(YEZ::VICTORY::LVL_GAUGE_2)
gw = 96
self.contents.font.color = text_color(YEZ::VICTORY::LVL_COLOUR)
text = YEZ::VICTORY::VOCAB[:level_up]
elsif actor.next_exp != 0
gw = 96 * (actor.now_exp + exp_gained(extra_per, actor))
gw /= actor.next_exp
gw = [[gw, 96].min, 0].max
text = sprintf(YEZ::VICTORY::VOCAB[:next_level], actor.level + 1)
if gw == 96
self.contents.font.color = text_color(YEZ::VICTORY::LVL_COLOUR)
gc1 = text_color(YEZ::VICTORY::LVL_GAUGE_1)
gc2 = text_color(YEZ::VICTORY::LVL_GAUGE_2)
text = YEZ::VICTORY::VOCAB[:level_up]
end
else
gw = 96
text = YEZ::VICTORY::VOCAB[:max_level]
end
draw_neo_gauge(dx + 12, dy - 6, 96, 10, gauge_back_color, gauge_back_color, gauge_back_color, false,
true, 96, 50)
draw_neo_gauge(dx + 12, dy - 6, 96, 10, gc1, gc2, gauge_back_color, false,
true, gw, 50)
self.contents.draw_text(dx, dy, 120, WLH, text, 1)
self.contents.font.color = normal_color
end
end
end
if CONFIG::YANFLY_SERIES == "BEM"
class Window_Party_Exp_Front < Window_Base
def draw_exp_gauge(actor, dx, dy, extra_per)
self.contents.font.size = YEM::VICTORY::EXP_FONT_SIZE
gc1 = text_color(YEM::VICTORY::EXP_GAUGE_1)
gc2 = text_color(YEM::VICTORY::EXP_GAUGE_2)
if actor.level > $game_temp.victory_clone[actor.id].level
gc1 = text_color(YEM::VICTORY::LVL_GAUGE_1)
gc2 = text_color(YEM::VICTORY::LVL_GAUGE_2)
gw = 96
self.contents.font.color = text_color(YEM::VICTORY::LVL_COLOUR)
text = YEM::VICTORY::VOCAB[:level_up]
elsif actor.next_exp != 0
gw = 96 * (actor.now_exp + exp_gained(extra_per, actor))
gw /= actor.next_exp
gw = [[gw, 96].min, 0].max
text = sprintf(YEM::VICTORY::VOCAB[:next_level], actor.level + 1)
if gw == 96
self.contents.font.color = text_color(YEM::VICTORY::LVL_COLOUR)
gc1 = text_color(YEM::VICTORY::LVL_GAUGE_1)
gc2 = text_color(YEM::VICTORY::LVL_GAUGE_2)
text = YEM::VICTORY::VOCAB[:level_up]
end
else
gw = 96
text = YEM::VICTORY::VOCAB[:max_level]
end
if $imported["CoreFixesUpgradesMelody"] and YEM::UPGRADE::OUTLINE
draw_neo_gauge(dx + 12, dy - 8, 96, 10, gc1, gc2, gauge_back_color, false,
true, 96, 50)
draw_neo_gauge(dx + 12, dy - 8, 96, 10, gc1, gc2, gauge_back_color, false,
true, gw, 50)
else
draw_neo_gauge(dx + 12, dy - 6, 96, 10, gc1, gc2, gauge_back_color, false,
true, 96, 50)
draw_neo_gauge(dx + 12, dy - 6, 96, 10, gc1, gc2, gauge_back_color, false,
true, gw, 50)
end
self.contents.draw_text(dx, dy, 120, WLH, text, 1)
self.contents.font.color = normal_color
end
end
end
end
if CONFIG::AUTO_PATCH_ON == true
#AP01
#Patches Victory Aftermath for Tankentai ATB or no ATB
if $imported["TankentaiSideview"] == true && $imported["VictoryAftermath"] == true
class Scene_Battle < Scene_Base
def process_victory
if $imported["TankentaiATB"] == true
@spriteset.atb_dispose
$game_troop.clear_actions
$game_party.clear_actions
end
for actor in $game_party.members
unless actor.restriction >= 4
@spriteset.set_action(true, actor.index,actor.win)
end
end
wait(YEZ::VICTORY::WAIT, true)
@info_viewport.visible = false
if $imported["BattleEngineZealous"]
@message_window.dispose
@message_window = Window_BattleMessage.new
elsif $imported["VictoryCompatibility"]
@message_window.dispose
@message_window = Window_BattleMessageCompatible.new
end
@message_window.visible = true
unless $game_switches[YEZ::VICTORY::BYPASS_BGM_SWITCH]
RPG::BGM.stop
$game_system.battle_end_me.play
YEZ::VICTORY::BGM.play unless YEZ::VICTORY::BGM == nil
end
create_victory_clones
create_victory_actor
display_exp_and_gold
display_level_up
display_drop_items
battle_end(0)
$game_temp.victory_actor = nil
$game_temp.victory_clone = nil
if $imported["BattleEngineZealous"] and
YEZ::BATTLE::ZEALOUS::COMMON_EVENTS[:battle_end] != nil
common_event = YEZ::BATTLE::ZEALOUS::COMMON_EVENTS[:battle_end]
$game_temp.common_event_id = common_event
end
victory_me = Thread.new {
time = YEZ::VICTORY::FANFARE_FADE
RPG::ME.fade(time)
sleep(time / 1000.0)
RPG::ME.stop }
battle_end(0)
end
end
#AP02
#Make it so durablity lost happen each attack
if $imported["TankentaiSideview"] == true
class Game_Battler
alias asciigod_make_attack_damage_value make_attack_damage_value
def make_attack_damage_value(attacker)
asciigod_make_attack_damage_value
if rand(100) < OECS::Durability::ChancePerAttackToDecreaseDur
$data_weapons[@active_battler.weapon_id].durability -= 1 unless self.is_a?(Game_Enemy)
end
end
end
end
#AP03
#A tweak for the walking sprite
if WLTR::SPRITE_RANDOM_DIR == false
class Window_Base < Window
def draw_actor_graphic_extreme(actor, x, y, anim, step)
percent = 100 * actor.hp / actor.maxhp
if percent > 25
draw_character_1(actor.character_name, 0, x, y, anim,step)
elsif percent < 25
draw_character_1(actor.character_name, 0, x, y, anim,2)
else
draw_character_1(actor.character_name, 0, x, y, anim,step)
end
end
def draw_character_1(character_name, character_index, x, y,anim,step)
return if character_name == nil
bitmap = Cache.character(character_name+"_1")
sign = character_name[/^[\!\$]./]
if sign != nil and sign.include?('$')
cw = bitmap.width / 3
ch = bitmap.height / 4
else
cw = bitmap.width / 12
ch = bitmap.height / 8
end
n = character_index
a = anim
b = step
src_rect = Rect.new((n%4*3+a)*cw, (n/4*4+b)*ch, cw, ch) unless b == nil
self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect) unless b == nil
end
def draw_character_2(character_name, character_index, x, y,anim,step)
return if character_name == nil
bitmap = Cache.character(character_name+"_2")
sign = character_name[/^[\!\$]./]
if sign != nil and sign.include?('$')
cw = bitmap.width / 3
ch = bitmap.height / 4
else
cw = bitmap.width / 12
ch = bitmap.height / 8
end
n = character_index
a = anim
b = step
src_rect = Rect.new((n%4*3+a)*cw, (n/4*4+b)*ch, cw, ch) unless b == nil
self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect) unless b == nil
end
end
end
end
end
if CONFIG::HAS_ATB_ICY_INVENT == true
class Scene_Battle < Scene_Base
def start_item_selection
@help_window = Window_Help.new
@item_window = IEX_Window_Actor_Inventory.new(@commander, 0, 56, 544, 232)
@item_window.help_window = @help_window
@actor_command_window.active = false
end
end
end
if CONFIG::HAS_YERD_CUSTOMACTION == true
class Scene_Battle < Scene_Base
def update_actor_command_selection
@commander.custom_action_flag = false
commands = @actor_command_window.command
return reset_command unless commanding?
if Input.trigger?(Input::B)
Input.update
Sound.play_decision
start_party_command
elsif Input.trigger?(Input::C)
Input.update
case commands
when "-Attack"
Sound.play_decision
@commander.action.set_attack
start_target_enemy_selection
when "-Skill"
Sound.play_decision
start_skill_selection
when "-Guard"
Sound.play_decision
@commander.action.set_guard
end_command
when "-Item"
Sound.play_decision
$in_select = true
start_item_selection
when "-Wait"
Sound.play_decision
@commander.action.kind = 0
@commander.action.basic = 3
end_commander
when "-Soul Crush"
if @commander.rage < 100
Sound.play_buzzer
else
Sound.play_decision
@commander.action.set_attack2
start_target_enemy_selection
end
else
unless YE::BATTLE::COMMANDS::CUSTOM_COMMANDS.include?(command)
Sound.play_buzzer
else
@active_battler.custom_action_flag = true
@skill = $data_skills[YE::BATTLE::COMMANDS::CUSTOM_COMMANDS[command]]
if @commander.skill_can_use?(@skill)
Sound.play_decision
if $imported["CustomSkillEffects"] and @skill.mix_items
start_skill_selection
create_mix_item_windows
elsif $imported["CustomSkillEffects"] and @skill.subskills != []
start_skill_selection
create_subskill_windows
elsif $imported["CustomSkillEffects"] and @skill.chain_type > 0
start_skill_selection
create_chain_windows
elsif $imported["CustomSkillEffects"] and @skill.throw_skill
start_skill_selection
create_throw_windows
else
determine_custom_action
end
else
Sound.play_buzzer
end
end
end
elsif Input.trigger?(Input::RIGHT)
next_commander
# ←キーでコマンドキャラ戻し
elsif Input.trigger?(Input::LEFT)
back_commander
end
end
end
def determine_custom_action
@commmander.action.set_skill(@skill.id)
if @skill.need_selection?
if @skill.for_opponent?
start_target_enemy_selection
else
start_target_actor_selection
end
else
next_commander
end
end
end
if CONFIG::HAS_TANKENTAIATB_PARTYFORM == true
class Window_PartyCommand2 < Window_Selectable
def initialize
super(0, 234, 544, 56)
@item_max = 3
@column_max = 3
self.contents.draw_text(12, 0, 96, WLH, "#{Vocab.fight}", 2) # 1.1b
self.contents.draw_text(180, 0, 96, WLH, "#{Vocab.escape}", 2) if $game_troop.can_escape # 1.1b
self.contents.draw_text(360, 0, 96, WLH, "#{Vocab.partyform_battle}", 2) if $game_switches[KGC::LargeParty::BATTLE_PARTYFORM_SWITCH] == true
self.contents.font.color.alpha = 128
self.contents.draw_text(310, 0, 96, WLH, "#{Vocab.escape}", 2) if !$game_troop.can_escape # 1.1b
self.active = false
end
end
class Scene_Battle < Scene_Base
def create_info_viewport
@command_members = []
@action_battlers = []
@info_viewport = Viewport.new(0, 288, 544, 128)
@info_viewport.z = 100
@status_window = Window_BattleStatus.new
@party_command_window = Window_PartyCommand2.new
@actor_command_window = Window_ActorCommand.new
@status_window.viewport = @info_viewport
@actor_command_window.viewport = @info_viewport
@status_window.x = 128
@actor_command_window.x = 672
@info_viewport.visible = false
@party_command_window.visible = false
@info_viewport.ox = 128
end
alias update_party_command_selection_ASCIIGOD_patch update_party_command_selection
def update_party_command_selection
if Input.trigger?(Input::C)
case @party_command_window.index
when 2 # パーティ編成
unless $game_party.battle_partyform_enable?
Sound.play_buzzer
return
end
Sound.play_decision
process_partyform
return
end
end
update_party_command_selection_ASCIIGOD_patch
end
end
end
if CONFIG::HAS_AP_SYSTEM == true
class Game_Actor < Game_Battler
include(CONFIG)
if ALLOW_LEVEL_AP == true
def maxap
result = @maxap + @maxap_plus
for item in equips.compact
result += item.ap_boost
result -= item.ap_deboost
end
for level in 0...@level
result += AP_GAIN_LEVEL
end
return [[result, WLTR::ABILITY_SETUP::AP_LIMIT_MAX].min, WLTR::ABILITY_SETUP::AP_LIMIT_MIN].max
end
else
def maxap
result = @maxap + @maxap_plus
for item in equips.compact
result += item.ap_boost
result -= item.ap_deboost
end
for level in 0...@level
result += eval(AP_GAIN_FALSE)
end
return [[result, WLTR::ABILITY_SETUP::AP_LIMIT_MAX].min, WLTR::ABILITY_SETUP::AP_LIMIT_MIN].max
end
end
def maxap=(value)
@maxap += value
end
end
end #Check if has AP system
if CONFIG::HAS_YEZ_SKILL == true
class Scene_Battle < Scene_Base
def perform_skill(skill)
custom_skill_effects(skill, "BEFORE") unless skill.custom_before.empty?
skill = @active_battler.action.skill
return unless @active_battler.action.valid? # 3.3d, Force action bug fix
if skill.plus_state_set.include?(1)
for member in $game_party.members + $game_troop.members
next if member.immortal
next if member.dead?
member.dying = true
end
else
immortaling
end
target_decision(skill)
if CONFIG::HAS_RIBS_RING == true
if CONFIG::RIBS_TANKENTAI == true
if RIBS_SKILLS_STATE == true
eval(RIBS_SKILLS_RING_FIX)
else
eval(RIBS_SKILLS_RING_ACTOR[@active_battler.id])
end
end
end
@spriteset.set_action(@active_battler.actor?, @active_battler.index, skill.base_action)
pop_help(skill)
playing_action
@active_battler.perform_skill_cost(skill)
@status_window.refresh
$game_temp.common_event_id = skill.common_event_id
custom_skill_effects(skill, "AFTER") unless skill.custom_after.empty?
#time_apply(skill) if !skill.time_skills.empty?
#charge_apply(skill) if skill.charge_id != 0
end
end
end #check if has YEZ::Custom Skill Effect
if CONFIG::HAS_RIBS_RING == true
if CONFIG::RIBS_TANKENTAI == true #tankentai
class Scene_Battle < Scene_Base
include(CONFIG)
def execute_action_attack
if @active_battler.actor?
if @active_battler.weapon_id == 0
if RIBS_ATTACK_STATE == true
eval(RIBS_ATTACK_RING_FIX)
else
eval(RIBS_ATTACK_RING_ACTOR[@active_battler.id])
end
action = @active_battler.non_weapon
immortaling
else
if RIBS_ATTACK_STATE == true
eval(RIBS_ATTACK_RING_FIX)
else
eval(RIBS_ATTACK_RING_ACTOR[@active_battler.id])
end
action = $data_weapons[@active_battler.weapon_id].base_action
if $data_weapons[@active_battler.weapon_id].state_set.include?(1)
for member in $game_party.members + $game_troop.members
next if member.immortal
next if member.dead?
member.dying = true
end
else
immortaling
end
end
else
if @active_battler.weapon == 0
action = @active_battler.base_action
immortaling
else
action = $data_weapons[@active_battler.weapon].base_action
if $data_weapons[@active_battler.weapon].state_set.include?(1)
for member in $game_party.members + $game_troop.members
next if member.immortal
next if member.dead?
member.dying = true
end
else
immortaling
end
end
end
target_decision
@spriteset.set_action(@active_battler.actor?, @active_battler.index, action)
playing_action
end
def execute_action_item
item = @active_battler.action.item
# 戦闘不能付与のアイテムで不死身設定を分岐
if item.plus_state_set.include?(1)
for member in $game_party.members + $game_troop.members
next if member.immortal
next if member.dead?
member.dying = true
end
else
# 行動中に死なないようメンバー全員を不死身化
immortaling
end
$game_party.consume_item(item)
target_decision(item)
if RIBS_ITEMS_STATE == true
eval(RIBS_ITEMS_RING_FIX)
else
eval(RIBS_ITEMS_RING_ACTOR[@active_battler.id])
end
@spriteset.set_action(@active_battler.actor?, @active_battler.index, item.base_action)
pop_help(item)
playing_action
$game_temp.common_event_id = item.common_event_id
end
end
else #default
class Scene_Battle < Scene_Base
include(CONFIG)
if RIBS_ATTACK == true
def execute_action_attack
text = sprintf(Vocab::DoAttack, @active_battler.name)
@message_window.add_instant_text(text)
targets = @active_battler.action.make_targets
if RIBS_ATTACK_STATE == true
do_ring(eval(RIBS_ATTACK_RING_FIX))
else
do_ring(eval(RIBS_ATTACK_RING_ACTOR[@active_battler.id]))
end
display_attack_animation(targets)
wait(20)
for target in targets
target.attack_effect(@active_battler)
display_action_effects(target)
end
end
end
if RIBS_SKILLS == true
def execute_action_skill
skill = @active_battler.action.skill
text = @active_battler.name + skill.message1
@message_window.add_instant_text(text)
unless skill.message2.empty?
wait(10)
@message_window.add_instant_text(skill.message2)
end
targets = @active_battler.action.make_targets
if RIBS_SKILLS_STATE == true
do_ring(eval(RIBS_SKILLS_RING_FIX))
else
do_ring(eval(RIBS_SKILLS_RING_ACTOR[@active_battler.id]))
end
display_animation(targets, skill.animation_id)
@active_battler.mp -= @active_battler.calc_mp_cost(skill)
$game_temp.common_event_id = skill.common_event_id
for target in targets
target.skill_effect(@active_battler, skill)
display_action_effects(target, skill)
end
end
end
if RIBS_ITEMS == true
def execute_action_item
item = @active_battler.action.item
text = sprintf(Vocab::UseItem, @active_battler.name, item.name)
@message_window.add_instant_text(text)
targets = @active_battler.action.make_targets
if RIBS_ITEMS_STATE == true
do_ring(eval(RIBS_ITEMS_RING_FIX))
else
do_ring(eval(RIBS_ITEMS_RING_ACTOR[@active_battler.id]))
end
display_animation(targets, item.animation_id)
$game_party.consume_item(item)
$game_temp.common_event_id = item.common_event_id
for target in targets
target.item_effect(@active_battler, item)
display_action_effects(target, item)
end
end
end
end
end #check if has tankentai or not
class Game_Battler
include(CONFIG)
def make_attack_damage_value(attacker)
damage = attacker.atk - self.def # base calculation
damage = 0 if damage < 0 # if negative, make 0
damage *= elements_max_rate(attacker.element_set) # elemental adjustment
damage /= 100
if damage == 0 # if damage is 0,
damage = rand(2) # half of the time, 1 dmg
elsif damage > 0 # a positive number?
@critical = (rand(100) < attacker.cri) # critical hit?
@critical = false if prevent_critical # criticals prevented?
damage *= 3 if @critical # critical adjustment
end
eval(RIBS_ATTACK_ADJUSTMENT)
#damage = apply_variance(damage, 20) # variance
damage = apply_guard(damage) # guard adjustment
@hp_damage = damage # damage HP
end
def make_obj_damage_value(user, obj)
damage = obj.base_damage # get base damage
if damage > 0 # a positive number?
damage += user.atk * 4 * obj.atk_f / 100 # Attack F of the user
damage += user.spi * 2 * obj.spi_f / 100 # Spirit F of the user
unless obj.ignore_defense # Except for ignore defense
damage -= self.def * 2 * obj.atk_f / 100 # Attack F of the target
damage -= self.spi * 1 * obj.spi_f / 100 # Spirit F of the target
end
damage = 0 if damage < 0 # If negative, make 0
elsif damage < 0 # a negative number?
damage -= user.atk * 4 * obj.atk_f / 100 # Attack F of the user
damage -= user.spi * 2 * obj.spi_f / 100 # Spirit F of the user
end
eval(RIBS_SKILLS_ADJUSTMENT)
damage *= elements_max_rate(obj.element_set) # elemental adjustment
damage /= 100
damage = apply_variance(damage, obj.variance) # variance
damage = apply_guard(damage) # guard adjustment
if obj.damage_to_mp
@mp_damage = damage # damage MP
else
@hp_damage = damage # damage HP
end
end
def calc_hp_recovery(user, item)
result = maxhp * item.hp_recovery_rate / 100 + item.hp_recovery
result *= 2 if user.pharmacology # Pharmacology doubles the effect
eval(RIBS_ITEMS_ADJUSTMENT)
return result
end
end
end #check if has RIBS
if $imported["wltr3565's_Ability_System"] == true
class Scene_Ability < Scene_Base
def equip_the_ability(ability)
if ability = CONFIG::CONFLICT_ABILITY[ability]#CONFIG::CONFLICT_ABILITY.include?(ability)
@actor.equip_ability(CONFIG::CONFLICT_ABILITY[ability])
@actor.unequip_ability(ability)
else
@actor.equip_ability(ability)
end
Sound.play_equip
@ability_status.refresh
@ability_window.refresh
end
end
class Sprite_Battler < Sprite_Base #for tankentai
alias asciigod_necessary necessary
def necessary
asciigod_necessary
case @active_action[2]
when 5
# スキル条件人数を出す
skill_member = nece2.abs
for member in target
skill_member -= 1 if member.ability_equiped?(nece1, true)#skill_learn?(nece1)
# 条件確認
return @action = [CONFIG::ABILITY_NECE_CHANGE] if skill_member == 0
end
end
end
end
end
as of now i now permit of this script to be added to this following sites
-www.rpgmakervx.net
the poster must add this line as proof i get the credit for my own script
"ASCIIgod/Tamahome_zitser Ownership seal. 2012"
This post has been edited by ASCIIgod: Aug 1 2012, 03:46 AM