XP 스크립트

아래 스크립트를 MAIN위에 새로운 스크립트를 삽입하신후

복사 -> 붙여넣기 하시면됩니다.
====================================
# 모험일기
#
# 단지 단지 글을 묘화 할 뿐이기 때문에 일기 이외에도 사용할 수 있을 지도 모릅니다.
# 사용할 수 있는 제어 문자는 이하의 거리.
#
# N[n] ID n번의 액터의 이름을 표시합니다.
# V[n] 변수 n번의 가격을 표시합니다.
# C[n] 문자 색상을 변경합니다.
# G 현재의 소지금을 표시합니다.
# O[n] 불투명도를 변경합니다.(0~255)
# H[n] font size을 변경합니다.(6~32)
# R[본문, 루비] 루비 첨부의 글을 표시합니다.
# Pic[x, y, file name] picture에 인포트 된 화상을 표시합니다.
#
# 일기의 내용을 설정할 때는 「\ n[1]」와 같이
# 「」을 1개 여분으로 붙여 주세요.
#
# 샘플을 여러가지 고집이라고 보면, 알기 쉽다고 생각합니다.

class Window_Questdiary_Select < Window_Selectable
  QUESTDIARY_DATA_MAX = 100  # 일기 데이터의 최대 수
end
class Data_Questdiary
  VISIBLE_JUDGE_MODE = 1
  # VISIBLE_ JUDGE_ MODE = 1
  # 출현판정으로 스위치를 사용할 지 변수를 사용할 지 0: 스위치 1:변수
  # 스위치로 하면, 1개의 항목에 복수의 메세지를
  # 설정할 수 없게 됩니다.
  attr_reader  :exist
  attr_reader  :title
  attr_reader  :id
  #--------------------------------------------------------------------------
  # ● 오브젝트 초기화
  #--------------------------------------------------------------------------
  def initialize(id)
    @id = id
    @title = "타이틀" # 데호루토 타이틀 (보통 사용하지 않는다)
    @variable = 0
    @variable_max = 1
    @comment = []
    @exist = false
    set_data(id)
  end
  #--------------------------------------------------------------------------
  # ● 일기내용의 설정 # 직접 써준다.
  #--------------------------------------------------------------------------
  def set_data(id)
    @id = id
    case @id
when 1 # ID
@title = "편지의 내용" # 퀘스트 제목
@variable = 12 # 출현 조건(스위치나 변수 번호)
@comment[0] = <<-EOS#내용 시작 EOS지우면 안됩니다!
편지의 내용을 읽어보았다.
편지의 내용으로 보아 누군가가 잊어버린것 같았다.
이 편지의 주인은 누구일까?
EOS
      # 여기까지
      @variable_max = @comment.size
      @exist = true # 존재 플러그 true으로 해 풀어 주세요
when 2 # ID
@title = "길드의뢰 : 몬스터 퇴치" # 퀘스트 제목
@variable = 5011 # 출현 조건(스위치나 변수 번호)
@comment[0] = <<-EOS#내용 시작 EOS지우면 안됩니다!
길드의뢰 : 몬스터 퇴치

길드장소 : \V[5011]
급수 : \V[5012]
수 : \V[5013]

현재진행상황 : \V[5014]/\V[5013]
EOS
      # 여기까지
      @variable_max = @comment.size
      @exist = true # 존재 플러그 true으로 해 풀어 주세요
    end
  end
  #--------------------------------------------------------------------------
  # ● 일기내용을 돌려준다
  #--------------------------------------------------------------------------
  def show_comment
    return @comment[0] if VISIBLE_JUDGE_MODE == 0
    if @comment.size == 1
      return @comment[0]
    else
      temp = [[$game_variables[@variable]-1, 0].max, @variable_max-1].min
      return @comment[temp]
    end
  end
  #--------------------------------------------------------------------------
  # ● 일기 출현판정
  #--------------------------------------------------------------------------
  def title_visible?
    return true if @variable == 0
    if VISIBLE_JUDGE_MODE == 0
      if $game_switches[@variable]
        return true
      else
        return false
      end
    else
      if $game_variables[@variable] == 0
        return false
      else
        return true
      end
    end
  end
end

class Window_Base < Window
  #--------------------------------------------------------------------------
  # ● 문자열변환
  #--------------------------------------------------------------------------
  def transfer(str)
    text = str.clone
    # 제어 문자처리
    begin
    text.gsub!(/\[Vv][([0-9]+)]/) { $game_variables[$1.to_i] }
    end
    text.gsub!(/\[Nn][([0-9]+)]/) do
      $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
    end
    # 편의상, "\\" 와 "00"의 변환
    text.gsub!(/\\/) { "00" }
    # "\C"을 "01"에, "\G"와 "02"에 변환
    text.gsub!(/\[Cc][([0-9]+)]/) { "01[#{$1}]" }
    text.gsub!(/\[Gg]/) { "02" }
    # 불투명도
    text.gsub!(/\[Oo][([0-9]+)]/) { "100[#{$1}]" }
    # 문자 크기
    text.gsub!(/\[Hh][([0-9]+)]/) { "101[#{$1}]" }
    # 루비
    text.gsub!(/\[Rr][(.+?),(.+?)]/) { "102[#{$1},#{$2}]" }
    # 그림 표시
    text.gsub!(/\[Pp]ic[([0-9]+),([0-9]+),([^,]]+)]/) { "150[#{$1},#{$2},#{$3}]" }
   
    return text
  end
  #--------------------------------------------------------------------------
  # ● 변환한 문자열을 묘화
  #--------------------------------------------------------------------------
  def draw_ex_text(ox, oy, str, align=0)
    text = str.clone
    x = 0
    y = 0
    # c에 1문자를 취득(글을 취득할 수 없게 될 때까지 루프)
    while ((c = text.slice!(/./m)) != nil)
      # \ 의 경우
      if c == "00"
        # 본래의 글에 되돌려 준다.
        c = "\"
      end
      # C[n] 의 경우
      if c == "01"
        # 글색을 변경
        text.sub!(/[([0-9]+)]/, "")
        color = $1.to_i
        if color >= 0 and color <= 7
          self.contents.font.color = text_color(color)
        end
        # 다음의 글에
        next
      end
      # G 의 경우
      if c == "02"
        # 소지 골드에 변환
        c = $game_party.gold.to_s
        # 글을 묘화
        self.contents.draw_text(ox+4+x, oy+4+ 32 * y, self.contents.text_size(c).width, 32, c)
        # x에 묘화 한 글의 폭을 가산
        x += self.contents.text_size(c).width
        # 다음의 글에
        next
      end
     
      # O 의 경우
      if c == "100"
        text.sub!(/[([0-9]+)]/, "")
        opacity = $1.to_i
        temp = self.contents.font.color
        self.contents.font.color = Color.new(temp.red, temp.green, temp.blue, opacity)
        # 다음의 글에
        next
      end
      # H 의 경우
      if c == "101"
        text.sub!(/[([0-9]+)]/, "")
        self.contents.font.size = [[$1.to_i, 6].max, 32].min
        # 다음의 글에
        next
      end
      # R 의 경우
      if c == "102"
        text.sub!(/[(.+?),(.+?)]/, "")
        x += ruby_set(ox+x,oy+(y*32),$1,$2)
        # 다음의 글에
        next
      end
      # Pic 의 경우
      if c == "150"
        text.sub!(/[([0-9]+),([0-9]+),([^,]]+)]/, "")
        set_picture($1.to_i, $2.to_i, $3)
        # 다음의 글에
        next
      end
      # 개행 문자의 경우
      if c == "n"
        # y에 1을 가산
        y += 1
        x = 0
        # 다음의 글에
        next
      end
      # 글을 묘화
      self.contents.draw_text(ox+4+x, 4+oy+ 32 * y, 40, 32, c)
      # x에 묘화 한 글의 폭을 가산
      x += self.contents.text_size(c).width
    end
  end
  #--------------------------------------------------------------------------
  # ● 루비 묘화
  #--------------------------------------------------------------------------
  def ruby_set(x,y,str,ruby)
    text_w = self.contents.text_size(str).width
    text_h = self.contents.text_size(str).height
    f_size_back = self.contents.font.size
    ruby_size = 10
    self.contents.font.size = ruby_size
    ruby_w = self.contents.text_size(ruby).width
    self.contents.draw_text(4+x, 4+4+y-ruby_size+1, text_w, ruby_size, ruby, 1)
    self.contents.font.size = f_size_back
    self.contents.draw_text(4+x, 4+4+y, text_w, text_h, str)
    return text_w
  end
  #--------------------------------------------------------------------------
  # ● 그림의 묘화
  #--------------------------------------------------------------------------
  def set_picture(x, y, filename, opacity=255)
    bitmap = RPG::Cache.picture(filename)
    self.contents.blt(x, y, bitmap, bitmap.rect, opacity)
  end
  #--------------------------------------------------------------------------
  # ● 교재의 행수를 되돌린다
  #--------------------------------------------------------------------------
  def text_row(str)
    text = str.clone
    num = 0
    # c에 1문자를 취득(글을 취득할 수 없게 될 때까지 루프)
    while ((c = text.slice!(/./m)) != nil)
      # 개행 문자의 경우
      if c == "n"
        # num에 1을 가산
        num += 1
        # 다음의 글에
        next
      end
    end
    return num
  end
end

#==============================================================================
# ■ Window_Scroll
#------------------------------------------------------------------------------
#  스크롤의 기능을 갖는 윈도우 클래스입니다.
#==============================================================================
class Window_Scroll < Window_Base
  #--------------------------------------------------------------------------
  # ● 공개 인스턴스 변수
  #--------------------------------------------------------------------------
  attr_reader  :index                    # 커서의 위치
  attr_reader  :help_window              # 헬프 윈도우
  #--------------------------------------------------------------------------
  # ● 오브젝트 초기화
  # x : 윈도우의 X좌표
  # y : 윈도우의 Y좌표
  # width : 윈도우의 폭
  # height : 윈도우의 높이
  #--------------------------------------------------------------------------
  def initialize(x, y, width, height)
    super(x, y, width, height)
    @item_max = 1
    @column_max = 1
    @index = 0
    self.cursor_rect.empty
  end
  #--------------------------------------------------------------------------
  # ● 커서의 위치 설정
  #    index : 새로운 커서의 위치
  #--------------------------------------------------------------------------
  def index=(index)
    @index = index
    # 헬프텍스트를 갱신(update_ help은 계승선에 정의된다)
    #if self.active and @help_window != nil
    #  update_help
    #end
    # 커서의 직사각형을 갱신
    update_cursor_rect
  end
  #--------------------------------------------------------------------------
  # ● 행수의 취득
  #--------------------------------------------------------------------------
  def row_max
    # 항목 수와 열 수에서 행수를 산출
    return (@item_max + @column_max - 1) / @column_max
  end
  #--------------------------------------------------------------------------
  # ● 선두의 행의 취득
  #--------------------------------------------------------------------------
  def top_row
    # 윈도우 내용의 전송원Y좌표를, 1 행의 높이 32로 가른다
    return self.oy / 32
  end
  #--------------------------------------------------------------------------
  # ● 선두의 행의 설정
  #    row : 선두에 표시하는 행
  #--------------------------------------------------------------------------
  def top_row=(row)
    # row が 0 未満の場合は 0 に修正
    if row < 0
      row = 0
    end
    # row が row_max - 1 超の場合は row_max - 1 に修正
    if row > row_max - 1
      row = row_max - 1
    end
    # row に 1 行の高さ 32 を掛け、ウィンドウ内容の転送元 Y 座標とする
    self.oy = row * 32
  end
  #--------------------------------------------------------------------------
  # ● 1 ページに表示できる行数の取得
  #--------------------------------------------------------------------------
  def page_row_max
    # ウィンドウの高さから、フレームの高さ 32 を引き、1 行の高さ 32 で割る
    return 1#(self.height - 32) / 32
  end
  #--------------------------------------------------------------------------
  # ● 1 ページに表示できる項目数の取得
  #--------------------------------------------------------------------------
  def page_item_max
    # 行数 page_row_max に 列数 @column_max を掛ける
    return (self.height - 32) / 32#page_row_max #* @column_max
  end
  #--------------------------------------------------------------------------
  # ● ヘルプウィンドウの設定
  #    help_window : 新しいヘルプウィンドウ
  #--------------------------------------------------------------------------
  def help_window=(help_window)
    @help_window = help_window
    # ヘルプテキストを更新 (update_help は継承先で定義される)
    if self.active and @help_window != nil
      update_help
    end
  end
  #--------------------------------------------------------------------------
  # ● カーソルの矩形更新
  #--------------------------------------------------------------------------
  def update_cursor_rect
    # カーソル位置が 0 未満の場合
    if @index < 0
      self.cursor_rect.empty
      return
    end
    # 現在の行を取得
    row = @index #/ @column_max
    # 現在の行が、表示されている先頭の行より前の場合
    if row < self.top_row
      # 現在の行が先頭になるようにスクロール
      self.top_row = row
    end
    # 現在の行が、表示されている最後尾の行より後ろの場合
    if row > self.top_row + (self.page_row_max - 1)
      # 現在の行が最後尾になるようにスクロール
      self.top_row = row - (self.page_row_max - 1)
    end
    # カーソルの幅を計算
    #cursor_width = self.width / @column_max - 32
    # カーソルの座標を計算
    #x = @index % @column_max * (cursor_width + 32)
    #y = @index / @column_max * 32 - self.oy
    # カーソルの矩形を更新
    #self.cursor_rect.set(x, y, cursor_width, 32)
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    super
    # カーソルの移動が可能な状態の場合
    if self.active and @item_max > 0 and @index >= 0 and
      self.contents.height / 32 > (self.height - 32) / 32
      # 方向ボタンの下が押された場合
      if Input.repeat?(Input::DOWN)
        # 列数が 1 かつ 方向ボタンの下の押下状態がリピートでない場合か、
        # またはカーソル位置が(項目数 - 列数)より前の場合
        if (@column_max == 1 and Input.trigger?(Input::DOWN)) or
          @index < @item_max - @column_max
          # カーソルを下に移動
          $game_system.se_play($data_system.cursor_se)
          @index = (@index + @column_max) % @item_max
        end
      end
      # 方向ボタンの上が押された場合
      if Input.repeat?(Input::UP)
        # 列数が 1 かつ 方向ボタンの上の押下状態がリピートでない場合か、
        # またはカーソル位置が列数より後ろの場合
        if (@column_max == 1 and Input.trigger?(Input::UP)) or
          @index >= @column_max
          # カーソルを上に移動
          $game_system.se_play($data_system.cursor_se)
          @index = (@index - @column_max + @item_max) % @item_max
        end
      end
      # 方向ボタンの右が押された場合
      if Input.repeat?(Input::RIGHT)
        # 表示されている最後尾の行が、データ上の最後の行よりも前の場合
        if self.top_row + (self.page_row_max - 1) < (self.row_max - 1)
          # カーソルを 1 ページ後ろに移動
          $game_system.se_play($data_system.cursor_se)
          @index = [@index + self.page_item_max, @item_max - 1].min
          self.top_row += self.page_row_max
        end
      end
      # 方向ボタンの左が押された場合
      if Input.repeat?(Input::LEFT)
        # 表示されている先頭の行が 0 より後ろの場合
        if self.top_row > 0
          # カーソルを 1 ページ前に移動
          $game_system.se_play($data_system.cursor_se)
          @index = [@index - self.page_item_max, 0].max
          self.top_row -= self.page_row_max
        end
      end
    end
    # ヘルプテキストを更新 (update_help は継承先で定義される)
    if self.active and @help_window != nil
      update_help
    end
    # カーソルの矩形を更新
    update_cursor_rect
  end
end
class Window_Questdiary_Select < Window_Selectable
  attr_reader  :data
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super(0, 64, 640, 416)
    @column_max = 2
    data_set
    @item_max = @data.size
    self.index = 0
    refresh
  end
  def data_set
    @data = []
    @diary_data = [0]
    for i in 1..QUESTDIARY_DATA_MAX
      @diary_data[i] = Data_Questdiary.new(i)
      @data.push(@diary_data[i]) if @diary_data[i].exist
    end
  end
  #--------------------------------------------------------------------------
  # ● 日記データ取得
  #--------------------------------------------------------------------------
  def diary
    return @data[self.index]
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    #項目数が 0 でなければビットマップを作成し、全項目を描画
    return if @item_max == 0
    self.contents = Bitmap.new(width - 32, row_max * 32)
    for i in 0...@item_max
      draw_item(i)
    end
  end
  def draw_item(index)
    item = @data[index]
    x = 4 + index % 2 * (288 + 32)
    y = index / 2 * 32
    rect = Rect.new(x, y, self.width / @column_max - 32, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    self.contents.font.color = normal_color
    self.contents.draw_text(x, y, 32, 32, item.id.to_s)
    if item.title_visible?
      diary_title = transfer(item.title)
      self.contents.draw_text(x+48, y, 212, 32, diary_title, 0)
    else
      self.contents.draw_text(x+48, y, 212, 32, "-----", 0)
    end
  end
end
class Window_Questdiary_Info < Window_Scroll
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super(0, 64, 640, 416)
    self.contents = Bitmap.new(width - 32, height - 32)
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh(comment)
    self.index = 0
    self.contents.dispose
    contents_row = text_row(comment)
    self.contents = Bitmap.new(width - 32, [contents_row * 32, self.height - 32].max)
    @item_max = [(contents_row + 1 - (self.height - 32) / 32), 0].max
    self.contents.font.color = normal_color
    self.contents.font.size = 22
    new_text = transfer(comment)
    draw_ex_text(0, 0, new_text)
  end
end

class Scene_Questdiary
  #--------------------------------------------------------------------------
  # ● メイン処理
  #--------------------------------------------------------------------------
  def main
    # ウィンドウを作成
    @title_window = Window_Base.new(0, 0, 640, 64)
    @title_window.contents = Bitmap.new(640 - 32, 64 - 32)
    @title_window.contents.draw_text(4, 0, 320, 32, "다이어리", 1)
    @main_window = Window_Questdiary_Select.new
    @main_window.active = true
    # インフォウィンドウを作成 (不可視・非アクティブに設定)
    @info_window = Window_Questdiary_Info.new
    @info_window.z = 110
    @info_window.visible = false
    @info_window.active = false
    @visible_index = 0
    # トランジション実行
    Graphics.transition
    # メインループ
    loop do
      # ゲーム画面を更新
      Graphics.update
      # 入力情報を更新
      Input.update
      # フレーム更新
      update
      # 画面が切り替わったらループを中断
      if $scene != self
        break
      end
    end
    # トランジション準備
    Graphics.freeze
    # ウィンドウを解放
    @title_window.dispose
    @main_window.dispose
    @info_window.dispose
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    # ウィンドウを更新
    @main_window.update
    @info_window.update
    if @info_window.active
      update_info
      return
    end
    # メインウィンドウがアクティブの場合: update_target を呼ぶ
    if @main_window.active
      update_main
      return
    end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新 (メインウィンドウがアクティブの場合)
  #--------------------------------------------------------------------------
  def update_main
    # B ボタンが押された場合
    if Input.trigger?(Input::B)
      # キャンセル SE を演奏
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Map.new
      return
    end
    # C ボタンが押された場合
    if Input.trigger?(Input::C)
      if @main_window.diary.title_visible? == false
        # ブザー SE を演奏
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # 決定 SE を演奏
      $game_system.se_play($data_system.decision_se)
      @main_window.active = false
      @info_window.active = true
      @info_window.visible = true
      @visible_index = @main_window.index
      @info_window.refresh(@main_window.diary.show_comment)
      return
    end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新 (インフォウィンドウがアクティブの場合)
  #--------------------------------------------------------------------------
  def update_info
    # B ボタンが押された場合
    if Input.trigger?(Input::B)
      # キャンセル SE を演奏
      $game_system.se_play($data_system.cancel_se)
      @main_window.active = true
      @info_window.active = false
      @info_window.visible = false
      return
    end
    # C ボタンが押された場合
    if Input.trigger?(Input::C)
      return
      # 決定 SE を演奏
      $game_system.se_play($data_system.decision_se)
      if @comment_on
        @comment_on = false
        @comment_window.visible = false
      else
        @comment_on = true
        @comment_window.visible = true
      end
      return
    end
    if Input.trigger?(Input::L)
      # 決定 SE を演奏
      $game_system.se_play($data_system.decision_se)
      loop_end = false
      while loop_end == false
        if @visible_index != 0
          @visible_index -= 1
        else
          @visible_index = @main_window.data.size - 1
        end
        loop_end = true if @main_window.data[@visible_index].title_visible?
      end
      diary = @main_window.data[@visible_index]
      @info_window.refresh(diary.show_comment)
      return
    end
    if Input.trigger?(Input::R)
      # 決定 SE を演奏
      $game_system.se_play($data_system.decision_se)
      loop_end = false
      while loop_end == false
        if @visible_index != @main_window.data.size - 1
          @visible_index += 1
        else
          @visible_index = 0
        end
        loop_end = true if @main_window.data[@visible_index].title_visible?
      end
      diary = @main_window.data[@visible_index]
      @info_window.refresh(diary.show_comment)
      return
    end
  end
end
========================================

음... 사용법은... 의외로 간단합니다 -ㅇ-;
대충 제가 필요한 부분까지 번역기를 돌려놨기때문에....

일단 ● メイン処理 이 부분을 찾습니다.
@title_window.contents.draw_text(4, 0, 320, 32, "다이어리", 1)
그리고 이 부분에서 다이어리를 원하는걸로 바꿉니다.
퀘스트 다이어리창을 띄웠을때 위쪽에 표시되는 텍스트입니다.

그리고 중요한건 이 다음 부분입니다.
퀘스트 다이어리는 직접 써줘야한다는 단점이 있습니다만...
몇번 써보면 쉽게 사용하실수 있으실겁니다.

when 1 # ID
@title = "편지의 내용" # 퀘스트 제목
@variable = 12 # 출현 조건(스위치나 변수 번호)
@comment[0] = <<-EOS#내용 시작 EOS지우면 안됩니다!
편지의 내용을 읽어보았다.
편지의 내용으로 보아 누군가가 잊어버린것 같았다.
이 편지의 주인은 누구일까?
EOS
      # 여기까지
      @variable_max = @comment.size
      @exist = true # 존재 플러그 true으로 해 풀어 주세요
when 2 # ID
@title = "길드의뢰 : 몬스터 퇴치" # 퀘스트 제목
@variable = 5011 # 출현 조건(스위치나 변수 번호)
@comment[0] = <<-EOS#내용 시작 EOS지우면 안됩니다!
길드의뢰 : 몬스터 퇴치

길드장소 : \V[5011]
급수 : \V[5012]
수 : \V[5013]

현재진행상황 : \V[5014]/\V[5013]
EOS
      # 여기까지
      @variable_max = @comment.size
      @exist = true # 존재 플러그 true으로 해 풀어 주세요

이 부분을 보시면 아시겠지만 when 1, when 2 두가지로 나뉘어있죠?
@title 이건 퀘스트 제목입니다.
@variable 이건 출현 조건이죠, 변수나 스위치가 0이나 OFF이외의 것일때 출현합니다.
그리고 퀘스트내용은 EOS안쪽...
그러니까 아래처럼 되어있다면

길드의뢰 : 몬스터 퇴치

길드장소 : \V[5011]
급수 : \V[5012]
수 : \V[5013]

현재진행상황 : \V[5014]/\V[5013]

대충 화면은 이렇게 나옵니다.
==========================
        다이어리 타이틀
==========================
길드의뢰 : 몬스터 퇴치

길드장소 : 변수5011번의 값
급수 : 변수5012번의 값
수 : 변수5013번의 값

현재진행상황 : 변수5014번의값/변수5013번의값
==========================

굳이 예를들자면... 이정도일까요?

<<-EOS

EOS

◆이 부분이 퀘스트의 내용을 쓰는곳이고,
EOS는 지우면 안됩니다. 그리고 가장 중요한건 when이 현재 2개있죠?
하나를 추가시킬려면 다음건 일단 when 2부터 end 이전줄까지

when 2
.
.
.
@exist = true # 존재 플러그 true으로 해 풀어 주세요

여기까지 드래그하시고, 복사후
주석 끝에서 엔터를 한방 처줍니다. 그럼 새 줄이생기죠?
앞에 공백을 지우고 붙여넣기를합니다.

그리고 when을 다음숫자로바꿉니다. 현재 2까지있으니 다음번호는
3이죠?

그리고 출현조건을 적당히 바꿔줍니다. 현재 변수의 설정으로 되어있습니다. 그리고 그 설정을 바꾸려면 위쪽에서

VISIBLE_JUDGE_MODE = 1

이 부분을 찾습니다. 0이면 스위치를 출현조건으로 하는것이고
1이면 변수를 출현조건으로 합니다.
밑에 스위치는 뭐가 안된다고해서... 그냥 변수를 쓰시기 바랍니다.

뭐... 좀 복잡하지만... 잘 생각해보면 간단한겁니다.

1. when부터 end이전줄까지 카피한다.
2. when X의 X다음 값으로 바꾼다. ( 중복은... 잘 모르겟음; )
3. @title의 값과 @variable의 값을 바꾼다.
4. EOS안쪽의 퀘스트 내용을 바꿔준다.

그리고 가장 마지막에는... 맨 윗줄에
QUESTDIARY_DATA_MAX = 100  # 일기 데이터의 최대 수
이걸 바꾸는겁니다 -ㅇ-; 이게 만으면 뜨는속도가 좀 느려지더군요.
정확하게 when 번호를 맞추어주시면 될겁니다.
음... 그리고 맨 위쪽에 주석이 있죠?

# N[n] ID n번의 액터의 이름을 표시합니다.
# V[n] 변수 n번의 가격을 표시합니다.
# C[n] 문자 색상을 변경합니다.
# G 현재의 소지금을 표시합니다.
# O[n] 불투명도를 변경합니다.(0~255)
# H[n] font size을 변경합니다.(6~32)
# R[본문, 루비] 루비 첨부의 글을 표시합니다.
# Pic[x, y, file name] picture에 인포트 된 화상을 표시합니다.
#
# 일기의 내용을 설정할 때는 「\ n[1]」와 같이
# 「」을 1개 여분으로 붙여 주세요.


퀘스트 내용을 쓸때 를 여분으로 한개 더 넣어달라는게 무슨말이냐면
위에서 \V[5011] 이런것과 같이 앞에 하나를
더 넣어줘야한다는겁니다. 음... 대충 몇번 둘러보시고
외우신후 퀘스트 내용을 쓰시기 바랍니다.
개시기는 $scene = Scene_Questdiary.new 입니다.

Who's 백호

?

이상혁입니다.

http://elab.kr

Comment '15'
  • ?
    Jay 2009.06.27 23:40

     사용하고싶은대 오류가 나네요.


      # 그림 표시
        text.gsub!(/\[Pp]ic[([0-9]+),([0-9]+),([^,]]+)]/) { "150[#{$1},#{$2},#{$3}]" }

    이부분에서 오류가 난다고 하네요..ㅠ 이게 뭔뜻인지 lllorz...

  • ?
    케나이슬라이드 2009.07.30 19:31
    이런건 그냥 커먼 이벤트로 해도 되요...
  • profile
    JACKY 2010.01.03 20:56

    ㅋㅋ;;

  • ?
    크라상 2010.01.03 20:13

    사진 무서워요....

  • profile
    JACKY 2010.01.03 13:10

    이건 이벤트로 못하는 기능도 많이 있습니다.

  • ?
    카이어덱터 2010.01.02 22:30

    잘쓰겠습니다~

  • ?
    미소™ 2010.01.15 13:22

    오류뜨네.

  • ?
    JM 2010.01.16 12:49

    뭐라고 하는지?

     

  • ?
    내로미 2010.02.15 12:30

    자꾸 오류떠요..

    예전에도 들렀었는데 결국 지금 이말을 하네요..

    스크립트 사이사이에 있는 글씨 좀 빼주세요.. 그것 때문에 오류가 생기는 것 같은데..

    그리고 이왕이면 데모버전을 좀...

  • ?
    블랙★스타 2010.03.03 16:24

    오류뜨는 ....

  • ?
    白月のはる 2010.03.19 20:36

    으엉..? 이건 어떻게 쓰는거지..

  • ?
    작은샛별 2010.09.21 20:20

  • ?
    류휀 2010.11.25 03:15

    예제를 올려주심 좋을것 같아요

  • ?
    레베카 2011.09.10 19:57

    유용하네요 ㅋㅋ 근데 매번 작성하느라 고생할둡 ~0~

  • ?
    아란2532 2012.09.03 07:00
    좋은데 참 복잡 ㅋ