자유게시판

#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/    ◆ 많은 사람 파티 - KGC_LargeParty ◆ VX ◆
#_/    ◇ Last update : 2008/04/27 ◇
#_/----------------------------------------------------------------------------
#_/  5명 이상의 대규모 파티를 구축 가능하게 합니다.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

#==============================================================================
# ★ 커스터마이즈 항목 - Customize ★
#==============================================================================

module KGC
module LargeParty
  # ◆ 파티 편성 허가를 나타내는 스윗치 번호
  #  이 스윗치의 ON/OFF 그리고 파티 편성의 허가/불허가 (을)를 바꿉니다.
  PARTYFORM_SWITCH          = 1
  # ◆ 전투중의 파티 편성 허가를 나타내는 스윗치 번호
  #  ↑(와)과 다른 번호를 지정하면, 전투중만의 교체 가부를 설정할 수 있습니다.
  BATTLE_PARTYFORM_SWITCH   = 1
  # ◆ 디폴트의 편성 허가 플래그
  #  true (으)로 하면, 「뉴 게임」선택시에 양쪽 모두의 파티 편성 허가 스윗치가
  #  자동적으로 ON (이)가 됩니다.
  DEFAULT_PARTYFORM_ENABLED = true

  # ◆ 전투 멤버 최대수 (디폴트치)
  #  5 이상으로 하면, 전투 화면의 스테이터스가 약간 봐 괴로워집니다.
  MAX_BATTLE_MEMBERS = 5
  # ◆ 파티 멤버 최대수
  #  Game_Party::MAX_MEMBERS (을)를 덧쓰기합니다.
  #  100 이상으로 하면 [Window_MenuStatus] 하지만 버그.
  MAX_MEMBERS = 99

  # ◆ 고정 멤버의 줄서 바꾸어를 금지
  #  스크립트로부터의 조작 이외에서는 줄서 바꾸어 할 수 없게 됩니다.
  FORBID_CHANGE_SHIFT_FIXED = false

  # ◆ 대기 멤버의 배경색
  #  색을 바꾸지 않는 경우는  Color.new(0, 0, 0, 0)
  STAND_BY_COLOR = Color.new(0, 0, 0, 128)
  # ◆ 고정 멤버의 배경색
  FIXED_COLOR    = Color.new(255, 128, 64, 96)
  # ◆ 줄서 바꾸어 때의 배경색
  SELECTED_COLOR = Color.new(64, 255, 128, 128)

  # ◆ 파티 편성 버튼 (메뉴 화면용)
  #  메뉴 화면에서 이 버튼을 누르면, 파티 편성 화면으로 이행합니다.
  #  사용하지 않는 경우는 nil
  MENU_PARTYFORM_BUTTON      = Input::A
  # ◆ 메뉴 화면에 파티 편성 커멘드를 추가한다
  #  추가하는 장소는, 메뉴 커멘드의 최하부입니다.
  #  다른 부분에 추가하고 싶으면,≪커스텀 메뉴 커멘드≫ (을)를 이용하십시오.
  USE_MENU_PARTYFORM_COMMAND = true
  # ◆ 메뉴 화면의 파티 편성 커멘드의 명칭
  VOCAB_MENU_PARTYFORM       = "Party"

  # ◆ 전투중에 파티 편성 커멘드를 사용한다
  #  추가하는 장소는, 파티 커멘드의 최하부( 「도망친다」의 아래)입니다.
  USE_BATTLE_PARTYFORM   = true
  # ◆ 전투중의 파티 편성 커멘드의 명칭
  VOCAB_BATTLE_PARTYFORM = "교체"

  # ◆ 편성 화면의 캐릭터 묘화 사이즈 [폭, 높이]
  #  액터의 보행 그래픽의 사이즈에 따라 고쳐 써 주세요.
  PARTY_FORM_CHARACTER_SIZE   = [40, 48]
  # ◆ 편성 화면의 전투 멤버 윈도우의 공난에 표시하는 텍스트
  BATTLE_MEMBER_BLANK_TEXT    = "EMPTY"
  # ◆ 편성 화면의 파티 멤버 윈도우의 최대행수
  #  스테이터스 윈도우가 화면에서는 봐 나오는 경우는,
  #  이 값을 1 (으)로 해 주세요.
  PARTY_MEMBER_WINDOW_ROW_MAX = 2
  # ◆ 편성 화면의 파티 멤버 윈도우에 전투 멤버를 표시한다
  SHOW_BATTLE_MEMBER_IN_PARTY = false
  # ◆ 편성 화면의 파티 멤버 윈도우의 공난에 표시하는 텍스트
  PARTY_MEMBER_BLANK_TEXT     = ""

  # ◆ 편성 화면의 캡션 윈도우의 폭
  CAPTION_WINDOW_WIDTH  = 192
  # ◆ 편성 화면의 전투 멤버 윈도우의 캡션
  BATTLE_MEMBER_CAPTION = "전투 멤버"

  if SHOW_BATTLE_MEMBER_IN_PARTY
    # ◆ 편성 화면의 파티 멤버 윈도우의 캡션
    #  SHOW_BATTLE_MEMBER_IN_PARTY = true 때
    PARTY_MEMBER_CAPTION = "파티 멤버"
  else
    # ◆ 편성 화면의 파티 멤버 윈도우의 캡션
    #  SHOW_BATTLE_MEMBER_IN_PARTY = false 때
    PARTY_MEMBER_CAPTION = "대기 멤버"
  end

  # ◆ 편성 확인 윈도우의 폭
  CONFIRM_WINDOW_WIDTH    = 160
  # ◆ 편성 확인 윈도우의 문자열
  #  ※커멘드수·차례를 변경하면 버그.
  CONFIRM_WINDOW_COMMANDS = ["완료", "중지", "취소"]

  # ◆ 숍 화면의 스테이터스 윈도우 스크롤시에 사용하는 버튼
  #  이 버튼을 누르고 있는 동안, 상하 버튼으로 스크롤 할 수 있습니다.
  #  스크롤을 무효로 하는 경우는 nil (을)를 지정.
  #  ≪헬프 윈도우 기능확장≫병용시는, 위에 도입한 것을 우선.
  SHOP_STATUS_SCROLL_BUTTON = Input::A

  # ◆ 대기 멤버 획득 경험치 비율【단위:‰(천분율 1‰=0.1%)】
  #  500 (이)라면 50.0% 입니다.
  STAND_BY_EXP_RATE = 500
  # ◆ 결과 화면에서 대기 멤버의 레벨업을 표시한다
  #  false (으)로 하면, 전투 멤버만 표시합니다.
  SHOW_STAND_BY_LEVEL_UP = true
  # ◆ 전투 이외에도 대기 멤버를 표시한다
  #  true  : 전투 이외에서는 항상 전원을 표시.
  #  false : 교체시 이외는, 대기 멤버를 없는 것으로서 취급한다.
  SHOW_STAND_BY_MEMBER_NOT_IN_BATTLE = true
end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

$imported = {} if $imported == nil
$imported["LargeParty"] = true

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# □ KGC::Commands
#==============================================================================

module KGC
module Commands
  # 멤버의 소트 형식
  SORT_BY_ID    = 0  # ID순
  SORT_BY_NAME  = 1  # 이름순
  SORT_BY_LEVEL = 2  # 레벨순서

  module_function
  #--------------------------------------------------------------------------
  # ○ 파티 편성 화면의 호출
  #--------------------------------------------------------------------------
  def call_partyform
    return if $game_temp.in_battle
    $game_temp.next_scene = :partyform
  end
  #--------------------------------------------------------------------------
  # ○ 전투 멤버 최대수를 설정
  #     value : 인원수 (생략 했을 경우는 디폴트치를 사용)
  #--------------------------------------------------------------------------
  def set_max_battle_member_count(value = nil)
    $game_party.max_battle_member_count = value
  end
  #--------------------------------------------------------------------------
  # ○ 파티 인원수가 가득한가
  #--------------------------------------------------------------------------
  def party_full?
    return $game_party.full?
  end
  #--------------------------------------------------------------------------
  # ○ 파티 편성 가부를 설정
  #     enabled : 유효 플래그 (생략시 : true)
  #--------------------------------------------------------------------------
  def permit_partyform(enabled = true)
    $game_switches[KGC::LargeParty::PARTYFORM_SWITCH] = enabled
  end
  #--------------------------------------------------------------------------
  # ○ 전투중의 파티 편성 가부를 설정
  #     enabled : 유효 플래그 (생략시 : true)
  #--------------------------------------------------------------------------
  def permit_battle_partyform(enabled = true)
    $game_switches[KGC::LargeParty::BATTLE_PARTYFORM_SWITCH] = enabled
  end
  #--------------------------------------------------------------------------
  # ○ 액터의 고정 상태를 설정
  #     actor_id : 액터 ID
  #     fixed    : 고정 플래그 (생략시 : true)
  #--------------------------------------------------------------------------
  def fix_actor(actor_id, fixed = true)
    $game_party.fix_actor(actor_id, fixed)
  end
  #--------------------------------------------------------------------------
  # ○ 줄대체
  #    멤버의 index1 번째와 index2 번째를 바꿔 넣는다
  #--------------------------------------------------------------------------
  def change_party_shift(index1, index2)
    $game_party.change_shift(index1, index2)
  end
  #--------------------------------------------------------------------------
  # ○ 멤버 정렬 (승순)
  #     sort_type : 소트 형식 (SORT_BY_xxx)
  #     reverse   : true (이)라면 내림차순
  #--------------------------------------------------------------------------
  def sort_party_member(sort_type = SORT_BY_ID, reverse = false)
    $game_party.sort_member(sort_type, reverse)
  end
  #--------------------------------------------------------------------------
  # ○ 대기 멤버의 ID (을)를 취득
  #--------------------------------------------------------------------------
  def get_stand_by_member_ids
    result = []
    $game_party.stand_by_members.each { |actor| result << actor.id }
    return result
  end
  #--------------------------------------------------------------------------
  # ○ 액터가 대기 멤버인가
  #     actor_id : 액터 ID
  #--------------------------------------------------------------------------
  def stand_by_member?(actor_id)
    return get_stand_by_member_ids.include?(actor_id)
  end
  #--------------------------------------------------------------------------
  # ○ 액터를 전투 멤버에 가세한다
  #     actor_id : 액터 ID
  #     index    : 추가 위치 (생략시는 최후미)
  #--------------------------------------------------------------------------
  def add_battle_member(actor_id, index = nil)
    $game_party.add_battle_member(actor_id, index)
  end
  #--------------------------------------------------------------------------
  # ○ 액터를 전투 멤버로부터 제외한다
  #     actor_id : 액터 ID
  #--------------------------------------------------------------------------
  def remove_battle_member(actor_id)
    $game_party.remove_battle_member(actor_id)
  end
  #--------------------------------------------------------------------------
  # ○ 고정 액터 이외를 전투 멤버로부터 제외한다
  #--------------------------------------------------------------------------
  def remove_all_battle_member
    $game_party.all_members.each { |actor|
      $game_party.remove_battle_member(actor.id)
    }
  end
  #--------------------------------------------------------------------------
  # ○ 랜덤 출격
  #--------------------------------------------------------------------------
  def random_launch
    new_battle_members = $game_party.fixed_members
    candidates = $game_party.all_members - new_battle_members
    num = [$game_party.max_battle_member_count - new_battle_members.size,
      candidates.size].min
    return if num <= 0

    # 랜덤에 선택한다
    ary = (0...candidates.size).to_a.sort_by { rand }
    ary[0...num].each { |i| new_battle_members << candidates[i] }
    $game_party.set_battle_member(new_battle_members)
  end
end
end

class Game_Interpreter
  include KGC::Commands
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Vocab
#==============================================================================

module Vocab
  # 「파티 편성」커멘드명 (메뉴)
  def self.partyform
    return KGC::LargeParty::VOCAB_MENU_PARTYFORM
  end

  # 「파티 편성」커멘드명 (전투)
  def self.partyform_battle
    return KGC::LargeParty::VOCAB_BATTLE_PARTYFORM
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Game_Actor
#==============================================================================

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ○ 파티내 인덱스 취득
  #--------------------------------------------------------------------------
  def party_index
    return $game_party.all_members.index(self)
  end
  #--------------------------------------------------------------------------
  # ○ 전투 멤버나 판정
  #--------------------------------------------------------------------------
  def battle_member?
    return $game_party.battle_members.include?(self)
  end
  #--------------------------------------------------------------------------
  # ○ 고정 멤버나 판정
  #--------------------------------------------------------------------------
  def fixed_member?
    return $game_party.fixed_members.include?(self)
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Game_Party
#==============================================================================

class Game_Party
  #--------------------------------------------------------------------------
  # ● 정수
  #--------------------------------------------------------------------------
  MAX_MEMBERS = KGC::LargeParty::MAX_MEMBERS  # 최대 파티 인원수
  #--------------------------------------------------------------------------
  # ● 오브젝트 초기화
  #--------------------------------------------------------------------------
  alias initialize_KGC_LargeParty initialize
  def initialize
    initialize_KGC_LargeParty

    @max_battle_member_count = nil
    @battle_member_count = 0
    @fixed_actors = []
  end
  #--------------------------------------------------------------------------
  # ○ 전투 멤버 최대수취득
  #--------------------------------------------------------------------------
  def max_battle_member_count
    if @max_battle_member_count == nil
      return KGC::LargeParty::MAX_BATTLE_MEMBERS
    else
      return @max_battle_member_count
    end
  end
  #--------------------------------------------------------------------------
  # ○ 전투 멤버 최대수변경
  #--------------------------------------------------------------------------
  def max_battle_member_count=(value)
    if value.is_a?(Integer)
      value = [value, 1].max
    end
    @max_battle_member_count = value
  end
  #--------------------------------------------------------------------------
  # ○ 전투 멤버수취득
  #--------------------------------------------------------------------------
  def battle_member_count
    if @battle_member_count == nil
      @battle_member_count = @actors.size
    end
    @battle_member_count =
      [@battle_member_count, @actors.size, max_battle_member_count].min
    return @battle_member_count
  end
  #--------------------------------------------------------------------------
  # ○ 전투 멤버수설정
  #--------------------------------------------------------------------------
  def battle_member_count=(value)
    @battle_member_count = [[value, 0].max,
      @actors.size, max_battle_member_count].min
  end
  #--------------------------------------------------------------------------
  # ● 멤버의 취득
  #--------------------------------------------------------------------------
  alias members_KGC_LargeParty members
  def members
    if $game_temp.in_battle ||
        !KGC::LargeParty::SHOW_STAND_BY_MEMBER_NOT_IN_BATTLE
      return battle_members
    else
      return members_KGC_LargeParty
    end
  end
  #--------------------------------------------------------------------------
  # ○ 전멤버의 취득
  #--------------------------------------------------------------------------
  def all_members
    return members_KGC_LargeParty
  end
  #--------------------------------------------------------------------------
  # ○ 전투 멤버의 취득
  #--------------------------------------------------------------------------
  def battle_members
    result = []
    battle_member_count.times { |i| result << $game_actors[@actors[i]] }
    return result
  end
  #--------------------------------------------------------------------------
  # ○ 대기 멤버의 취득
  #--------------------------------------------------------------------------
  def stand_by_members
    return (all_members - battle_members)
  end
  #--------------------------------------------------------------------------
  # ○ 고정 멤버의 취득
  #--------------------------------------------------------------------------
  def fixed_members
    result = []
    @fixed_actors.each { |i| result << $game_actors[i] }
    return result
  end
  #--------------------------------------------------------------------------
  # ● 초기 파티의 셋업
  #--------------------------------------------------------------------------
  alias setup_starting_members_KGC_LargeParty setup_starting_members
  def setup_starting_members
    setup_starting_members_KGC_LargeParty

    self.battle_member_count = @actors.size
  end
  #--------------------------------------------------------------------------
  # ● 전투 테스트용 파티의 셋업
  #--------------------------------------------------------------------------
  alias setup_battle_test_members_KGC_LargeParty setup_battle_test_members
  def setup_battle_test_members
    setup_battle_test_members_KGC_LargeParty

    self.battle_member_count = @actors.size
  end
  #--------------------------------------------------------------------------
  # ○ 멤버의 신규 설정
  #     new_member : 새로운 멤버
  #--------------------------------------------------------------------------
  def set_member(new_member)
    @actors = []
    new_member.each { |actor| @actors << actor.id }
  end
  #--------------------------------------------------------------------------
  # ○ 전투 멤버의 신규 설정
  #     new_member : 새로운 전투 멤버
  #--------------------------------------------------------------------------
  def set_battle_member(new_member)
    new_battle_member = []
    new_member.each { |actor|
      @actors.delete(actor.id)
      new_battle_member << actor.id
    }
    @actors = new_battle_member + @actors
    self.battle_member_count = new_member.size
  end
  #--------------------------------------------------------------------------
  # ○ 파티 편성을 허가하고 있을까 판정
  #--------------------------------------------------------------------------
  def partyform_enable?
    return $game_switches[KGC::LargeParty::PARTYFORM_SWITCH]
  end
  #--------------------------------------------------------------------------
  # ○ 전투중의 파티 편성을 허가하고 있을까 판정
  #--------------------------------------------------------------------------
  def battle_partyform_enable?
    return false unless partyform_enable?
    return $game_switches[KGC::LargeParty::BATTLE_PARTYFORM_SWITCH]
  end
  #--------------------------------------------------------------------------
  # ○ 멤버가 가득한가 판정
  #--------------------------------------------------------------------------
  def full?
    return (@actors.size >= MAX_MEMBERS)
  end
  #--------------------------------------------------------------------------
  # ○ 고정 액터나 판정
  #     actor_id : 판정하는 액터의 ID
  #--------------------------------------------------------------------------
  def actor_fixed?(actor_id)
    return @fixed_actors.include?(actor_id)
  end
  #--------------------------------------------------------------------------
  # ● 액터를 가세한다
  #     actor_id : 액터 ID
  #--------------------------------------------------------------------------
  alias add_actor_KGC_LargeParty add_actor
  def add_actor(actor_id)
    last_size = @actors.size

    add_actor_KGC_LargeParty(actor_id)

    if last_size < @actors.size
      self.battle_member_count += 1
    end
  end
  #--------------------------------------------------------------------------
  # ○ 액터를 전투 멤버에 가세한다
  #     actor_id : 액터 ID
  #     index    : 추가 위치 (생략시는 최후미)
  #--------------------------------------------------------------------------
  def add_battle_member(actor_id, index = nil)
    return unless @actors.include?(actor_id)  # 파티에 없다
    if index == nil
      return if battle_members.include?($game_actors[actor_id])  # 출격이 끝난 상태
      return if battle_member_count == max_battle_member_count   # 인원수가 최대
      index = battle_member_count
    end

    @actors.delete(actor_id)
    @actors.insert(index, actor_id)
    self.battle_member_count += 1
  end
  #--------------------------------------------------------------------------
  # ○ 액터를 전투 멤버로부터 제외한다
  #     actor_id : 액터 ID
  #--------------------------------------------------------------------------
  def remove_battle_member(actor_id)
    return unless @actors.include?(actor_id)  # 파티에 없다
    return if actor_fixed?(actor_id)          # 고정이 끝난 상태
    return if stand_by_members.include?($game_actors[actor_id])  # 대기중

    @actors.delete(actor_id)
    @actors.push(actor_id)
    self.battle_member_count -= 1
  end
  #--------------------------------------------------------------------------
  # ○ 액터의 고정 상태를 설정
  #     actor_id : 액터 ID
  #     fixed    : 고정 플래그 (생략시 : false)
  #--------------------------------------------------------------------------
  def fix_actor(actor_id, fixed = false)
    return unless @actors.include?(actor_id)  # 파티에 없다

    if fixed
      # 고정
      unless @fixed_actors.include?(actor_id)
        @fixed_actors << actor_id
        unless battle_members.include?($game_actors[actor_id])
          self.battle_member_count += 1
        end
      end
      # 강제 출격
      apply_force_launch
    else
      # 고정 해제
      @fixed_actors.delete(actor_id)
    end
    $game_player.refresh
  end
  #--------------------------------------------------------------------------
  # ○ 강제 출격 적용
  #--------------------------------------------------------------------------
  def apply_force_launch
    while (fixed_members - battle_members).size > 0
      # 고정 상태가 아닌 멤버를 적당하게 가져와 교체
      actor1 = stand_by_members.find { |a| @fixed_actors.include?(a.id) }
      actor2 = battle_members.reverse.find { |a| !@fixed_actors.include?(a.id) }
      index1 = @actors.index(actor1.id)
      index2 = @actors.index(actor2.id)
      @actors[index1], @actors[index2] = @actors[index2], @actors[index1]

      # 전투 멤버가 전원 고정되면 돌아온다 (엔들레스 루프 방지)
      all_fixed = true
      battle_members.each { |actor|
        unless actor.fixed_member?
          all_fixed = false
          break
        end
      }
      break if all_fixed
    end
  end
  #--------------------------------------------------------------------------
  # ○ 멤버 정렬 (승순)
  #     sort_type : 소트 형식 (SORT_BY_xxx)
  #     reverse   : true (이)라면 내림차순
  #--------------------------------------------------------------------------
  def sort_member(sort_type = KGC::Commands::SORT_BY_ID,
                  reverse = false)
    # 버퍼를 준비
    b_actors = battle_members
    actors = all_members - b_actors
    f_actors = fixed_members
    # 고정 캐릭터는 소트 하지 않는다
    if KGC::LargeParty::FORBID_CHANGE_SHIFT_FIXED
      actors -= f_actors
      b_actors -= f_actors
    end

    # 소트
    case sort_type
    when KGC::Commands::SORT_BY_ID     # ID순
      actors.sort!   { |a, b| a.id <=> b.id }
      b_actors.sort! { |a, b| a.id <=> b.id }
    when KGC::Commands::SORT_BY_NAME   # 이름순
      actors.sort!   { |a, b| a.name <=> b.name }
      b_actors.sort! { |a, b| a.name <=> b.name }
    when KGC::Commands::SORT_BY_LEVEL  # 레벨순서
      actors.sort!   { |a, b| a.level <=> b.level }
      b_actors.sort! { |a, b| a.level <=> b.level }
    end
    # 반전
    if reverse
      actors.reverse!
      b_actors.reverse!
    end

    # 고정 캐릭터를 선두에 가져온다
    if KGC::LargeParty::FORBID_CHANGE_SHIFT_FIXED
      actors = f_actors + actors
      b_actors = f_actors + b_actors
    end

    # 복귀
    set_member(actors)
    set_battle_member(b_actors)

    apply_force_launch
    $game_player.refresh
  end
  #--------------------------------------------------------------------------
  # ○ 줄대체
  #    전투 멤버의 index1 번째와 index2 번째를 바꿔 넣는다
  #--------------------------------------------------------------------------
  def change_shift(index1, index2)
    size = @actors.size
    if index1 >= size || index2 >= size
      return
    end
    buf = @actors[index1]
    @actors[index1] = @actors[index2]
    @actors[index2] = buf
    $game_player.refresh
  end
  #--------------------------------------------------------------------------
  # ● 전투용 스테이트의 해제 (전투 종료시에 호출해)
  #--------------------------------------------------------------------------
  def remove_states_battle
    for actor in all_members
      actor.remove_states_battle
    end
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Window_Command
#==============================================================================

class Window_Command < Window_Selectable
  unless method_defined?(:add_command)
  #--------------------------------------------------------------------------
  # ○ 커멘드를 추가
  #    추가한 위치를 돌려준다
  #--------------------------------------------------------------------------
  def add_command(command)
    @commands << command
    @item_max = @commands.size
    item_index = @item_max - 1
    refresh_command
    draw_item(item_index)
    return item_index
  end
  #--------------------------------------------------------------------------
  # ○ 커멘드를 리프레쉬
  #--------------------------------------------------------------------------
  def refresh_command
    buf = self.contents.clone
    self.height = [self.height, row_max * WLH + 32].max
    create_contents
    self.contents.blt(0, 0, buf, buf.rect)
    buf.dispose
  end
  #--------------------------------------------------------------------------
  # ○ 커멘드를 삽입
  #--------------------------------------------------------------------------
  def insert_command(index, command)
    @commands.insert(index, command)
    @item_max = @commands.size
    refresh_command
    refresh
  end
  #--------------------------------------------------------------------------
  

 

 

 

 

입니다.

TAG •
Comment '3'

  1. 아방스 게시물 · 댓글 작성 규칙 (최근 수정일 2015.11.25)

    Date2012.07.17 Category공지 By완폐남™ Views41184
    read more
  2. 이것이 그 유명한 디씨인사이드

    Date2009.11.05 Category잡담 ByEvangelista Views1504
    Read More
  3. 레알 시망한 짤방

    Date2009.11.05 Category잡담 ByEvangelista Views1269
    Read More
  4. 초슈퍼 하이퍼 레알 병크, EBS 사장 후보 공약

    Date2009.11.05 Category잡담 ByEvangelista Views899
    Read More
  5. VX 그냥 기본 ATB없어서 만들었음

    Date2009.11.05 Category잡담 By코르뉴 Views800
    Read More
  6. 으악 좀비바이러스 !!

    Date2009.11.05 Category잡담 By히모 Views967
    Read More
  7. 요게 플탐 2시간 이상분량,,

    Date2009.11.06 Category잡담 By코르뉴 Views727
    Read More
  8. 문제 스크립트

    Date2009.11.06 Category잡담 By버질 Views774
    Read More
  9. 나는 자료가 많다.근데 올리지않는다. 이유

    Date2009.11.07 Category잡담 By칼리아 Views778
    Read More
  10. 아르바타 여행기 그만두고..

    Date2009.11.07 Category잡담 By칼리아 Views1263
    Read More
  11. 잉여에반메뉴 II (I보다 성능 안좋은듯) 기본인터페이스 완성했습니다.

    Date2009.11.08 Category잡담 ByEvangelista Views1302
    Read More
  12. 잉여에반메뉴II 장비화면인터페이스 완성했습니다.

    Date2009.11.08 Category잡담 ByEvangelista Views984
    Read More
  13. 잊을만하면 올라오는 잉여에반메뉴II : 스테이터스

    Date2009.11.08 Category잡담 ByEvangelista Views1432
    Read More
  14. 자료 투척중

    Date2009.11.08 Category잡담 By훈덕 Views778
    Read More
  15. 오늘은 이정도만 해야겠음.

    Date2009.11.08 Category잡담 ByEvangelista Views1308
    Read More
  16. 대학 안 가면...

    Date2009.11.09 Category잡담 ByEvangelista Views1166
    Read More
  17. 그림채색 친구가 완성 했대요~

    Date2009.11.10 Category잡담 By완폐남™ Views1055
    Read More
  18. 아침에 디씨 롯데갤 잠깐 갔는데 무슨

    Date2009.11.10 Category잡담 ByEvangelista Views1572
    Read More
  19. 여러분 사실 저는

    Date2009.11.10 Category잡담 ByEvangelista Views1235
    Read More
  20. 181cm이하는 바로우타고 겜이나 만듭니다.

    Date2009.11.10 Category잡담 ByEvangelista Views1108
    Read More
  21. 요즘 아이콘에 재미 들린듯 ㅋㅋㅋ

    Date2009.11.10 Category잡담 By히모 Views911
    Read More
목록
Board Pagination Prev 1 ... 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 ... 456 Next
/ 456