VX 스크립트

# ★ 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

위에가 스크립트이구요.

 

이 이미지 꼭 넣어주세요.

Spin40.png

Spin_screenshot01.PNG

맨처음 싸울것인가.? 도망갈것인가.?이구요

싸운다를 누르면 밑에처럼

Spin_screenshot03.PNG

이렇게 공격 기술 방어 아이템 으로 나옵니다.

참고로 체력마력게이지가 초록색파랑색인건 이 스핀배틀시스템에 있는것이 아닌 다른 스크립트입니다.

전에 아방스님이 올리신거 같은데.. 찾아보니 안보여서 그리고 버젼도 그때보다 더 높은게아니려나싶어서

올려봅니다.

Comment '38'

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 3 습작 2012.12.24 5408
217 장비 스킬습득장비 [죄송] 19 file RPGbooster 2008.10.11 4049
216 이름입력 아이템 이름을 내마음대로 정하자! name_changer 1.0v 26 file Last H 2009.02.25 4067
215 이름입력 주인공이름으로 저장하는 스크립트 6 file 아방스 2009.02.07 4079
214 스킬 YERD - 커스텀 스킬 이펙트 13 file 훈덕 2009.11.08 4080
213 기타 액터선택지제작 간편화 스크립트 7 Evangelista 2009.02.26 4082
212 기타 Kylock 밤낮 스크립트 부분 한글화 + 달력 모드 (모드는 자작) 31 file RMdude 2009.02.15 4100
211 이동 및 탈것 달릴때 그래픽을 바꿔주는 스크립트 12 file 아방스 2008.01.24 4101
210 영상 RMVX에서 AVI 재생 스크립트 12 Nymph 2008.07.07 4108
209 이름입력 모그 이름 바꾸기 한글 변역! 2 Man.... 2008.11.04 4114
208 퀘스트 HG_QUEST_SYSTEM 29 file 허걱 2010.06.18 4130
207 무기에 초필살기를 장착! 19 file RPGbooster 2008.10.08 4131
206 장비 카드 슬롯 장비 스크립트 18 file 아이미르 2011.10.13 4131
205 저장 오토세이브 VX 5 file 카르와푸딩의아틀리에 2009.10.05 4138
204 메뉴 전투결과 상세 표시 스크립트 24 file 카르와푸딩의아틀리에 2009.07.07 4143
203 메시지 문자픽쳐 표시 스크립트 7 file 좀비사냥꾼 2009.03.19 4144
202 메시지 Quick Face Border 12 아방스 2008.03.05 4161
201 레벨업시 자세한 능력치화면 31 file RPGbooster 2008.10.08 4181
200 메시지 문장 넘길대 소리나게 하는스크립트 19 아방스 2008.01.24 4186
199 fog[안개] 효과 43 file RPGbooster 2008.10.08 4196
198 메뉴 몬스터도감(유즈미짱님의엘카르디아같은종류) 1 작은샛별 2010.03.07 4201
Board Pagination Prev 1 ... 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 Next
/ 32