coolmariners98
Member
Version: 2.0
Introduction
Ok before everyone goes crazy and criticizes my scripting like crazy, just let it be known that this was my first script and it more of an eye candy script rather than an impressive one. Also note that not all scripts within this demo are my own and were only modified/compiled by me. Because of this I must give a long and drawn out credit recognization. It would be better if you just ignored the rest of the scripts except for the quest one which is located in the lower left hand corner of the tutorial. You can check out the other things too, but this post is really just for the Quest Script.
Features
Here are some of the features
- Doesn't use any switches
- Can handle and unlimited number of quests
- Can hold up to 8 steps per quest
- Each time a step is completed the step fades out
- Displays what you are to do next between and during quests
- Quests appear in the menu only after you get the quest, instead of there just being a list of all quests or you can now have all of them be displayed the choice is up to you
- Keeps track of how much money, exp, completed, found, etc
- Has a nice GUI in Quest_Data

Demo
http://www.rmxp.org/forums/attachment.php?attachmentid=2409&stc=1&d=1186158318
Script
Put these scripts below everything else, and above main.
Code:
#=======================================
# ** Scene_Quests
# ** Created by coolmariners98
#------------------------------------------------------------------------------
# Please do not copy and distribute claiming to have created this.
# I would like full credit, even though this script is kind of crappy.
#=======================================
class Scene_Quests
# * Object Initialization
def initialize(quest_index = 0)
@quest_index = quest_index
if $qdata == nil
$qdata = Quest_Data.new
end
end
def main
# creates the quest window based upon how many totalquests
questwin = [] # temp array
for i in 0...$qdata.totalquests # for loop makes menu
eval "questwin.push($qdata.questname[i])"
end
@command_window = Window_Qmand.new(160, questwin) # actually makes window
@command_window.index = @quest_index
# while loop determines what to show
tmp = 1
tmp2 = 10
tmp3 = 0
$qdata.totalcompleted = 0
$qdata.totalfound = 0
$qdata.moneyearned = 0
$qdata.expearned = 0
$qdata.rpearned = 0
while (tmp3 < $qdata.totalquests)
if $qdata.showdisabledquests == true and $game_temp.qupdate[tmp] == false
@command_window.disable_item(tmp3)
elsif $game_temp.qupdate[tmp] == false
@command_window.delete_item(tmp3)
else
$qdata.totalfound += 1
end
if $game_temp.qupdate[tmp2] == true
@command_window.finished(tmp3)
$qdata.moneyearned += $qdata.goldreward[tmp3]
$qdata.expearned += $qdata.expreward[tmp3]
$qdata.rpearned += $qdata.rpreward[tmp3]
$qdata.totalcompleted += 1
end
tmp += 10
tmp2 += 10
tmp3 +=1
end
# while loop determines if all are accessible
if $qdata.shownondisabledquests == true
int = 1
max = (($qdata.totalquests * 10) - 9) + 1
while int < max
$game_temp.qupdate[int] = true
int += 10
end
end
# Make quest status window
@qs_window = Quest_Status.new
@qs_window.x = 160
@qs_window.y = 0
# Determine PreQuest Number
preq = 2
temp = 1
query = false
if $qdata.totalfound != $qdata.totalcompleted
$qdata.whichprequest = 0
elsif $qdata.totalfound == $qdata.totalquests
$qdata.whichprequest = 1
else
while (query == false)
if $game_temp.qupdate[temp] == false
$qdata.whichprequest = preq
query = true
else
temp += 10
preq += 1
end
end
end
# Make quest info window
@qi_window = Quest_Info.new
@qi_window.x = 360
@qi_window.y = 0
# Make quest window
@status_window = Quest.new
@status_window.x = 160
@status_window.y = 180
Graphics.transition
# Main loop
loop do
# Update game screen
Graphics.update
# Update input information
Input.update
# Frame update
update
# Abort loop if screen is changed
if $scene != self
break
end
end
Graphics.freeze
# Dispose of windows
@command_window.dispose
@status_window.dispose
@qs_window.dispose
@qi_window.dispose
end
def update
@command_window.update
@status_window.update
if @command_window.active
update_command
return
end
if @status_window.active
update_status
return
end
end
#--------------------------------------------------------------------------
# * Frame Update (when command window is active)
#--------------------------------------------------------------------------
def update_command
# If B button was pressed
if Input.trigger?(Input::B)
# Play cancel SE
$game_system.se_play($data_system.cancel_se)
# Switch to map screen
$scene = Scene_Map.new
return
end
# If C button was pressed
if Input.trigger?(Input::C)
index = @command_window.index
#pattern on switch is index * 10 + 1
if $game_temp.qupdate[index * 10 + 1] == false
$game_system.se_play($data_system.buzzer_se)
return
else
$qdata.whichquest = index
$game_system.se_play($data_system.decision_se)
@status_window.dispose
@status_window = Quest.new
@status_window.x = 160
@status_window.y = 180
@status_window.update
end
return
end
end
end
#=======================================
# ** Quest_Status
# ** Created by coolmariners98
#------------------------------------------------------------------------------
# This displays what has been done so far in your quests (upper middle window)
#=======================================
class Quest_Status < Window_Base
def initialize
super(0, 0, 200, 180)
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(4, 0, 150, 32, "Total Quests: " + $qdata.totalquests.to_s)
self.contents.font.color = normal_color
self.contents.draw_text(4, 20, 150, 32, "Quests Found: " + $qdata.totalfound.to_s)
self.contents.font.color = system_color
self.contents.draw_text(4, 40, 150, 32, "Total Completed: " + $qdata.totalcompleted.to_s)
self.contents.font.color = normal_color
self.contents.draw_text(4, 80, 150, 32, "Money Earned: " + $qdata.moneyearned.to_s)
self.contents.font.color = system_color
self.contents.draw_text(4, 100, 150, 32, "Exp Earned: " + $qdata.expearned.to_s)
self.contents.font.color = normal_color
self.contents.draw_text(4, 120, 150, 32, "RP Earned: " + $qdata.rpearned.to_s)
end
end
#=======================================
# ** Quest_Info
# ** Created by coolmariners98
#------------------------------------------------------------------------------
# This displays all the quest information in the upper right window
#=======================================
class Quest_Info < Window_Base
def initialize
super(0, 0, 280, 180)
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(4, 0, 250, 32, "Where To Go")
self.contents.font.color = normal_color
self.contents.draw_text(4, 40, 250, 32, $qdata.preinfo[($qdata.whichprequest * 4)])
self.contents.draw_text(4, 60, 250, 32, $qdata.preinfo[(($qdata.whichprequest * 4) + 1)])
self.contents.draw_text(4, 80, 250, 32, $qdata.preinfo[(($qdata.whichprequest * 4) + 2)])
self.contents.draw_text(4, 100, 250, 32, $qdata.preinfo[(($qdata.whichprequest * 4) + 3)])
end
end
#=======================================
# ** Quest
# ** Created by coolmariners98
#------------------------------------------------------------------------------
# This displays all the quest information in the bottom right window
#=======================================
class Quest < Window_Selectable
def initialize
super(0, 0, 480, 300)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
self.active = false
self.index = -1
end
def refresh
self.contents.clear
if $qdata.totalfound != 0
bitmap = RPG::Cache.character($qdata.charsprite[$qdata.whichquest], 0)
cw = bitmap.width / 4
ch = bitmap.height / 4
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(4, 16, bitmap, src_rect)
self.contents.font.color = system_color
self.contents.draw_text(50, 0, 385, 45, "Name: " + $qdata.charname[$qdata.whichquest])
self.contents.font.color = normal_color
self.contents.draw_text(50, 0, 385, 80, "Location: " + $qdata.location[$qdata.whichquest])
self.contents.font.color = system_color
self.contents.draw_text(50, 0, 385, 115, "Reward: " + $qdata.textreward[$qdata.whichquest])
self.contents.font.color = normal_color
self.contents.draw_text(0, 0, 435, 175, "Quest Objectives:")
temp = $qdata.whichquest
script = (temp * 8)
easy = 0
switch = 2
while (switch < 10)
if $game_temp.qupdate[switch] == true
self.contents.font.color = disabled_color
self.contents.draw_text(0, 0, 435, 210 + (easy * 35), $qdata.objs[script])
else
self.contents.font.color = normal_color
self.contents.draw_text(0, 0, 435, 210 + (easy * 35), $qdata.objs[script])
end
easy += 1
script += 1
switch += 1
end
end
end
def update_cursor_rect
if @index < 0
self.cursor_rect.empty
else
self.cursor_rect.set(0, @index * 116, self.width - 32, 96)
end
end
end
#=======================================
# ** Window_Qmand
# ** Created by coolmariners98
#------------------------------------------------------------------------------
# This displays all the quest information in the bottom right window
#=======================================
class Window_Qmand < Window_Selectable
def initialize(width, commands)
super(0, 0, width, 480)
@item_max = commands.size
@commands = commands
self.contents = Bitmap.new(width - 32, @item_max * 32)
refresh
self.index = 0
end
def refresh
self.contents.clear
for i in 0...@item_max
draw_item(i, normal_color)
end
end
def draw_item(index, color)
self.contents.font.color = color
rect = Rect.new(4, 32 * index, self.contents.width - 8, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
self.contents.draw_text(rect, @commands[index])
end
def disable_item(index)
draw_item(index, disabled_color)
end
def delete_item(index)
rect = Rect.new(4, 32 * index, self.contents.width - 8, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
end
def finished(index)
draw_item(index, system_color)
end
end
Code:
#=======================================
# ** Scene_Quests
# ** Created by coolmariners98
#------------------------------------------------------------------------------
# Please do not copy and distribute claiming to have created this.
# I would like full credit, even though this script is kind of crappy.
#=======================================
class Quest_Data
attr_accessor :totalquests, :totalfound, :moneyearned, :expearned, :rpearned, :totalcompleted,
:showdisabledquests, :shownondisabledquests, :preinfo, :charsprite, :questname,
:charname, :location, :textreward, :goldreward, :expreward, :rpreward, :objs,
:whichquest, :whichprequest
def initialize
# ========DO NOT CHANGE======
@preinfo = []
@charsprite = []
@questname = []
@charname = []
@location = []
@textreward = []
@goldreward = []
@expreward = []
@rpreward = []
@objs = []
@totalfound = 0
@moneyearned = 0
@expearned = 0
@rpearned = 0
@totalcompleted = 0
@whichquest = 0
@whichprequest = 0
# =========================
# kinda big things
@showdisabledquests = false # displays all the quests, but they are disabled
@shownondisabledquests = false # makes all quests accessible
@totalquests = 15 # initialize the total number of quests you created
@preinfo.push("Finish the current quest") # info message for quest in progress
@preinfo.push(" ")
@preinfo.push(" ")
@preinfo.push(" ")
@preinfo.push("All quests completed!!") # info message for all quests done
@preinfo.push(" ")
@preinfo.push(" ")
@preinfo.push(" ")
# Quest 1 information
@preinfo.push("You should probably go and talk") # info that will show
@preinfo.push("to that strange looking lancer at") # in the "Where to Go?"
@preinfo.push("the top-right portion of the screen") # window prior to quest
@preinfo.push(" ")
@questname.push("Greeting") # the name of quest
@charsprite.push("009-Lancer01") # the name of the character sprite
@charname.push("Sir Lancelot") # the name of the character who gave the quest
@location.push("World Map") # the location of quest
@textreward.push("1000 Gold, 10 XP, 200 RP") # the text representation of the reward
@goldreward[0] = 1000 # the actual amount of gold reward
@expreward[0] = 10 # the actual amount of exp reward
@rpreward[0] = 200 # the actual amount of rp reward
@objs.push(" - You must go and find the chicken") # quest objective 1
@objs.push(" - You must give the chicken to the baby") # quest objective 2
@objs.push(" - Talk to the father for your reward") # quest objective 3
@objs.push(" ") # quest objective 4
@objs.push(" ") # quest objective 5
@objs.push(" ") # quest objective 6
@objs.push(" ") # quest objective 7
@objs.push(" ") # quest objective 8
# Quest 2 information
@preinfo.push("I think you are done until later") # info that will show
@preinfo.push(" ") # in the "Where to Go?"
@preinfo.push(" ") # window prior to quest
@preinfo.push(" ")
@questname.push("Just a filler") # the name of quest
@charsprite.push(" ") # the name of the character sprite
@charname.push(" ") # the name of the character who gave the quest
@location.push(" ") # the location of quest
@textreward.push(" ") # the text representation of the reward
@goldreward[1] = 0 # the actual amount of gold reward
@expreward[1] = 0 # the actual amount of exp reward
@rpreward[1] = 0 # the actual amount of rp reward
@objs.push(" ") # quest objective 1
@objs.push(" ") # quest objective 2
@objs.push(" ") # quest objective 3
@objs.push(" ") # quest objective 4
@objs.push(" ") # quest objective 5
@objs.push(" ") # quest objective 6
@objs.push(" ") # quest objective 7
@objs.push(" ") # quest objective 8
# Quest 3 information
@preinfo.push(" ") # info that will show
@preinfo.push(" ") # in the "Where to Go?"
@preinfo.push(" ") # window prior to quest
@preinfo.push(" ")
@questname.push("Just a filler") # the name of quest
@charsprite.push(" ") # the name of the character sprite
@charname.push(" ") # the name of the character who gave the quest
@location.push(" ") # the location of quest
@textreward.push(" ") # the text representation of the reward
@goldreward[2] = 0 # the actual amount of gold reward
@expreward[2] = 0 # the actual amount of exp reward
@rpreward[2] = 0 # the actual amount of rp reward
@objs.push(" ") # quest objective 1
@objs.push(" ") # quest objective 2
@objs.push(" ") # quest objective 3
@objs.push(" ") # quest objective 4
@objs.push(" ") # quest objective 5
@objs.push(" ") # quest objective 6
@objs.push(" ") # quest objective 7
@objs.push(" ") # quest objective 8
# Quest 4 information
@preinfo.push(" ") # info that will show
@preinfo.push(" ") # in the "Where to Go?"
@preinfo.push(" ") # window prior to quest
@preinfo.push(" ")
@questname.push("Just a filler") # the name of quest
@charsprite.push(" ") # the name of the character sprite
@charname.push(" ") # the name of the character who gave the quest
@location.push(" ") # the location of quest
@textreward.push(" ") # the text representation of the reward
@goldreward[3] = 0 # the actual amount of gold reward
@expreward[3] = 0 # the actual amount of exp reward
@rpreward[3] = 0 # the actual amount of rp reward
@objs.push(" ") # quest objective 1
@objs.push(" ") # quest objective 2
@objs.push(" ") # quest objective 3
@objs.push(" ") # quest objective 4
@objs.push(" ") # quest objective 5
@objs.push(" ") # quest objective 6
@objs.push(" ") # quest objective 7
@objs.push(" ") # quest objective 8
# Quest 5 information
@preinfo.push(" ") # info that will show
@preinfo.push(" ") # in the "Where to Go?"
@preinfo.push(" ") # window prior to quest
@preinfo.push(" ")
@questname.push("Just a filler") # the name of quest
@charsprite.push(" ") # the name of the character sprite
@charname.push(" ") # the name of the character who gave the quest
@location.push(" ") # the location of quest
@textreward.push(" ") # the text representation of the reward
@goldreward[4] = 0 # the actual amount of gold reward
@expreward[4] = 0 # the actual amount of exp reward
@rpreward[4] = 0 # the actual amount of rp reward
@objs.push(" ") # quest objective 1
@objs.push(" ") # quest objective 2
@objs.push(" ") # quest objective 3
@objs.push(" ") # quest objective 4
@objs.push(" ") # quest objective 5
@objs.push(" ") # quest objective 6
@objs.push(" ") # quest objective 7
@objs.push(" ") # quest objective 8
# Quest 6 information
@preinfo.push(" ") # info that will show
@preinfo.push(" ") # in the "Where to Go?"
@preinfo.push(" ") # window prior to quest
@preinfo.push(" ")
@questname.push("Just a filler") # the name of quest
@charsprite.push(" ") # the name of the character sprite
@charname.push(" ") # the name of the character who gave the quest
@location.push(" ") # the location of quest
@textreward.push(" ") # the text representation of the reward
@goldreward[5] = 0 # the actual amount of gold reward
@expreward[5] = 0 # the actual amount of exp reward
@rpreward[5] = 0 # the actual amount of rp reward
@objs.push(" ") # quest objective 1
@objs.push(" ") # quest objective 2
@objs.push(" ") # quest objective 3
@objs.push(" ") # quest objective 4
@objs.push(" ") # quest objective 5
@objs.push(" ") # quest objective 6
@objs.push(" ") # quest objective 7
@objs.push(" ") # quest objective 8
# Quest 7 information
@preinfo.push(" ") # info that will show
@preinfo.push(" ") # in the "Where to Go?"
@preinfo.push(" ") # window prior to quest
@preinfo.push(" ")
@questname.push("Just a filler") # the name of quest
@charsprite.push(" ") # the name of the character sprite
@charname.push(" ") # the name of the character who gave the quest
@location.push(" ") # the location of quest
@textreward.push(" ") # the text representation of the reward
@goldreward[6] = 0 # the actual amount of gold reward
@expreward[6] = 0 # the actual amount of exp reward
@rpreward[6] = 0 # the actual amount of rp reward
@objs.push(" ") # quest objective 1
@objs.push(" ") # quest objective 2
@objs.push(" ") # quest objective 3
@objs.push(" ") # quest objective 4
@objs.push(" ") # quest objective 5
@objs.push(" ") # quest objective 6
@objs.push(" ") # quest objective 7
@objs.push(" ") # quest objective 8
# Quest 8 information
@preinfo.push(" ") # info that will show
@preinfo.push(" ") # in the "Where to Go?"
@preinfo.push(" ") # window prior to quest
@preinfo.push(" ")
@questname.push("Just a filler") # the name of quest
@charsprite.push(" ") # the name of the character sprite
@charname.push(" ") # the name of the character who gave the quest
@location.push(" ") # the location of quest
@textreward.push(" ") # the text representation of the reward
@goldreward[7] = 0 # the actual amount of gold reward
@expreward[7] = 0 # the actual amount of exp reward
@rpreward[7] = 0 # the actual amount of rp reward
@objs.push(" ") # quest objective 1
@objs.push(" ") # quest objective 2
@objs.push(" ") # quest objective 3
@objs.push(" ") # quest objective 4
@objs.push(" ") # quest objective 5
@objs.push(" ") # quest objective 6
@objs.push(" ") # quest objective 7
@objs.push(" ") # quest objective 8
# Quest 9 information
@preinfo.push(" ") # info that will show
@preinfo.push(" ") # in the "Where to Go?"
@preinfo.push(" ") # window prior to quest
@preinfo.push(" ")
@questname.push("Just a filler") # the name of quest
@charsprite.push(" ") # the name of the character sprite
@charname.push(" ") # the name of the character who gave the quest
@location.push(" ") # the location of quest
@textreward.push(" ") # the text representation of the reward
@goldreward[8] = 0 # the actual amount of gold reward
@expreward[8] = 0 # the actual amount of exp reward
@rpreward[8] = 0 # the actual amount of rp reward
@objs.push(" ") # quest objective 1
@objs.push(" ") # quest objective 2
@objs.push(" ") # quest objective 3
@objs.push(" ") # quest objective 4
@objs.push(" ") # quest objective 5
@objs.push(" ") # quest objective 6
@objs.push(" ") # quest objective 7
@objs.push(" ") # quest objective 8
# Quest 10 information
@preinfo.push(" ") # info that will show
@preinfo.push(" ") # in the "Where to Go?"
@preinfo.push(" ") # window prior to quest
@preinfo.push(" ")
@questname.push("Just a filler") # the name of quest
@charsprite.push(" ") # the name of the character sprite
@charname.push(" ") # the name of the character who gave the quest
@location.push(" ") # the location of quest
@textreward.push(" ") # the text representation of the reward
@goldreward[9] = 0 # the actual amount of gold reward
@expreward[9] = 0 # the actual amount of exp reward
@rpreward[9] = 0 # the actual amount of rp reward
@objs.push(" ") # quest objective 1
@objs.push(" ") # quest objective 2
@objs.push(" ") # quest objective 3
@objs.push(" ") # quest objective 4
@objs.push(" ") # quest objective 5
@objs.push(" ") # quest objective 6
@objs.push(" ") # quest objective 7
@objs.push(" ") # quest objective 8
# Quest 11 information
@preinfo.push(" ") # info that will show
@preinfo.push(" ") # in the "Where to Go?"
@preinfo.push(" ") # window prior to quest
@preinfo.push(" ")
@questname.push("Just a filler") # the name of quest
@charsprite.push(" ") # the name of the character sprite
@charname.push(" ") # the name of the character who gave the quest
@location.push(" ") # the location of quest
@textreward.push(" ") # the text representation of the reward
@goldreward[10] = 0 # the actual amount of gold reward
@expreward[10] = 0 # the actual amount of exp reward
@rpreward[10] = 0 # the actual amount of rp reward
@objs.push(" ") # quest objective 1
@objs.push(" ") # quest objective 2
@objs.push(" ") # quest objective 3
@objs.push(" ") # quest objective 4
@objs.push(" ") # quest objective 5
@objs.push(" ") # quest objective 6
@objs.push(" ") # quest objective 7
@objs.push(" ") # quest objective 8
# Quest 12 information
@preinfo.push(" ") # info that will show
@preinfo.push(" ") # in the "Where to Go?"
@preinfo.push(" ") # window prior to quest
@preinfo.push(" ")
@questname.push("Just a filler") # the name of quest
@charsprite.push(" ") # the name of the character sprite
@charname.push(" ") # the name of the character who gave the quest
@location.push(" ") # the location of quest
@textreward.push(" ") # the text representation of the reward
@goldreward[11] = 0 # the actual amount of gold reward
@expreward[11] = 0 # the actual amount of exp reward
@rpreward[11] = 0 # the actual amount of rp reward
@objs.push(" ") # quest objective 1
@objs.push(" ") # quest objective 2
@objs.push(" ") # quest objective 3
@objs.push(" ") # quest objective 4
@objs.push(" ") # quest objective 5
@objs.push(" ") # quest objective 6
@objs.push(" ") # quest objective 7
@objs.push(" ") # quest objective 8
# Quest 13 information
@preinfo.push(" ") # info that will show
@preinfo.push(" ") # in the "Where to Go?"
@preinfo.push(" ") # window prior to quest
@preinfo.push(" ")
@questname.push("Just a filler") # the name of quest
@charsprite.push(" ") # the name of the character sprite
@charname.push(" ") # the name of the character who gave the quest
@location.push(" ") # the location of quest
@textreward.push(" ") # the text representation of the reward
@goldreward[12] = 0 # the actual amount of gold reward
@expreward[12] = 0 # the actual amount of exp reward
@rpreward[12] = 0 # the actual amount of rp reward
@objs.push(" ") # quest objective 1
@objs.push(" ") # quest objective 2
@objs.push(" ") # quest objective 3
@objs.push(" ") # quest objective 4
@objs.push(" ") # quest objective 5
@objs.push(" ") # quest objective 6
@objs.push(" ") # quest objective 7
@objs.push(" ") # quest objective 8
# Quest 14 information
@preinfo.push(" ") # info that will show
@preinfo.push(" ") # in the "Where to Go?"
@preinfo.push(" ") # window prior to quest
@preinfo.push(" ")
@questname.push("Just a filler") # the name of quest
@charsprite.push(" ") # the name of the character sprite
@charname.push(" ") # the name of the character who gave the quest
@location.push(" ") # the location of quest
@textreward.push(" ") # the text representation of the reward
@goldreward[13] = 0 # the actual amount of gold reward
@expreward[13] = 0 # the actual amount of exp reward
@rpreward[13] = 0 # the actual amount of rp reward
@objs.push(" ") # quest objective 1
@objs.push(" ") # quest objective 2
@objs.push(" ") # quest objective 3
@objs.push(" ") # quest objective 4
@objs.push(" ") # quest objective 5
@objs.push(" ") # quest objective 6
@objs.push(" ") # quest objective 7
@objs.push(" ") # quest objective 8
# Quest 15 information
@preinfo.push(" ") # info that will show
@preinfo.push(" ") # in the "Where to Go?"
@preinfo.push(" ") # window prior to quest
@preinfo.push(" ")
@questname.push("Just a filler") # the name of quest
@charsprite.push(" ") # the name of the character sprite
@charname.push(" ") # the name of the character who gave the quest
@location.push(" ") # the location of quest
@textreward.push(" ") # the text representation of the reward
@goldreward[14] = 0 # the actual amount of gold reward
@expreward[14] = 0 # the actual amount of exp reward
@rpreward[14] = 0 # the actual amount of rp reward
@objs.push(" ") # quest objective 1
@objs.push(" ") # quest objective 2
@objs.push(" ") # quest objective 3
@objs.push(" ") # quest objective 4
@objs.push(" ") # quest objective 5
@objs.push(" ") # quest objective 6
@objs.push(" ") # quest objective 7
@objs.push(" ") # quest objective 8
end
end
Put this under all the other instance variables
attr_accessor : qupdate # for the quest script
Then put this at the bottom of "initialize"
@qupdate = []
for i in 0...5000
@qupdate = false
end
attr_accessor : qupdate # for the quest script
Then put this at the bottom of "initialize"
@qupdate = []
for i in 0...5000
@qupdate = false
end
Add this below all the others
Marshal.dump($game_temp.qupdate, file)
Marshal.dump($game_temp.qupdate, file)
Add this below all the others
$game_temp.qupdate = Marshal.load(file)
$game_temp.qupdate = Marshal.load(file)
Instructions
- To edit data just simply edit Quest_Data, there is no need to edit anything else!!
- How the qupdate switches work (to set on in game just call script and type $game_temp.qupdate[#] = true, where # is the number switch you want to turn on:
qupdate 1, 11, 21, 31, 41, etc. are used for giving quests, aka will make then quests appear in the menu
qupdate 10, 20, 30, 40, 50, etc. are used for ending quests, aka will make the quest complete
qupdate 2-9, 12-19, 13-29, etc. are used for quest objectives, aka will make quest objectives fade out
Q: How do you cut out RP, I don't like it?
A: http://www.rmxp.org/forums/showthread.php?t=6305
Q: Quests are not completing!!
A: Yes they do, you have to set qupdate[10,20,30,40,etc] to true in order to complete the quest. Just updating the steps is not enough.
Compatibility
Everything I think.
Credits and Thanks
First off thanks to Trickster for helping me a lot with my script
- Bestiary by Momomo
- Scene_Prize v1.0 by RubyMatt
- Event Text Display by ???
What I fixed 8/2/07
- you can now save and load without the quests disappearing
- eliminated a lot of extra code
What I fixed 8/8/06
- no need for switches anymore, instead use $game_temp.qupdate[#] = true for a switch
- can handle an unlimited number of quests
- fixed the status problem
- code is now under 400 lines of code
- made more user friendly