Adicionado de Opções ao Ator
Versão: 1.0a
Autor: cozziekuns
Data: 24 de junho, 2010
Histórico da Versão
2010/08/21 - Lançado com Last Stand
1.0>
Descrição
Antes, havia apenas seis opções de ator que você pode escolher, e eles foram um pouco aborrecido. Os únicos que a maioria das pessoas realmente utilizados foram duas espadas estilo e bônus de críticos, e mesmo assim eles foram utilizados com bastante moderação. Acho que as opções ator adicionar muita variedade no jogo, por isso, tomei-o como meu trabalho para criar as melhores opções de ator que eu (e Square Enix, como a maioria deles são arrancadas de FFTA2) poderia pensar.
Concentração: Dá o ator um bônus de precisão acrescentou.
Reduzir para metade a MP: Metades do MP para todas as habilidades. Não acumula com a opção de armadura.
Imunidade: Concede imunidade a todos os estados, bom ou ruim.
Monkey Grip: Permite que o ator para equipar um escudo independentemente de a sua arma é uma mão ou duas mãos.
Spellbound: Estados vão permanecer em vigor por duas vezes mais longo.
Razzle Dazzle: bom nome para Auto-Regen.
Unscarred: Quando o ator está em plena saúde, o ataque é aumentado.
Adrenalina: Quando o ator está no crítico de saúde, a velocidade é aumentada.
Alma sobrecarregada: Quando o ator é crítico para a saúde, ele é nocauteado e todos os outros membros do grupo HP e MP é totalmente recuperado.
Vigilância: Quando o ator está no crítico de saúde, a defesa é aumentada.
Príncipe: Habilidades assumir HP ao invés de MP.
Last Stand: Quando o ator está no crítico de saúde, tanto Dano Crítico e Taxa são aumentadas.
Características
Basicamente disse-lhes na descrição, por isso ... yeah.
Script
Creditos
cozziekuns
Versão: 1.0a
Autor: cozziekuns
Data: 24 de junho, 2010
Histórico da Versão
2010/08/21 - Lançado com Last Stand
1.0>
Descrição
Antes, havia apenas seis opções de ator que você pode escolher, e eles foram um pouco aborrecido. Os únicos que a maioria das pessoas realmente utilizados foram duas espadas estilo e bônus de críticos, e mesmo assim eles foram utilizados com bastante moderação. Acho que as opções ator adicionar muita variedade no jogo, por isso, tomei-o como meu trabalho para criar as melhores opções de ator que eu (e Square Enix, como a maioria deles são arrancadas de FFTA2) poderia pensar.
Concentração: Dá o ator um bônus de precisão acrescentou.
Reduzir para metade a MP: Metades do MP para todas as habilidades. Não acumula com a opção de armadura.
Imunidade: Concede imunidade a todos os estados, bom ou ruim.
Monkey Grip: Permite que o ator para equipar um escudo independentemente de a sua arma é uma mão ou duas mãos.
Spellbound: Estados vão permanecer em vigor por duas vezes mais longo.
Razzle Dazzle: bom nome para Auto-Regen.
Unscarred: Quando o ator está em plena saúde, o ataque é aumentado.
Adrenalina: Quando o ator está no crítico de saúde, a velocidade é aumentada.
Alma sobrecarregada: Quando o ator é crítico para a saúde, ele é nocauteado e todos os outros membros do grupo HP e MP é totalmente recuperado.
Vigilância: Quando o ator está no crítico de saúde, a defesa é aumentada.
Príncipe: Habilidades assumir HP ao invés de MP.
Last Stand: Quando o ator está no crítico de saúde, tanto Dano Crítico e Taxa são aumentadas.
Características
Basicamente disse-lhes na descrição, por isso ... yeah.
Script
- Código:
#===============================================================================
#
# Added Actor Options
# Last Date Updated: 6/24/2010
#
# Before, there were only six actor options that you could choose from, and they
# were a bit dull. The only ones that most people actually used were two swords
# style and critical bonus, and even then they were used quite sparingly. I find
# that actor options add a lot of variety into the game, so I took it up as my
# job to create the best actor options I (and Square Enix, as most of them are
# ripped of FFTA2) could think of.
#
# Note: The best way to use these skills would be with Modern Algebra's Editable
# actor options, or with that equipment skill that allowed equipment to have
# actor options (whoever wrote that script, contact me so I can credit you
# and your script)
#
# Concentration: Gives the actor an added accuracy bonus.
# Halve MP: Halves the MP for all skills. Does not stack with the armour option.
# Immunity: Grants immunity to all states, good or bad.
# Monkey Grip: Allows the actor to equip a shield regardless of whether their
# weapon is one-handed or two-handed.
# Spellbound: States will stay in effect for two times as long.
# Razzle Dazzle: Nice name for Auto-Regen.
# Unscarred: When the actor is on full health, attack is increased.
# Adrenaline: When the actor is on critical health, speed is increased.
# Burdened Soul: When the actor is on critical health, he is knocked out and all
# other party members are fully recovered,
# Vigilance: When the actor is on critical health, defense is increased.
# Blood Prince: Skills take up HP instead of MP.
# Last Stand: When the actor is on critical health, both Critical Damage and
# Rate are increased.
#
#===============================================================================
# Updates
# -----------------------------------------------------------------------------
# o 06/24/10 Started Script.
#===============================================================================
# What's to come?
# -----------------------------------------------------------------------------
# o Nothing! Suggest something.
#===============================================================================
# Instructions
# -----------------------------------------------------------------------------
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ? Materials but above ? Main. Remember to save.
#
# To change the modules, follow the correct syntax. For example, if I wanted
# Ulrika (who has the actor ID of 2) to have the ability IMMUNITY, I would
# scroll down to the line with immunity and place her ID in the brackets. Or,
# essentially:
#
# IMMUNITY = [2]
#===============================================================================
$imported = {} if $imported == nil
$imported["CozAddedActorOptions"] = true
module COZZIEKUNS
module AAO
# Syntax: Option = [Actor ID's]
CONCENTRAITON = [1]
HALVE_MP = []
IMMUNITY = []
MONKEY_GRIP = []
SPELLBOUND = []
RAZZLE_DAZZLE = []
UNSCARRED = []
ADRENAILINE = []
BURDENED_SOUL = []
VIGILANCE = []
BLOOD_PRINCE = []
LAST_STAND = []
CONCENTRATION_VARIABLE = 5
RAZZLE_DAZZLE_WAIT = 90
RAZZLE_DAZZLE_MESSAGE = "'s HP was restored by a bit!"
UNSCARRED_VARIABLE = 150
ADRENAILINE_VARIABLE = 150
BURDENED_SOUL_WAIT = 90
BURDENED_SOUL_MESSAGE = "'s soul was released!"
CRITICAL_HP_VARIABLE = 15
VIGILANCE_VARIABLE = 150
LAST_STAND_DAMAGE_VARIABLE = 2 # New damage multiplier for Critical Hits. Stacks on to the original.
LAST_STAND_RATE_VARIABLE = 2 # New rate multiplier for Critical Hits. Stacks on to the original.
end
end
#==============================================================================
# ** Game_Battler
#------------------------------------------------------------------------------
# This class deals with battlers. It's used as a superclass of the Game_Actor
# and Game_Enemy classes.
#==============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# * Get [Spellbound] option
#--------------------------------------------------------------------------
def spellbound
return false
end
#--------------------------------------------------------------------------
# * Get [Burdened Soul] option
#--------------------------------------------------------------------------
def burdened_soul
return false
end
#--------------------------------------------------------------------------
# * Get [Blood Prince] option
#--------------------------------------------------------------------------
def blood_prince
return false
end
#--------------------------------------------------------------------------
# * Determine Usable Skills
# skill : skill
#--------------------------------------------------------------------------
def skill_can_use?(skill)
return false unless skill.is_a?(RPG::Skill)
return false unless movable?
return false if silent? and skill.spi_f > 0
if blood_prince
return false if calc_mp_cost(skill) > hp
end
return false if calc_mp_cost(skill) > mp
if $game_temp.in_battle
return skill.battle_ok?
else
return skill.menu_ok?
end
end
#--------------------------------------------------------------------------
# * Natural Removal of States (called up each turn)
#--------------------------------------------------------------------------
def remove_states_auto
clear_action_results
for i in @state_turns.keys.clone
if @state_turns[i] > 0
if spellbound
@state_turns[i] -= 0.5
else
@state_turns[i] -= 1
end
elsif rand(100) < $data_states[i].auto_release_prob
remove_state(i)
@removed_states.push(i)
end
end
end
end
#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
# This class handles actors. It's used within the Game_Actors class
# ($game_actors) and referenced by the Game_Party class ($game_party).
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_reader :fatigue
attr_accessor :razzle_dazzle_message
attr_accessor :burdened_soul_message
#--------------------------------------------------------------------------
# * Setup
# actor_id : actor ID
#--------------------------------------------------------------------------
alias coz_aao_ga_setup setup
def setup(actor_id)
coz_aao_ga_setup(actor_id)
@concentration = COZZIEKUNS::AAO::CONCENTRAITON
@halve_mp = COZZIEKUNS::AAO::HALVE_MP
@immunity = COZZIEKUNS::AAO::IMMUNITY
@monkey_grip = COZZIEKUNS::AAO::MONKEY_GRIP
@spellbound = COZZIEKUNS::AAO::SPELLBOUND
@razzle_dazzle = COZZIEKUNS::AAO::RAZZLE_DAZZLE
@unscarred = COZZIEKUNS::AAO::UNSCARRED
@adrenailine = COZZIEKUNS::AAO::ADRENAILINE
@burdened_soul = COZZIEKUNS::AAO::BURDENED_SOUL
@vigilance = COZZIEKUNS::AAO::VIGILANCE
@blood_prince = COZZIEKUNS::AAO::BLOOD_PRINCE
@last_stand = COZZIEKUNS::AAO::LAST_STAND
@critical_hp = 0
end
#--------------------------------------------------------------------------
# * Get Added State Success Rate
# state_id : state ID
#--------------------------------------------------------------------------
alias coz_aao_ga_state_probability state_probability
def state_probability(state_id)
n = coz_aao_ga_state_probability(state_id)
return 0 if @immunity.include?(id)
return n
end
#--------------------------------------------------------------------------
# * Get [Spellbound] option
#--------------------------------------------------------------------------
def spellbound
return @spellbound.include?(id)
end
#--------------------------------------------------------------------------
# * Check for [Critical HP]
#--------------------------------------------------------------------------
def critical_hp?
@critical_hp = self.maxhp
@critical_hp *= COZZIEKUNS::AAO::CRITICAL_HP_VARIABLE
@critical_hp /= 100
return self.hp <= @critical_hp
end
#--------------------------------------------------------------------------
# * Check for [Burdened Soul] option
#--------------------------------------------------------------------------
def burdened_soul
return true if @burdened_soul.include?(id)
return false
end
#--------------------------------------------------------------------------
# * Perform Burdened Soul (called at end of turn)
#--------------------------------------------------------------------------
def do_burdened_soul
if @burdened_soul.include?(id) and not dead?
if critical_hp?
for i in 0...$game_party.members.size
$game_party.members[i].hp += 9999
end
self.hp = 0
@burdened_soul_message = "#{self.name}" + COZZIEKUNS::AAO::BURDENED_SOUL_MESSAGE
end
end
end
#--------------------------------------------------------------------------
# * Get [Blood Prince] option
#--------------------------------------------------------------------------
def blood_prince
return @blood_prince.include?(id)
end
#--------------------------------------------------------------------------
# * Get Basic Attack
#--------------------------------------------------------------------------
alias coz_aao_ga_base_atk base_atk
def base_atk
n = coz_aao_ga_base_atk
if @unscarred.include?(id)
if self.hp = self.maxhp
n *= COZZIEKUNS::AAO::UNSCARRED_VARIABLE
n /= 100
end
end
return n
end
#--------------------------------------------------------------------------
# * Get Basic Defense
#--------------------------------------------------------------------------
alias coz_aao_ga_base_def base_def
def base_def
n = coz_aao_ga_base_def
if @vigilance
if critical_hp?
n *= COZZIEKUNS::AAO::VIGILANCE_VARIABLE
n /= 100
end
end
return n
end
#--------------------------------------------------------------------------
# * Get Basic Agility
#--------------------------------------------------------------------------
alias coz_aao_ga_base_agi base_agi
def base_agi
n = coz_aao_ga_base_agi
if @adrenailine.include?(id)
n *= COZZIEKUNS::AAO::ADRENAILINE_VARIABLE
n /= 100
end
return n
end
#--------------------------------------------------------------------------
# * Get Hit Rate
#--------------------------------------------------------------------------
alias coz_aao_ga_hit hit
def hit
n = coz_aao_ga_hit
if @concentration.include?(id)
n += COZZIEKUNS::AAO::CONCENTRATION_VARIABLE
end
return n
end
#--------------------------------------------------------------------------
# * Get Critical Ratio
#--------------------------------------------------------------------------
alias coz_aao_ga_cri cri
def cri
n = coz_aao_ga_cri cri
if @last_stand.include?(id)
if critical_hp?
n += COZZIEKUNS::AAO::LAST_STAND_RATE_VARIABLE
end
end
return n
end
#--------------------------------------------------------------------------
# * Calculation of Damage From Normal Attack
# attacker : Attacker
# The results are substituted for @hp_damage
#--------------------------------------------------------------------------
def make_attack_damage_value(attacker)
damage = attacker.atk * 4 - self.def * 2 # 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?
if @last_stand.include?(id)
if critical_hp?
damage *= (3 * COZZIEKUNS::AAO::LAST_STAND_DAMAGE_VARIABLE) if @critical # critical adjustment
else
damage *= 3 if @critical
end
else
damage *= 3 if @critical # critical adjustment
end
end
damage = apply_variance(damage, 20) # variance
damage = apply_guard(damage) # guard adjustment
@hp_damage = damage # damage HP
end
#--------------------------------------------------------------------------
# * Get [Auto HP Recovery]
#--------------------------------------------------------------------------
alias coz_aao_ga_auto_hp_recover auto_hp_recover
def auto_hp_recover
return true if @razzle_dazzle.include?(id)
coz_aao_ga_auto_hp_recover
end
#--------------------------------------------------------------------------
# * Get [Half MP cost]
#--------------------------------------------------------------------------
alias coz_aao_ga_half_mp_cost half_mp_cost
def half_mp_cost
return true if @halve_mp.include?(id)
coz_aao_ga_half_mp_cost
end
#--------------------------------------------------------------------------
# * Perform Automatic Recovery (called at end of turn)
#--------------------------------------------------------------------------
alias coz_aao_ga_do_auto_recovery do_auto_recovery
def do_auto_recovery
coz_aao_ga_do_auto_recovery
@razzle_dazzle_message = "#{self.name}" + COZZIEKUNS::AAO::RAZZLE_DAZZLE_MESSAGE
end
#--------------------------------------------------------------------------
# * Change Equipment (designate object)
# equip_type : Equip region (0..4)
# item : Weapon or armor (nil is used to unequip)
# test : Test flag (for battle test or temporary equipment)
#--------------------------------------------------------------------------
def change_equip(equip_type, item, test = false)
last_item = equips[equip_type]
unless test
return if $game_party.item_number(item) == 0 if item != nil
$game_party.gain_item(last_item, 1)
$game_party.lose_item(item, 1)
end
item_id = item == nil ? 0 : item.id
case equip_type
when 0 # Weapon
@weapon_id = item_id
unless two_hands_legal? # If two hands is not allowed
unless @monkey_grip.include?(id)
change_equip(1, nil, test) # Unequip from other hand
end
end
when 1 # Shield
@armor1_id = item_id
unless two_hands_legal? # If two hands is not allowed
unless @monkey_grip.include?(id)
change_equip(0, nil, test) # Unequip from other hand
end
end
when 2 # Head
@armor2_id = item_id
when 3 # Body
@armor3_id = item_id
when 4 # Accessory
@armor4_id = item_id
end
end
end
#==============================================================================
# ** Game_Party
#------------------------------------------------------------------------------
# This class handles the party. It includes information on amount of gold
# and items. The instance of this class is referenced by $game_party.
#==============================================================================
class Game_Party < Game_Unit
#--------------------------------------------------------------------------
# * Remove Battle States (called when battle ends)
#--------------------------------------------------------------------------
def do_burdened_soul
for actor in members
actor.do_burdened_soul
end
end
end
#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
# This class performs battle screen processing.
#==============================================================================
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# * End Turn
#--------------------------------------------------------------------------
def turn_end
$game_troop.turn_ending = true
$game_party.slip_damage_effect
$game_troop.slip_damage_effect
$game_party.do_auto_recovery
for i in 0...$game_party.members.size
if $game_party.members[i].auto_hp_recover and $game_party.members[i].dead? == false
Sound.play_recovery
$game_troop.screen.flash_color
@message_window.replace_instant_text($game_party.members[i].razzle_dazzle_message)
wait(COZZIEKUNS::AAO::RAZZLE_DAZZLE_WAIT)
end
end
for i in 0...$game_party.members.size
if $game_party.members[i].critical_hp? and $game_party.members[i].dead? == false
if $game_party.members[i].burdened_soul
Sound.play_actor_collapse
$game_troop.screen.start_shake(5, 5, 10)
@message_window.replace_instant_text($game_party.members[i].burdened_soul_message)
wait(COZZIEKUNS::AAO::BURDENED_SOUL_WAIT)
end
end
end
$game_party.do_burdened_soul
$game_troop.preemptive = false
$game_troop.surprise = false
process_battle_event
$game_troop.turn_ending = false
start_party_command_selection
end
#--------------------------------------------------------------------------
# * Execute Battle Action: Skill
#--------------------------------------------------------------------------
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
display_animation(targets, skill.animation_id)
if @active_battler.blood_prince
@active_battler.hp -= @active_battler.calc_mp_cost(skill)
else
@active_battler.mp -= @active_battler.calc_mp_cost(skill)
end
$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
#==============================================================================
# ** Scene_Skill
#------------------------------------------------------------------------------
# This class performs the skill screen processing.
#==============================================================================
class Scene_Skill < Scene_Base
#--------------------------------------------------------------------------
# * Use Skill (apply effects to non-ally targets)
#--------------------------------------------------------------------------
def use_skill_nontarget
Sound.play_use_skill
if @actor.blood_prince
@actor.hp -= @actor.calc_mp_cost(@skill)
else
@actor.mp -= @actor.calc_mp_cost(@skill)
end
@status_window.refresh
@skill_window.refresh
@target_window.refresh
if $game_party.all_dead?
$scene = Scene_Gameover.new
elsif @skill.common_event_id > 0
$game_temp.common_event_id = @skill.common_event_id
$scene = Scene_Map.new
end
end
end
Creditos
cozziekuns