sirsk8aton
Member
Introduction
Well, this is a very simple script I have made. It's my first script, so don't be too harsh :P
Screenshots

Features
-Can hold up to 15 quests(I can raise the maximum if needed)
-Can hold 2 lines of information for each quest(I can raise the maximum if needed)
-Shows the start point
-Shows if you have started, are in progress or have finished the quest.
-Shows the reward only if you have completed the quest
-Demo comes with 2 mini-quests.
Demo
http://www.savefile.com/files/3177604
Script
Code:
Â
#------------------------------------------------------------------------------
#----Quests Window V.2---------------------------------------------------------
#----Made by Sirsk8aton--------------------------------------------------------
#------------------------------------------------------------------------------
#----Instructions--------------------------------------------------------------
#------------------------------------------------------------------------------
#
# The * are indicate in the script where you need to edit that.
# *- Update how many quests you wish to have in the quests window in
# **- Update the names of the quests.
# ***- Update the quests start points there.
# ****- Update the quests description there.
# *****- Update the quest's starting switch there.
# ******- Update the quest's ending switch there.
# Everything you need to edit is withing lines 14-30
#----Module--------------------------------------------------------------------
module Quest
 # ** Add Quest Names Here, This would be quest 4: 4 => "Name here", Seperated By Commas
 Names = {1 => "Delivery", 2 => "Kill Bill", 3 => "Quest3", 4 => "Quest4", 5 => "Quest5", 6 => "Quest6", 7 => "Quest7", 8 => "Quest8", 9 => "Quest9", 10 => "Quest10", 11 => "Quest11", 12 => "Quest12", 13 => "Quest13", 14 => "Quest14", 15 => "Quest15"}
 # *** Add Quest Start Points Here, Also Seperated By Commas
 Start = {1 => "Skeleton", 2 => "Lady In Pink Armor", 3 => "Somewhere", 4 => "Somewhere", 5 => "Somewhere", 6 => "Somewhere", 7 => "Somewhere", 8 => "Somewhere", 9 => "Somewhere", 10 => "Somewhere", 11 => "Somewhere", 12 => "Somewhere", 13 => "Somewhere", 14 => "Somewhere", 15 => "Somewhere"}
 # **** Add the quest's info here
 Info = {1 => "Deliver the pie to the Skeleton's buddy, Casper.", 2 => "Kill Bill and his army!", 3 => "Line 1", 4 => "Line 1", 5 => "Line 1", 6 => "Line 1", 7 => "Line 1", 8 => "Line 1", 9 => "Line 1", 10 => "Line 1", 11 => "Line 1", 12 => "Line 1", 13 => "Line 1", 14 => "Line 1", 15 => "Line 1"}
 # **** Add the quest's info here(Line2)
 Info2 = {1 => "Don't let it get cold!", 2 => "Leave NO survivors!", 3 => "Line 2", 4 => "Line 2", 5 => "Line 2", 6 => "Line 2", 7 => "Line 2", 8 => "Line 2", 9 => "Line 2", 10 => "Line 2", 11 => "Line 2", 12 => "Line 2", 13 => "Line 2", 14 => "Line 2", 15 => "Line 2"}
 # ***** Put the starting switch id of each quest here.
 Start_Switch = {1 => 1, 2 => 3}
 # ****** Put the ending switch id of each quest here.
 End_Switch = {1 => 2, 2 => 4}
 Reward = {1 => "1,000 GP", 2 => "Mythril Sword"}
end
#----Scene_Quests--------------------------------------------------------------
class Scene_Quests
 def initialize(menu_index = 0)
  @menu_index = menu_index
  # * Update the number of quests you wish to have in the quest window here.
  @quests = 2
 end
 def main
  s1 = Quest::Names[1]
  s2 = Quest::Names[2]
  s3 = Quest::Names[3]
  s4 = Quest::Names[4]
  s5 = Quest::Names[5]
  s6 = Quest::Names[6]
  s7 = Quest::Names[7]
  s8 = Quest::Names[8]
  s9 = Quest::Names[9]
  s10 = Quest::Names[10]
  s11 = Quest::Names[11]
  s12 = Quest::Names[12]
  s13 = Quest::Names[13]
  s14 = Quest::Names[14]
  s15 = Quest::Names[15]
  if @quests == 1
  $cmd_window = Window_Command.new(160, [s1])
  end
  if @quests == 2
  $cmd_window = Window_Command.new(160, [s1, s2])
  end
  if @quests == 3
  $cmd_window = Window_Command.new(160, [s1, s2, s3])
  end
  if @quests == 4
  $cmd_window = Window_Command.new(160, [s1, s2, s3, s4])
  end
  if @quests == 5
  $cmd_window = Window_Command.new(160, [s1, s2, s3, s4, s5])
  end
  if @quests == 6
  $cmd_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
  end
  if @quests == 7
  $cmd_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7])
  end
  if @quests == 8
  $cmd_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7, s8])
  end
  if @quests == 9
  $cmd_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7, s8, s9])
  end
  if @quests == 10
  $cmd_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7, s8, s9, s10])
  end
  if @quests == 11
  $cmd_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11])
  end
  if @quests == 12
  $cmd_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12])
  end
  if @quests == 13
  $cmd_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13])
  end
  if @quests == 14
  $cmd_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14])
  end
  if @quests == 15
  $cmd_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15])
  end
  $cmd_window.index = @menu_index
  $cmd_window.y = 0
  $cmd_window.height = 480
  @quests_status = Window_QuestsStatus.new
  @quests_window = Window_Quests.new
  @reward_window = Window_Reward.new
  Graphics.transition
  loop do
   Graphics.update
   Input.update
   update
   if $scene != self
    break
   end
  end
  Graphics.freeze
  $cmd_window.dispose
  @quests_status.dispose
  @quests_window.dispose
  @reward_window.dispose
 end
 def update
  @quests_window.update
  @quests_status.update
  @reward_window.update
  $cmd_window.update
  if Input.trigger?(Input::B)
   $game_system.se_play($data_system.cancel_se)
   $scene = Scene_Map.new
  end
 end
end
#---------Window_Quests--------------------------------------------------------
class Window_Quests < Window_Selectable
 def initialize
  super(160, 60, 480, 340)
  self.contents = Bitmap.new(width - 32, height - 32)
  self.contents.font.name = "Tahoma"
  self.contents.font.size = 22
  @switch1 = Quest::Start_Switch[1]
  @switch2 = Quest::End_Switch[1]
  refresh
 end
 def update
  if $cmd_window.active
   self.contents.clear
   update_commands
   return
  end
  loop do
   Graphics.update
   Input.update
   update
   if $scene != self
    break
   end
  end
  Graphics.freeze
  @info.dispose
  @info2.dispose
  @switch1.dispose
  @switch2.dispose
  @start.dispose
 end
 def update_commands
  case $cmd_window.index
  when 0
   @info = Quest::Info[1]
   @info2 = Quest::Info2[1]
   @start = Quest::Start[1]
   @switch1 = Quest::Start_Switch[1]
   @switch2 = Quest::End_Switch[1]
   refresh
  when 1
   @info = Quest::Info[2]
   @info2 = Quest::Info2[2]
   @start = Quest::Start[2]
   @switch1 = Quest::Start_Switch[2]
   @switch2 = Quest::End_Switch[2]
   refresh
  when 2
   @info = Quest::Info[3]
   @info2 = Quest::Info2[3]
   @start = Quest::Start[3]
   @switch1 = Quest::Start_Switch[3]
   @switch2 = Quest::End_Switch[3]
   refresh
  when 3
   @info = Quest::Info[4]
   @info2 = Quest::Info2[4]
   @start = Quest::Start[4]
   @switch1 = Quest::Start_Switch[4]
   @switch2 = Quest::End_Switch[4]
   refresh
  when 4
   @info = Quest::Info[5]
   @info2 = Quest::Info2[5]
   @start = Quest::Start[5]
   @switch1 = Quest::Start_Switch[5]
   @switch2 = Quest::End_Switch[5]
   refresh
  when 5
   @info = Quest::Info[6]
   @info2 = Quest::Info2[6]
   @start = Quest::Start[6]
   @switch1 = Quest::Start_Switch[6]
   @switch2 = Quest::End_Switch[6]
   refresh
  when 6
   @info = Quest::Info[7]
   @info2 = Quest::Info2[7]
   @start = Quest::Start[7]
   @switch1 = Quest::Start_Switch[7]
   @switch2 = Quest::End_Switch[7]
   refresh
  when 7
   @info = Quest::Info[8]
   @info2 = Quest::Info2[8]
   @start = Quest::Start[8]
   @switch1 = Quest::Start_Switch[8]
   @switch2 = Quest::End_Switch[8]
   refresh
  when 8
   @info = Quest::Info[9]
   @info2 = Quest::Info2[9]
   @start = Quest::Start[9]
   @switch1 = Quest::Start_Switch[9]
   @switch2 = Quest::End_Switch[9]
   refresh
  when 9
   @info = Quest::Info[10]
   @info2 = Quest::Info2[10]
   @start = Quest::Start[10]
   @switch1 = Quest::Start_Switch[10]
   @switch2 = Quest::End_Switch[10]
   refresh
  when 10
   @info = Quest::Info[11]
   @info2 = Quest::Info2[11]
   @start = Quest::Start[11]
   @switch1 = Quest::Start_Switch[11]
   @switch2 = Quest::End_Switch[11]
   refresh
  when 11
   @info = Quest::Info[12]
   @info2 = Quest::Info2[12]
   @start = Quest::Start[12]
   @switch1 = Quest::Start_Switch[12]
   @switch2 = Quest::End_Switch[12]
   refresh
  when 12
   @info = Quest::Info[13]
   @info2 = Quest::Info2[13]
   @start = Quest::Start[13]
   @switch1 = Quest::Start_Switch[13]
   @switch2 = Quest::End_Switch[13]
   refresh
  when 13
   @info = Quest::Info[14]
   @info2 = Quest::Info2[14]
   @start = Quest::Start[14]
   @switch1 = Quest::Start_Switch[14]
   @switch2 = Quest::End_Switch[14]
   refresh
  when 14
   @info = Quest::Info[15]
   @info2 = Quest::Info2[15]
   @start = Quest::Start[15]
   @switch1 = Quest::Start_Switch[15]
   @switch2 = Quest::End_Switch[15]
   refresh
   return
  end
 end
 def refresh
  self.contents.font.color = system_color
  self.contents.draw_text(10, 10, 320, 32, "-Quest Description-")
  self.contents.font.color = normal_color
  self.contents.draw_text(10, 45, 320, 32, @info.to_s)
  self.contents.draw_text(10, 67, 320, 32, @info2.to_s)
  self.contents.font.color = system_color
  self.contents.draw_text(130, 125, 320, 32, "-Starting Location-")
  self.contents.font.color = normal_color
  self.contents.draw_text(130, 160, 320, 32, @start.to_s)
  self.contents.font.color = system_color
  self.contents.draw_text(250, 213, 320, 32, "-Quest Status-")
  self.contents.font.color = normal_color
  if $game_switches[@switch1] == false
   self.contents.draw_text(250, 248, 320, 32, "Not Started")
  elsif $game_switches[@switch1] == true and $game_switches[@switch2] == false
   self.contents.draw_text(250, 248, 320, 32, "In Progress")
  elsif $game_switches[@switch2] == true
   self.contents.draw_text(250, 248, 320, 32, "Completed")
  end
 end
end
#----Window_QuestsStatus-------------------------------------------------------
class Window_QuestsStatus < Window_Base
 def initialize
  super(160, 0, 480, 60)
  self.contents = Bitmap.new(width - 32, height - 32)
  self.contents.font.name = "Tahoma"
  self.contents.font.size = 22
  update_commands
 end
  def update
  if $cmd_window.active
   self.contents.clear
   update_commands
   return
   end
  loop do
   Graphics.update
   Input.update
   update
   if $scene != self
    break
   end
  end
  Graphics.freeze
  @names.dispose
 end
 def update_commands
  case $cmd_window.index
  when 0
   @names = Quest::Names[1]
   refresh
  when 1
   @names = Quest::Names[2]
   refresh
  when 2
   @names = Quest::Names[3]
   refresh
  when 3
   @names = Quest::Names[4]
   refresh
  when 4
   @names = Quest::Names[5]
   refresh
  when 5
   @names = Quest::Names[6]
   refresh
  when 6
   @names = Quest::Names[7]
   refresh
  when 7
   @names = Quest::Names[8]
   refresh
  when 8
   @names = Quest::Names[9]
   refresh
  when 9
   @names = Quest::Names[10]
   refresh
  when 10
   @names = Quest::Names[11]
   refresh
  when 11
   @names = Quest::Names[12]
   refresh
  when 12
   @names = Quest::Names[13]
   refresh
  when 13
   @names = Quest::Names[14]
   refresh
  when 14
   @names = Quest::Names[15]
   refresh
   return
  end
 end
 def refresh
  self.contents.font.color = system_color
  self.contents.draw_text(200, 0, 320, 32, @names.to_s)
 end
end
Â
#----Window_Reward-------------------------------------------------------------
Â
class Window_Reward < Window_Base
Â
  def initialize
  super(160, 400, 480, 80)
  self.contents = Bitmap.new(width - 32, height - 32)
  self.contents.font.name = "Tahoma"
  self.contents.font.size = 22
  @reward = Quest::Reward[1]
  @switch2 = Quest::End_Switch[1]
  update_commands
 end
Â
 def update
  if $cmd_window.active
   self.contents.clear
   update_commands
   return
   end
  loop do
   Graphics.update
   Input.update
   update
   if $scene != self
    break
   end
  end
  Graphics.freeze
  @reward.dispose
 end
Â
 def update_commands
  case $cmd_window.index
  when 0
   @reward = Quest::Reward[1]
   @switch2 = Quest::End_Switch[1]
   refresh
  when 1
   @reward = Quest::Reward[2]
   @switch2 = Quest::End_Switch[2]
   refresh
  when 2
   @reward = Quest::Reward[3]
   @switch2 = Quest::End_Switch[3]
   refresh
  when 3
   @reward = Quest::Reward[4]
   @switch2 = Quest::End_Switch[4]
   refresh
  when 4
   @reward = Quest::Reward[5]
   @switch2 = Quest::End_Switch[5]
   refresh
  when 5
   @reward = Quest::Reward[6]
   @switch2 = Quest::End_Switch[6]
   refresh
  when 6
   @reward = Quest::Reward[7]
   @switch2 = Quest::End_Switch[7]
   refresh
  when 7
   @reward = Quest::Reward[8]
   @switch2 = Quest::End_Switch[8]
   refresh
  when 8
   @reward = Quest::Reward[9]
   @switch2 = Quest::End_Switch[9]
   refresh
  when 9
   @reward = Quest::Reward[10]
   @switch2 = Quest::End_Switch[10]
   refresh
  when 10
   @reward = Quest::Reward[11]
   @switch2 = Quest::End_Switch[11]
   refresh
  when 11
   @reward = Quest::Reward[12]
   @switch2 = Quest::End_Switch[12]
   refresh
  when 12 Â
   @reward = Quest::Reward[13]
   @switch2 = Quest::End_Switch[13]
   refresh
  when 13 Â
   @reward = Quest::Reward[14]
   @switch2 = Quest::End_Switch[14]
   refresh
  when 14  Â
   @reward = Quest::Reward[15]
   @switch2 = Quest::End_Switch[15]
   refresh
   return
  end
 end
Â
Â
 def refresh
  if $game_switches[@switch2] == false
   self.contents.font.color = system_color
   self.contents.draw_text(10, 10, 320, 32, "Reward:")
   self.contents.font.color = normal_color
   self.contents.draw_text(100, 10, 320, 32, "???")
  elsif if $game_switches[@switch2] == true
   self.contents.font.color = system_color
   self.contents.draw_text(10, 10, 320, 32, "Reward:")
   self.contents.font.color = normal_color
   self.contents.draw_text(100, 10, 320, 32, @reward.to_s)
  end
  end
 end
end
Â
Instructions
Inside the script I give brief instructions. If you need any help, just ask
Call it with:
Code:
$scene = Scene_Quests.new
Compatibility
Uhm...Not entirely sure, but it should be compatible with anything.
Credit
Sirsk8aton
Author's Notes
Enjoy :D and is anyone needs any help setting it up, please don't hesitate to ask