#==============================================================================
# Battle Switching & Summoning
#==============================================================================
# SephirothSpawn
# Version 2
# 20.12.05
#==============================================================================
#------------------------------------------------------------------------------
# * SDK Log Script
#------------------------------------------------------------------------------
SDK.log("Battle Switching & Summoning", "SephirothSpawn", 2, "12.18.05")
#------------------------------------------------------------------------------
# * Begin SDK Enable Test
#------------------------------------------------------------------------------
if SDK.state("Battle Switching & Summoning") == true
#==============================================================================
# ** Class Game_Party
#==============================================================================
class Game_Party
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :actors
attr_accessor :reserve_actors
attr_accessor :summon_actors
attr_accessor :reserve_summon_actors
#--------------------------------------------------------------------------
# * Alias Initialization
#--------------------------------------------------------------------------
alias seph_battleswitch_gameparty_initialize initialize
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
seph_battleswitch_gameparty_initialize
@reserve_actors = []
@summon_actors = []
@reserve_summon_actors = []
end
#--------------------------------------------------------------------------
# * Add an Actor
# actor_id : actor ID
#--------------------------------------------------------------------------
def add_actor(actor_id)
# Get actor
actor = $game_actors[actor_id]
# If the party has less than 4 members and this actor is not in the party
if @actors.size < 4 and not @actors.include?(actor)
# Add actor
@actors.push(actor)
# Refresh player
$game_player.refresh
elsif @actors.size >= 4 and not @actors.include?(actor) and not @reserve_actors.include?(actor)
# Add actor
@reserve_actors.push(actor)
# Refresh player
$game_player.refresh
end
end
#--------------------------------------------------------------------------
# * Move To Reserve
# actor_id : actor ID
#--------------------------------------------------------------------------
def move_to_reserve(actor_id)
# Get actor
actor = $game_actors[actor_id]
if @actors.include?(actor)
@actors.delete(actor)
@reserve_actors.push(actor)
end
# Refresh player
$game_player.refresh
end
#--------------------------------------------------------------------------
# * Move To Party
# actor_id : actor ID
#--------------------------------------------------------------------------
def move_to_party(actor_id, index = -1)
# Get actor
actor = $game_actors[actor_id]
if @reserve_actors.include?(actor)
@reserve_actors.delete(actor)
@actors.insert(index, actor)
end
# Refresh player
$game_player.refresh
end
#--------------------------------------------------------------------------
# * Activate Summon
# actor_id : actor ID
#--------------------------------------------------------------------------
def summon_active(actor_id)
# Get actor
actor = $game_actors[actor_id]
if @reserve_summon_actors.include?(actor)
@reserve_summon_actors.delete(actor)
@summon_actors.push(actor)
end
# Refresh player
$game_player.refresh
end
#--------------------------------------------------------------------------
# * Deactivate Summon
# actor_id : actor ID
#--------------------------------------------------------------------------
def summon_deactive(actor_id)
# Get actor
actor = $game_actors[actor_id]
if @summon_actors.include?(actor)
@summon_actors.delete(actor)
@reserve_summon_actors.push(actor)
end
# Refresh player
$game_player.refresh
end
end
#==============================================================================
# ** Window_Command
#==============================================================================
class Window_Command < Window_Selectable
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :commands
#--------------------------------------------------------------------------
# * Refresh Contents
#--------------------------------------------------------------------------
def refresh_contents
self.contents.dispose
@item_max = @commands.size
self.contents = Bitmap.new(width - 32, @item_max * 32)
refresh
end
end
#==============================================================================
# ** Window_BattleSwitching
#==============================================================================
class Window_BattleSwitching < Window_Selectable
#--------------------------------------------------------------------------
# * Object Initialization
# width : window width
# commands : command text string array
#--------------------------------------------------------------------------
def initialize(actors)
# Compute window height from command quantity
super(0, 0, 480, [actors.size * 32, 32].max + 32)
@item_max = actors.size
@actors = actors.dup
self.contents = Bitmap.new(width - 32, [@item_max * 32, 32].max)
refresh
self.index = 0
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
for i in 0...@item_max
draw_item(i)
end
end
#--------------------------------------------------------------------------
# * Draw Item
# index : item number
#--------------------------------------------------------------------------
def draw_item(index)
actor = @actors[index]
# Draws Name
contents.font.size = 22
contents.font.color = normal_color
contents.draw_text(4, index * 32, contents.width, 32, actor.name)
# Draws HP
contents.font.size = 16
color = actor.hp == 0 ? knockout_color : actor.hp < actor.maxhp / 2 ? crisis_color : normal_color
contents.font.color = color
contents.draw_text(140, index * 32, 140, 18, "#{actor.hp} / #{actor.maxhp}", 1)
draw_slant_bar(140, index * 32 + 22, actor.hp, actor.maxhp.to_f, 140)
# Draws SP
contents.font.size = 16
color = actor.sp == 0 ? knockout_color : actor.sp < actor.maxsp / 2 ? crisis_color : normal_color
contents.font.color = color
contents.draw_text(290, index * 32, 140, 18, "#{actor.sp} / #{actor.maxsp}", 1)
draw_slant_bar(290, index * 32 + 22, actor.sp, actor.maxsp.to_f, 140)
end
#--------------------------------------------------------------------------
# Draw Slant Bar
#--------------------------------------------------------------------------
def draw_slant_bar(x, y, min, max, width = 152, height = 6, bar_color = Color.new(150, 0, 0, 255))
# Draw Border
for i in 0..height
self.contents.fill_rect(x + i, y + height - i, width + 1, 1, Color.new(50, 50, 50, 255))
end
# Draw Background
for i in 1..(height - 1)
r = 100 * (height - i) / height + 0 * i / height
g = 100 * (height - i) / height + 0 * i / height
b = 100 * (height - i) / height + 0 * i / height
a = 255 * (height - i) / height + 255 * i / height
self.contents.fill_rect(x + i, y + height - i, width, 1, Color.new(r, b, g, a))
end
# Color Values
if min == max
bar_color = Color.new(200, 0, 0, 255)
end
# Draws Bar
for i in 1..( (min / max) * width - 1)
for j in 1..(height - 1)
r = bar_color.red * (width - i) / width + 255 * i / width
g = bar_color.green * (width - i) / width + 255 * i / width
b = bar_color.blue * (width - i) / width + 60 * i / width
a = bar_color.alpha * (width - i) / width + 255 * i / width
self.contents.fill_rect(x + i + j, y + height - j, 1, 1, Color.new(r, g, b, a))
end
end
end
end
#==============================================================================
# ** Scene Title
#==============================================================================
class Scene_Title
#--------------------------------------------------------------------------
# * Alias' New Game Method
#--------------------------------------------------------------------------
alias seph_battleswitch_scenetitle_commandnewgame command_new_game
#--------------------------------------------------------------------------
# * Adds Base Stats For Enemies
#--------------------------------------------------------------------------
def command_new_game
# SDK Command: Command New Game
seph_battleswitch_scenetitle_commandnewgame
# Sets Summon Actors Requirements
for actor in $data_actors
unless actor == nil
$game_party.reserve_summon_actors.push($game_actors[actor.id]) if actor.name.delete!('*')
end
end
end
end
#==============================================================================
# ** Scene_Battle
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias seph_battleswitch_scenebattle_commandsinit commands_init
alias seph_battleswitch_scenebattle_updatesceneexit update_scene_exit
alias seph_battleswitch_scenebattle_updatephase3 update_phase3
alias seph_battleswitch_scenebattle_checkcommands check_commands
#--------------------------------------------------------------------------
# * Set Commands
#--------------------------------------------------------------------------
def commands_init
# SDK Commands Initialization
seph_battleswitch_scenebattle_commandsinit
# Adds Commands
@commands.push('Switch', 'Summon')
end
#--------------------------------------------------------------------------
# * Scene Exit Update
#--------------------------------------------------------------------------
def update_scene_exit
# SDK Scene Exit
seph_battleswitch_scenebattle_updatesceneexit
unless $scene == self
# Replace Active Members
unless @temp_actors == nil
unless @temp_actors.empty?
$game_party.actors.push(@temp_actors.dup).flatten!.delete_at(0)
end
end
end
end
#--------------------------------------------------------------------------
# * Frame Update (actor command phase)
#--------------------------------------------------------------------------
def update_phase3
seph_battleswitch_scenebattle_updatephase3
# If Party Switch is enabled
if @party_switch_window != nil
update_phase3_party_switch_select
end
# If Summon Switch skill is enabled
if @summon_switch_window != nil
update_phase3_summon_switch_select
end
end
#--------------------------------------------------------------------------
# * Check Commands
#--------------------------------------------------------------------------
def check_commands
seph_battleswitch_scenebattle_checkcommands
# Loads Current Command
command = @commands[@actor_command_window.index]
# Party Switch
if command == 'Switch'
update_phase3_command_switch
end
# Summon Switch
if command == 'Summon'
update_phase3_command_summon
end
# Unsummon Switch
if command == 'Unsummon'
update_phase3_command_unsummon
end
end
#--------------------------------------------------------------------------
# * Start Command: Switch
#--------------------------------------------------------------------------
def update_phase3_command_switch
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Party Switch Window
@party_switch_window = Window_BattleSwitching.new($game_party.reserve_actors)
@party_switch_window.height = 160 if @party_switch_window.height > 160
@party_switch_window.x = 320 - @party_switch_window.width / 2
@party_switch_window.y = 192 - @party_switch_window.height / 2
@party_switch_window.back_opacity = 225
# Actives Switch Window
@party_switch_window.active = true
# Disable actor command window
@actor_command_window.active = false
@actor_command_window.visible = false
end
#--------------------------------------------------------------------------
# * Start Command: Summon
#--------------------------------------------------------------------------
def update_phase3_command_summon
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Summon Switch Window
@summon_switch_window = Window_BattleSwitching.new($game_party.summon_actors)
@summon_switch_window.height = 160 if @summon_switch_window.height > 160
@summon_switch_window.x = 320 - @summon_switch_window.width / 2
@summon_switch_window.y = 192 - @summon_switch_window.height / 2
@summon_switch_window.back_opacity = 225
# Actives Switch Window
@summon_switch_window.active = true
# Disable actor command window
@actor_command_window.active = false
@actor_command_window.visible = false
end
#--------------------------------------------------------------------------
# * Start Command: Unsummon
#--------------------------------------------------------------------------
def update_phase3_command_unsummon
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Replace Active Members & Delete Summon
$game_party.actors.push(@temp_actors.dup).flatten!.delete_at(0)
# Refreshes
$game_party.refresh
# Clears Temp Actors
@temp_actors.clear
# Creates New Commands
@commands = @temp_commands
# Recreates Command Window
@actor_command_window.commands = @commands
# Refresh Window Contents
@actor_command_window.refresh_contents
# Refreshes Status Window
@status_window.refresh
# Deletes Spriteset
@spriteset.dispose
# Recreates Spriteset
@spriteset = Spriteset_Battle.new
for actor in $game_party.actors
@active_battler = actor
# Set action
@active_battler.current_action.kind = 0
@active_battler.current_action.basic = 1
@active_battler.blink = false
end
# Go to Battle Processing
start_phase4
end
#--------------------------------------------------------------------------
# * Command: Switch
#--------------------------------------------------------------------------
def update_phase3_party_switch_select
# Make Party Switch window visible
@party_switch_window.visible = true
# Update window
@party_switch_window.update
# If B button was pressed
if Input.trigger?(Input::B)
# Play cancel SE
$game_system.se_play($data_system.cancel_se)
# End skill selection
end_party_switch_select
return
end
# If A button was pressed
if Input.trigger?(Input::A)
if $game_party.reserve_actors[@party_switch_window.index] == nil
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
return
else
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Store Index of Current Battler
index = $game_party.actors.index(@active_battler)
# Move Active Battler to Reserve
$game_party.move_to_reserve(@active_battler.id)
# Set Active Battler
@active_battler = $game_party.reserve_actors[@party_switch_window.index]
# Move Reserve Actor to Active Party
$game_party.move_to_party(@active_battler.id, index)
# Refreshes
$game_party.refresh
# Refresh Status Window
@status_window.refresh
# Set actor as unselectable
@actor_index -= 1
@active_battler = nil
# End skill selection
end_party_switch_select
# Go to command input for next actor
phase3_next_actor
return
end
end
end
#--------------------------------------------------------------------------
# * Command: Summon
#--------------------------------------------------------------------------
def update_phase3_summon_switch_select
# Make summon window visible
@summon_switch_window.visible = true
# Update summon window
@summon_switch_window.update
# If B button was pressed
if Input.trigger?(Input::B)
# Play cancel SE
$game_system.se_play($data_system.cancel_se)
# End skill selection
end_summon_switch_select
return
end
# If A button was pressed
if Input.trigger?(Input::A)
if $game_party.summon_actors[@summon_switch_window.index] == nil
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
return
else
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Stores Current Actors
@temp_actors = $game_party.actors.dup
# Store Current Commands
@temp_commands = @commands.dup
# Make New Commands
@actor_command_window.commands = [$data_system.words.attack,
$data_system.words.skill, $data_system.words.guard, $data_system.words.item]
# Adds Limit Break if Limit Break Enabled
if SDK.state("Advanced Limit Break") == true
index = @actor_command_window.commands.index($data_system.words.skill) + 1
@actor_command_window.commands.insert(index, 'Limit Break')
end
# Adds Unsummon Command
@actor_command_window.commands.push('Unsummon')
# Creates New Commands
@commands = @actor_command_window.commands.dup
# Refresh Window Contents
@actor_command_window.refresh_contents
# Clear Game Party
$game_party.actors.clear
# Gets Active Battler
@active_battler = $game_party.summon_actors[@summon_switch_window.index]
# Add Summon to Party
$game_party.actors = [@active_battler]
# Refresh Status Window
@status_window.refresh
# Set action
@active_battler.current_action.kind = 0
@active_battler.current_action.basic = 1
@active_battler.blink = false
# End skill selection
end_summon_switch_select
# Go to Battle Processing
start_phase4
return
end
end
end
#--------------------------------------------------------------------------
# * End Party Switch Selection
#--------------------------------------------------------------------------
def end_party_switch_select
# Delete Party Switch Window
@party_switch_window.dispose
@party_switch_window = nil
# Hide help window
@help_window.visible = false
# Enable actor command window
@actor_command_window.active = true
@actor_command_window.visible = true
end
#--------------------------------------------------------------------------
# * End Summon Switch Selection
#--------------------------------------------------------------------------
def end_summon_switch_select
# Delete Summon Switch Window
@summon_switch_window.dispose
@summon_switch_window = nil
# Hide help window
@help_window.visible = false
# Enable actor command window
@actor_command_window.active = true
@actor_command_window.visible = true
end
end
#--------------------------------------------------------------------------
# * End SDK Enable Test
#--------------------------------------------------------------------------
end
I think this should work:
At Scene_Battle replace the '@commands.push('Switch', 'Summon')' for
@commands.push('Switch', 'Summon') if $game_party.actors[@active_battler].class == XXX
Replace the XXX for the ID of the classes which are abled to summon.
i get a syntax error when I put it in and when i delete it again i gat a synatx error on the lat line of the script
O BTW i downloaded your game i thought it was very good
Hmm... I wonder if I'm mixing programming languages... ???
Gotta try this at home... ;D Tomorrow I'll tell you! :lol:
BTW, thanks for downloading my game! ::)
Ok, as I promised you, here it is and WORKS!!! :)
Go to Scene_Battle 3 and just add:
actor = $game_actors[@active_battler.id]
if actor.class_id == XXX
@commands.delete('Switch')
@commands.delete('Summon')
elsif not @commands.include?('Switch') and not @commands.include?('Summon')
@commands.push('Switch', 'Summon')
end
@actor_command_window.refresh_contents
after "def phase3_setup_command_window", and replace the XXX for the id of the class you want to
be UNable to use both switch and summon. If more than one class is UNable to do it, then put it like this:
if actor.class_id == XXX or actor.class_id == YYY or actor.class_id == ZZZ ...
And replace the YYY and ZZZ for the other classes.
You can even divide it to summoners and people who can switch:
actor = $game_actors[@active_battler.id]
if actor.class_id == XXX
@commands.delete('Switch')
elsif not @commands.include?('Switch')
@commands.push('Switch')
end
if actor.class_id == YYY
@commands.delete('Summon')
elsif not @commands.include?('Summon')
@commands.push('Summon')
end
@actor_command_window.refresh_contents
Replace the XXX for classes who CAN'T switch and the YYY for classes who CAN'T summon.
And that's it!
i have syntax error because i only have 1 or 2 people who can summon
so my script looks like this
if actor.class_id == 001 or actor.class_id == 002 or actor.class_id == 003
or actor.class_id == 004 or actor.class_id == 005 or actor.class_id == 007
or actor.class_id == 008 or actor.class_id == 009 or actor.class_id == 010
or actor.class_id == 011 or actor.class_id == 012 or actor.class_id == 013
@commands.delete('Summon')
elsif not @commands.include?('Summon')
@commands.push('Summon')
end
@actor_command_window.refresh_contents
the only charater who can summon is Number 006 but i get syntax error if i have
or actor.class_id == 004 or actor.class_id == 005 or actor.class_id == 007 or actor.class_id == 008 or actor.class_id == 009 or actor.class_id == 010 or actor.class_id == 011 or actor.class_id == 012 or actor.class_id == 013 it all one one line
Should be
if actor.class_id == 001 or actor.class_id == 002 or actor.class_id == 003 or
actor.class_id == 004 or actor.class_id == 005 or actor.class_id == 007 or
actor.class_id == 008 or actor.class_id == 009 or actor.class_id == 010 or
actor.class_id == 011 or actor.class_id == 012 or actor.class_id == 013
@commands.delete('Summon')
elsif not @commands.include?('Summon')
@commands.push('Summon')
end
@actor_command_window.refresh_contents
Note where the "or"s are.
BTW, it can be made easier.
unless [XXX, YYY, ...].include?(actor.class_id)
@commands.delete('Summon')
elsif not @commands.include?('Summon')
@commands.push('Summon')
end
@actor_command_window.refresh_contents
Add any class IDs in the [ ] brackets and separate them with commas.
i get a syntax error here is the whole fuckin thing
#==============================================================================
# ? Scene_Battle (???? 3)
#------------------------------------------------------------------------------
# ??????????????????
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# ? ??????????????
#--------------------------------------------------------------------------
def start_phase3
# ???? 3 ???
@phase = 3
# ?????????????
@actor_index = -1
@active_battler = nil
# ??????????????
phase3_next_actor
end
#--------------------------------------------------------------------------
# ? ??????????????
#--------------------------------------------------------------------------
def phase3_next_actor
# ???
begin
# ???????????? OFF
if @active_battler != nil
@active_battler.blink = false
end
# ??????????
if @actor_index == $game_party.actors.size-1
# ?????????
start_phase4
return
end
# ???????????????
@actor_index += 1
@active_battler = $game_party.actors[@actor_index]
@active_battler.blink = true
# ??????????????????????????
end until @active_battler.inputable?
# ????????????????????
phase3_setup_command_window
end
#--------------------------------------------------------------------------
# ? ??????????????
#--------------------------------------------------------------------------
def phase3_prior_actor
# ???
begin
# ???????????? OFF
if @active_battler != nil
@active_battler.blink = false
end
# ??????????
if @actor_index == 0
# ??????????????
start_phase2
return
end
# ??????????????
@actor_index -= 1
@active_battler = $game_party.actors[@actor_index]
@active_battler.blink = true
# ??????????????????????????
end until @active_battler.inputable?
# ????????????????????
phase3_setup_command_window
end
#--------------------------------------------------------------------------
# ? ????????????????????
#--------------------------------------------------------------------------
def phase3_setup_command_window
# ?????????????????
@party_command_window.active = false
@party_command_window.visible = false
# ?????????????????
@actor_command_window.active = true
@actor_command_window.visible = true
# ???????????????????
@actor_command_window.x = @actor_index * 160
# ??????? 0 ???
@actor_command_window.index = 0
actor = $game_actors[@active_battler.id]
if actor.class_id == XXX
@commands.delete('Switch')
elsif not @commands.include?('Switch')
@commands.push('Switch')
end
unless [001, 002, 003, 005, 006, 007, 008, 009, 010].include?(actor.class_id)
@commands.delete('Summon')
elsif not @commands.include?('Summon')
@commands.push('Summon')
end
@actor_command_window.refresh_contents
@commands.delete('Summon')
elsif not @commands.include?('Summon')
@commands.push('Summon')
end
@actor_command_window.refresh_contents
end
#--------------------------------------------------------------------------
# ? ?????? (????????????)
#--------------------------------------------------------------------------
def update_phase3
# ?????????????
if @enemy_arrow != nil
update_phase3_enemy_select
# ?????????????
elsif @actor_arrow != nil
update_phase3_actor_select
# ??????????????
elsif @skill_window != nil
update_phase3_skill_select
# ???????????????
elsif @item_window != nil
update_phase3_item_select
# ???????????????????
elsif @actor_command_window.active
update_phase3_basic_command
end
end
#--------------------------------------------------------------------------
# ? ?????? (???????????? : ??????)
#--------------------------------------------------------------------------
def update_phase3_basic_command
# B ??????????
if Input.trigger?(Input::B)
# ????? SE ???
$game_system.se_play($data_system.cancel_se)
# ??????????????
phase3_prior_actor
return
end
# C ??????????
if Input.trigger?(Input::C)
# ???????????????????????
case @actor_command_window.index
when 0 # ??
# ?? SE ???
$game_system.se_play($data_system.decision_se)
# ????????
@active_battler.current_action.kind = 0
@active_battler.current_action.basic = 0
# ??????????
start_enemy_select
when 1 # ???
# ?? SE ???
$game_system.se_play($data_system.decision_se)
# ????????
@active_battler.current_action.kind = 1
# ?????????
start_skill_select
when 2 # ??
# ?? SE ???
$game_system.se_play($data_system.decision_se)
# ????????
@active_battler.current_action.kind = 0
@active_battler.current_action.basic = 1
# ??????????????
phase3_next_actor
when 3 # ????
# ?? SE ???
$game_system.se_play($data_system.decision_se)
# ????????
@active_battler.current_action.kind = 2
# ??????????
start_item_select
end
return
end
end
#--------------------------------------------------------------------------
# ? ?????? (???????????? : ?????)
#--------------------------------------------------------------------------
def update_phase3_skill_select
# ????????????????
@skill_window.visible = true
# ???????????
@skill_window.update
# B ??????????
if Input.trigger?(Input::B)
# ????? SE ???
$game_system.se_play($data_system.cancel_se)
# ?????????
end_skill_select
return
end
# C ??????????
if Input.trigger?(Input::C)
# ????????????????????????
@skill = @skill_window.skill
# ????????
if @skill == nil or not @active_battler.skill_can_use?(@skill.id)
# ??? SE ???
$game_system.se_play($data_system.buzzer_se)
return
end
# ?? SE ???
$game_system.se_play($data_system.decision_se)
# ????????
@active_battler.current_action.skill_id = @skill.id
# ?????????????????
@skill_window.visible = false
# ???????????
if @skill.scope == 1
# ??????????
start_enemy_select
# ????????????
elsif @skill.scope == 3 or @skill.scope == 5
# ??????????
start_actor_select
# ?????????????
else
# ?????????
end_skill_select
# ??????????????
phase3_next_actor
end
return
end
end
#--------------------------------------------------------------------------
# ? ?????? (???????????? : ??????)
#--------------------------------------------------------------------------
def update_phase3_item_select
# ?????????????????
@item_window.visible = true
# ????????????
@item_window.update
# B ??????????
if Input.trigger?(Input::B)
# ????? SE ???
$game_system.se_play($data_system.cancel_se)
# ??????????
end_item_select
return
end
# C ??????????
if Input.trigger?(Input::C)
# ?????????????????????????
@item = @item_window.item
# ????????
unless $game_party.item_can_use?(@item.id)
# ??? SE ???
$game_system.se_play($data_system.buzzer_se)
return
end
# ?? SE ???
$game_system.se_play($data_system.decision_se)
# ????????
@active_battler.current_action.item_id = @item.id
# ??????????????????
@item_window.visible = false
# ???????????
if @item.scope == 1
# ??????????
start_enemy_select
# ????????????
elsif @item.scope == 3 or @item.scope == 5
# ??????????
start_actor_select
# ?????????????
else
# ??????????
end_item_select
# ??????????????
phase3_next_actor
end
return
end
end
#--------------------------------------------------------------------------
# ? ?????? (???????????? : ??????)
#--------------------------------------------------------------------------
def update_phase3_enemy_select
# ??????????
@enemy_arrow.update
# B ??????????
if Input.trigger?(Input::B)
# ????? SE ???
$game_system.se_play($data_system.cancel_se)
# ??????????
end_enemy_select
return
end
# C ??????????
if Input.trigger?(Input::C)
# ?? SE ???
$game_system.se_play($data_system.decision_se)
# ????????
@active_battler.current_action.target_index = @enemy_arrow.index
# ??????????
end_enemy_select
# ??????????????
if @skill_window != nil
# ?????????
end_skill_select
end
# ???????????????
if @item_window != nil
# ??????????
end_item_select
end
# ??????????????
phase3_next_actor
end
end
#--------------------------------------------------------------------------
# ? ?????? (???????????? : ??????)
#--------------------------------------------------------------------------
def update_phase3_actor_select
# ??????????
@actor_arrow.update
# B ??????????
if Input.trigger?(Input::B)
# ????? SE ???
$game_system.se_play($data_system.cancel_se)
# ??????????
end_actor_select
return
end
# C ??????????
if Input.trigger?(Input::C)
# ?? SE ???
$game_system.se_play($data_system.decision_se)
# ????????
@active_battler.current_action.target_index = @actor_arrow.index
# ??????????
end_actor_select
# ??????????????
if @skill_window != nil
# ?????????
end_skill_select
end
# ???????????????
if @item_window != nil
# ??????????
end_item_select
end
# ??????????????
phase3_next_actor
end
end
#--------------------------------------------------------------------------
# ? ????????
#--------------------------------------------------------------------------
def start_enemy_select
# ??????????
@enemy_arrow = Arrow_Enemy.new(@spriteset.viewport1)
# ?????????????
@enemy_arrow.help_window = @help_window
# ?????????????????
@actor_command_window.active = false
@actor_command_window.visible = false
end
#--------------------------------------------------------------------------
# ? ????????
#--------------------------------------------------------------------------
def end_enemy_select
# ??????????
@enemy_arrow.dispose
@enemy_arrow = nil
# ????? [??] ???
if @actor_command_window.index == 0
# ?????????????????
@actor_command_window.active = true
@actor_command_window.visible = true
# ???????????
@help_window.visible = false
end
end
#--------------------------------------------------------------------------
# ? ????????
#--------------------------------------------------------------------------
def start_actor_select
# ??????????
@actor_arrow = Arrow_Actor.new(@spriteset.viewport2)
@actor_arrow.index = @actor_index
# ?????????????
@actor_arrow.help_window = @help_window
# ?????????????????
@actor_command_window.active = false
@actor_command_window.visible = false
end
#--------------------------------------------------------------------------
# ? ????????
#--------------------------------------------------------------------------
def end_actor_select
# ??????????
@actor_arrow.dispose
@actor_arrow = nil
end
#--------------------------------------------------------------------------
# ? ???????
#--------------------------------------------------------------------------
def start_skill_select
# ???????????
@skill_window = Window_Skill.new(@active_battler)
# ?????????????
@skill_window.help_window = @help_window
# ?????????????????
@actor_command_window.active = false
@actor_command_window.visible = false
end
#--------------------------------------------------------------------------
# ? ???????
#--------------------------------------------------------------------------
def end_skill_select
# ???????????
@skill_window.dispose
@skill_window = nil
# ???????????
@help_window.visible = false
# ?????????????????
@actor_command_window.active = true
@actor_command_window.visible = true
end
#--------------------------------------------------------------------------
# ? ????????
#--------------------------------------------------------------------------
def start_item_select
# ????????????
@item_window = Window_Item.new
# ?????????????
@item_window.help_window = @help_window
# ?????????????????
@actor_command_window.active = false
@actor_command_window.visible = false
end
#--------------------------------------------------------------------------
# ? ????????
#--------------------------------------------------------------------------
def end_item_select
# ????????????
@item_window.dispose
@item_window = nil
# ???????????
@help_window.visible = false
# ?????????????????
@actor_command_window.active = true
@actor_command_window.visible = true
end
end
What?
Since only number 6 can do that you could have put "if actor.class_id != 6" which means 'if character class is different from 6'.
The syntax error occurs cuz you didn't replace the XXX with the numbers!!! Put this script in:
CODE:
? Scene_Battle (???? 3)
#------------------------------------------------------------------------------
# ??????????????????
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# ? ??????????????
#--------------------------------------------------------------------------
def start_phase3
# ???? 3 ???
@phase = 3
# ?????????????
@actor_index = -1
@active_battler = nil
# ??????????????
phase3_next_actor
end
#--------------------------------------------------------------------------
# ? ??????????????
#--------------------------------------------------------------------------
def phase3_next_actor
# ???
begin
# ???????????? OFF
if @active_battler != nil
@active_battler.blink = false
end
# ??????????
if @actor_index == $game_party.actors.size-1
# ?????????
start_phase4
return
end
# ???????????????
@actor_index += 1
@active_battler = $game_party.actors[@actor_index]
@active_battler.blink = true
# ??????????????????????????
end until @active_battler.inputable?
# ????????????????????
phase3_setup_command_window
end
#--------------------------------------------------------------------------
# ? ??????????????
#--------------------------------------------------------------------------
def phase3_prior_actor
# ???
begin
# ???????????? OFF
if @active_battler != nil
@active_battler.blink = false
end
# ??????????
if @actor_index == 0
# ??????????????
start_phase2
return
end
# ??????????????
@actor_index -= 1
@active_battler = $game_party.actors[@actor_index]
@active_battler.blink = true
# ??????????????????????????
end until @active_battler.inputable?
# ????????????????????
phase3_setup_command_window
end
#--------------------------------------------------------------------------
# ? ????????????????????
#--------------------------------------------------------------------------
def phase3_setup_command_window
# ?????????????????
@party_command_window.active = false
@party_command_window.visible = false
# ?????????????????
@actor_command_window.active = true
@actor_command_window.visible = true
# ???????????????????
@actor_command_window.x = @actor_index * 160
# ??????? 0 ???
@actor_command_window.index = 0
actor = $game_actors[@active_battler.id]
if actor.class_id == 6
@commands.delete('Switch')
@commands.delete('Summon')
elsif not @commands.include?('Switch') and not @commands.include?('Summon')
@commands.push('Switch', 'Summon')
end
@actor_command_window.refresh_contents
end
#--------------------------------------------------------------------------
# ? ?????? (????????????)
#--------------------------------------------------------------------------
def update_phase3
# ?????????????
if @enemy_arrow != nil
update_phase3_enemy_select
# ?????????????
elsif @actor_arrow != nil
update_phase3_actor_select
# ??????????????
elsif @skill_window != nil
update_phase3_skill_select
# ???????????????
elsif @item_window != nil
update_phase3_item_select
# ???????????????????
elsif @actor_command_window.active
update_phase3_basic_command
end
end
#--------------------------------------------------------------------------
# ? ?????? (???????????? : ??????)
#--------------------------------------------------------------------------
def update_phase3_basic_command
# B ??????????
if Input.trigger?(Input::B)
# ????? SE ???
$game_system.se_play($data_system.cancel_se)
# ??????????????
phase3_prior_actor
return
end
# C ??????????
if Input.trigger?(Input::C)
# ???????????????????????
case @actor_command_window.index
when 0 # ??
# ?? SE ???
$game_system.se_play($data_system.decision_se)
# ????????
@active_battler.current_action.kind = 0
@active_battler.current_action.basic = 0
# ??????????
start_enemy_select
when 1 # ???
# ?? SE ???
$game_system.se_play($data_system.decision_se)
# ????????
@active_battler.current_action.kind = 1
# ?????????
start_skill_select
when 2 # ??
# ?? SE ???
$game_system.se_play($data_system.decision_se)
# ????????
@active_battler.current_action.kind = 0
@active_battler.current_action.basic = 1
# ??????????????
phase3_next_actor
when 3 # ????
# ?? SE ???
$game_system.se_play($data_system.decision_se)
# ????????
@active_battler.current_action.kind = 2
# ??????????
start_item_select
end
return
end
end
#--------------------------------------------------------------------------
# ? ?????? (???????????? : ?????)
#--------------------------------------------------------------------------
def update_phase3_skill_select
# ????????????????
@skill_window.visible = true
# ???????????
@skill_window.update
# B ??????????
if Input.trigger?(Input::B)
# ????? SE ???
$game_system.se_play($data_system.cancel_se)
# ?????????
end_skill_select
return
end
# C ??????????
if Input.trigger?(Input::C)
# ????????????????????????
@skill = @skill_window.skill
# ????????
if @skill == nil or not @active_battler.skill_can_use?(@skill.id)
# ??? SE ???
$game_system.se_play($data_system.buzzer_se)
return
end
# ?? SE ???
$game_system.se_play($data_system.decision_se)
# ????????
@active_battler.current_action.skill_id = @skill.id
# ?????????????????
@skill_window.visible = false
# ???????????
if @skill.scope == 1
# ??????????
start_enemy_select
# ????????????
elsif @skill.scope == 3 or @skill.scope == 5
# ??????????
start_actor_select
# ?????????????
else
# ?????????
end_skill_select
# ??????????????
phase3_next_actor
end
return
end
end
#--------------------------------------------------------------------------
# ? ?????? (???????????? : ??????)
#--------------------------------------------------------------------------
def update_phase3_item_select
# ?????????????????
@item_window.visible = true
# ????????????
@item_window.update
# B ??????????
if Input.trigger?(Input::B)
# ????? SE ???
$game_system.se_play($data_system.cancel_se)
# ??????????
end_item_select
return
end
# C ??????????
if Input.trigger?(Input::C)
# ?????????????????????????
@item = @item_window.item
# ????????
unless $game_party.item_can_use?(@item.id)
# ??? SE ???
$game_system.se_play($data_system.buzzer_se)
return
end
# ?? SE ???
$game_system.se_play($data_system.decision_se)
# ????????
@active_battler.current_action.item_id = @item.id
# ??????????????????
@item_window.visible = false
# ???????????
if @item.scope == 1
# ??????????
start_enemy_select
# ????????????
elsif @item.scope == 3 or @item.scope == 5
# ??????????
start_actor_select
# ?????????????
else
# ??????????
end_item_select
# ??????????????
phase3_next_actor
end
return
end
end
#--------------------------------------------------------------------------
# ? ?????? (???????????? : ??????)
#--------------------------------------------------------------------------
def update_phase3_enemy_select
# ??????????
@enemy_arrow.update
# B ??????????
if Input.trigger?(Input::B)
# ????? SE ???
$game_system.se_play($data_system.cancel_se)
# ??????????
end_enemy_select
return
end
# C ??????????
if Input.trigger?(Input::C)
# ?? SE ???
$game_system.se_play($data_system.decision_se)
# ????????
@active_battler.current_action.target_index = @enemy_arrow.index
# ??????????
end_enemy_select
# ??????????????
if @skill_window != nil
# ?????????
end_skill_select
end
# ???????????????
if @item_window != nil
# ??????????
end_item_select
end
# ??????????????
phase3_next_actor
end
end
#--------------------------------------------------------------------------
# ? ?????? (???????????? : ??????)
#--------------------------------------------------------------------------
def update_phase3_actor_select
# ??????????
@actor_arrow.update
# B ??????????
if Input.trigger?(Input::B)
# ????? SE ???
$game_system.se_play($data_system.cancel_se)
# ??????????
end_actor_select
return
end
# C ??????????
if Input.trigger?(Input::C)
# ?? SE ???
$game_system.se_play($data_system.decision_se)
# ????????
@active_battler.current_action.target_index = @actor_arrow.index
# ??????????
end_actor_select
# ??????????????
if @skill_window != nil
# ?????????
end_skill_select
end
# ???????????????
if @item_window != nil
# ??????????
end_item_select
end
# ??????????????
phase3_next_actor
end
end
#--------------------------------------------------------------------------
# ? ????????
#--------------------------------------------------------------------------
def start_enemy_select
# ??????????
@enemy_arrow = Arrow_Enemy.new(@spriteset.viewport1)
# ?????????????
@enemy_arrow.help_window = @help_window
# ?????????????????
@actor_command_window.active = false
@actor_command_window.visible = false
end
#--------------------------------------------------------------------------
# ? ????????
#--------------------------------------------------------------------------
def end_enemy_select
# ??????????
@enemy_arrow.dispose
@enemy_arrow = nil
# ????? [??] ???
if @actor_command_window.index == 0
# ?????????????????
@actor_command_window.active = true
@actor_command_window.visible = true
# ???????????
@help_window.visible = false
end
end
#--------------------------------------------------------------------------
# ? ????????
#--------------------------------------------------------------------------
def start_actor_select
# ??????????
@actor_arrow = Arrow_Actor.new(@spriteset.viewport2)
@actor_arrow.index = @actor_index
# ?????????????
@actor_arrow.help_window = @help_window
# ?????????????????
@actor_command_window.active = false
@actor_command_window.visible = false
end
#--------------------------------------------------------------------------
# ? ????????
#--------------------------------------------------------------------------
def end_actor_select
# ??????????
@actor_arrow.dispose
@actor_arrow = nil
end
#--------------------------------------------------------------------------
# ? ???????
#--------------------------------------------------------------------------
def start_skill_select
# ???????????
@skill_window = Window_Skill.new(@active_battler)
# ?????????????
@skill_window.help_window = @help_window
# ?????????????????
@actor_command_window.active = false
@actor_command_window.visible = false
end
#--------------------------------------------------------------------------
# ? ???????
#--------------------------------------------------------------------------
def end_skill_select
# ???????????
@skill_window.dispose
@skill_window = nil
# ???????????
@help_window.visible = false
# ?????????????????
@actor_command_window.active = true
@actor_command_window.visible = true
end
#--------------------------------------------------------------------------
# ? ????????
#--------------------------------------------------------------------------
def start_item_select
# ????????????
@item_window = Window_Item.new
# ?????????????
@item_window.help_window = @help_window
# ?????????????????
@actor_command_window.active = false
@actor_command_window.visible = false
end
#--------------------------------------------------------------------------
# ? ????????
#--------------------------------------------------------------------------
def end_item_select
# ????????????
@item_window.dispose
@item_window = nil
# ???????????
@help_window.visible = false
# ?????????????????
@actor_command_window.active = true
@actor_command_window.visible = true
end
end
I know, but he said, he might use it for more than only class, so I made it easier to add any in future if he wants more. And you got the error because you put 001 instead of 1. Leave out the leading zeroes. Also you need to include any IDs that WILL have the Summon command, not the ones that won't.
i put in sir edeons script and it loaded up my game but when i open my CMS it has an error
here is my CMS:
http://www.hbgames.org/forums/showthread.php?t=4059 (http://www.hbgames.org/forums/showthread.php?t=4059)
What is the error? Post the exact error message.
here is the error message
(https://rmrk.net/proxy.php?request=http%3A%2F%2Fi144.photobucket.com%2Falbums%2Fr199%2FjoeyCV%2Fgayerror.gif&hash=1cc66679d8f87b5dc6ed0046d4797bbfef86cc50)