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
    좋은데 참 복잡 ㅋ

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 6153
981 HUD [게이지바]3.0버젼「현재시간, 플레이시간, 걸음수, 윈도우 이동 추가」(HelloCoa2Ver3.0) 63 file 코아 코스튬 2010.10.30 4921
980 메시지 메세지플러스3.1v스크립트(얼굴표시,메세지색상,속도등정하는스크립트) 8 백호 2009.02.21 4878
979 윈도우_게이지 (HP, SP, 경험치<소수점포함>… 12 WMN 2008.04.06 4856
978 메뉴 1인 캐릭터 메뉴 스크립트 27 file - 하늘 - 2009.08.06 4788
977 이동 및 탈것 아하! 그렇구나의 3D 신기술 체험 30 아하!잘봤어요. 2010.02.28 4772
976 전투 사이드뷰 배틀 (2003 형식으 전투)| 12 file 아방스 2007.11.09 4744
975 메시지 메세지 표시 업그레이드 11 file 백호 2009.02.21 4723
974 전투 사이드뷰 방식 스크립트. 8 file 백호 2009.02.21 4636
973 HUD 새로운방법의 맵이름 표시 31 file 백호 2009.02.21 4617
972 그래픽 부드럽게 화면이 움직이는 스크립트 입니다. 16 GangSin 2012.09.12 4585
971 전투 ABP 액알 (Action Battle Player) 14 file 백호 2009.02.22 4556
970 HUD HP과 SP 바 19 Man... 2008.11.04 4534
969 이름입력 한글 이름 입력 15 ok하승헌 2010.02.18 4486
968 게이지바 만들기 [헬악이님 제공] 12 file 아방스 2007.11.09 4414
967 메뉴 메뉴에 그림넣기 4 file 백호 2009.02.22 4411
» 퀘스트 퀘스트 다이어리 15 백호 2009.02.21 4406
965 전투 XAS 여러가지버전. 9 §포뇨§ 2010.02.23 4395
964 온라인 온라인 스크립트입니다^^(예제파일) 7 캉쿤 2011.09.24 4390
963 타이틀/게임오버 타이틀 화면 커스터마이즈 (타이틀 메뉴 바꾸는 스크립트) 9 file №1 2012.08.04 4389
962 미니맵 미니맵 만들기~! 14 file 블리치캐릭셋원함 2010.11.24 4348
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 52 Next
/ 52