# ★ change BATORUREIAUTO
# SUTETOAIKON material, the use of animation, recommended
#================================================= =============================
# ■ Ziifee
#================================================= =============================
module Zii
# ▼ icon (נ16 + vertical side - 1)
FIGHT = 132 # fight
ESCAPE = 143 # escape
ATTACK = 1 # attack (basic)
GUARD = 52 # defense
SKILL = 137 # skills
ITEM = 144 # Item
# ▼ rotation (a "positive" or "reverse" Cart)
TURN = "positive"
# ▼ face graphics (using "use" / if you do not use "")
STATUS_FACE = ""
# ▼ display settings ( "name" to "" to hide the name)
STATUS_LINE = "name"
# ▼ △ size (VX standard size is 20)
LINE_SIZE = 14
#------------------------------------------------- -------------------------
# ● normal rotation of judgement
#------------------------------------------------- -------------------------
def self.turn_normal?
return false if TURN == "reverse"
return true if TURN == "positive"
return true
end
#------------------------------------------------- -------------------------
# ● Battle option face Graphics judgement
#------------------------------------------------- -------------------------
def self.battle_face?
return true if STATUS_FACE == ""
return false
end
#------------------------------------------------- -------------------------
# ● In the Name of judge
#------------------------------------------------- -------------------------
def self.line_name?
return true if STATUS_LINE == "name"
return false
end
end
#==============================================================================
# �� Window_Base
#==============================================================================
class Window_Base
#--------------------------------------------------------------------------
# �� ���O���t�B�b�N���`�� ��
# opacity : �s�����x
#--------------------------------------------------------------------------
def draw_face(face_name, face_index, x, y, size = 96, opacity = 255)
bitmap = Cache.face(face_name)
rect = Rect.new(0, 0, 0, 0)
rect.x = face_index % 4 * 96 + (96 - size) / 2
rect.y = face_index / 4 * 96 + (96 - size) / 2
rect.width = size
rect.height = size
self.contents.blt(x, y, bitmap, rect, opacity)
bitmap.dispose
end
#--------------------------------------------------------------------------
# �� �A�N�^�[�����O���t�B�b�N�`�� ��
# opacity : �s�����x
#--------------------------------------------------------------------------
def draw_actor_face(actor, x, y, size = 96, opacity = 255)
draw_face(actor.face_name, actor.face_index, x, y, size, opacity)
end
end
#==============================================================================
# �� Window_SpinCommand
#------------------------------------------------------------------------------
# �@���]�p�R�}���h�I�����s���E�B���h�E�����B
#==============================================================================
class Window_SpinCommand < Window_Base
#--------------------------------------------------------------------------
# �� ���J�C���X�^���X����
#--------------------------------------------------------------------------
attr_reader :index # �J�[������u
attr_reader :help_window # �w���v�E�B���h�E
#--------------------------------------------------------------------------
# �� �I�u�W�F�N�g������
# cx / cy : ���S�� X���W / Y���W
# commands : �R�}���h�z�� (���e �� [name, kind, pull, enabled?])
# setting : �����n�b�V�� ("R"=>���a "S"=>���� "G"=>�w�i "L"=>����)
#--------------------------------------------------------------------------
def initialize(cx, cy, commands, setting = {})
@radius = setting.has_key?("R") ? setting["R"] : 40 # �`�����a
@speed = setting.has_key?("S") ? setting["S"] : 36 # ���]����
@spin_back = setting.has_key?("G") ? setting["G"] : "" # �w�i����
@spin_line = setting.has_key?("L") ? setting["L"] : nil # �������u
x, y = cx - @radius - 28, cy - @radius - 28
width = height = @radius * 2 + 56
super(x, y, width, height)
self.opacity = 0
@index = 0
@commands = commands # �R�}���h
@spin_right = true
@spin_count = 0
update_cursor
end
#--------------------------------------------------------------------------
# �� �X�s���������`������ (�`�����e �����p)
# i : �C���f�b�N�X
# cx : ��� ���S���u X���W
# cy : ��� ���S���u Y���W
#--------------------------------------------------------------------------
def draw_spin_graphic(i, cx, cy)
case command_kind(i)
when "icon"
draw_icon(command_pull(i), cx - 12, cy - 12, command_enabled?(i))
end
end
#--------------------------------------------------------------------------
# �� ���t���b�V�� �o�O�����p
#--------------------------------------------------------------------------
def refresh
set_spin
end
#--------------------------------------------------------------------------
# �� �������`�� �o�O�����p
#--------------------------------------------------------------------------
def draw_item(index, enabled = true)
@commands[index][3] = enabled
set_spin
end
#--------------------------------------------------------------------------
# �� �������R�}���h������������
#--------------------------------------------------------------------------
def command_name(index = @index)
return "" if index < 0
name = @commands[index][0]
return name != nil ? name : ""
end
#--------------------------------------------------------------------------
# �� �R�}���h������������
#--------------------------------------------------------------------------
def command_kind(index)
result = @commands[index][1]
return result != nil ? result : ""
end
#--------------------------------------------------------------------------
# �� �R�}���h������ ������
#--------------------------------------------------------------------------
def command_pull(index)
result = @commands[index][2]
return result != nil ? result : ""
end
#--------------------------------------------------------------------------
# �� �R�}���h���L���t���O������
#--------------------------------------------------------------------------
def command_enabled?(index)
result = @commands[index][3]
return result != nil ? result : true
end
#--------------------------------------------------------------------------
# �� ���O�����u�� index ����������
#--------------------------------------------------------------------------
def set_index(name)
n = -1
for i in 0...@commands.size
n = i if @commands[i][0] == name
end
@index = n if n >= 0
update_cursor
call_update_help
set_spin
end
#--------------------------------------------------------------------------
# �� �J�[������u������
# index : �V�����J�[������u
#--------------------------------------------------------------------------
def index=(index)
@index = index
update_cursor
call_update_help
set_spin
end
#--------------------------------------------------------------------------
# �� ���S��X���W������
#--------------------------------------------------------------------------
def center_x
return contents.width / 2
end
#--------------------------------------------------------------------------
# �� ���S��Y���W������
#--------------------------------------------------------------------------
def center_y
return contents.height / 2
end
#--------------------------------------------------------------------------
# �� ������������
#--------------------------------------------------------------------------
def item_max
return @commands.size
end
#--------------------------------------------------------------------------
# �� �w�i������ (�����` ����)
#--------------------------------------------------------------------------
def set_background
return if @spin_back == ""
bitmap = Cache.system(@spin_back)
rect = Rect.new(0, 0, bitmap.width, bitmap.height)
self.contents.blt(12, 12, bitmap, rect)
end
#--------------------------------------------------------------------------
# �� ���������� (�����` ����)
#--------------------------------------------------------------------------
def set_text
return if @spin_line == nil
y = center_y - WLH / 2 + @spin_line
self.contents.draw_text(center_x - 48, y, 96, WLH, command_name, 1)
end
#--------------------------------------------------------------------------
# �� �X�s���A�C�R�����p�x��������������
#--------------------------------------------------------------------------
def angle_size
return (Math::PI * 2 / item_max)
end
#--------------------------------------------------------------------------
# �� �X�s���A�C�R�����]�����J�E���g ����������
#--------------------------------------------------------------------------
def set_spin_count
@spin_count = angle_size * 360 / @speed
set_spin(true)
end
#--------------------------------------------------------------------------
# �� �X�s������ �����s
# spin : ���]�t���O (true �������]��)
#--------------------------------------------------------------------------
def set_spin(spin = false)
self.contents.clear
set_background
angle = spin ? @speed * @spin_count / 360 : 0
angle = @spin_right ? angle : -angle
for i in 0...item_max
n = (i - @index) * angle_size + angle
cx = @radius * Math.sin(n) + center_x
cy = - @radius * Math.cos(n) + center_y
draw_spin_graphic(i, cx, cy)
end
set_text
end
#--------------------------------------------------------------------------
# �� �t���[���X�V
#--------------------------------------------------------------------------
def update
super
update_cursor
if @spin_count > 0
@spin_count -= 1
set_spin(@spin_count >= 1)
return
end
update_command
end
#--------------------------------------------------------------------------
# �� �R�}���h�������������
#--------------------------------------------------------------------------
def command_movable?
return false if @spin_count > 0
return false if (not visible or not active)
return false if (index < 0 or index > item_max or item_max == 0)
return false if (@opening or @closing)
return true
end
#--------------------------------------------------------------------------
# �� �R�}���h���E������
#--------------------------------------------------------------------------
def command_right
@index = (@index + 1) % item_max
@spin_right = true
set_spin_count
end
#--------------------------------------------------------------------------
# �� �R�}���h����������
#--------------------------------------------------------------------------
def command_left
@index = (@index - 1 + item_max) % item_max
@spin_right = false
set_spin_count
end
#--------------------------------------------------------------------------
# �� �R�}���h�I�����X�V
#--------------------------------------------------------------------------
def update_command
if command_movable?
if Input.press?(Input::RIGHT)
Sound.play_cursor
Zii.turn_normal? ? command_right : command_left
end
if Input.press?(Input::LEFT)
Sound.play_cursor
Zii.turn_normal? ? command_left : command_right
end
end
call_update_help
end
#--------------------------------------------------------------------------
# �� �J�[������X�V
#--------------------------------------------------------------------------
def update_cursor
if @index < 0
self.cursor_rect.empty
else
rect = Rect.new(0, 0, 24, 24)
rect.x = center_x - rect.width / 2
rect.y = center_y - rect.height / 2 - @radius
self.cursor_rect = rect
end
end
#--------------------------------------------------------------------------
# �� �w���v�E�B���h�E������
# help_window : �V�����w���v�E�B���h�E
#--------------------------------------------------------------------------
def help_window=(help_window)
@help_window = help_window
call_update_help
end
#--------------------------------------------------------------------------
# �� �w���v�E�B���h�E�X�V����b�h�������o��
#--------------------------------------------------------------------------
def call_update_help
if self.active and @help_window != nil
update_help
end
end
#--------------------------------------------------------------------------
# �� �w���v�E�B���h�E���X�V (���e���p���������`����)
#--------------------------------------------------------------------------
def update_help
end
end
#==============================================================================
# �� Window_LineHelp
#------------------------------------------------------------------------------
# �@�X�L�����A�C�e���������A�A�N�^�[���X�e�[�^�X��������������E�B���h�E�����B
#==============================================================================
class Window_LineHelp < Window_Base
#--------------------------------------------------------------------------
# �� �I�u�W�F�N�g������
#--------------------------------------------------------------------------
def initialize
super(-16, 0, 576, WLH + 32)
self.opacity = 0
end
#--------------------------------------------------------------------------
# �� �e�L�X�g����
# text : �E�B���h�E���������������
# align : �A���C�������g (0..�������A1..���������A2..�E����)
#--------------------------------------------------------------------------
def set_text(text, align = 0)
if text != @text or align != @align
self.contents.clear
back_color = Color.new(0, 0, 0, 80)
self.contents.fill_rect(0, y = 12, contents.width, WLH - y, back_color)
self.contents.font.color = normal_color
self.contents.draw_text(20, 0, self.width - 72, WLH, text, align)
@text = text
@align = align
end
end
end
#==============================================================================
# �� Window_PartyCommand
#==============================================================================
class Window_PartyCommand < Window_SpinCommand
#--------------------------------------------------------------------------
# �� �I�u�W�F�N�g������
#--------------------------------------------------------------------------
def initialize
s1 = [Vocab::fight, "icon", Zii::FIGHT, true]
s2 = [Vocab::escape, "icon", Zii::ESCAPE, $game_troop.can_escape]
setting = {"R"=>40, "S"=>52, "G"=>"Spin40", "L"=>-12}
super(72, 356, [s1, s2], setting)
self.active = false
set_spin
end
end
#==============================================================================
# �� Window_ActorCommand
#==============================================================================
class Window_ActorCommand < Window_SpinCommand
#--------------------------------------------------------------------------
# �� �I�u�W�F�N�g������
#--------------------------------------------------------------------------
def initialize
s1 = [Vocab::attack, "icon", Zii::ATTACK, true]
s2 = [Vocab::skill, "icon", Zii::SKILL, true]
s3 = [Vocab::guard, "icon", Zii::GUARD, true]
s4 = [Vocab::item, "icon", Zii::ITEM, true]
setting = {"R"=>40, "S"=>52, "G"=>"Spin40", "L"=>-12}
super(72, 356, [s1, s2, s3, s4], setting)
self.active = false
set_spin
end
#--------------------------------------------------------------------------
# �� �Z�b�g�A�b�v
# actor : �A�N�^�[
#--------------------------------------------------------------------------
def setup(actor)
@commands[0][2] = Zii::ATTACK
@commands[1][0] = Vocab::skill
if actor.weapons[0] != nil
n = actor.weapons[0].icon_index
@commands[0][2] = n if n > 0
end
@commands[1][0] = actor.class.skill_name if actor.class.skill_name_valid
self.index = 0
set_spin
end
end
#==============================================================================
# �� Window_BattleStatus
#==============================================================================
class Window_BattleStatus < Window_Selectable
#--------------------------------------------------------------------------
# �� �I�u�W�F�N�g������ ��
#--------------------------------------------------------------------------
def initialize
super(128, 288, 416, 128)
@column_max = 4
refresh
self.active = false
self.opacity = 0
end
#--------------------------------------------------------------------------
# �� �X�e�[�g���X�V �����n�`��
#--------------------------------------------------------------------------
def draw_neomemo7_back
@neomemo7_clear = false
for index in 0...@item_max
x = index * 96
self.contents.clear_rect(x + 72, WLH * 3, 24, 24)
next unless Zii.battle_face?
actor = $game_party.members[index]
next if actor.hp <= 0
bitmap = Cache.face(actor.face_name)
rect = Rect.new(0, 0, 22, 22)
rect.x = actor.face_index % 4 * 96 + 72
rect.y = actor.face_index / 4 * 96 + 72
self.contents.blt(x + 72, WLH * 3, bitmap, rect, 192)
end
end
#--------------------------------------------------------------------------
# �� �������`�� ��
#--------------------------------------------------------------------------
def draw_item(index)
x = index * 96
rect = Rect.new(x, 0, 96, 96)
self.contents.clear_rect(rect)
self.contents.font.color = normal_color
actor = $game_party.members[index]
draw_actor_face(actor, x + 2, 2, 92, 192) if actor.hp > 0 and Zii.battle_face?
draw_actor_state(actor, x + 72, WLH * 3)
if Zii.line_name?
self.contents.font.color = hp_color(actor)
size = Zii::LINE_SIZE
self.contents.font.size = size
self.contents.draw_text(x, WLH * 1 + 20 - size, 80, WLH, actor.name)
self.contents.font.size = 20
end
draw_actor_hp(actor, x, WLH * 2, 80)
draw_actor_mp(actor, x, WLH * 3, 70)
end
#--------------------------------------------------------------------------
# �� �J�[������X�V
#--------------------------------------------------------------------------
def update_cursor
if @index < 0 # �J�[������u�� 0 ����������
self.cursor_rect.empty # �J�[���������������
else # �J�[������u�� 0 ����������
rect = Rect.new(index * 96, 0, 96, 96)
self.cursor_rect = rect # �J�[��������`���X�V
end
end
end
#==============================================================================
# �� Scene_Battle
#------------------------------------------------------------------------------
# �@�o�g���������������s���N���X�����B
#==============================================================================
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# �� ��������r���[�|�[�g������
#--------------------------------------------------------------------------
alias :neomemo13_create_info_viewport :create_info_viewport
def create_info_viewport
neomemo13_create_info_viewport
@info_viewport.rect.set(0, 0, 544, 416)
@status_window.x = 128
@actor_command_window.x = 4
end
#--------------------------------------------------------------------------
# �� ��������r���[�|�[�g���X�V
#--------------------------------------------------------------------------
alias :neomemo13_update_info_viewport :update_info_viewport
def update_info_viewport
ox = @info_viewport.ox
neomemo13_update_info_viewport
@info_viewport.ox = ox
end
#--------------------------------------------------------------------------
# �� �p�[�e�B�R�}���h�I�����J�n
#--------------------------------------------------------------------------
alias :neomemo13_start_party_command_selection :start_party_command_selection
def start_party_command_selection
if $game_temp.in_battle
@party_command_window.visible = true
@actor_command_window.visible = false
end
neomemo13_start_party_command_selection
end
#--------------------------------------------------------------------------
# �� �p�[�e�B�R�}���h�I�����X�V
#--------------------------------------------------------------------------
alias :neomemo13_update_party_command_selection :update_party_command_selection
def update_party_command_selection
return unless @party_command_window.command_movable?
neomemo13_update_party_command_selection
end
#--------------------------------------------------------------------------
# �� �A�N�^�[�R�}���h�I�����J�n
#--------------------------------------------------------------------------
alias :neomemo13_start_actor_command_selection :start_actor_command_selection
def start_actor_command_selection
neomemo13_start_actor_command_selection
@party_command_window.visible = false
@actor_command_window.visible = true
end
#--------------------------------------------------------------------------
# �� �A�N�^�[�R�}���h�I�����X�V
#--------------------------------------------------------------------------
alias :neomemo13_update_actor_command_selection :update_actor_command_selection
def update_actor_command_selection
return unless @actor_command_window.command_movable?
neomemo13_update_actor_command_selection
end
#--------------------------------------------------------------------------
# �� �����G�L�����I�����J�n
#--------------------------------------------------------------------------
alias :neomemo13_start_target_enemy_selection :start_target_enemy_selection
def start_target_enemy_selection
x = @info_viewport.rect.x
ox = @info_viewport.ox
neomemo13_start_target_enemy_selection
@info_viewport.rect.x = x
@info_viewport.ox = ox
@target_enemy_window.x = 544 - @target_enemy_window.width
@target_enemy_window.y = 288
@info_viewport.rect.width -= @target_enemy_window.width
end
#--------------------------------------------------------------------------
# �� �����G�L�����I�����I��
#--------------------------------------------------------------------------
alias :neomemo13_end_target_enemy_selection :end_target_enemy_selection
def end_target_enemy_selection
x = @info_viewport.rect.x
ox = @info_viewport.ox
@info_viewport.rect.width += @target_enemy_window.width
neomemo13_end_target_enemy_selection
@info_viewport.rect.x = x
@info_viewport.ox = ox
end
#--------------------------------------------------------------------------
# �� �����A�N�^�[�����I�����J�n
#--------------------------------------------------------------------------
alias :neomemo13_start_target_actor_selection :start_target_actor_selection
def start_target_actor_selection
x = @info_viewport.rect.x
ox = @info_viewport.ox
neomemo13_start_target_actor_selection
@target_actor_window.y = 288
@info_viewport.rect.x = x
@info_viewport.ox = ox
@info_viewport.rect.width -= @target_actor_window.width
end
#--------------------------------------------------------------------------
# �� �����A�N�^�[�I�����I��
#--------------------------------------------------------------------------
alias :neomemo13_end_target_actor_selection :end_target_actor_selection
def end_target_actor_selection
x = @info_viewport.rect.x
ox = @info_viewport.ox
@info_viewport.rect.width += @target_actor_window.width
neomemo13_end_target_actor_selection
@info_viewport.rect.x = x
@info_viewport.ox = ox
end
#--------------------------------------------------------------------------
# �� �X�L���I�����J�n
#--------------------------------------------------------------------------
alias :neomemo13_start_skill_selection :start_skill_selection
def start_skill_selection
neomemo13_start_skill_selection
@skill_window.dispose if @skill_window != nil
@help_window.dispose if @help_window != nil
@help_window = Window_LineHelp.new
@skill_window = Window_Skill.new(8, 64, 528, 216, @active_battler)
@skill_window.help_window = @help_window
end
#--------------------------------------------------------------------------
# �� �A�C�e���I�����J�n
#--------------------------------------------------------------------------
alias :neomemo13_start_item_selection :start_item_selection
def start_item_selection
neomemo13_start_item_selection
@item_window.dispose if @item_window != nil
@help_window.dispose if @help_window != nil
@help_window = Window_LineHelp.new
@item_window = Window_Item.new(8, 64, 528, 216)
@item_window.help_window = @help_window
end
end
# SUTETOAIKON material, the use of animation, recommended
#================================================= =============================
# ■ Ziifee
#================================================= =============================
module Zii
# ▼ icon (נ16 + vertical side - 1)
FIGHT = 132 # fight
ESCAPE = 143 # escape
ATTACK = 1 # attack (basic)
GUARD = 52 # defense
SKILL = 137 # skills
ITEM = 144 # Item
# ▼ rotation (a "positive" or "reverse" Cart)
TURN = "positive"
# ▼ face graphics (using "use" / if you do not use "")
STATUS_FACE = ""
# ▼ display settings ( "name" to "" to hide the name)
STATUS_LINE = "name"
# ▼ △ size (VX standard size is 20)
LINE_SIZE = 14
#------------------------------------------------- -------------------------
# ● normal rotation of judgement
#------------------------------------------------- -------------------------
def self.turn_normal?
return false if TURN == "reverse"
return true if TURN == "positive"
return true
end
#------------------------------------------------- -------------------------
# ● Battle option face Graphics judgement
#------------------------------------------------- -------------------------
def self.battle_face?
return true if STATUS_FACE == ""
return false
end
#------------------------------------------------- -------------------------
# ● In the Name of judge
#------------------------------------------------- -------------------------
def self.line_name?
return true if STATUS_LINE == "name"
return false
end
end
#==============================================================================
# �� Window_Base
#==============================================================================
class Window_Base
#--------------------------------------------------------------------------
# �� ���O���t�B�b�N���`�� ��
# opacity : �s�����x
#--------------------------------------------------------------------------
def draw_face(face_name, face_index, x, y, size = 96, opacity = 255)
bitmap = Cache.face(face_name)
rect = Rect.new(0, 0, 0, 0)
rect.x = face_index % 4 * 96 + (96 - size) / 2
rect.y = face_index / 4 * 96 + (96 - size) / 2
rect.width = size
rect.height = size
self.contents.blt(x, y, bitmap, rect, opacity)
bitmap.dispose
end
#--------------------------------------------------------------------------
# �� �A�N�^�[�����O���t�B�b�N�`�� ��
# opacity : �s�����x
#--------------------------------------------------------------------------
def draw_actor_face(actor, x, y, size = 96, opacity = 255)
draw_face(actor.face_name, actor.face_index, x, y, size, opacity)
end
end
#==============================================================================
# �� Window_SpinCommand
#------------------------------------------------------------------------------
# �@���]�p�R�}���h�I�����s���E�B���h�E�����B
#==============================================================================
class Window_SpinCommand < Window_Base
#--------------------------------------------------------------------------
# �� ���J�C���X�^���X����
#--------------------------------------------------------------------------
attr_reader :index # �J�[������u
attr_reader :help_window # �w���v�E�B���h�E
#--------------------------------------------------------------------------
# �� �I�u�W�F�N�g������
# cx / cy : ���S�� X���W / Y���W
# commands : �R�}���h�z�� (���e �� [name, kind, pull, enabled?])
# setting : �����n�b�V�� ("R"=>���a "S"=>���� "G"=>�w�i "L"=>����)
#--------------------------------------------------------------------------
def initialize(cx, cy, commands, setting = {})
@radius = setting.has_key?("R") ? setting["R"] : 40 # �`�����a
@speed = setting.has_key?("S") ? setting["S"] : 36 # ���]����
@spin_back = setting.has_key?("G") ? setting["G"] : "" # �w�i����
@spin_line = setting.has_key?("L") ? setting["L"] : nil # �������u
x, y = cx - @radius - 28, cy - @radius - 28
width = height = @radius * 2 + 56
super(x, y, width, height)
self.opacity = 0
@index = 0
@commands = commands # �R�}���h
@spin_right = true
@spin_count = 0
update_cursor
end
#--------------------------------------------------------------------------
# �� �X�s���������`������ (�`�����e �����p)
# i : �C���f�b�N�X
# cx : ��� ���S���u X���W
# cy : ��� ���S���u Y���W
#--------------------------------------------------------------------------
def draw_spin_graphic(i, cx, cy)
case command_kind(i)
when "icon"
draw_icon(command_pull(i), cx - 12, cy - 12, command_enabled?(i))
end
end
#--------------------------------------------------------------------------
# �� ���t���b�V�� �o�O�����p
#--------------------------------------------------------------------------
def refresh
set_spin
end
#--------------------------------------------------------------------------
# �� �������`�� �o�O�����p
#--------------------------------------------------------------------------
def draw_item(index, enabled = true)
@commands[index][3] = enabled
set_spin
end
#--------------------------------------------------------------------------
# �� �������R�}���h������������
#--------------------------------------------------------------------------
def command_name(index = @index)
return "" if index < 0
name = @commands[index][0]
return name != nil ? name : ""
end
#--------------------------------------------------------------------------
# �� �R�}���h������������
#--------------------------------------------------------------------------
def command_kind(index)
result = @commands[index][1]
return result != nil ? result : ""
end
#--------------------------------------------------------------------------
# �� �R�}���h������ ������
#--------------------------------------------------------------------------
def command_pull(index)
result = @commands[index][2]
return result != nil ? result : ""
end
#--------------------------------------------------------------------------
# �� �R�}���h���L���t���O������
#--------------------------------------------------------------------------
def command_enabled?(index)
result = @commands[index][3]
return result != nil ? result : true
end
#--------------------------------------------------------------------------
# �� ���O�����u�� index ����������
#--------------------------------------------------------------------------
def set_index(name)
n = -1
for i in 0...@commands.size
n = i if @commands[i][0] == name
end
@index = n if n >= 0
update_cursor
call_update_help
set_spin
end
#--------------------------------------------------------------------------
# �� �J�[������u������
# index : �V�����J�[������u
#--------------------------------------------------------------------------
def index=(index)
@index = index
update_cursor
call_update_help
set_spin
end
#--------------------------------------------------------------------------
# �� ���S��X���W������
#--------------------------------------------------------------------------
def center_x
return contents.width / 2
end
#--------------------------------------------------------------------------
# �� ���S��Y���W������
#--------------------------------------------------------------------------
def center_y
return contents.height / 2
end
#--------------------------------------------------------------------------
# �� ������������
#--------------------------------------------------------------------------
def item_max
return @commands.size
end
#--------------------------------------------------------------------------
# �� �w�i������ (�����` ����)
#--------------------------------------------------------------------------
def set_background
return if @spin_back == ""
bitmap = Cache.system(@spin_back)
rect = Rect.new(0, 0, bitmap.width, bitmap.height)
self.contents.blt(12, 12, bitmap, rect)
end
#--------------------------------------------------------------------------
# �� ���������� (�����` ����)
#--------------------------------------------------------------------------
def set_text
return if @spin_line == nil
y = center_y - WLH / 2 + @spin_line
self.contents.draw_text(center_x - 48, y, 96, WLH, command_name, 1)
end
#--------------------------------------------------------------------------
# �� �X�s���A�C�R�����p�x��������������
#--------------------------------------------------------------------------
def angle_size
return (Math::PI * 2 / item_max)
end
#--------------------------------------------------------------------------
# �� �X�s���A�C�R�����]�����J�E���g ����������
#--------------------------------------------------------------------------
def set_spin_count
@spin_count = angle_size * 360 / @speed
set_spin(true)
end
#--------------------------------------------------------------------------
# �� �X�s������ �����s
# spin : ���]�t���O (true �������]��)
#--------------------------------------------------------------------------
def set_spin(spin = false)
self.contents.clear
set_background
angle = spin ? @speed * @spin_count / 360 : 0
angle = @spin_right ? angle : -angle
for i in 0...item_max
n = (i - @index) * angle_size + angle
cx = @radius * Math.sin(n) + center_x
cy = - @radius * Math.cos(n) + center_y
draw_spin_graphic(i, cx, cy)
end
set_text
end
#--------------------------------------------------------------------------
# �� �t���[���X�V
#--------------------------------------------------------------------------
def update
super
update_cursor
if @spin_count > 0
@spin_count -= 1
set_spin(@spin_count >= 1)
return
end
update_command
end
#--------------------------------------------------------------------------
# �� �R�}���h�������������
#--------------------------------------------------------------------------
def command_movable?
return false if @spin_count > 0
return false if (not visible or not active)
return false if (index < 0 or index > item_max or item_max == 0)
return false if (@opening or @closing)
return true
end
#--------------------------------------------------------------------------
# �� �R�}���h���E������
#--------------------------------------------------------------------------
def command_right
@index = (@index + 1) % item_max
@spin_right = true
set_spin_count
end
#--------------------------------------------------------------------------
# �� �R�}���h����������
#--------------------------------------------------------------------------
def command_left
@index = (@index - 1 + item_max) % item_max
@spin_right = false
set_spin_count
end
#--------------------------------------------------------------------------
# �� �R�}���h�I�����X�V
#--------------------------------------------------------------------------
def update_command
if command_movable?
if Input.press?(Input::RIGHT)
Sound.play_cursor
Zii.turn_normal? ? command_right : command_left
end
if Input.press?(Input::LEFT)
Sound.play_cursor
Zii.turn_normal? ? command_left : command_right
end
end
call_update_help
end
#--------------------------------------------------------------------------
# �� �J�[������X�V
#--------------------------------------------------------------------------
def update_cursor
if @index < 0
self.cursor_rect.empty
else
rect = Rect.new(0, 0, 24, 24)
rect.x = center_x - rect.width / 2
rect.y = center_y - rect.height / 2 - @radius
self.cursor_rect = rect
end
end
#--------------------------------------------------------------------------
# �� �w���v�E�B���h�E������
# help_window : �V�����w���v�E�B���h�E
#--------------------------------------------------------------------------
def help_window=(help_window)
@help_window = help_window
call_update_help
end
#--------------------------------------------------------------------------
# �� �w���v�E�B���h�E�X�V����b�h�������o��
#--------------------------------------------------------------------------
def call_update_help
if self.active and @help_window != nil
update_help
end
end
#--------------------------------------------------------------------------
# �� �w���v�E�B���h�E���X�V (���e���p���������`����)
#--------------------------------------------------------------------------
def update_help
end
end
#==============================================================================
# �� Window_LineHelp
#------------------------------------------------------------------------------
# �@�X�L�����A�C�e���������A�A�N�^�[���X�e�[�^�X��������������E�B���h�E�����B
#==============================================================================
class Window_LineHelp < Window_Base
#--------------------------------------------------------------------------
# �� �I�u�W�F�N�g������
#--------------------------------------------------------------------------
def initialize
super(-16, 0, 576, WLH + 32)
self.opacity = 0
end
#--------------------------------------------------------------------------
# �� �e�L�X�g����
# text : �E�B���h�E���������������
# align : �A���C�������g (0..�������A1..���������A2..�E����)
#--------------------------------------------------------------------------
def set_text(text, align = 0)
if text != @text or align != @align
self.contents.clear
back_color = Color.new(0, 0, 0, 80)
self.contents.fill_rect(0, y = 12, contents.width, WLH - y, back_color)
self.contents.font.color = normal_color
self.contents.draw_text(20, 0, self.width - 72, WLH, text, align)
@text = text
@align = align
end
end
end
#==============================================================================
# �� Window_PartyCommand
#==============================================================================
class Window_PartyCommand < Window_SpinCommand
#--------------------------------------------------------------------------
# �� �I�u�W�F�N�g������
#--------------------------------------------------------------------------
def initialize
s1 = [Vocab::fight, "icon", Zii::FIGHT, true]
s2 = [Vocab::escape, "icon", Zii::ESCAPE, $game_troop.can_escape]
setting = {"R"=>40, "S"=>52, "G"=>"Spin40", "L"=>-12}
super(72, 356, [s1, s2], setting)
self.active = false
set_spin
end
end
#==============================================================================
# �� Window_ActorCommand
#==============================================================================
class Window_ActorCommand < Window_SpinCommand
#--------------------------------------------------------------------------
# �� �I�u�W�F�N�g������
#--------------------------------------------------------------------------
def initialize
s1 = [Vocab::attack, "icon", Zii::ATTACK, true]
s2 = [Vocab::skill, "icon", Zii::SKILL, true]
s3 = [Vocab::guard, "icon", Zii::GUARD, true]
s4 = [Vocab::item, "icon", Zii::ITEM, true]
setting = {"R"=>40, "S"=>52, "G"=>"Spin40", "L"=>-12}
super(72, 356, [s1, s2, s3, s4], setting)
self.active = false
set_spin
end
#--------------------------------------------------------------------------
# �� �Z�b�g�A�b�v
# actor : �A�N�^�[
#--------------------------------------------------------------------------
def setup(actor)
@commands[0][2] = Zii::ATTACK
@commands[1][0] = Vocab::skill
if actor.weapons[0] != nil
n = actor.weapons[0].icon_index
@commands[0][2] = n if n > 0
end
@commands[1][0] = actor.class.skill_name if actor.class.skill_name_valid
self.index = 0
set_spin
end
end
#==============================================================================
# �� Window_BattleStatus
#==============================================================================
class Window_BattleStatus < Window_Selectable
#--------------------------------------------------------------------------
# �� �I�u�W�F�N�g������ ��
#--------------------------------------------------------------------------
def initialize
super(128, 288, 416, 128)
@column_max = 4
refresh
self.active = false
self.opacity = 0
end
#--------------------------------------------------------------------------
# �� �X�e�[�g���X�V �����n�`��
#--------------------------------------------------------------------------
def draw_neomemo7_back
@neomemo7_clear = false
for index in 0...@item_max
x = index * 96
self.contents.clear_rect(x + 72, WLH * 3, 24, 24)
next unless Zii.battle_face?
actor = $game_party.members[index]
next if actor.hp <= 0
bitmap = Cache.face(actor.face_name)
rect = Rect.new(0, 0, 22, 22)
rect.x = actor.face_index % 4 * 96 + 72
rect.y = actor.face_index / 4 * 96 + 72
self.contents.blt(x + 72, WLH * 3, bitmap, rect, 192)
end
end
#--------------------------------------------------------------------------
# �� �������`�� ��
#--------------------------------------------------------------------------
def draw_item(index)
x = index * 96
rect = Rect.new(x, 0, 96, 96)
self.contents.clear_rect(rect)
self.contents.font.color = normal_color
actor = $game_party.members[index]
draw_actor_face(actor, x + 2, 2, 92, 192) if actor.hp > 0 and Zii.battle_face?
draw_actor_state(actor, x + 72, WLH * 3)
if Zii.line_name?
self.contents.font.color = hp_color(actor)
size = Zii::LINE_SIZE
self.contents.font.size = size
self.contents.draw_text(x, WLH * 1 + 20 - size, 80, WLH, actor.name)
self.contents.font.size = 20
end
draw_actor_hp(actor, x, WLH * 2, 80)
draw_actor_mp(actor, x, WLH * 3, 70)
end
#--------------------------------------------------------------------------
# �� �J�[������X�V
#--------------------------------------------------------------------------
def update_cursor
if @index < 0 # �J�[������u�� 0 ����������
self.cursor_rect.empty # �J�[���������������
else # �J�[������u�� 0 ����������
rect = Rect.new(index * 96, 0, 96, 96)
self.cursor_rect = rect # �J�[��������`���X�V
end
end
end
#==============================================================================
# �� Scene_Battle
#------------------------------------------------------------------------------
# �@�o�g���������������s���N���X�����B
#==============================================================================
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# �� ��������r���[�|�[�g������
#--------------------------------------------------------------------------
alias :neomemo13_create_info_viewport :create_info_viewport
def create_info_viewport
neomemo13_create_info_viewport
@info_viewport.rect.set(0, 0, 544, 416)
@status_window.x = 128
@actor_command_window.x = 4
end
#--------------------------------------------------------------------------
# �� ��������r���[�|�[�g���X�V
#--------------------------------------------------------------------------
alias :neomemo13_update_info_viewport :update_info_viewport
def update_info_viewport
ox = @info_viewport.ox
neomemo13_update_info_viewport
@info_viewport.ox = ox
end
#--------------------------------------------------------------------------
# �� �p�[�e�B�R�}���h�I�����J�n
#--------------------------------------------------------------------------
alias :neomemo13_start_party_command_selection :start_party_command_selection
def start_party_command_selection
if $game_temp.in_battle
@party_command_window.visible = true
@actor_command_window.visible = false
end
neomemo13_start_party_command_selection
end
#--------------------------------------------------------------------------
# �� �p�[�e�B�R�}���h�I�����X�V
#--------------------------------------------------------------------------
alias :neomemo13_update_party_command_selection :update_party_command_selection
def update_party_command_selection
return unless @party_command_window.command_movable?
neomemo13_update_party_command_selection
end
#--------------------------------------------------------------------------
# �� �A�N�^�[�R�}���h�I�����J�n
#--------------------------------------------------------------------------
alias :neomemo13_start_actor_command_selection :start_actor_command_selection
def start_actor_command_selection
neomemo13_start_actor_command_selection
@party_command_window.visible = false
@actor_command_window.visible = true
end
#--------------------------------------------------------------------------
# �� �A�N�^�[�R�}���h�I�����X�V
#--------------------------------------------------------------------------
alias :neomemo13_update_actor_command_selection :update_actor_command_selection
def update_actor_command_selection
return unless @actor_command_window.command_movable?
neomemo13_update_actor_command_selection
end
#--------------------------------------------------------------------------
# �� �����G�L�����I�����J�n
#--------------------------------------------------------------------------
alias :neomemo13_start_target_enemy_selection :start_target_enemy_selection
def start_target_enemy_selection
x = @info_viewport.rect.x
ox = @info_viewport.ox
neomemo13_start_target_enemy_selection
@info_viewport.rect.x = x
@info_viewport.ox = ox
@target_enemy_window.x = 544 - @target_enemy_window.width
@target_enemy_window.y = 288
@info_viewport.rect.width -= @target_enemy_window.width
end
#--------------------------------------------------------------------------
# �� �����G�L�����I�����I��
#--------------------------------------------------------------------------
alias :neomemo13_end_target_enemy_selection :end_target_enemy_selection
def end_target_enemy_selection
x = @info_viewport.rect.x
ox = @info_viewport.ox
@info_viewport.rect.width += @target_enemy_window.width
neomemo13_end_target_enemy_selection
@info_viewport.rect.x = x
@info_viewport.ox = ox
end
#--------------------------------------------------------------------------
# �� �����A�N�^�[�����I�����J�n
#--------------------------------------------------------------------------
alias :neomemo13_start_target_actor_selection :start_target_actor_selection
def start_target_actor_selection
x = @info_viewport.rect.x
ox = @info_viewport.ox
neomemo13_start_target_actor_selection
@target_actor_window.y = 288
@info_viewport.rect.x = x
@info_viewport.ox = ox
@info_viewport.rect.width -= @target_actor_window.width
end
#--------------------------------------------------------------------------
# �� �����A�N�^�[�I�����I��
#--------------------------------------------------------------------------
alias :neomemo13_end_target_actor_selection :end_target_actor_selection
def end_target_actor_selection
x = @info_viewport.rect.x
ox = @info_viewport.ox
@info_viewport.rect.width += @target_actor_window.width
neomemo13_end_target_actor_selection
@info_viewport.rect.x = x
@info_viewport.ox = ox
end
#--------------------------------------------------------------------------
# �� �X�L���I�����J�n
#--------------------------------------------------------------------------
alias :neomemo13_start_skill_selection :start_skill_selection
def start_skill_selection
neomemo13_start_skill_selection
@skill_window.dispose if @skill_window != nil
@help_window.dispose if @help_window != nil
@help_window = Window_LineHelp.new
@skill_window = Window_Skill.new(8, 64, 528, 216, @active_battler)
@skill_window.help_window = @help_window
end
#--------------------------------------------------------------------------
# �� �A�C�e���I�����J�n
#--------------------------------------------------------------------------
alias :neomemo13_start_item_selection :start_item_selection
def start_item_selection
neomemo13_start_item_selection
@item_window.dispose if @item_window != nil
@help_window.dispose if @help_window != nil
@help_window = Window_LineHelp.new
@item_window = Window_Item.new(8, 64, 528, 216)
@item_window.help_window = @help_window
end
end
위에가 스크립트이구요.
이 이미지 꼭 넣어주세요.
맨처음 싸울것인가.? 도망갈것인가.?이구요
싸운다를 누르면 밑에처럼
이렇게 공격 기술 방어 아이템 으로 나옵니다.
참고로 체력마력게이지가 초록색파랑색인건 이 스핀배틀시스템에 있는것이 아닌 다른 스크립트입니다.
전에 아방스님이 올리신거 같은데.. 찾아보니 안보여서 그리고 버젼도 그때보다 더 높은게아니려나싶어서
올려봅니다.