#==============================================================================
# NewClass: Window_RecCommand = 主指令表
#==============================================================================
class Window_RecCommand < Window_MenuCommand
#--------------------------------------------------------------------------
# 生成指令列表
#--------------------------------------------------------------------------
def make_command_list
add_main_commands
end
#--------------------------------------------------------------------------
# 添加指令
#--------------------------------------------------------------------------
def add_main_commands
add_command("种族", :type_imp)
add_command("形象", :face_imp)#, type_ok?)
add_command("职业", :class_imp)#, type_ok?)
add_command("名字", :name_imp)#, type_ok?)
add_command("完成", :ok_imp)#, all_ok?)
end
#--------------------------------------------------------------------------
# 获取指令的有效状态
#--------------------------------------------------------------------------
def type_ok?
return false if $act_id == 0
return true
end
#--------------------------------------------------------------------------
# 获取“完成”指令的有效状态
#--------------------------------------------------------------------------
def all_ok?
return false if $act_id == 0
return false if $act_class == 0
return false if $act_name == 0
return true
end
#--------------------------------------------------------------------------
# 按下取消键时的处理
#--------------------------------------------------------------------------
def process_cancel
$game_actors[6].setup(6)
$game_actors[7].setup(7)
#~ $game_actors[8].setup(8)
#~ $game_actors[9].setup(9)
Sound.play_cancel
Input.update
deactivate
call_cancel_handler
end
end
#==============================================================================
# ■ NewClass: Window_NewActor = 生成角色的状态
#==============================================================================
class Window_NewActor < Window_Base
#--------------------------------------------------------------------------
# 初始化对象
#--------------------------------------------------------------------------
def initialize
super(0, 0, window_width, fitting_height(10))
self.opacity = 0
[url=home.php?mod=space&uid=95897]@actor[/url] = nil
refresh
end
#--------------------------------------------------------------------------
# 获取窗口的宽度
#--------------------------------------------------------------------------
def window_width
return 160
end
#--------------------------------------------------------------------------
# 设置角色
#--------------------------------------------------------------------------
def actor=(actor)
return if [url=home.php?mod=space&uid=95897]@actor[/url] == actor
[url=home.php?mod=space&uid=95897]@actor[/url] = actor
refresh
end
#--------------------------------------------------------------------------
# 刷新
#--------------------------------------------------------------------------
def refresh
contents.clear
return unless @actor
draw_item
end
#--------------------------------------------------------------------------
# 绘制项目
#--------------------------------------------------------------------------
def draw_item
lh = line_height
dw = window_width-28
dh = fitting_height(10)
#--
colour = Color.new(0, 0, 0, translucent_alpha)
rect = Rect.new(0, 0, dw, dh)
contents.fill_rect(rect, colour)
#--
change_color(system_color)
draw_text(4, lh*5, dw, line_height, "Name")
draw_text(4, lh*6, dw, line_height, "Class")
change_color(normal_color)
draw_actor_face(@actor, (dw-96)/2, 12)
draw_actor_name(@actor, 4+dw/2, lh*5, dw)
draw_actor_class(@actor, 4+dw/2, lh*6, dw)
#--
text1 = ""
text2 = ""
text3 = ""
text4 = ""
case @actor.class_id
when 11
text1 = ""
when 12
text1 = ""
when 13
text1 = ""
end
#--
draw_text(12, lh*7, dw, lh*4, text1)
draw_text(12, lh*8, dw, lh*4, text2)
draw_text(12, lh*9, dw, lh*4, text3)
draw_text(12, lh*10, dw, lh*4, text4)
end
end
#==============================================================================
# ■ NewClass: Window_TypeCommand = 种族选项
#==============================================================================
class Window_TypeCommand < Window_MenuCommand
#--------------------------------------------------------------------------
# 生成指令列表
#--------------------------------------------------------------------------
def make_command_list
add_original_commands
end
#--------------------------------------------------------------------------
# 独自添加指令用
#--------------------------------------------------------------------------
def add_original_commands
add_command("人类/男", :male)
add_command("人类/女", :female)
#~ add_command("精灵", :spirit)
#~ add_command("魔物", :monster)
end
end
#==============================================================================
# ■ NewClass: Window_FaceCommand = 形象选项
#==============================================================================
class Window_FaceCommand < Window_MenuCommand
#--------------------------------------------------------------------------
# 生成指令列表
#--------------------------------------------------------------------------
def make_command_list
add_original_commands
end
#--------------------------------------------------------------------------
# 独自添加指令用
#--------------------------------------------------------------------------
def add_original_commands
add_command("形象1", :face1)
add_command("形象2", :face2)
add_command("形象3", :face3)
add_command("形象4", :face4)
add_command("形象5", :face5)
add_command("形象6", :face6)
add_command("形象7", :face7)
add_command("形象8", :face8)
end
end
#==============================================================================
# ■ NewClass: Window_ClassCommand = 职业选项
#==============================================================================
class Window_ClassCommand < Window_MenuCommand
#--------------------------------------------------------------------------
# 生成指令列表
#--------------------------------------------------------------------------
def make_command_list
add_original_commands
end
#--------------------------------------------------------------------------
# 独自添加指令用
#--------------------------------------------------------------------------
def add_original_commands
add_command("职业1", :class1)
add_command("职业2", :class2)
add_command("职业3", :class3)
add_command("职业4", :class4)
end
end
#==============================================================================
# ■ NewClass: Scene_RecMenu
#==============================================================================
class Scene_RecMenu < Scene_Menu
#--------------------------------------------------------------------------
# 开始处理
#--------------------------------------------------------------------------
def start
super
[url=home.php?mod=space&uid=95897]@actor[/url] = $game_actors[$act_ini]
create_new_window
create_type_command_window
create_face_command_window
create_class_command_window
@type_command_window.hide
@face_command_window.hide
@class_command_window.hide
@new_window.actor = @actor
@new_window.refresh
end
#--------------------------------------------------------------------------
# 生成指令窗口
#--------------------------------------------------------------------------
def create_command_window
@command_window = Window_RecCommand.new
@command_window.set_handler(:type_imp, method(:command_type_imp))
@command_window.set_handler(:face_imp, method(:command_face_imp))
@command_window.set_handler(:class_imp, method(:command_class_imp))
@command_window.set_handler(:name_imp, method(:command_name_imp))
@command_window.set_handler(:ok_imp, method(:command_ok_imp))
@command_window.set_handler(:cancel, method(:return_scene))
@command_window.x = Graphics.width/2 - 60
@command_window.y = (Graphics.height - @command_window.height) / 2
end
#--------------------------------------------------------------------------
# 生成状态窗口
#--------------------------------------------------------------------------
def create_new_window
@new_window = Window_NewActor.new
@new_window.actor = @actor
@new_window.x = 60
@new_window.y = (Graphics.height - @new_window.height) / 2
end
#--------------------------------------------------------------------------
# 生成选择窗口
#--------------------------------------------------------------------------
def create_type_command_window
@type_command_window = Window_TypeCommand.new
@type_command_window.x = @command_window.width + @command_window.x
@type_command_window.y = @command_window.y
end
#--------------------------------------------------------------------------
# 生成选择窗口
#--------------------------------------------------------------------------
def create_face_command_window
@face_command_window = Window_FaceCommand.new
@face_command_window.x = @command_window.width + @command_window.x
@face_command_window.y = @command_window.y
end
#--------------------------------------------------------------------------
# 生成选择窗口
#--------------------------------------------------------------------------
def create_class_command_window
@class_command_window = Window_ClassCommand.new
@class_command_window.x = @command_window.width + @command_window.x
@class_command_window.y = @command_window.y
end
#--------------------------------------------------------------------------
# 指令
#--------------------------------------------------------------------------
def command_type_imp
@type_command_window.show
@type_command_window.select(0)
@type_command_window.activate
@type_command_window.set_handler(:ok, method(:on_type_ok))
@type_command_window.set_handler(:cancel, method(:on_imp_cancel))
end
#--------------------------------------------------------------------------
# 指令
#--------------------------------------------------------------------------
def command_face_imp
@face_command_window.show
@face_command_window.select(0)
@face_command_window.activate
@face_command_window.set_handler(:ok, method(:on_face_ok))
@face_command_window.set_handler(:cancel, method(:on_imp_cancel))
end
#--------------------------------------------------------------------------
# 指令
#--------------------------------------------------------------------------
def command_class_imp
@class_command_window.show
@class_command_window.select(0)
@class_command_window.activate
@class_command_window.set_handler(:ok, method(:on_class_ok))
@class_command_window.set_handler(:cancel, method(:on_imp_cancel))
end
#--------------------------------------------------------------------------
# 指令
#--------------------------------------------------------------------------
def command_name_imp
$act_ini = @actor.actor_id
$act_name = 1
@command_window.refresh
SceneManager.call(Scene_Name)
SceneManager.scene.prepare(@actor.actor_id, 6)
end
#--------------------------------------------------------------------------
# 指令“确定”
#--------------------------------------------------------------------------
def on_type_ok
case @type_command_window.current_symbol
when :male
[url=home.php?mod=space&uid=95897]@actor[/url] = $game_actors[6]
when :female
@actor = $game_actors[7]
#~ when :spirit
#~ @actor = $game_actors[8]
#~ when :monster
#~ @actor = $game_actors[9]
end
$act_id = 1
@new_window.actor = @actor
@new_window.refresh
@type_command_window.unselect
@type_command_window.hide
@command_window.activate
@command_window.refresh
end
#--------------------------------------------------------------------------
# 指令“确定”
#--------------------------------------------------------------------------
def on_face_ok
#--
case @face_command_window.current_symbol
when :face1
f = 1
when :face2
f = 2
when :face3
f = 3
when :face4
f = 4
when :face5
f = 5
when :face6
f = 6
when :face7
f = 7
when :face8
f = 8
end
#--
f += @actor.actor_id * 10
case f
# 男性
when 61
n = "Actor4"
i = 4
when 62
n = "Actor4"
i = 0
when 63
n = "Actor4"
i = 2
when 64
n = "Actor4"
i = 6
when 65
n = "Actor5"
i = 0
when 66
n = "Actor5"
i = 2
when 67
n = "Actor5"
i = 4
when 68
n = "Actor5"
i = 6
# 女性
when 71
n = "Actor4"
i = 5
when 72
n = "Actor4"
i = 1
when 73
n = "Actor4"
i = 3
when 74
n = "Actor4"
i = 7
when 75
n = "Actor5"
i = 1
when 76
n = "Actor5"
i = 3
when 77
n = "Actor5"
i = 5
when 78
n = "Actor5"
i = 7
end
#--
#~ @actor = @new_window.actor
@new_window.actor = @actor
@actor.set_graphic(n, i, n, i)
@new_window.refresh
@face_command_window.unselect
@face_command_window.hide
@command_window.activate
end
#--------------------------------------------------------------------------
# 指令“确定”
#--------------------------------------------------------------------------
def on_class_ok
case @class_command_window.current_symbol
when :class1
c = 10
when :class2
c = 11
when :class3
c = 12
when :class4
c = 13
when :class5
c = 14
when :class6
c = 15
when :class7
c = 16
when :class8
c = 17
end
#~ c += 10 if @actor.actor_id == 7
@actor.change_class(c)
#--
$act_class = 1
@new_window.refresh
@class_command_window.unselect
@class_command_window.hide
@command_window.activate
@command_window.refresh
end
#--------------------------------------------------------------------------
# 指令“取消”
#--------------------------------------------------------------------------
def on_imp_cancel
@type_command_window.unselect
@type_command_window.hide
@face_command_window.unselect
@face_command_window.hide
@class_command_window.unselect
@class_command_window.hide
@command_window.activate
end
#--------------------------------------------------------------------------
# 输入指令
#--------------------------------------------------------------------------
def command_ok_imp
for i in 12...40
c = i
break if $game_switches[i] != true
end
#--
$game_switches[c] = true
actor = $game_actors[c]
actor.set_graphic(@actor.character_name, @actor.character_index,
@actor.face_name, @actor.face_index)
actor.name = @actor.name
actor.change_class(@actor.class_id)
$game_party.add_actor(actor.actor_id) #if $game_party.members.size < 4
#--
$game_actors[6].setup(6)
$game_actors[7].setup(7)
#~ $game_actors[8].setup(8)
#~ $game_actors[9].setup(9)
return_scene
end
end