The RPG Maker Resource Kit

RMRK RPG Maker Creation => XP => XP Scripts Database => Topic started by: Sthrattoff on January 12, 2007, 08:55:45 AM

Title: "Simple" Quest log screen
Post by: Sthrattoff on January 12, 2007, 08:55:45 AM
This is my second script. Take a look!

Code: [Select]
#=============================================================================
# Quest Log Screen
#-----------------------------------------------------------------------------
# ** Version 2.0
# ** Original by Sthrattoff
#=============================================================================
# Description :
# This script enables the ability to show current active quest.

# Features :
# SIMPLIFIED! Now the script is just about 300 lines length.
# Unlimited amount of quest can be added.
# Still use variable to mark quest's progress.

# Limitation :
# Only can store up to 12 progress per quest.

# History :
# Version 1.0 : Initial release.
# Version 1.2 : Add "Types" features.
# Version 2.0 : Changes in programming style and infinite quest support.

# Instruction
# Just put this script above main.

# Configuration :
# To add quest, use Call Script command and type this :
# $names.push "quest name" for the quest's name
# $types.push "quest type" for the quest's type (main or sidequest or something)
# $descriptionm.push "quest description line m" for the quest's description. m is the line
# number (1-5)
# $objectivesm.push "quest objectives m" for the quest's objectives. m is the objective
# number (1-12)
# $var_ID.push value for the quest's game variable marker ID
# To end a quest, set the marker variable's value to 12

# Credits
# See the header + Blizzard and Enterbrain
#=============================================================================

class Scene_Quest
 
  $names = []
  $types = []
  $description0 = []
  $description1 = []
  $description2 = []
  $description3 = []
  $description4 = []
  $objectives0 = []
  $objectives1 = []
  $objectives2 = []
  $objectives3 = []
  $objectives4 = []
  $objectives5 = []
  $objectives6 = []
  $objectives7 = []
  $objectives8 = []
  $objectives9 = []
  $objectives10 = []
  $objectives11 = []
  $var_ID = []
 
  def initialize
    $names.compact
  end
 
  def main
    @quest_list = Window_Command.new(160, $names)
    @quest_window = Window_Quest.new
    @quest_window.x = 160
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      break if $scene != self
    end
    Graphics.freeze
    @quest_list.dispose
    @quest_window.dispose
  end
 
  def update
    @quest_list.update
    @quest_window.update
    if @quest_list.active
      update_quest
      return
    end
  end
 
  def update_quest
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Menu.new(2)
      return
    end
    quest = @quest_list.index
    preview(quest)
  end
 
  def preview(x)
    $preview_name = $names[x]
    $preview_type = $types[x]
    $preview_description0 = $description0[x]
    $preview_description1 = $description1[x]
    $preview_description2 = $description2[x]
    $preview_description3 = $description3[x]
    $preview_description4 = $description4[x]
    $preview_objectives0 = $objectives0[x]
    $preview_objectives1 = $objectives1[x]
    $preview_objectives2 = $objectives2[x]
    $preview_objectives3 = $objectives3[x]
    $preview_objectives4 = $objectives4[x]
    $preview_objectives5 = $objectives5[x]
    $preview_objectives6 = $objectives6[x]
    $preview_objectives7 = $objectives7[x]
    $preview_objectives8 = $objectives8[x]
    $preview_objectives9 = $objectives9[x]
    $preview_objectives10 = $objectives10[x]
    $preview_objectives11 = $objectives11[x]
    $preview_variable = $var_ID[x]
    return
  end
 
end

class Window_Quest < Window_Base
 
  def initialize
    super(0, 0, 480, 480)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
 
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(0, 32, self.width - 32, 32, $preview_type.to_s, 1)
    self.contents.draw_text(0, 224, self.width - 32, 32, "Objectives", 1) if $types.size != 0
    self.contents.font.color = normal_color
    self.contents.draw_text(0, 0, self.width - 32, 32, $preview_name.to_s, 1)
    self.contents.draw_text(0, 64, self.width - 32, 32 * 5, $preview_description0.to_s)
    self.contents.draw_text(0, 96, self.width - 32, 32 * 5, $preview_description1.to_s)
    self.contents.draw_text(0, 128, self.width - 32, 32 * 5, $preview_description2.to_s)
    self.contents.draw_text(0, 160, self.width - 32, 32 * 5, $preview_description3.to_s)
    self.contents.draw_text(0, 192, self.width - 32, 32 * 5, $preview_description4.to_s)
    case $game_variables[$preview_variable.to_i]
    when 0
      self.contents.font.color = normal_color
      self.contents.draw_text(0, 256, self.width / 2, 32, "•" + $preview_objectives0.to_s) if $types.size != 0
    when 1
      self.contents.font.color = normal_color
      self.contents.draw_text(0, 288, self.width / 2, 32, "•" + $preview_objectives1.to_s)
      self.contents.font.color = disabled_color
      self.contents.draw_text(0, 256, self.width / 2, 32, "•" + $preview_objectives0.to_s)
    when 2
      self.contents.font.color = normal_color
      self.contents.draw_text(0, 320, self.width / 2, 32, "•" + $preview_objectives2.to_s)
      self.contents.font.color = disabled_color
      self.contents.draw_text(0, 288, self.width / 2, 32, "•" + $preview_objectives1.to_s)
      self.contents.draw_text(0, 256, self.width / 2, 32, "•" + $preview_objectives0.to_s)
    when 3
      self.contents.font.color = normal_color
      self.contents.draw_text(0, 352, self.width / 2, 32, "•" + $preview_objectives3.to_s)
      self.contents.font.color = disabled_color
      self.contents.draw_text(0, 320, self.width / 2, 32, "•" + $preview_objectives2.to_s)
      self.contents.draw_text(0, 288, self.width / 2, 32, "•" + $preview_objectives1.to_s)
      self.contents.draw_text(0, 256, self.width / 2, 32, "•" + $preview_objectives0.to_s)
    when 4
      self.contents.font.color = normal_color
      self.contents.draw_text(0, 384, self.width / 2, 32, "•" + $preview_objectives4.to_s)
      self.contents.font.color = disabled_color
      self.contents.draw_text(0, 352, self.width / 2, 32, "•" + $preview_objectives3.to_s)
      self.contents.draw_text(0, 320, self.width / 2, 32, "•" + $preview_objectives2.to_s)
      self.contents.draw_text(0, 288, self.width / 2, 32, "•" + $preview_objectives1.to_s)
      self.contents.draw_text(0, 256, self.width / 2, 32, "•" + $preview_objectives0.to_s)
    when 5
      self.contents.font.color = normal_color
      self.contents.draw_text(0, 416, self.width / 2, 32, "•" + $preview_objectives5.to_s)
      self.contents.font.color = disabled_color
      self.contents.draw_text(0, 384, self.width / 2, 32, "•" + $preview_objectives4.to_s)
      self.contents.draw_text(0, 352, self.width / 2, 32, "•" + $preview_objectives3.to_s)
      self.contents.draw_text(0, 320, self.width / 2, 32, "•" + $preview_objectives2.to_s)
      self.contents.draw_text(0, 288, self.width / 2, 32, "•" + $preview_objectives1.to_s)
      self.contents.draw_text(0, 256, self.width / 2, 32, "•" + $preview_objectives0.to_s)
    when 6
      self.contents.font.color = normal_color
      self.contents.draw_text(240, 256, self.width / 2, 32, "•" + $preview_objectives6.to_s)
      self.contents.font.color = disabled_color
      self.contents.draw_text(0, 416, self.width / 2, 32, "•" + $preview_objectives5.to_s)
      self.contents.draw_text(0, 384, self.width / 2, 32, "•" + $preview_objectives4.to_s)
      self.contents.draw_text(0, 352, self.width / 2, 32, "•" + $preview_objectives3.to_s)
      self.contents.draw_text(0, 320, self.width / 2, 32, "•" + $preview_objectives2.to_s)
      self.contents.draw_text(0, 288, self.width / 2, 32, "•" + $preview_objectives1.to_s)
      self.contents.draw_text(0, 256, self.width / 2, 32, "•" + $preview_objectives0.to_s)
    when 7
      self.contents.font_color = normal_color
      self.contents.draw_text(240, 288, self.width / 2, 32, "•" + $preview_objectives7.to_s)
      self.contents.font.color = disabled_color
      self.contents.draw_text(240, 256, self.width / 2, 32, "•" + $preview_objectives6.to_s)
      self.contents.draw_text(0, 416, self.width / 2, 32, "•" + $preview_objectives5.to_s)
      self.contents.draw_text(0, 384, self.width / 2, 32, "•" + $preview_objectives4.to_s)
      self.contents.draw_text(0, 352, self.width / 2, 32, "•" + $preview_objectives3.to_s)
      self.contents.draw_text(0, 320, self.width / 2, 32, "•" + $preview_objectives2.to_s)
      self.contents.draw_text(0, 288, self.width / 2, 32, "•" + $preview_objectives1.to_s)
      self.contents.draw_text(0, 256, self.width / 2, 32, "•" + $preview_objectives0.to_s)
    when 8
      self.contents.font.color = normal_color
      self.contents.draw_text(240, 320, self.width / 2, 32, "•" + $preview_objectives8.to_s)
      self.contents.font.color = disabled_color
      self.contents.draw_text(240, 288, self.width / 2, 32, "•" + $preview_objectives7.to_s)
      self.contents.draw_text(240, 256, self.width / 2, 32, "•" + $preview_objectives6.to_s)
      self.contents.draw_text(0, 416, self.width / 2, 32, "•" + $preview_objectives5.to_s)
      self.contents.draw_text(0, 384, self.width / 2, 32, "•" + $preview_objectives4.to_s)
      self.contents.draw_text(0, 352, self.width / 2, 32, "•" + $preview_objectives3.to_s)
      self.contents.draw_text(0, 320, self.width / 2, 32, "•" + $preview_objectives2.to_s)
      self.contents.draw_text(0, 288, self.width / 2, 32, "•" + $preview_objectives1.to_s)
      self.contents.draw_text(0, 256, self.width / 2, 32, "•" + $preview_objectives0.to_s)
    when 9
      self.contents.font.color = normal_color
      self.contents.draw_text(240, 352, self.width / 2, 32, "•" + $preview_objectives9.to_s)
      self.contents.font.color = disabled_color
      self.contents.draw_text(240, 320, self.width / 2, 32, "•" + $preview_objectives8.to_s)
      self.contents.draw_text(240, 288, self.width / 2, 32, "•" + $preview_objectives7.to_s)
      self.contents.draw_text(240, 256, self.width / 2, 32, "•" + $preview_objectives6.to_s)
      self.contents.draw_text(0, 416, self.width / 2, 32, "•" + $preview_objectives5.to_s)
      self.contents.draw_text(0, 384, self.width / 2, 32, "•" + $preview_objectives4.to_s)
      self.contents.draw_text(0, 352, self.width / 2, 32, "•" + $preview_objectives3.to_s)
      self.contents.draw_text(0, 320, self.width / 2, 32, "•" + $preview_objectives2.to_s)
      self.contents.draw_text(0, 288, self.width / 2, 32, "•" + $preview_objectives1.to_s)
      self.contents.draw_text(0, 256, self.width / 2, 32, "•" + $preview_objectives0.to_s)
    when 10
      self.contents.font.color = normal_color
      self.contents.draw_text(240, 384, self.width / 2, 32, "•" + $preview_objectives10.to_s)
      self.contents.font.color = disabled_color
      self.contents.draw_text(240, 352, self.width / 2, 32, "•" + $preview_objectives9.to_s)
      self.contents.draw_text(240, 320, self.width / 2, 32, "•" + $preview_objectives8.to_s)
      self.contents.draw_text(240, 288, self.width / 2, 32, "•" + $preview_objectives7.to_s)
      self.contents.draw_text(240, 256, self.width / 2, 32, "•" + $preview_objectives6.to_s)
      self.contents.draw_text(0, 416, self.width / 2, 32, "•" + $preview_objectives5.to_s)
      self.contents.draw_text(0, 384, self.width / 2, 32, "•" + $preview_objectives4.to_s)
      self.contents.draw_text(0, 352, self.width / 2, 32, "•" + $preview_objectives3.to_s)
      self.contents.draw_text(0, 320, self.width / 2, 32, "•" + $preview_objectives2.to_s)
      self.contents.draw_text(0, 288, self.width / 2, 32, "•" + $preview_objectives1.to_s)
      self.contents.draw_text(0, 256, self.width / 2, 32, "•" + $preview_objectives0.to_s)
    when 11
      self.contents.font.color = normal_color
      self.contents.draw_text(240, 416, self.width / 2, 32, "•" + $preview_objectives11.to_s)
      self.contents.font.color = disabled_color
      self.contents.draw_text(240, 384, self.width / 2, 32, "•" + $preview_objectives10.to_s)
      self.contents.draw_text(240, 352, self.width / 2, 32, "•" + $preview_objectives9.to_s)
      self.contents.draw_text(240, 320, self.width / 2, 32, "•" + $preview_objectives8.to_s)
      self.contents.draw_text(240, 288, self.width / 2, 32, "•" + $preview_objectives7.to_s)
      self.contents.draw_text(240, 256, self.width / 2, 32, "•" + $preview_objectives6.to_s)
      self.contents.draw_text(0, 416, self.width / 2, 32, "•" + $preview_objectives5.to_s)
      self.contents.draw_text(0, 384, self.width / 2, 32, "•" + $preview_objectives4.to_s)
      self.contents.draw_text(0, 352, self.width / 2, 32, "•" + $preview_objectives3.to_s)
      self.contents.draw_text(0, 320, self.width / 2, 32, "•" + $preview_objectives2.to_s)
      self.contents.draw_text(0, 288, self.width / 2, 32, "•" + $preview_objectives1.to_s)
      self.contents.draw_text(0, 256, self.width / 2, 32, "•" + $preview_objectives0.to_s)
    end
  end   
 
  def update
    refresh
  end
 
end

OLD VERSION:

[code]#=============================================================================
# Quest Log Screen
#-----------------------------------------------------------------------------
# ** Version 1.0
# ** Based on Sirsk8ator's script
# ** Heavily modified by Sthrattoff
#=============================================================================
# Description
# This script enables the ability to show current active quest.

# Features :
# Don't need to edit Game_Temp!
# Use in-game variable to "mark" quest progress!
# Replaceable for more than 15 quests!

# Instruction
# Just put this script above main.

# Configuration :
# To replace quest detail, use these syntax :
# 1. $names[n] = "Quest Names"    --> To change quest n's name.
# 2. $descm[n] = "Description"    --> To change quest n's m line description.
# 3. $objectivem[n] = "Objective" --> To change quest n's m objective.
# 4. $variable[n] = Variable ID   --> To change quest n's controller variable.
# 5. $end[n] = End Value          --> To change quest n's end value.

# Note :
# You can't have active quest more than 15 quests.
# You need to replace unused quest. Methods included on Configuration section.

# Credits
# See the header + Blizzard and Enterbrain
#=============================================================================

class Scene_Quest
 
  #===========================================================================
  # Begin Setting
  #===========================================================================
 
  $names = {1 => "Sample", 2 => "Sample", 3 => "Sample", 4 => "Sample", 5 => "Sample", 6 => "Sample", 7 => "Sample", 8 => "Sample", 9 => "Sample", 10 => "Sample", 11 => "Sample", 12 => "Sample", 13 => "Sample", 14 => "Sample", 15 => "Sample", 0 => "No Quest Available"}
  $desc1 = {1 => "Filler", 2 => "Filler", 3 => "Filler", 4 => "Filler", 5 => "Filler", 6 => "Filler", 7 => "Filler", 8 => "Filler", 9 => "Filler", 10 => "Filler", 11 => "Filler", 12 => "Filler", 13 => "Filler", 14 => "Filler", 15 => "Filler", 0 => ""}
  $desc2 = {1 => "Filler", 2 => "Filler", 3 => "Filler", 4 => "Filler", 5 => "Filler", 6 => "Filler", 7 => "Filler", 8 => "Filler", 9 => "Filler", 10 => "Filler", 11 => "Filler", 12 => "Filler", 13 => "Filler", 14 => "Filler", 15 => "Filler", 0 => ""}
  $desc3 = {1 => "Filler", 2 => "Filler", 3 => "Filler", 4 => "Filler", 5 => "Filler", 6 => "Filler", 7 => "Filler", 8 => "Filler", 9 => "Filler", 10 => "Filler", 11 => "Filler", 12 => "Filler", 13 => "Filler", 14 => "Filler", 15 => "Filler", 0 => ""}
  $desc4 = {1 => "Filler", 2 => "Filler", 3 => "Filler", 4 => "Filler", 5 => "Filler", 6 => "Filler", 7 => "Filler", 8 => "Filler", 9 => "Filler", 10 => "Filler", 11 => "Filler", 12 => "Filler", 13 => "Filler", 14 => "Filler", 15 => "Filler", 0 => ""}
  $desc5 = {1 => "Filler", 2 => "Filler", 3 => "Filler", 4 => "Filler", 5 => "Filler", 6 => "Filler", 7 => "Filler", 8 => "Filler", 9 => "Filler", 10 => "Filler", 11 => "Filler", 12 => "Filler", 13 => "Filler", 14 => "Filler", 15 => "Filler", 0 => ""}
  $objective1 = {1 => "Replace the Filler!", 2 => "Replace the Filler!", 3 => "Replace the Filler!", 4 => "Replace the Filler!", 5 => "Replace the Filler!", 6 => "Replace the Filler!", 7 => "Replace the Filler!", 8 => "Replace the Filler!", 9 => "Replace the Filler!", 10 => "Replace the Filler!", 11 => "Replace the Filler!", 12 => "Replace the Filler!", 13 => "Replace the Filler!", 14 => "Replace the Filler!", 15 => "Replace the Filler!", 0 => ""}
  $objective2 = {1 => "Replace the Filler!", 2 => "Replace the Filler!", 3 => "Replace the Filler!", 4 => "Replace the Filler!", 5 => "Replace the Filler!", 6 => "Replace the Filler!", 7 => "Replace the Filler!", 8 => "Replace the Filler!", 9 => "Replace the Filler!", 10 => "Replace the Filler!", 11 => "Replace the Filler!", 12 => "Replace the Filler!", 13 => "Replace the Filler!", 14 => "Replace the Filler!", 15 => "Replace the Filler!", 0 => ""}
  $objective3 = {1 => "Replace the Filler!", 2 => "Replace the Filler!", 3 => "Replace the Filler!", 4 => "Replace the Filler!", 5 => "Replace the Filler!", 6 => "Replace the Filler!", 7 => "Replace the Filler!", 8 => "Replace the Filler!", 9 => "Replace the Filler!", 10 => "Replace the Filler!", 11 => "Replace the Filler!", 12 => "Replace the Filler!", 13 => "Replace the Filler!", 14 => "Replace the Filler!", 15 => "Replace the Filler!", 0 => ""}
  $objective4 = {1 => "Replace the Filler!", 2 => "Replace the Filler!", 3 => "Replace the Filler!", 4 => "Replace the Filler!", 5 => "Replace the Filler!", 6 => "Replace the Filler!", 7 => "Replace the Filler!", 8 => "Replace the Filler!", 9 => "Replace the Filler!", 10 => "Replace the Filler!", 11 => "Replace the Filler!", 12 => "Replace the Filler!", 13 => "Replace the Filler!", 14 => "Replace the Filler!", 15 => "Replace the Filler!", 0 => ""}
  $objective5 = {1 => "Replace the Filler!", 2 => "Replace the Filler!", 3 => "Replace the Filler!", 4 => "Replace the Filler!", 5 => "Replace the Filler!", 6 => "Replace the Filler!", 7 => "Replace the Filler!", 8 => "Replace the Filler!", 9 => "Replace the Filler!", 10 => "Replace the Filler!", 11 => "Replace the Filler!", 12 => "Replace the Filler!", 13 => "Replace the Filler!", 14 => "Replace the Filler!", 15 => "Replace the Filler!", 0 => ""}
  $objective6 = {1 => "Replace the Filler!", 2 => "Replace the Filler!", 3 => "Replace the Filler!", 4 => "Replace the Filler!", 5 => "Replace the Filler!", 6 => "Replace the Filler!", 7 => "Replace the Filler!", 8 => "Replace the Filler!", 9 => "Replace the Filler!", 10 => "Replace the Filler!", 11 => "Replace the Filler!", 12 => "Replace the Filler!", 13 => "Replace the Filler!", 14 => "Replace the Filler!", 15 => "Replace the Filler!", 0 => ""}
  $objective7 = {1 => "Replace the Filler!", 2 => "Replace the Filler!", 3 => "Replace the Filler!", 4 => "Replace the Filler!", 5 => "Replace the Filler!", 6 => "Replace the Filler!", 7 => "Replace the Filler!", 8 => "Replace the Filler!", 9 => "Replace the Filler!", 10 => "Replace the Filler!", 11 => "Replace the Filler!", 12 => "Replace the Filler!", 13 => "Replace the Filler!", 14 => "Replace the Filler!", 15 => "Replace the Filler!", 0 => ""}
  $objective8 = {1 => "Replace the Filler!", 2 => "Replace the Filler!", 3 => "Replace the Filler!", 4 => "Replace the Filler!", 5 => "Replace the Filler!", 6 => "Replace the Filler!", 7 => "Replace the Filler!", 8 => "Replace the Filler!", 9 => "Replace the Filler!", 10 => "Replace the Filler!", 11 => "Replace the Filler!", 12 => "Replace the Filler!", 13 => "Replace the Filler!", 14 => "Replace the Filler!", 15 => "Replace the Filler!", 0 => ""}
  $objective9 = {1 => "Replace the Filler!", 2 => "Replace the Filler!", 3 => "Replace the Filler!", 4 => "Replace the Filler!", 5 => "Replace the Filler!", 6 => "Replace the Filler!", 7 => "Replace the Filler!", 8 => "Replace the Filler!", 9 => "Replace the Filler!", 10 => "Replace the Filler!", 11 => "Replace the Filler!", 12 => "Replace the Filler!", 13 => "Replace the Filler!", 14 => "Replace the Filler!", 15 => "Replace the Filler!", 0 => ""}
  $objective10 = {1 => "Replace the Filler!", 2 => "Replace the Filler!", 3 => "Replace the Filler!", 4 => "Replace the Filler!", 5 => "Replace the Filler!", 6 => "Replace the Filler!", 7 => "Replace the Filler!", 8 => "Replace the Filler!", 9 => "Replace the Filler!", 10 => "Replace the Filler!", 11 => "Replace the Filler!", 12 => "Replace the Filler!", 13 => "Replace the Filler!", 14 => "Replace the Filler!", 15 => "Replace the Filler!", 0 => ""}
  $variables = {1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 10, 11 => 11, 12 => 12, 13 => 13, 14 => 14, 15 => 15}
  $end = {1 => 11, 2 => 11, 3 => 11, 4 => 11, 5 => 11, 6 => 11, 7 => 11, 8 => 11, 9 => 11, 10 => 11, 11 => 11, 12 => 11, 13 => 11, 14 => 11, 15 => 11}
 
  #===========================================================================
  # Begin Processing. DO NOT TOUCH THIS PART!!!
  #===========================================================================
 
  def main
   
    # Preset
    @id_1 = @id_2 = @id_3 = @id_4 = @id_5 = @id_6 = @id_7 = @id_8 = @id_9 = 0
    @id_10 = @id_11 = @id_12 = @id_13 = @id_14 = @id_15 = 0
   
    # Make first option on quest selection
    if $game_variables[$variables[1]] > 0 and $game_variables[$variables[1]] < $end[1]
      @id_1 = 1
      s1 = $names[1]
    elsif $game_variables[$variables[2]] > 0 and $game_variables[$variables[2]] < $end[2]
      @id_1 = 2
      s1 = $names[2]
    elsif $game_variables[$variables[3]] > 0 and $game_variables[$variables[3]] < $end[3]
      @id_1 = 3
      s1 = $names[3]
    elsif $game_variables[$variables[4]] > 0 and $game_variables[$variables[4]] < $end[4]
      @id_1 = 4
      s1 = $names[4]
    elsif $game_variables[$variables[5]] > 0 and $game_variables[$variables[5]] < $end[5]
      @id_1 = 5
      s1 = $names[5]
    elsif $game_variables[$variables[6]] > 0 and $game_variables[$variables[6]] < $end[6]
      @id_1 = 6
      s1 = $names[6]
    elsif $game_variables[$variables[7]] > 0 and $game_variables[$variables[7]] < $end[7]
      @id_1 = 7
      s1 = $names[7]
    elsif $game_variables[$variables[8]] > 0 and $game_variables[$variables[8]] < $end[8]
      @id_1 = 8
      s1 = $names[8]
    elsif $game_variables[$variables[9]] > 0 and $game_variables[$variables[9]] < $end[9]
      @id_1 = 9
      s1 = $names[9]
    elsif $game_variables[$variables[10]] > 0 and $game_variables[$variables[10]] < $end[10]
      @id_1 = 10
      s1 = $names[10]
    elsif $game_variables[$variables[11]] > 0 and $game_variables[$variables[11]] < $end[11]
      @id_1 = 11
      s1 = $names[11]
    elsif $game_variables[$variables[12]] > 0 and $game_variables[$variables[12]] < $end[12]
      @id_1 = 12
      s1 = $names[12]
    elsif $game_variables[$variables[13]] > 0 and $game_variables[$variables[13]] < $end[13]
      @id_1 = 13
      s1 = $names[13]
    elsif $game_variables[$variables[14]] > 0 and $game_variables[$variables[14]] < $end[14]
      @id_1 = 14
      s1 = $names[14]
    elsif $game_variables[$variables[15]] > 0 and $game_variables[$variables[15]] < $end[15]
      @id_1 = 15
      s1 = $names[15]
    else
      s1 = $names[0]
    end
   
    # Make second option on quest selection
    if $game_variables[$variables[2]] > 0 and $game_variables[$variables[2]] < $end[2] and s1 != $names[2]
      @id_2 = 2
      s2 = $names[2]
    elsif $game_variables[$variables[3]] > 0 and $game_variables[$variables[3]] < $end[3] and s1 != $names[3]
      @id_2 = 3
      s2 = $names[3]
    elsif $game_variables[$variables[4]] > 0 and $game_variables[$variables[4]] < $end[4] and s1 != $names[4]
      @id_2 = 4
      s2 = $names[4]
    elsif $game_variables[$variables[5]] > 0 and $game_variables[$variables[5]] < $end[5] and s1 != $names[5]
      @id_2 = 5
      s2 = $names[5]
    elsif $game_variables[$variables[6]] > 0 and $game_variables[$variables[6]] < $end[6] and s1 != $names[6]
      @id_2 = 6
      s2 = $names[6]
    elsif $game_variables[$variables[7]] > 0 and $game_variables[$variables[7]] < $end[7] and s1 != $names[7]
      @id_2 = 7
      s2 = $names[7]
    elsif $game_variables[$variables[8]] > 0 and $game_variables[$variables[8]] < $end[8] and s1 != $names[8]
      @id_2 = 8
      s2 = $names[8]
    elsif $game_variables[$variables[9]] > 0 and $game_variables[$variables[9]] < $end[9] and s1 != $names[9]
      @id_2 = 9
      s2 = $names[9]
    elsif $game_variables[$variables[10]] > 0 and $game_variables[$variables[10]] < $end[10] and s1 != $names[10]
      @id_2 = 10
      s2 = $names[10]
    elsif $game_variables[$variables[11]] > 0 and $game_variables[$variables[11]] < $end[11] and s1 != $names[11]
      @id_2 = 11
      s2 = $names[11]
    elsif $game_variables[$variables[12]] > 0 and $game_variables[$variables[12]] < $end[12] and s1 != $names[12]
      @id_2 = 12
      s2 = $names[12]
    elsif $game_variables[$variables[13]] > 0 and $game_variables[$variables[13]] < $end[13] and s1 != $names[13]
      @id_2 = 13
      s2 = $names[13]
    elsif $game_variables[$variables[14]] > 0 and $game_variables[$variables[14]] < $end[14] and s1 != $names[14]
      @id_2 = 14
      s2 = $names[14]
    elsif $game_variables[$variables[15]] > 0 and $game_variables[$variables[15]] < $end[15] and s1 != $names[15]
      @id_2 = 15
      s2 = $names[15]
    end
   
    # Make third option on quest selection
    if $game_variables[$variables[3]] > 0 and $game_variables[$variables[3]] < $end[3] and s1 != $names[3] and s2 != $names[3]
      @id_3 = 3
      s3 = $names[3]
    elsif $game_variables[$variables[4]] > 0 and $game_variables[$variables[4]] < $end[4] and s1 != $names[4] and s2 != $names[4]
      @id_3 = 4
      s3 = $names[4]
    elsif $game_variables[$variables[5]] > 0 and $game_variables[$variables[5]] < $end[5] and s1 != $names[5] and s2 != $names[5]
      @id_3 = 5
      s3 = $names[5]
    elsif $game_variables[$variables[6]] > 0 and $game_variables[$variables[6]] < $end[6] and s1 != $names[6] and s2 != $names[6]
      @id_3 = 6
      s3 = $names[6]
    elsif $game_variables[$variables[7]] > 0 and $game_variables[$variables[7]] < $end[7] and s1 != $names[7] and s2 != $names[7]
      @id_3 = 7
      s3 = $names[7]
    elsif $game_variables[$variables[8]] > 0 and $game_variables[$variables[8]] < $end[8] and s1 != $names[8] and s2 != $names[8]
      @id_3 = 8
      s3 = $names[8]
    elsif $game_variables[$variables[9]] > 0 and $game_variables[$variables[9]] < $end[9] and s1 != $names[9] and s2 != $names[9]
      @id_3 = 9
      s3 = $names[9]
    elsif $game_variables[$variables[10]] > 0 and $game_variables[$variables[10]] < $end[10] and s1 != $names[10] and s2 != $names[10]
      @id_3 = 10
      s3 = $names[10]
    elsif $game_variables[$variables[11]] > 0 and $game_variables[$variables[11]] < $end[11] and s1 != $names[11] and s2 != $names[11]
      @id_3 = 11
      s3 = $names[11]
    elsif $game_variables[$variables[12]] > 0 and $game_variables[$variables[12]] < $end[12] and s1 != $names[12] and s2 != $names[12]
      @id_3 = 12
      s3 = $names[12]
    elsif $game_variables[$variables[13]] > 0 and $game_variables[$variables[13]] < $end[13] and s1 != $names[13] and s2 != $names[13]
      @id_3 = 13
      s3 = $names[13]
    elsif $game_variables[$variables[14]] > 0 and $game_variables[$variables[14]] < $end[14] and s1 != $names[14] and s2 != $names[14]
      @id_3 = 14
      s3 = $names[14]
    elsif $game_variables[$variables[15]] > 0 and $game_variables[$variables[15]] < $end[15] and s1 != $names[15] and s2 != $names[15]
      @id_3 = 15
      s3 = $names[15]
    end
   
    # Make fourth option on quest selection
    if $game_variables[$variables[4]] > 0 and $game_variables[$variables[4]] < $end[4] and s1 != $names[4] and s2 != $names[4] and s3 != $names[4]
      @id_4 = 4
      s4 = $names[4]
    elsif $game_variables[$variables[5]] > 0 and $game_variables[$variables[5]] < $end[5] and s1 != $names[5] and s2 != $names[5] and s3 != $names[5]
      @id_4 = 5
      s4 = $names[5]
    elsif $game_variables[$variables[6]] > 0 and $game_variables[$variables[6]] < $end[6] and s1 != $names[6] and s2 != $names[6] and s3 != $names[6]
      @id_4 = 6
      s4 = $names[6]
    elsif $game_variables[$variables[7]] > 0 and $game_variables[$variables[7]] < $end[6] and s1 != $names[7] and s2 != $names[7] and s3 != $names[7]
      @id_4 = 7
      s4 = $names[7]
    elsif $game_variables[$variables[8]] > 0 and $game_variables[$variables[8]] < $end[8] and s1 != $names[8] and s2 != $names[8] and s3 != $names[8]
      @id_4 = 8
      s4 = $names[8]
    elsif $game_variables[$variables[9]] > 0 and $game_variables[$variables[9]] < $end[9] and s1 != $names[9] and s2 != $names[9] and s3 != $names[9]
      @id_4 = 9
      s4 = $names[9]
    elsif $game_variables[$variables[10]] > 0 and $game_variables[$variables[10]] < $end[10] and s1 != $names[10] and s2 != $names[10] and s3 != $names[10]
      @id_4 = 10
      s4 = $names[10]
    elsif $game_variables[$variables[11]] > 0 and $game_variables[$variables[11]] < $end[11] and s1 != $names[11] and s2 != $names[11] and s3 != $names[11]
      @id_4 = 11
      s4 = $names[11]
    elsif $game_variables[$variables[12]] > 0 and $game_variables[$variables[12]] < $end[12] and s1 != $names[12] and s2 != $names[12] and s3 != $names[12]
      @id_4 = 12
      s4 = $names[12]
    elsif $game_variables[$variables[13]] > 0 and $game_variables[$variables[13]] < $end[13] and s1 != $names[13] and s2 != $names[13] and s3 != $names[13]
      @id_4 = 13
      s4 = $names[13]
    elsif $game_variables[$variables[14]] > 0 and $game_variables[$variables[14]] < $end[14] and s1 != $names[14] and s2 != $names[14] and s3 != $names[14]
      @id_4 = 14
      s4 = $names[14]
    elsif $game_variables[$variables[15]] > 0 and $game_variables[$variables[15]] < $end[15] and s1 != $names[15] and s2 != $names[15] and s3 != $names[15]
      @id_4 = 15
      s4 = $names[15]
    end
   
    # Make fifth option on quest selection
    if $game_variables[$variables[5]] > 0 and $game_variables[$variables[5]] < $end[5] and s1 != $names[5] and s2 != $names[5] and s3 != $names[5] and s4 != $names[5]
      @id_5 = 5
      s5 = $names[5]
    elsif $game_variables[$variables[6]] > 0 and $game_variables[$variables[6]] < $end[6] and s1 != $names[6] and s2 != $names[6] and s3 != $names[6] and s4 != $names[6]
      @id_5 = 6
      s5 = $names[6]
    elsif $game_variables[$variables[7]] > 0 and $game_variables[$variables[7]] < $end[7] and s1 != $names[7] and s2 != $names[7] and s3 != $names[7] and s4 != $names[7]
      @id_5 = 7
      s5 = $names[7]
    elsif $game_variables[$variables[8]] > 0 and $game_variables[$variables[8]] < $end[8] and s1 != $names[8] and s2 != $names[8] and s3 != $names[8] and s4 != $names[8]
      @id_5 = 8
      s5 = $names[8]
    elsif $game_variables[$variables[9]] > 0 and $game_variables[$variables[9]] < $end[9] and s1 != $names[9] and s2 != $names[9] and s3 != $names[9] and s4 != $names[9]
      @id_5 = 9
      s5 = $names[9]
    elsif $game_variables[$variables[10]] > 0 and $game_variables[$variables[10]] < $end[10] and s1 != $names[10] and s2 != $names[10] and s3 != $names[10] and s4 != $names[10]
      @id_5 = 10
      s5 = $names[10]
    elsif $game_variables[$variables[11]] > 0 and $game_variables[$variables[11]] < $end[11] and s1 != $names[11] and s2 != $names[11] and s3 != $names[11] and s4 != $names[11]
      @id_5 = 11
      s5 = $names[11]
    elsif $game_variables[$variables[12]] > 0 and $game_variables[$variables[12]] < $end[12] and s1 != $names[12] and s2 != $names[12] and s3 != $names[12] and s4 != $names[12]
      @id_5 = 12
      s5 = $names[12]
    elsif $game_variables[$variables[13]] > 0 and $game_variables[$variables[13]] < $end[13] and s1 != $names[13] and s2 != $names[13] and s3 != $names[13] and s4 != $names[13]
      @id_5 = 13
      s5 = $names[13]
    elsif $game_variables[$variables[14]] > 0 and $game_variables[$variables[14]] < $end[14] and s1 != $names[14] and s2 != $names[14] and s3 != $names[14] and s4 != $names[14]
      @id_5 = 14
      s5 = $names[14]
    elsif $game_variables[$variables[15]] > 0 and $game_variables[$variables[15]] < $end[15] and s1 != $names[15] and s2 != $names[15] and s3 != $names[15] and s4 != $names[15]
      @id_5 = 15
      s5 = $names[15]
    end
   
    # Make sixth option on quest selection
    if $game_variables[$variables[6]] > 0 and $game_variables[$variables[6]] < $end[6] and s1 != $names[6] and s2 != $names[6] and s3 != $names[6] and s4 != $names[6] and s5 != $names[6]
      @id_6 = 6
      s6 = $names[6]
    elsif $game_variables[$variables[7]] > 0 and $game_variables[$variables[7]] < $end[7] and s1 != $names[7] and s2 != $names[7] and s3 != $names[7] and s4 != $names[7] and s5 != $names[7]
      @id_6 = 7
      s6 = $names[7]
    elsif $game_variables[$variables[8]] > 0 and $game_variables[$variables[8]] < $end[8] and s1 != $names[8] and s2 != $names[8] and s3 != $names[8] and s4 != $names[8] and s5 != $names[8]
      @id_6 = 8
      s6 = $names[8]
    elsif $game_variables[$variables[9]] > 0 and $game_variables[$variables[9]] < $end[9] and s1 != $names[9] and s2 != $names[9] and s3 != $names[9] and s4 != $names[9] and s5 != $names[9]
      @id_6 = 9
      s6 = $names[9]
    elsif $game_variables[$variables[10]] > 0 and $game_variables[$variables[10]] < $end[10] and s1 != $names[10] and s2 != $names[10] and s3 != $names[10] and s4 != $names[10] and s5 != $names[10]
      @id_6 = 10
      s6 = $names[10]
    elsif $game_variables[$variables[11]] > 0 and $game_variables[$variables[11]] < $end[11] and s1 != $names[11] and s2 != $names[11] and s3 != $names[11] and s4 != $names[11] and s5 != $names[11]
      @id_6 = 11
      s6 = $names[11]
    elsif $game_variables[$variables[12]] > 0 and $game_variables[$variables[12]] < $end[12] and s1 != $names[12] and s2 != $names[12] and s3 != $names[12] and s4 != $names[12] and s5 != $names[12]
      @id_6 = 12
      s6 = $names[12]
    elsif $game_variables[$variables[13]] > 0 and $game_variables[$variables[13]] < $end[13] and s1 != $names[13] and s2 != $names[13] and s3 != $names[13] and s4 != $names[13] and s5 != $names[13]
      @id_6 = 13
      s6 = $names[13]
    elsif $game_variables[$variables[14]] > 0 and $game_variables[$variables[14]] < $end[14] and s1 != $names[14] and s2 != $names[14] and s3 != $names[14] and s4 != $names[14] and s5 != $names[14]
      @id_6 = 14
      s6 = $names[14]
    elsif $game_variables[$variables[15]] > 0 and $game_variables[$variables[15]] < $end[15] and s1 != $names[15] and s2 != $names[15] and s3 != $names[15] and s4 != $names[15] and s5 != $names[15]
      @id_6 = 15
      s6 = $names[15]
    end
   
    # Make seventh option on quest selection
    if $game_variables[$variables[7]] > 0 and $game_variables[$variables[7]] < $end[7] and s1 != $names[7] and s2 != $names[7] and s3 != $names[7] and s4 != $names[7] and s5 != $names[7] and s6 != $names[7]
      @id_7 = 7
      s7 = $names[7]
    elsif $game_variables[$variables[8]] > 0 and $game_variables[$variables[8]] < $end[8] and s1 != $names[8] and s2 != $names[8] and s3 != $names[8] and s4 != $names[8] and s5 != $names[8] and s6 != $names[8]
      @id_7 = 8
      s7 = $names[8]
    elsif $game_variables[$variables[9]] > 0 and $game_variables[$variables[9]] < $end[9] and s1 != $names[9] and s2 != $names[9] and s3 != $names[9] and s4 != $names[9] and s5 != $names[9] and s6 != $names[9]
      @id_7 = 9
      s7 = $names[9]
    elsif $game_variables[$variables[10]] > 0 and $game_variables[$variables[10]] < $end[10] and s1 != $names[10] and s2 != $names[10] and s3 != $names[10] and s4 != $names[10] and s5 != $names[10] and s6 != $names[10]
      @id_7 = 10
      s7 = $names[10]
    elsif $game_variables[$variables[11]] > 0 and $game_variables[$variables[11]] < $end[11] and s1 != $names[11] and s2 != $names[11] and s3 != $names[11] and s4 != $names[11] and s5 != $names[11] and s6 != $names[11]
      @id_7 = 11
      s7 = $names[11]
    elsif $game_variables[$variables[12]] > 0 and $game_variables[$variables[12]] < $end[12] and s1 != $names[12] and s2 != $names[12] and s3 != $names[12] and s4 != $names[12] and s5 != $names[12] and s6 != $names[12]
      @id_7 = 12
      s7 = $names[12]
    elsif $game_variables[$variables[13]] > 0 and $game_variables[$variables[13]] < $end[13] and s1 != $names[13] and s2 != $names[13] and s3 != $names[13] and s4 != $names[13] and s5 != $names[13] and s6 != $names[13]
      @id_7 = 13
      s7 = $names[13]
    elsif $game_variables[$variables[14]] > 0 and $game_variables[$variables[14]] < $end[14] and s1 != $names[14] and s2 != $names[14] and s3 != $names[14] and s4 != $names[14] and s5 != $names[14] and s6 != $names[14]
      @id_7 = 14
      s7 = $names[14]
    elsif $game_variables[$variables[15]] > 0 and $game_variables[$variables[15]] < $end[15] and s1 != $names[15] and s2 != $names[15] and s3 != $names[15] and s4 != $names[15] and s5 != $names[15] and s6 != $names[15]
      @id_7 = 15
      s7 = $names[15]
    end
   
    # Make eighth option on quest selection
    if $game_variables[$variables[8]] > 0 and $game_variables[$variables[8]] < $end[8] and s1 != $names[8] and s2 != $names[8] and s3 != $names[8] and s4 != $names[8] and s5 != $names[8] and s6 != $names[8] and s7 != $names[8]
      @id_8 = 8
      s8 = $names[8]
    elsif $game_variables[$variables[9]] > 0 and $game_variables[$variables[9]] < $end[9] and s1 != $names[9] and s2 != $names[9] and s3 != $names[9] and s4 != $names[9] and s5 != $names[9] and s6 != $names[9] and s7 != $names[9]
      @id_8 = 9
      s8 = $names[9]
    elsif $game_variables[$variables[10]] > 0 and $game_variables[$variables[10]] < $end[10] and s1 != $names[10] and s2 != $names[10] and s3 != $names[10] and s4 != $names[10] and s5 != $names[10] and s6 != $names[10] and s7 != $names[10]
      @id_8 = 10
      s8 = $names[10]
    elsif $game_variables[$variables[11]] > 0 and $game_variables[$variables[11]] < $end[11] and s1 != $names[11] and s2 != $names[11] and s3 != $names[11] and s4 != $names[11] and s5 != $names[11] and s6 != $names[11] and s7 != $names[11]
      @id_8 = 11
      s8 = $names[11]
    elsif $game_variables[$variables[12]] > 0 and $game_variables[$variables[12]] < $end[12] and s1 != $names[12] and s2 != $names[12] and s3 != $names[12] and s4 != $names[12] and s5 != $names[12] and s6 != $names[12] and s7 != $names[12]
      @id_8 = 12
      s8 = $names[12]
    elsif $game_variables[$variables[13]] > 0 and $game_variables[$variables[13]] < $end[13] and s1 != $names[13] and s2 != $names[13] and s3 != $names[13] and s4 != $names[13] and s5 != $names[13] and s6 != $names[13] and s7 != $names[13]
      @id_8 = 13
      s8 = $names[13]
    elsif $game_variables[$variables[14]] > 0 and $game_variables[$variables[14]] < $end[14] and s1 != $names[14] and s2 != $names[14] and s3 != $names[14] and s4 != $names[14] and s5 != $names[14] and s6 != $names[14] and s7 != $names[14]
      @id_8 = 14
      s8 = $names[14]
    elsif $game_variables[$variables[15]] > 0 and $game_variables[$variables[15]] < $end[15] and s1 != $names[15] and s2 != $names[15] and s3 != $names[15] and s4 != $names[15] and s5 != $names[15] and s6 != $names[15] and s7 != $names[15]
      @id_8 = 15
      s8 = $names[15]
    end
   
    # Make nineth option on quest selection
    if $game_variables[$variables[9]] > 0 and $game_variables[$variables[9]] < $end[9] and s1 != $names[9] and s2 != $names[9] and s3 != $names[9] and s4 != $names[9] and s5 != $names[9] and s6 != $names[9] and s7 != $names[9] and s8 != $names[9]
      @id_9 = 9
      s9 = $names[9]
    elsif $game_variables[$variables[10]] > 0 and $game_variables[$variables[10]] < $end[10] and s1 != $names[10] and s2 != $names[10] and s3 != $names[10] and s4 != $names[10] and s5 != $names[10] and s6 != $names[10] and s7 != $names[10] and s8 != $names[10]
      @id_9 = 10
      s9 = $names[10]
    elsif $game_variables[$variables[11]] > 0 and $game_variables[$variables[11]] < $end[11] and s1 != $names[11] and s2 != $names[11] and s3 != $names[11] and s4 != $names[11] and s5 != $names[11] and s6 != $names[11] and s7 != $names[11] and s8 != $names[11]
      @id_9 = 11
      s9 = $names[11]
    elsif $game_variables[$variables[12]] > 0 and $game_variables[$variables[12]] < $end[12] and s1 != $names[12] and s2 != $names[12] and s3 != $names[12] and s4 != $names[12] and s5 != $names[12] and s6 != $names[12] and s7 != $names[12] and s8 != $names[12]
      @id_9 = 12
      s9 = $names[12]
    elsif $game_variables[$variables[13]] > 0 and $game_variables[$variables[13]] < $end[13] and s1 != $names[13] and s2 != $names[13] and s3 != $names[13] and s4 != $names[13] and s5 != $names[13] and s6 != $names[13] and s7 != $names[13] and s8 != $names[13]
      @id_9 = 13
      s9 = $names[13]
    elsif $game_variables[$variables[14]] > 0 and $game_variables[$variables[14]] < $end[14] and s1 != $names[14] and s2 != $names[14] and s3 != $names[14] and s4 != $names[14] and s5 != $names[14] and s6 != $names[14] and s7 != $names[14] and s8 != $names[14]
      @id_9 = 14
      s9 = $names[14]
    elsif $game_variables[$variables[15]] > 0 and $game_variables[$variables[15]] < $end[15] and s1 != $names[15] and s2 != $names[15] and s3 != $names[15] and s4 != $names[15] and s5 != $names[15] and s6 != $names[15] and s7 != $names[15] and s8 != $names[15]
      @id_9 = 15
      s9 = $names[15]
    end
   
    # Make tenth option on quest selection
    if $game_variables[$variables[10]] > 0 and $game_variables[$variables[10]] < $end[10] and s1 != $names[10] and s2 != $names[10] and s3 != $names[10] and s4 != $names[10] and s5 != $names[10] and s6 != $names[10] and s7 != $names[10] and s8 != $names[10] and s9 != $names[10]
      @id_10 = 10
      s10 = $names[10]
    elsif $game_variables[$variables[11]] > 0 and $game_variables[$variables[11]] < $end[11] and s1 != $names[11] and s2 != $names[11] and s3 != $names[11] and s4 != $names[11] and s5 != $names[11] and s6 != $names[11] and s7 != $names[11] and s8 != $names[11] and s9 != $names[11]
      @id_10 = 11
      s10 = $names[11]
    elsif $game_variables[$variables[12]] > 0 and $game_variables[$variables[12]] < $end[12] and s1 != $names[12] and s2 != $names[12] and s3 != $names[12] and s4 != $names[12] and s5 != $names[12] and s6 != $names[12] and s7 != $names[12] and s8 != $names[12] and s9 != $names[12]
      @id_10 = 12
      s10 = $names[12]
    elsif $game_variables[$variables[13]] > 0 and $game_variables[$variables[13]] < $end[13] and s1 != $names[13] and s2 != $names[13] and s3 != $names[13] and s4 != $names[13] and s5 != $names[13] and s6 != $names[13] and s7 != $names[13] and s8 != $names[13] and s9 != $names[13]
      @id_10 = 13
      s10 = $names[13]
    elsif $game_variables[$variables[14]] > 0 and $game_variables[$variables[14]] < $end[14] and s1 != $names[14] and s2 != $names[14] and s3 != $names[14] and s4 != $names[14] and s5 != $names[14] and s6 != $names[14] and s7 != $names[14] and s8 != $names[14] and s9 != $names[14]
      @id_10 = 14
      s10 = $names[14]
    elsif $game_variables[$variables[15]] > 0 and $game_variables[$variables[15]] < $end[15] and s1 != $names[15] and s2 != $names[15] and s3 != $names[15] and s4 != $names[15] and s5 != $names[15] and s6 != $names[15] and s7 != $names[15] and s8 != $names[15] and s9 != $names[15]
      @id_10 = 15
      s10 = $names[15]
    end

    # Make eleventh option on quest selection
    if $game_variables[$variables[11]] > 0 and $game_variables[$variables[11]] < $end[11] and s1 != $names[11] and s2 != $names[11] and s3 != $names[11] and s4 != $names[11] and s5 != $names[11] and s6 != $names[11] and s7 != $names[11] and s8 != $names[11] and s9 != $names[11] and s10 != $names[11]
      @id_11 = 11
      s11 = $names[11]
    elsif $game_variables[$variables[12]] > 0 and $game_variables[$variables[12]] < $end[12] and s1 != $names[12] and s2 != $names[12] and s3 != $names[12] and s4 != $names[12] and s5 != $names[12] and s6 != $names[12] and s7 != $names[12] and s8 != $names[12] and s9 != $names[12] and s10 != $names[12]
      @id_11 = 12
      s11 = $names[12]
    elsif $game_variables[$variables[13]] > 0 and $game_variables[$variables[13]] < $end[13] and s1 != $names[13] and s2 != $names[13] and s3 != $names[13] and s4 != $names[13] and s5 != $names[13] and s6 != $names[13] and s7 != $names[13] and s8 != $names[13] and s9 != $names[13] and s10 != $names[13]
      @id_11 = 13
      s11 = $names[13]
    elsif $game_variables[$variables[14]] > 0 and $game_variables[$variables[14]] < $end[14] and s1 != $names[14] and s2 != $names[14] and s3 != $names[14] and s4 != $names[14] and s5 != $names[14] and s6 != $names[14] and s7 != $names[14] and s8 != $names[14] and s9 != $names[14] and s10 != $names[14]
      @id_11 = 14
      s11 = $names[14]
    elsif $game_variables[$variables[15]] > 0 and $game_variables[$variables[15]] < $end[15] and s1 != $names[15] and s2 != $names[15] and s3 != $names[15] and s4 != $names[15] and s5 != $names[15] and s6 != $names[15] and s7 != $names[15] and s8 != $names[15] and s9 != $names[15] and s10 != $names[15]
      @id_11 = 15
      s11 = $names[15]
    end
   
    # Make twelveth option on quest selection
    if $game_variables[$variables[12]] > 0 and $game_variables[$variables[12]] < $end[12] and s1 != $names[12] and s2 != $names[12] and s3 != $names[12] and s4 != $names[12] and s5 != $names[12] and s6 != $names[12] and s7 != $names[12] and s8 != $names[12] and s9 != $names[12] and s10 != $names[12] and s11 != $names[12]
      @id_12 = 12
      s12 = $names[12]
    elsif $game_variables[$variables[13]] > 0 and $game_variables[$variables[13]] < $end[13] and s1 != $names[13] and s2 != $names[13] and s3 != $names[13] and s4 != $names[13] and s5 != $names[13] and s6 != $names[13] and s7 != $names[13] and s8 != $names[13] and s9 != $names[13] and s10 != $names[13] and s11 != $names[13]
      @id_12 = 13
      s12 = $names[13]
    elsif $game_variables[$variables[14]] > 0 and $game_variables[$variables[14]] < $end[14] and s1 != $names[14] and s2 != $names[14] and s3 != $names[14] and s4 != $names[14] and s5 != $names[14] and s6 != $names[14] and s7 != $names[14] and s8 != $names[14] and s9 != $names[14] and s10 != $names[14] and s11 != $names[14]
      @id_12 = 14
      s12 = $names[14]
    elsif $game_variables[$variables[15]] > 0 and $game_variables[$variables[15]] < $end[15] and s1 != $names[15] and s2 != $names[15] and s3 != $names[15] and s4 != $names[15] and s5 != $names[15] and s6 != $names[15] and s7 != $names[15] and s8 != $names[15] and s9 != $names[15] and s10 != $names[15] and s11 != $names[15]
      @id_12 = 15
      s12 = $names[15]
    end
   
    # Make thirteenth option on quest selection
    if $game_variables[$variables[13]] > 0 and $game_variables[$variables[13]] < $end[13] and s1 != $names[13] and s2 != $names[13] and s3 != $names[13] and s4 != $names[13] and s5 != $names[13] and s6 != $names[13] and s7 != $names[13] and s8 != $names[13] and s9 != $names[13] and s10 != $names[13] and s11 != $names[13] and s12 != $names[13]
      @id_13 = 13
      s13 = $names[13]
    elsif $game_variables[$variables[14]] > 0 and $game_variables[$variables[14]] < $end[14] and s1 != $names[14] and s2 != $names[14] and s3 != $names[14] and s4 != $names[14] and s5 != $names[14] and s6 != $names[14] and s7 != $names[14] and s8 != $names[14] and s9 != $names[14] and s10 != $names[14] and s11 != $names[14] and s12 != $names[14]
      @id_13 = 14
      s13 = $names[14]
    elsif $game_variables[$variables[15]] > 0 and $game_variables[$variables[15]] < $end[15] and s1 != $names[15] and s2 != $names[15] and s3 != $names[15] and s4 != $names[15] and s5 != $names[15] and s6 != $names[15] and s7 != $names[15] and s8 != $names[15] and s9 != $names[15] and s10 != $names[15] and s11 != $names[15] and s12 != $names[15]
      @id_13 = 15
      s13 = $names[15]
    end
   
    # Make fourteenth option on quest selection
    if $game_variables[$variables[14]] > 0 and $game_variables[$variables[14]] < $end[14] and s1 != $names[14] and s2 != $names[14] and s3 != $names[14] and s4 != $names[14] and s5 != $names[14] and s6 != $names[14] and s7 != $names[14] and s8 != $names[14] and s9 != $names[14] and s10 != $names[14] and s11 != $names[14] and s12 != $names[14] and s13 != $names[14]
      @id_14 = 14
      s14 = $names[14]
  &nb
Title: Re: "Simple" Quest log screen
Post by: Blizzard on January 12, 2007, 09:31:24 AM
Nice. Did you work on the code I gave you already? Having many global variables is not so good. They need a lot of RAM and the CPU needs to swap them often between his registries and the RAM, so it even slows down the application.
Title: Re: "Simple" Quest log screen
Post by: Sthrattoff on January 12, 2007, 09:42:10 AM
So that's why some people use instance variable?
Ooo... :o

Yep, I've tried it. Very advanced!
(Then I can't understand every command...)
(And my "nationalism" for using own-made or rewritten with modification)
Title: Re: "Simple" Quest log screen
Post by: Blizzard on January 12, 2007, 09:55:58 AM
Yeah. I often find myself sitting at a problem for half an hour only because I don't want to use another variable, lol. ::)
Title: Re: "Simple" Quest log screen
Post by: Wafflekid on January 18, 2007, 12:17:58 AM
I am a noob so don't get mad at me, how do you get it to work. I have the script in my script editor already. Now what?
Title: Re: "Simple" Quest log screen
Post by: :) on January 18, 2007, 12:38:15 AM
I am a noob so don't get mad at me, how do you get it to work. I have the script in my script editor already. Now what?

read the first few lines of the script, they have the instructions.  ;D
Title: Re: "Simple" Quest log screen
Post by: Wafflekid on January 18, 2007, 01:13:09 AM
I did. But how do you see what quest your currently on?
Title: Re: "Simple" Quest log screen
Post by: Sthrattoff on January 19, 2007, 08:33:03 AM
You can use two method, but i'll explain only one:

Make an event and use Call Script command and type this line:
Code: [Select]
$scene = Scene_Quest.new
Title: Re: "Simple" Quest log screen
Post by: Wafflekid on January 19, 2007, 10:16:38 PM
Oh ok thanks.
Title: Re: "Simple" Quest log screen
Post by: Sthrattoff on January 20, 2007, 01:37:22 AM
If you use the method I mentioned, change this line :
Code: [Select]
$scene = Scene_Menu.new(2)

With this :
Code: [Select]
$scene = Scene_Map.new
Title: Re: "Simple" Quest log screen
Post by: Wafflekid on January 20, 2007, 01:59:57 AM
Oh one more thing, how do you get it so a quest is added. What's the code for that?
Title: Re: "Simple" Quest log screen
Post by: Sthrattoff on January 20, 2007, 02:22:59 AM
You mean how to add a quest?

I guess it's explained on Configuration section. Just use Call Command script.
Title: Re: "Simple" Quest log screen
Post by: Wafflekid on January 20, 2007, 03:19:43 AM
So what do I put in the command script? And how to I get it matched up to the right quest?
Title: Re: "Simple" Quest log screen
Post by: nevfx on January 20, 2007, 10:56:04 PM
It should say.
Title: Re: "Simple" Quest log screen
Post by: Wafflekid on January 20, 2007, 11:12:22 PM
It probably does but I am really bad at this sort of stuff.
Title: Re: "Simple" Quest log screen
Post by: Wafflekid on January 21, 2007, 07:51:48 PM
Anyone tell me please?
Title: Re: "Simple" Quest log screen
Post by: Sthrattoff on January 23, 2007, 06:37:43 AM
OK, example, like this:

Code: [Select]
$names[1] = "Learning To Use Quest Script"

then change the value of controller varable to 1
Title: Re: "Simple" Quest log screen
Post by: Sthrattoff on January 23, 2007, 06:39:37 AM
Sorry forgot...
To match it, i've created another script. I'll post it soon...
Title: Re: "Simple" Quest log screen
Post by: Wafflekid on January 23, 2007, 12:17:36 PM
Ok thanks
Title: Re: "Simple" Quest log screen
Post by: Wafflekid on January 25, 2007, 09:25:02 PM
BUMP
Title: Re: "Simple" Quest log screen
Post by: coolkid25344 on January 27, 2007, 09:13:45 PM
Good Script 7billion thums up  :lol:
Title: Re: "Simple" Quest log screen
Post by: Wafflekid on January 28, 2007, 12:51:08 PM
BUMP
Title: Re: "Simple" Quest log screen
Post by: Wafflekid on January 30, 2007, 02:45:13 AM
BUMP
Title: Re: "Simple" Quest log screen
Post by: Wafflekid on January 31, 2007, 12:33:53 AM
BUMP
Title: Re: "Simple" Quest log screen
Post by: Me™ on January 31, 2007, 02:46:52 PM
What do you want... you can't force him!

Title: Re: "Simple" Quest log screen
Post by: Wafflekid on January 31, 2007, 09:13:50 PM
I know, it's just I need that part to finish my game.
What do you want... you can't force him!



I know, it's just I need that part to finish my game.
Title: Re: "Simple" Quest log screen
Post by: Wafflekid on February 02, 2007, 09:31:44 PM
BUMP
Title: Re: "Simple" Quest log screen
Post by: Sthrattoff on February 04, 2007, 07:32:34 AM
Please wait until I remake the updater or the 2nd version of this script.
Title: Re: "Simple" Quest log screen
Post by: Wafflekid on February 06, 2007, 12:22:28 AM
Fine...
Title: Re: "Simple" Quest log screen
Post by: Sthrattoff on February 10, 2007, 09:47:04 AM
Alright, the 2nd version is going to published...
Title: Re: "Simple" Quest log screen
Post by: Wafflekid on February 11, 2007, 05:18:44 PM
Finally
Title: Re: "Simple" Quest log screen
Post by: Sthrattoff on February 14, 2007, 09:41:27 AM
This is it. But not perfect (yet...)
Code: [Select]
#=============================================================================
# Quest Log Screen
#-----------------------------------------------------------------------------
# ** Version 2.0
# ** Original by Sthrattoff
#=============================================================================
# Description :
# This script enables the ability to show current active quest.

# Features :
# SIMPLIFIED! Now the script is just about 300 lines length.
# Unlimited amount of quest can be added.
# Still use variable to mark quest's progress.

# Limitation :
# Only can store up to 12 progress per quest.

# History :
# Version 1.0 : Initial release.
# Version 1.2 : Add "Types" features.
# Version 2.0 : Changes in programming style and infinite quest support.

# Instruction
# Just put this script above main.

# Configuration :
# To add quest, use Call Script command and type this :
# $names.push "quest name" for the quest's name
# $types.push "quest type" for the quest's type (main or sidequest or something)
# $descriptionm.push "quest description line m" for the quest's description. m is the line
# number (1-5)
# $objectivesm.push "quest objectives m" for the quest's objectives. m is the objective
# number (1-12)
# $var_ID.push value for the quest's game variable marker ID
# To end a quest, set the marker variable's value to 12

# Credits
# See the header + Blizzard and Enterbrain
#=============================================================================

class Scene_Quest
 
  $names = []
  $types = []
  $description0 = []
  $description1 = []
  $description2 = []
  $description3 = []
  $description4 = []
  $objectives0 = []
  $objectives1 = []
  $objectives2 = []
  $objectives3 = []
  $objectives4 = []
  $objectives5 = []
  $objectives6 = []
  $objectives7 = []
  $objectives8 = []
  $objectives9 = []
  $objectives10 = []
  $objectives11 = []
  $var_ID = []
 
  def initialize
    $names.compact
  end
 
  def main
    @quest_list = Window_Command.new(160, $names)
    @quest_window = Window_Quest.new
    @quest_window.x = 160
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      break if $scene != self
    end
    Graphics.freeze
    @quest_list.dispose
    @quest_window.dispose
  end
 
  def update
    @quest_list.update
    @quest_window.update
    if @quest_list.active
      update_quest
      return
    end
  end
 
  def update_quest
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Menu.new(2)
      return
    end
    quest = @quest_list.index
    preview(quest)
  end
 
  def preview(x)
    $preview_name = $names[x]
    $preview_type = $types[x]
    $preview_description0 = $description0[x]
    $preview_description1 = $description1[x]
    $preview_description2 = $description2[x]
    $preview_description3 = $description3[x]
    $preview_description4 = $description4[x]
    $preview_objectives0 = $objectives0[x]
    $preview_objectives1 = $objectives1[x]
    $preview_objectives2 = $objectives2[x]
    $preview_objectives3 = $objectives3[x]
    $preview_objectives4 = $objectives4[x]
    $preview_objectives5 = $objectives5[x]
    $preview_objectives6 = $objectives6[x]
    $preview_objectives7 = $objectives7[x]
    $preview_objectives8 = $objectives8[x]
    $preview_objectives9 = $objectives9[x]
    $preview_objectives10 = $objectives10[x]
    $preview_objectives11 = $objectives11[x]
    $preview_variable = $var_ID[x]
    return
  end
 
end

class Window_Quest < Window_Base
 
  def initialize
    super(0, 0, 480, 480)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
 
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(0, 32, self.width - 32, 32, $preview_type.to_s, 1)
    self.contents.draw_text(0, 224, self.width - 32, 32, "Objectives", 1) if $types.size != 0
    self.contents.font.color = normal_color
    self.contents.draw_text(0, 0, self.width - 32, 32, $preview_name.to_s, 1)
    self.contents.draw_text(0, 64, self.width - 32, 32 * 5, $preview_description0.to_s)
    self.contents.draw_text(0, 96, self.width - 32, 32 * 5, $preview_description1.to_s)
    self.contents.draw_text(0, 128, self.width - 32, 32 * 5, $preview_description2.to_s)
    self.contents.draw_text(0, 160, self.width - 32, 32 * 5, $preview_description3.to_s)
    self.contents.draw_text(0, 192, self.width - 32, 32 * 5, $preview_description4.to_s)
    case $game_variables[$preview_variable.to_i]
    when 0
      self.contents.font.color = normal_color
      self.contents.draw_text(0, 256, self.width / 2, 32, "•" + $preview_objectives0.to_s) if $types.size != 0
    when 1
      self.contents.font.color = normal_color
      self.contents.draw_text(0, 288, self.width / 2, 32, "•" + $preview_objectives1.to_s)
      self.contents.font.color = disabled_color
      self.contents.draw_text(0, 256, self.width / 2, 32, "•" + $preview_objectives0.to_s)
    when 2
      self.contents.font.color = normal_color
      self.contents.draw_text(0, 320, self.width / 2, 32, "•" + $preview_objectives2.to_s)
      self.contents.font.color = disabled_color
      self.contents.draw_text(0, 288, self.width / 2, 32, "•" + $preview_objectives1.to_s)
      self.contents.draw_text(0, 256, self.width / 2, 32, "•" + $preview_objectives0.to_s)
    when 3
      self.contents.font.color = normal_color
      self.contents.draw_text(0, 352, self.width / 2, 32, "•" + $preview_objectives3.to_s)
      self.contents.font.color = disabled_color
      self.contents.draw_text(0, 320, self.width / 2, 32, "•" + $preview_objectives2.to_s)
      self.contents.draw_text(0, 288, self.width / 2, 32, "•" + $preview_objectives1.to_s)
      self.contents.draw_text(0, 256, self.width / 2, 32, "•" + $preview_objectives0.to_s)
    when 4
      self.contents.font.color = normal_color
      self.contents.draw_text(0, 384, self.width / 2, 32, "•" + $preview_objectives4.to_s)
      self.contents.font.color = disabled_color
      self.contents.draw_text(0, 352, self.width / 2, 32, "•" + $preview_objectives3.to_s)
      self.contents.draw_text(0, 320, self.width / 2, 32, "•" + $preview_objectives2.to_s)
      self.contents.draw_text(0, 288, self.width / 2, 32, "•" + $preview_objectives1.to_s)
      self.contents.draw_text(0, 256, self.width / 2, 32, "•" + $preview_objectives0.to_s)
    when 5
      self.contents.font.color = normal_color
      self.contents.draw_text(0, 416, self.width / 2, 32, "•" + $preview_objectives5.to_s)
      self.contents.font.color = disabled_color
      self.contents.draw_text(0, 384, self.width / 2, 32, "•" + $preview_objectives4.to_s)
      self.contents.draw_text(0, 352, self.width / 2, 32, "•" + $preview_objectives3.to_s)
      self.contents.draw_text(0, 320, self.width / 2, 32, "•" + $preview_objectives2.to_s)
      self.contents.draw_text(0, 288, self.width / 2, 32, "•" + $preview_objectives1.to_s)
      self.contents.draw_text(0, 256, self.width / 2, 32, "•" + $preview_objectives0.to_s)
    when 6
      self.contents.font.color = normal_color
      self.contents.draw_text(240, 256, self.width / 2, 32, "•" + $preview_objectives6.to_s)
      self.contents.font.color = disabled_color
      self.contents.draw_text(0, 416, self.width / 2, 32, "•" + $preview_objectives5.to_s)
      self.contents.draw_text(0, 384, self.width / 2, 32, "•" + $preview_objectives4.to_s)
      self.contents.draw_text(0, 352, self.width / 2, 32, "•" + $preview_objectives3.to_s)
      self.contents.draw_text(0, 320, self.width / 2, 32, "•" + $preview_objectives2.to_s)
      self.contents.draw_text(0, 288, self.width / 2, 32, "•" + $preview_objectives1.to_s)
      self.contents.draw_text(0, 256, self.width / 2, 32, "•" + $preview_objectives0.to_s)
    when 7
      self.contents.font_color = normal_color
      self.contents.draw_text(240, 288, self.width / 2, 32, "•" + $preview_objectives7.to_s)
      self.contents.font.color = disabled_color
      self.contents.draw_text(240, 256, self.width / 2, 32, "•" + $preview_objectives6.to_s)
      self.contents.draw_text(0, 416, self.width / 2, 32, "•" + $preview_objectives5.to_s)
      self.contents.draw_text(0, 384, self.width / 2, 32, "•" + $preview_objectives4.to_s)
      self.contents.draw_text(0, 352, self.width / 2, 32, "•" + $preview_objectives3.to_s)
      self.contents.draw_text(0, 320, self.width / 2, 32, "•" + $preview_objectives2.to_s)
      self.contents.draw_text(0, 288, self.width / 2, 32, "•" + $preview_objectives1.to_s)
      self.contents.draw_text(0, 256, self.width / 2, 32, "•" + $preview_objectives0.to_s)
    when 8
      self.contents.font.color = normal_color
      self.contents.draw_text(240, 320, self.width / 2, 32, "•" + $preview_objectives8.to_s)
      self.contents.font.color = disabled_color
      self.contents.draw_text(240, 288, self.width / 2, 32, "•" + $preview_objectives7.to_s)
      self.contents.draw_text(240, 256, self.width / 2, 32, "•" + $preview_objectives6.to_s)
      self.contents.draw_text(0, 416, self.width / 2, 32, "•" + $preview_objectives5.to_s)
      self.contents.draw_text(0, 384, self.width / 2, 32, "•" + $preview_objectives4.to_s)
      self.contents.draw_text(0, 352, self.width / 2, 32, "•" + $preview_objectives3.to_s)
      self.contents.draw_text(0, 320, self.width / 2, 32, "•" + $preview_objectives2.to_s)
      self.contents.draw_text(0, 288, self.width / 2, 32, "•" + $preview_objectives1.to_s)
      self.contents.draw_text(0, 256, self.width / 2, 32, "•" + $preview_objectives0.to_s)
    when 9
      self.contents.font.color = normal_color
      self.contents.draw_text(240, 352, self.width / 2, 32, "•" + $preview_objectives9.to_s)
      self.contents.font.color = disabled_color
      self.contents.draw_text(240, 320, self.width / 2, 32, "•" + $preview_objectives8.to_s)
      self.contents.draw_text(240, 288, self.width / 2, 32, "•" + $preview_objectives7.to_s)
      self.contents.draw_text(240, 256, self.width / 2, 32, "•" + $preview_objectives6.to_s)
      self.contents.draw_text(0, 416, self.width / 2, 32, "•" + $preview_objectives5.to_s)
      self.contents.draw_text(0, 384, self.width / 2, 32, "•" + $preview_objectives4.to_s)
      self.contents.draw_text(0, 352, self.width / 2, 32, "•" + $preview_objectives3.to_s)
      self.contents.draw_text(0, 320, self.width / 2, 32, "•" + $preview_objectives2.to_s)
      self.contents.draw_text(0, 288, self.width / 2, 32, "•" + $preview_objectives1.to_s)
      self.contents.draw_text(0, 256, self.width / 2, 32, "•" + $preview_objectives0.to_s)
    when 10
      self.contents.font.color = normal_color
      self.contents.draw_text(240, 384, self.width / 2, 32, "•" + $preview_objectives10.to_s)
      self.contents.font.color = disabled_color
      self.contents.draw_text(240, 352, self.width / 2, 32, "•" + $preview_objectives9.to_s)
      self.contents.draw_text(240, 320, self.width / 2, 32, "•" + $preview_objectives8.to_s)
      self.contents.draw_text(240, 288, self.width / 2, 32, "•" + $preview_objectives7.to_s)
      self.contents.draw_text(240, 256, self.width / 2, 32, "•" + $preview_objectives6.to_s)
      self.contents.draw_text(0, 416, self.width / 2, 32, "•" + $preview_objectives5.to_s)
      self.contents.draw_text(0, 384, self.width / 2, 32, "•" + $preview_objectives4.to_s)
      self.contents.draw_text(0, 352, self.width / 2, 32, "•" + $preview_objectives3.to_s)
      self.contents.draw_text(0, 320, self.width / 2, 32, "•" + $preview_objectives2.to_s)
      self.contents.draw_text(0, 288, self.width / 2, 32, "•" + $preview_objectives1.to_s)
      self.contents.draw_text(0, 256, self.width / 2, 32, "•" + $preview_objectives0.to_s)
    when 11
      self.contents.font.color = normal_color
      self.contents.draw_text(240, 416, self.width / 2, 32, "•" + $preview_objectives11.to_s)
      self.contents.font.color = disabled_color
      self.contents.draw_text(240, 384, self.width / 2, 32, "•" + $preview_objectives10.to_s)
      self.contents.draw_text(240, 352, self.width / 2, 32, "•" + $preview_objectives9.to_s)
      self.contents.draw_text(240, 320, self.width / 2, 32, "•" + $preview_objectives8.to_s)
      self.contents.draw_text(240, 288, self.width / 2, 32, "•" + $preview_objectives7.to_s)
      self.contents.draw_text(240, 256, self.width / 2, 32, "•" + $preview_objectives6.to_s)
      self.contents.draw_text(0, 416, self.width / 2, 32, "•" + $preview_objectives5.to_s)
      self.contents.draw_text(0, 384, self.width / 2, 32, "•" + $preview_objectives4.to_s)
      self.contents.draw_text(0, 352, self.width / 2, 32, "•" + $preview_objectives3.to_s)
      self.contents.draw_text(0, 320, self.width / 2, 32, "•" + $preview_objectives2.to_s)
      self.contents.draw_text(0, 288, self.width / 2, 32, "•" + $preview_objectives1.to_s)
      self.contents.draw_text(0, 256, self.width / 2, 32, "•" + $preview_objectives0.to_s)
    end
  end   
 
  def update
    refresh
  end
 
end
Title: Re: "Simple" Quest log screen
Post by: modern algebra on February 23, 2007, 04:54:55 AM
This is a great script. I know it's from a while back but I'd like to recommend it for Scripts Database. Any mods around?
Title: Re: "Simple" Quest log screen
Post by: Blizzard on February 23, 2007, 03:23:44 PM
I'm in the credits? :o
Can't remember that I did something in this script. I only remember making you that other Quest logger, but I don't see any code from it in your script, lol! *moves*

EDIT:

I updated your first post, BTW. :)
Title: Re: "Simple" Quest log screen
Post by: Karo Rushe on February 23, 2007, 05:08:31 PM
Wondering...
How do I make it so when the Player finished the Quest it puts as Mission completed or something like that ?_?
Title: Re: "Simple" Quest log screen
Post by: modern algebra on February 24, 2007, 04:50:48 AM
# To end a quest, set the marker variable's value to 12

Title: Re: "Simple" Quest log screen
Post by: Karo Rushe on February 24, 2007, 11:58:43 AM
# To end a quest, set the marker variable's value to 12


?_? The Marker Variable? I have to set in the Variable a 12?
Title: Re: "Simple" Quest log screen
Post by: modern algebra on February 24, 2007, 02:06:16 PM
yeah, $var_ID.push value identifies an in-game variable which is used to mark progress in a quest. i.e. if you put $var_ID.push 1, then variable 001 is used to mark progress.If you set that variable to 12, it should disable the quest. At least, that's what I understand from the instructions. It might be better if you ask Sthrattoff though, as he can help you better than I can.
Title: Re: "Simple" Quest log screen
Post by: Sthrattoff on February 25, 2007, 07:50:41 AM
First of all, I apologize for my terrible English...
modern algebra is right!
Blizzard : Oh, perhaps you're forgot if you're teach me, not givin' the code.

And...
Here's the version 2.2!
Code: [Select]
#=============================================================================
# Quest Log Screen
#-----------------------------------------------------------------------------
# ** Version 2.2
# ** Original by Sthrattoff
#=============================================================================
# Description :
# This script enables the ability to show current active quest.

# Features :
# EXTREMELY SIMPLIFIED! Now the script is just about 150 lines length.
# Unlimited amount of quest can be added.
# Use variable to mark quest's progress.

# Limitation :
# Only can store up to 12 progress per quest.

# History :
# Version 1.0 : Initial release.
# Version 1.2 : Add "Types" features.
# Version 2.0 : Changes in programming style and infinite quest support.
# Version 2.2 : Cut the script length to about 150 lines.

# Instruction
# Just put this script above main.

# Configuration :
# To add a quest, fill these information by using .push
# $names.push "Name"
# $types.push "Type"
# $description.push (["line1", "line2", ..., "Line5"])
# $objectives.push (["onjective1", ..., "objective12"])
# $var_ID.push ID_NUMBER

# Credits
# See the header + Blizzard and Enterbrain
#=============================================================================

class Scene_Quest
 
  $names = []
  $types = []
  $description = []
  $objectives = []
  $var_ID = []
 
  def main
    @quest_list = Window_Command.new(160, $names)
    @quest_window = Window_Quest.new
    @quest_window.x = 160
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      break if $scene != self
    end
    Graphics.freeze
    @quest_list.dispose
    @quest_window.dispose
  end
 
  def update
    @quest_list.update
    @quest_window.update
    if @quest_list.active
      update_quest
      return
    end
  end
 
  def update_quest
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Menu.new(2)
      return
    end
    $id = @quest_list.index
    return
  end
 
end   

class Window_Quest < Window_Base
 
  def initialize
    super(0, 0, 480, 480)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
 
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
        self.contents.draw_text(0, 0, self.width - 32, 32, $names[$id.to_i].to_s, 1)
    self.contents.draw_text(0, 224, self.width - 32, 32, "Objectives", 1)
    self.contents.font.color = normal_color
    self.contents.draw_text(0, 32, self.width - 32, 32, $types[$id.to_i].to_s, 1)
    for i in 0..4
      self.contents.draw_text(0, i * 32 + 64, self.width - 32, 32, $description[$id.to_i][i].to_s)
    end
    a = b = $game_variables[$var_ID[$id.to_i]]
    if a > 5
      self.contents.draw_text(240, (a - 6) * 32 + 256, 240, 32, "• " + $objectives[$id.to_i][a].to_s)
    else
      self.contents.draw_text(0, a * 32 + 256, 240, 32, "• " + $objectives[$id.to_i][a].to_s)
    end
    self.contents.font.color = disabled_color
    if b > 0
      for j in 0..(b - 1)
        if j > 5
          self.contents.draw_text(240, (j - 6) * 32 + 256, 240, 32, "• " + $objectives[$id.to_i][j].to_s)
        else
          self.contents.draw_text(0, j * 32 + 256, 240, 32, "• " + $objectives[$id.to_i][j].to_s)
        end
      end
    end
  end
 
  def update
    refresh
  end
 
end

And before you're call the script, use this :
Code: [Select]
size = $names.size
  for i in 0..size
    var = $var_ID[i]
    if $game_variables[var.to_i] >= 12
      $names.delete_at i
      $types.delete_at i
      $description.delete_at i
      $objectives.delete_at i
      $var_ID.delete_at i
    end
  end

Personally, I used this script on the initialize method on Scene_Menu.
And still... Set the variable to 12 to disable the quest.
Title: Re: "Simple" Quest log screen
Post by: Blizzard on February 25, 2007, 02:59:18 PM
Awesome, you've shorten it even more! ;8
BTW, you don't need to give me credit for my help, lol!
Title: Re: "Simple" Quest log screen
Post by: Valcos on February 25, 2007, 03:12:09 PM
I used the other script of this..but now I dont know how to open the quest log ??? Also where do you put the  # $names.push "Name"   things?
Title: Re: "Simple" Quest log screen
Post by: Karo Rushe on February 27, 2007, 12:11:37 AM
Quote
class Scene_Quest
 
  $names = []
  $types = []
  $description = []
  $objectives = []
  $var_ID = []
 
My Question, is this the Configuartion part? For Each Quest? ???
Title: Re: "Simple" Quest log screen
Post by: Sion_Barzad on February 28, 2007, 05:44:39 AM
I don't understand ANY of it!  :'( :'( ???
Some help would be appericated!
Title: Re: "Simple" Quest log screen
Post by: Sthrattoff on March 03, 2007, 07:20:23 AM
Example, if you want to add quest named "Welcome to the Black Parade", you must use this syntax

Code: [Select]
$names.push "Welcome to the Black Parade"

Information, Id of variable used to control quest progress must be saved on $var_ID

Code: [Select]
$var_ID 4 # 4 is the variable's id

To enter those code, use Call Script event command.
Title: Re: "Simple" Quest log screen
Post by: Sthrattoff on March 03, 2007, 07:37:40 AM
I found some bugs.
To fix it, please add this line on Scene_Save below the last line of Marshal.dump
Code: [Select]
Marshal.dump($names, file)
Marshal.dump($types, file)
Marshal.dump($description, file)
Marshal.dump($objectives, file)
Marshal.dump($var_ID, file)
Marshal.dump($end_val, file)

and this one below the last line of Marshal.load on Scene_Load
Code: [Select]
$names = Marshal.load(file)
$types = Marshal.load(file)
$description = Marshal.load(file)
$objectives = Marshal.load(file)
$var_ID = Marshal.load(file)
$end_val = Marshal.load(file)

and this one somewhere on new game method on Scene_Title
Code: [Select]
$names.clear
$types.clear
$description.clear
$objectives.clear
$var_ID.clear
$end_val.clear

Any question can be pointed to me or Blizzard.
It will fix when you play a new game...
Title: Re: "Simple" Quest log screen
Post by: Blizzard on March 03, 2007, 01:30:16 PM
Hey, Sthrattoff, I have a better idea. Use the Game_System class for your extra variables. That way they'll get saved automatically. (~_^)d

Spoiler for Template for add stuff to Game_System:
Code: [Select]
class Game_System
 
  attr_accessor :better_than_another_global_number
  attr_accessor :better_than_another_global_string
  attr_accessor :better_than_another_global_boolean
  attr_accessor :better_than_another_global_array
 
  alias init_your_script_whatever initialize
  def initialize
    init_your_script_whatever
    @better_than_another_global_number = 12345
    @better_than_another_global_string = "54321"
    @better_than_another_global_boolean = true
    @better_than_another_global_array = [1, "That's", " ", "sweet.", true]
  end
 
end

Reference is of course $game_system.better_than_another_global_number, etc.
Title: Re: "Simple" Quest log screen
Post by: noian on March 24, 2007, 02:36:20 PM
would it be possible to add this to the menu somehow? (it probably is, but i have no idea how to)
Title: Re: "Simple" Quest log screen
Post by: modern algebra on March 24, 2007, 04:01:21 PM
http://rmrk.net/index.php/topic,7193.0.html (http://rmrk.net/index.php/topic,7193.0.html)

Look under 6 a)
Title: Re: "Simple" Quest log screen
Post by: Sthrattoff on March 25, 2007, 12:48:13 AM
Just open the menu script, find this code
Code: [Select]
s6=exit #Or whatever, I forgot
and add this line:
Code: [Select]
s7="quest"
on update command, below when 5's statement and end, add
Code: [Select]
when 6
$game_system.se_play($data_system.decision_se)
$scene=Scene_Quest.new
Still not understand? Ask blizzard. He explain better.
Title: Re: "Simple" Quest log screen
Post by: Blizzard on March 25, 2007, 01:45:28 PM
In the tutorial section, stickied topic "Blizzard's little Tricks", look under 6. a) if you didn't get what Sthrathoff said.
Title: Re: "Simple" Quest log screen
Post by: Irgna on March 26, 2007, 06:30:26 PM
Sweet, this script fixes the problem I've had with every other Quest Log I've found. I have a question though. I really need this script for my game, but I might be making my game commercial. Besides asking you for permission (which I am doing now) and including you in the credits, what would you require?
Title: Re: "Simple" Quest log screen
Post by: Valcos on March 27, 2007, 12:55:06 AM
Window_Command line 18 RGGS Error faild to creat bit map? what does that mean?
Title: Re: "Simple" Quest log screen
Post by: Karo Rushe on March 27, 2007, 02:36:53 AM
Whenever I use the Call Script Command
I get that This Line:

Quote
$descriptionm.push "Head to the Temple, and Retrieve The 'Lost Logia' Before Valmar."
 number (1)
$objectivesm.push

Saying it cannot be read, error on Nil.
Title: Re: "Simple" Quest log screen
Post by: Sthrattoff on March 27, 2007, 08:59:17 AM
look at this line :
Code: [Select]
$objectivesm
make sure to change the m with objective numbers, like:
Code: [Select]
$objectives1

By the way, is that the old version?
I already updated it. Check this thread.
Title: Re: "Simple" Quest log screen
Post by: Sthrattoff on June 03, 2007, 04:36:54 AM
New Version Has Arrived!
No more editing at other places. Just put it!
Code: [Select]
#=============================================================================
# Quest Log Screen
#-----------------------------------------------------------------------------
# ** Version 2.3
# ** Original by Sthrattoff
#=============================================================================
# Description :
# This script enables the ability to show current active quest.

# Features :
# EXTREMELY SIMPLIFIED! Now the script is just about 150 lines length including comments.
# Unlimited amount of quest can be added.
# Use variable to mark quest's progress.

# Limitation :
# Only can store up to 12 progresses per quest.

# History :
# Version 1.0 : Initial release.
# Version 1.2 : Add "Types" features.
# Version 2.0 : Changes in programming style and infinite quest support.
# Version 2.2 : Cut the script length to about 150 lines.
# Version 2.3 : Add "Quest Progress" bar in exchange of "Types" removal.

# Instruction
# Just put this script above main.

# Configuration :
# To add a quest, fill these information by using .push
# $names.push "Name"
# $types.push "Type"
# $description.push (["line1", "line2", ..., "Line5"])
# $objectives.push (["onjective1", ..., "objective12"])
# $var_ID.push ID_NUMBER
# $end_val.push END_VALUE

# Credits
# See the header + Blizzard and Enterbrain
#=============================================================================
class Scene_Quest
  
  # Defines array variables
  $names = []
  $description = []
  $objectives = []
  $var_ID = []
  $end_val = []
  
  # The main process
  def main
    @quest_list = Window_Command.new(160, $names)
    @quest_window = Window_Quest.new
    @quest_window.x = 160
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      break if $scene != self
    end
    Graphics.freeze
    @quest_list.dispose
    @quest_window.dispose
  end
  
  def update
    @quest_list.update
    @quest_window.update
    if @quest_list.active
      update_quest
      return
    end
  end
  
  def update_quest
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Menu.new(2)
      return
    end
    $id = @quest_list.index
    return
  end
  
end    

class Window_Quest < Window_Base
  
  def initialize
    super(0, 0, 480, 480)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(0, 0, self.width - 32, 32, $names[$id.to_i].to_s, 1)
    self.contents.draw_text(0, 192, self.width - 32, 32, "Objectives", 1)
    self.contents.draw_text(0, 416, self.width - 32, 32, "Quest Progress")
    self.contents.font.color = normal_color
    for i in 0..4
      self.contents.draw_text(0, i * 32 + 32, self.width - 32, 32, $description[$id.to_i][i].to_s)
    end
    a = b = $game_variables[$var_ID[$id.to_i]]
    if a > 5
      self.contents.draw_text(240, (a - 6) * 32 + 224, 240, 32, "• " + $objectives[$id.to_i][a].to_s)
    else
      self.contents.draw_text(0, a * 32 + 224, 240, 32, "• " + $objectives[$id.to_i][a].to_s)
    end
    self.contents.font.color = disabled_color
    if b > 0
      for j in 0..(b - 1)
        if j > 5
          self.contents.draw_text(240, (j - 6) * 32 + 224, 240, 32, "• " + $objectives[$id.to_i][j].to_s)
        else
          self.contents.draw_text(0, j * 32 + 224, 240, 32, "• " + $objectives[$id.to_i][j].to_s)
        end
      end
    end
    draw_quest_progress(96, 428, self.width - 128)
  end
  
  def update
    refresh
  end
  
end

class Window_Base < Window
  
  def draw_quest_progress(x, y, w = 200)
    current = $game_variables[$var_ID[$id.to_i]]
    ending = $end_val[$id.to_i]
    bordercolor = system_color
    outercolor  = Color.new(180, 210, 120, 255)
    midcolor    = Color.new(180, 210, 140, 255)
    innercolor  = Color.new(180, 210, 160, 255)
    emptycolor  = Color.new(0, 0, 0, 255)
    linewidth = (((current * 1.0) / ending) * (w - 2))
    emptywidth = ((w - 1) - linewidth)
    emptyx = ((x + 1) + linewidth)
    border = Rect.new(x, y, w, 8)
    emptyline = Rect.new(x + 1, y + 1, w - 2, 6)
    outerline = Rect.new(x + 1, y + 1, linewidth, 6)
    midline = Rect.new(x + 2, y + 2, linewidth - 2, 4)
    innerline = Rect.new(x + 3, y + 3, linewidth - 4, 2)
    self.contents.fill_rect(border, bordercolor)
    self.contents.fill_rect(emptyline, emptycolor)
    self.contents.fill_rect(outerline, outercolor)
    self.contents.fill_rect(midline, midcolor)
    self.contents.fill_rect(innerline, innercolor)
  end
  
end

class Scene_Save < Scene_File
  
  alias old_save_data write_save_data
  def write_save_data(file)
    old_save_data(file)
    Marshal.dump($names, file)
    Marshal.dump($description, file)
    Marshal.dump($objectives, file)
    Marshal.dump($var_ID, file)
    Marshal.dump($end_val, file)
  end
  
end

class Scene_Load < Scene_File
  
  alias old_load_data read_save_data
  def read_save_data(file)
    old_load_data(file)
    $names = Marshal.load(file)
    $description = Marshal.load(file)
    $objectives = Marshal.load(file)
    $var_ID = Marshal.load(file)
    $end_val = Marshal.load(file)
  end
  
end

class Scene_Title
  
  alias old_new_game command_new_game
  def command_new_game
    old_new_game
    $names.clear
    $description.clear
    $objectives.clear
    $var_ID.clear
    $end_val.clear
  end
  
end

class Scene_Menu
  
  def initialize(menu_index = 0)
    @menu_index = menu_index
    size = $names.size
    for i in 0..size
      var = $var_ID[i]
      ending = $end_val[i]
      if $game_variables[var.to_i] >= ending.to_i
        $names.delete_at i
        $description.delete_at i
        $objectives.delete_at i
        $var_ID.delete_at i
        $end_val.delete_at i
      end
    end
  end
  
end
Title: Re: "Simple" Quest log screen
Post by: Martynator on June 05, 2007, 05:51:12 PM
I'm sorry, but i still don't understand it. Now you can ask what, but that's hard and much to explain, so i want to ask you (i think this sounds kinda rude  :)) if you can make a very small demo off this with 2 people and they both give you a quest, and ( of course) you can see that in the quest log, and you must do something and then you see that you're further in the quest. thanks. ;D
Title: Re: "Simple" Quest log screen
Post by: Sthrattoff on June 07, 2007, 03:28:43 AM
Demo?
Sounds good. I'll make it when I have some time
Title: Re: "Simple" Quest log screen
Post by: Martynator on June 21, 2007, 02:28:35 PM
Kinda bussy i guess ?  ;8
Title: Re: "Simple" Quest log screen
Post by: Sthrattoff on June 26, 2007, 03:01:32 AM
I'm busy. A lot.
I'm doing my project by myself...
Title: Re: "Simple" Quest log screen
Post by: swiftdeathsk on July 11, 2007, 04:41:11 PM
looks good! I understand it pretty well so far, I could make a demo for you :) i'll get started on it right now!



EDIT: I have taken the liberty and created a demo for this :) here's the link: http://www.box.net/shared/78qraeztaf
If the scripter or an admin/mod wishes to add this link to the first post, please do.
Title: Re: "Simple" Quest log screen
Post by: swiftdeathsk on August 13, 2007, 03:11:06 PM
I've got a problem with this script. From what I have figured out, you must do each quest in order because of the $var_ID.push #. The problem is the .push, which basically makes it so that if you skip a quest between, say quest [ 0] and quest [2] (quest [1] basically), then you get an error of "cannot convert nil into String", and the error line is in the 'Window_Line' script on line 40 (this is the line:     self.contents.draw_text(rect, @commands[index]) ). This is a problem for my game because there is no specific order of quests that must be done, which means that using .push for the variable will not work for my game, because (as i have said) the quest can only be done in order... is there any way someone could help by making the $var_ID.push ID_NUMBER be similar to the $name variable in the sense that it goes like this: $var_ID[QUEST_ID] ID_NUMBER


Title: Re: "Simple" Quest log screen
Post by: Inunah on August 17, 2007, 09:46:49 PM
I know this may seem dumb, but..

Where do you put that script?
Title: Re: "Simple" Quest log screen
Post by: Falcon on August 17, 2007, 11:07:38 PM
http://rmrk.net/index.php/topic,263.0.html
Title: Re: "Simple" Quest log screen
Post by: hero_kenshi on August 20, 2007, 06:08:49 AM
i have the same problem as swiftdeathsk
also... my objextives are long descriptions and id prefer not to make them short cause most dont fit into the place where you type the objextives in that little box thing is there a way a can have more than one box... if you understand wat im asking

P.s gotta love the beas  :bean:
Title: Re: "Simple" Quest log screen
Post by: DarkEmmisary on September 09, 2007, 09:41:16 AM
Could you make an example for as what to put in the call script command?

eg. for quest "The Dark Side"

type: Sidequest

Description: Frank wants me to gather the materials for his new experiments

Objectives: Gather Materials: King's Weed, Fireroot, Dead Leaves
Title: Re: "Simple" Quest log screen
Post by: Sthrattoff on September 15, 2007, 02:25:35 AM
example, call script event command:
<code>
$names.push "The Dark Side"
$description.push ["I need something", "To become Darth Vader"]
$objectives.push ["Kill Palpatine", "Kill Yoda"]
</code>
Title: Re: "Simple" Quest log screen
Post by: r_y_u_u on December 17, 2007, 07:42:15 PM
 :(help, i am using this script in my game, and i edited the menu so that you could have this where save normally is, as i am saving from events, i came to test my firsts ave event, and it gave me this error
Quote
Script 'quest log' line 161: argument error occured.
wrong number of arguments(0 for1)
whats wrong?
help!!! :(
Title: Re: "Simple" Quest log screen
Post by: destiny on December 25, 2007, 11:49:59 PM
i am using version 2.3 and im getting an error  :o


Script 'Window_Command' line 18:RGSSError occurred.
Failed to create bitmap


self.contents = Bitmap.new(width - 32, @item_max * 32)

can someone tell me what is wrong?
Title: Re: "Simple" Quest log screen
Post by: Sthrattoff on December 30, 2007, 12:03:54 PM
Hold on. I'll rewrite everything. Seems take some days...
Title: Re: "Simple" Quest log screen
Post by: destiny on December 30, 2007, 12:39:06 PM
finaly a reply  ;D
thank u for the reply
thanks in advance for re-writing the script
Title: Re: "Simple" Quest log screen
Post by: Sthrattoff on January 02, 2008, 10:58:14 AM
So far...

It's quite simpler, and use no global variables (which that means less RAM usage, or so experts says), but I didn't put method to write the description yet, I'm still confused how to get the paragraphs looks good. And then, on my calculation, for a moment (until I update this script again), don't make a subquest MORE THAN 8. Otherwise, the other subquest (objectives) will not shown.

Usage:
$game_system.(properties).push details # to add quest detail. for objectives, push in form of array.

To call:
$scene = Scene_Quest.new

Because this is the specific version (for usage on Symphony of Alderra : Hourglasses And Memories, which is older name was Symphony of Alderra : Memoirs of Life), so on the Scene_Quest's def update, change $scene = Scene_Menu.new(2) to $scene = Scene_Map.new if you didn't planning to integrate this script to your CMS. And, I didn't test it yet. If you found error please PM me.

Code: [Select]
#==============================================================================
# Improvised Quest Log
# Written specifically for Symphony of Alderra : Hourglasses And Memories
# © 2007 by Sthrattoff
#==============================================================================

# Supplement for Game_System
class Game_System
 
  attr_accessor :quest_name           # Quest's title
  attr_accessor :quest_length         # Quest's subquests
  attr_accessor :quest_description    # Quest's description
  attr_accessor :quest_objectives     # Quest's objectives
  attr_accessor :quest_marker         # Quest's marker variable
 
  alias old_initialize initialize
  def initialize
    old_initialize
    @quest_name = []
    @quest_length = []
    @quest_description = []
    @quest_objectives = []
    @quest_marker = []
  end
 
end

# Supplement for Scene_Map
class Scene_Map
 
  alias old_update update
  def update
    quest_size = $game_system.quest_name.size
    for i in 0..quest_size - 1
      if $game_variables[$game_system.quest_marker[i].to_i] >= $game_system.quest_length
        $game_system.quest_name.delete_at i
        $game_system.quest_length.delete_at i
        $game_system.quest_description.delete_at i
        $game_system.quest_objectives.delete_at i
        $game_system.quest_marker.delete_at i
        quest_size -= 1
      end
    end
    old_update
  end
 
end

class Window_Quest < Window_Base
 
  def initialize(id)
    super(0, 0, 480, 480)
    self.contents = Bitmap.new
    refresh
    @id = id
  end
 
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(0, 0, 480, 32, $game_system.quest_name[@id].to_s, 1)
    self.contents.draw_text(0, 32, 480, 32, "Description")
    self.contents.draw_text(0, 192, 480, 32, "Objectives")
    self.contents.font.color = disabled_color
    size = $game_variables[$game_system.quest_marker[@id].to_i]
    for i in 0..size - 1
      self.contents.draw_text(0, 224 + i * 32, 480, 32, $game_system.quest_objectives[@id][i].to_s)
    end
    self.contents.font.color = normal_color
    self.contents.draw_text(0, 224 + size.to_i * 32, 480, 32, $game_system.quest_objectives[@id][size].to_s)
    self.contents.font.color = normal_color
    # Deskripsi dan segala methodnya...
  end
 
end

class Scene_Quest
 
  def main
    @command = Window_Command.new(160, $game_system.quest_name)
    @command.x = 480   
    @quest = Window_Quest.new(@command.index)   
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      break if $scene != self
    end
    Graphics.freeze
    @command.dispose
    @quest.dispose
  end
 
  def update
    @command.update
    @quest.update
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Menu.new(2)
      return
    end
    return
  end
 
end
Title: Re: "Simple" Quest log screen
Post by: destiny on January 02, 2008, 07:11:38 PM
i get a syntaxerror on line 68 :o
hope u can fix it  ;)
Title: Re: "Simple" Quest log screen
Post by: Sthrattoff on January 05, 2008, 07:33:02 AM
2 things fixed.
Copy paste the code below again...
Title: Re: "Simple" Quest log screen
Post by: destiny on January 05, 2008, 10:54:34 AM
thank you
but now i get a SyntaxError on line 70  :(
i tried it both in a new one and an existing project.
Title: Re: "Simple" Quest log screen
Post by: Sthrattoff on January 08, 2008, 07:07:16 AM
Fixed!
Try copy paste again.
Title: Re: "Simple" Quest log screen
Post by: destiny on January 11, 2008, 04:53:30 PM
Now i get error on line 70, i change the line to what i think is correct
And i get an error on line 35
so if u don't want to change it anymore it's ok, then i will just use an other quest script
Title: Re: "Simple" Quest log screen
Post by: Sthrattoff on January 19, 2008, 04:07:51 AM
I'll investigate it. But for a moment, i've fixed the thingy on line 35, I just forgot to put -1 on it.
Title: Re: "Simple" Quest log screen
Post by: FruitBodyWash on May 26, 2008, 07:13:27 AM
Alright, I've been testing the demo provided, and trying to add a second quest of my own to it. However, I can't seem to make two quests at once.  They interfer with eachother, for example, if I select them both at once before working on either, the quest log will show me the last one I picked and be stuck on that one. However, if say... I start one, finish it, then start the next one, it says all my objectives have been met, when they haven't yet. 

I think I know where I'm going wrong, but not how to fix it.... in this line here

$names[0] = "Testing 2"

(my second quest name... origonal I know)

I think, since the first quest is

$names[0] = "Test"

I would need to change the 0 to a 1, however when I do that, I get an error when I go to open up the quest page. 

Then, I thought, all the things (Description, and Objective also) the 0 would have to be a 1, to indicate its for a different quest than, test, and so on..... but, even changing them all to 1 it isn't working.... I still get the error.

I had just copied the other quest, and changed all the switches and variables to quest 2. So, I can do the quest, but it doesn't show it that way in the quest log.  I'm not really sure what I have to do, to be able to have two quests at the same time, and have them both (or more than 2) show on the quest log. 
Title: Re: "Simple" Quest log screen
Post by: Sthrattoff on June 24, 2008, 02:33:46 PM
Check this out! It's free from bug (while I test it...).
And I added function to bypass subquest, but I didn't test it yet. Wanna be the first tester?

Code: [Select]
#==============================================================================
# Quest Log
#------------------------------------------------------------------------------
# ** Version 2.0c
# ** Original by Sthrattoff
#==============================================================================
# Description:
# This script add feature called "Quest Log".
# It's a quest-reminder feature that lets you to recall everything you need to
# be done.

# Instructions:
# Put this script above main.
# Read every instruction carefully.
# Please report any bug you encounter.

# How to Use:
# For adding details, follow this example:
# $game_system.quest_name.push (contents)
# etc. Do it for all details.

# Credits:
# See the header + Enterbrain.
#==============================================================================

# Supplement for Game_System
class Game_System
 
  attr_accessor :quest_name           # Quest's title
  attr_accessor :quest_length         # Quest's tasks
  attr_accessor :quest_description    # Quest's description
  attr_accessor :quest_objectives     # Quest's objectives
  attr_accessor :quest_marker         # Quest's marker variable
 
  alias old_initialize initialize
  def initialize
    old_initialize
    @quest_name = []
    @quest_length = []
    @quest_description = []
    @quest_objectives = []
    @quest_marker = []
  end
 
end

# Supplement for Scene_Map
class Scene_Map
 
  alias old_update update
  def update
    $game_system.quest_sort
    quest_size = $game_system.quest_name.size
    for i in 0..quest_size
      if $game_variables[$game_system.quest_marker[i].to_i].to_i >= $game_system.quest_length[i].to_i
        $game_system.quest_name.delete_at i
        $game_system.quest_length.delete_at i
        $game_system.quest_description.delete_at i
        $game_system.quest_objectives.delete_at i
        $game_system.quest_marker.delete_at i
        quest_size -= 1
      end
    end
    old_update
  end
 
end

# The window for Scene_Quest
class Window_Quest < Window_Base
 
  def initialize(id)
    super(0, 0, 480, 480)
    self.contents = Bitmap.new
    refresh
    @id = id
  end
 
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(0, 0, 480, 32, $game_system.quest_name[@id].to_s, 1)
    self.contents.draw_text(0, 32, 480, 32, "Description")
    self.contents.draw_text(0, 192, 480, 32, "Objectives")
    self.contents.font.color = disabled_color
    size = $game_variables[$game_system.quest_marker[@id].to_i]
    for i in 0..size - 1
      self.contents.draw_text(0, 224 + i * 32, 480, 32, $game_system.quest_objectives[@id][i].to_s)
    end
    self.contents.font.color = normal_color
    self.contents.draw_text(0, 224 + size * 32, 480, 32, $game_system.quest_objectives[@id][size].to_s)
    self.contents.font.color = normal_color
    # Deskripsi dan segala methodnya...
  end
 
end

# Quest menu main view
class Scene_Quest
 
  def main
    @command = Window_Command.new(160, $game_system.quest_name)
    @command.x = 480   
    @quest = Window_Quest.new(@id)   
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      break if $scene != self
    end
    Graphics.freeze
    @command.dispose
    @quest.dispose
  end
 
  def update
    @command.update
    @quest.update
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Menu.new(2)  # You may edit this line
      return
    end
    @id = @command.index
    return
  end
 
end

# NEW! Quest override functions
class Game_System
 
  def quest_sort
    edge = $game_system.quest_name.size
    for i in 0..edge
      for j in 0..edge
        if $game_system.quest_name[i].to_s < $game_system.quest_name[j].to_s
          # Store value at temporary variables
          $game_system.quest_name.push $game_system.quest_name[i]
          $game_system.quest_length.push $game_system.quest_length[i]
          $game_system.quest_description.push $game_system.quest_description[i]
          $game_system.quest_objectives.push $game_system.quest_objectives[i]
          $game_system.quest_marker.push $game_system.quest_marker[i]
          # Replace i-index values with j-index values
          $game_system.quest_name[i] = $game_system.quest_name[j]
          $game_system.quest_length[i] = $game_system.quest_length[j]
          $game_system.quest_description[i] = $game_system.quest_description[j]
          $game_system.quest_objectives[i] = $game_system.quest_objectives[j]
          $game_system.quest_marker[i] = $game_system.quest_marker[j]
          # Replace j-index values with temporary variable-stored values
          $game_system.quest_name[j] = $game_system.quest_name[edge + 1]
          $game_system.quest_length[j] = $game_system.quest_length[edge + 1]
          $game_system.quest_description[j] = $game_system.quest_description[edge + 1]
          $game_system.quest_objectives[j] = $game_system.quest_objectives[edge + 1]
          $game_system.quest_marker[j] = $game_system.quest_marker[edge + 1]
          # Clean up temporary variables
          $game_system.quest_name.pop
          $game_system.quest_length.pop
          $game_system.quest_description.pop
          $game_system.quest_objectives.pop
          $game_system.quest_marker.pop
        end
      end
    end
  end
 
  #----------------------------------------------------------------------------
  # bypass_subquest
  #
  # quest_name     : quest name that have subquest to be passed
  # subquest_index : index of subquest that have to be passed
  #----------------------------------------------------------------------------
  def bypass_subquest(quest_name, subquest_index)
    quest_index = $game_system.quest_name.index(quest_name)
    $game_system.quest_objectives[quest_index].delete_at subquest_index
  end
 
end
Title: Re: "Simple" Quest log screen
Post by: Cody64 on July 15, 2008, 04:58:34 AM
Quote
i am using version 2.3 and im getting an error 


--------------------------------------------------------------------------------
Script 'Window_Command' line 18:RGSSError occurred.
Failed to create bitmap

--------------------------------------------------------------------------------

self.contents = Bitmap.new(width - 32, @item_max * 32)

can someone tell me what is wrong?

I've been getting that same error, has anyone found a fix for it yet?  I tried replacing $scene = Scene_Menu.new(2) with $scene = Scene_Map.new, but it didn't work :(...  I'm also using BlizzABS, does anyone know if there's a compatability issue?  Sorry, I'm an experienced programmer, but not experienced with Ruby :(.....
Title: Re: "Simple" Quest log screen
Post by: Sthrattoff on August 25, 2008, 10:17:06 AM
Sorry for my absence...

How to bypass a subquest:
Use Call Script on any map, type this:
Code: [Select]
$game_system.bypass_subquest(quest_name, subquest_index)

How does it works?
-> It will search the quest name.
-> Then it will delete the subquest. Index begin from 0. So if you want to bypass subquest 5, type 4.
Title: Re: "Simple" Quest log screen
Post by: gcjo182 on July 27, 2009, 01:36:59 PM
I hope that you can answer me, but Im using the script in my game. Everything works fine, but when I want to save or load something I get this error:

Script "Window_SaveFile" line 28: EOFError occured.

End of file reached

The line is:     
@characters = Marshal.load(file)

I dont get this error when I dont use this script.
So please help me.
Title: Re: "Simple" Quest log screen
Post by: Sthrattoff on November 16, 2009, 12:03:05 AM
Alright, v2.3 users, time to re-copy paste that script. I've fixed the bugs.
Title: Re: "Simple" Quest log screen
Post by: Mr_Wiggles on December 01, 2009, 09:25:55 AM
can you give me a few exsamples of how you would add a mission?
Title: Re: "Simple" Quest log screen
Post by: Sthrattoff on December 02, 2009, 03:47:18 AM
you know how to use call script event command? use that, for code, use template provided on the script header...
Title: Re: "Simple" Quest log screen
Post by: Mr_Wiggles on December 03, 2009, 04:12:13 AM
ok thanks, yea  i no how to do that i was edgey at first but i know a lil more about scripting now, im actualy concidering on replacing the script im using to do such a thing with yours... :-\
that is if i can figure it out.... lol perhaps you could compile a demo? DUR im stupid lol
ok heres what im doing....

copy your code above main, named Quest log
use and event and "script..." add this to that event in order i want?

 $names.push "Name"
 $types.push "Type"
 $description.push (["line1", "line2", ..., "Line5"])
 $objectives.push (["onjective1", ..., "objective12"])
 $var_ID.push ID_NUMBER

so...

$names.push "Save World"
$types.push  "what types are there?"
$description.push (["save world by destroying", "mr santa's castle!"])
$objectives.push (["retrive a rubber band", "travel across the dessert"])
$var_ID.push 5  <--- thats a varible i would set it too in that way?

is any of that right?
and then if i wanna make it complete i would use an event to change varible 5
to the value 12 ?

and do these show up in order of activated or in order of the varible number IE
"first to show up is the lowest varible value"