[XP] Quest Log System

Started by G_G, May 31, 2009, 08:12:58 pm

Previous topic - Next topic

G_G

May 31, 2009, 08:12:58 pm Last Edit: July 21, 2011, 02:58:04 am by game_guy
Quest Log System
Authors: game_guy
Version: 3.0
Type: Mission Logger
Key Term: Misc System



Introduction

A script that keeps track of quests you obtain and complete.


Features


  • Marks quest names with a yellow color if they're completed
  • Easy to setup one quest
  • Be able to use a fairly long description
  • Be able to display a picture
  • Easy to add and complete a quest
  • More compatible than earlier versions



Screenshots
Spoiler: ShowHide



Demo

Mediafire


Script

Spoiler: ShowHide

#===============================================================================
# Quest Log System
# Author game_guy
# Version 3.0
#-------------------------------------------------------------------------------
# Intro:
# A script that keeps track of quests you obtain and complete.
#
# Features:
# Marks quest names with a yellow color if they're completed
# Easy to setup one quest
# Be able to use a fairly long description
# Be able to display a picture
# Easy to add and complete a quest
# More compatible than earlier versions
#
# Instructions:
# Scroll down a bit until you see # Being Config. Follow the instructions there.
# Scroll below that and you'll see Begin Quest Setup. Follow the steps there.
#
# Script Calls:
# Quest.add(id) ~ Adds the quest(id) to the parties quests.
# Quest.take(id) ~ Takes the quest(id) from the party.
# Quest.complete(id) ~ Makes the quest(id) completed.
# Quest.completed?(id) ~ Returns true if the quest(id) is completed.
# Quest.has?(id) ~ Returns true if the party has quest(id).
#
# Credits:
# game_guy ~ for making it
# Beta Testers ~ Sally and Landith
# Blizzard ~ Small piece of code I borrowed from his bestiary
#===============================================================================
module GameGuy
 #==================================================
 # Begin Config
 # UsePicture ~ true means it'll show pictures in
 #              the quests, false it wont.
 #==================================================
 UsePicture   = true
 
 def self.qreward(id)
   case id
   #==================================================
   # Quest Reward
   # Use when x then return "Reward"
   # x = id, Reward = reward in quotes
   #==================================================
   when 1 then return "100 Gold"
   when 2 then return "3 Potions"
   when 3 then return "Strength Ring"
   end
   return "????"
 end
 
 def self.qpicture(id)
   case id
   #==================================================
   # Quest Picture
   # Use when x then return "picture"
   # x = id, picture = picutre name in quotes
   #==================================================
   when 1 then return "ghost"
   end
   return nil
 end
 
 def self.qname(id)
   case id
   #==================================================
   # Quest Name
   # Use when x then return "name"
   # x = id, name = quest name in quotes
   #==================================================
   when 1 then return "Village Hunt"
   when 2 then return "Pay Tab"
   when 3 then return "Hunting Knife"
   end
   return ""
 end
 
 def self.qlocation(id)
   case id
   #==================================================
   # Quest Location
   # Use when x then return "location"
   # x = id, location = location in quotes
   #==================================================
   when 1 then return "Arton Woods"
   when 2 then return "Eeka"
   when 3 then return "Eeka"
   end
   return "????"
 end
 
 def self.qdescription(id)
   case id
   #==================================================
   # Quest Description
   # Use when x then return "description"
   # x = id, description = quest description in quotes
   #==================================================
   when 1 then return "Capture 10 animals and bring back the meat."
   when 2 then return "Bring gold to Jarns Defense to pay her tab."
   when 3 then return "Go get Kip a hunting knife from Eeka."
   end
   return ""
 end
 
end

module Quest
 
 def self.add(id)
   $game_party.add_quest(id)
 end
 
 def self.take(id)
   $game_party.take_quest(id)
 end
 
 def self.complete(id)
   $game_party.complete(id)
 end
 
 def self.completed?(id)
   return $game_party.completed?(id)
 end
 
 def self.has?(id)
   return $game_party.has_quest?(id)
 end
 
end
 
class Game_Party
 
 attr_accessor :quests
 attr_accessor :completed
 
 alias gg_quests_lat initialize
 def initialize
   @quests = []
   @completed = []
   gg_quests_lat
 end
 
 def add_quest(id)
   unless @quests.include?(id)
     @quests.push(id)
   end
 end
 
 def completed?(id)
   return @completed.include?(id)
 end
 
 def complete(id)
   unless @completed.include?(id)
     if @quests.include?(id)
       @completed.push(id)
     end
   end
 end
 
 def has_quest?(id)
   return @quests.include?(id)
 end
 
 def take_quest(id)
   @quests.delete(id)
   @completed.delete(id)
 end
 
end
class Scene_Quest
 def main
   @quests = []
   for i in $game_party.quests
     @quests.push(GameGuy.qname(i))
   end
   @map = Spriteset_Map.new
   @quests2 = []
   for i in $game_party.quests
     @quests2.push(i)
   end
   @quests.push("No Quests") if @quests.size < 1
   @quests_window = Window_Command.new(160, @quests)
   @quests_window.height = 480
   @quests_window.back_opacity = 110
   Graphics.transition
   loop do
     Graphics.update
     Input.update
     update
     if $scene != self
       break
     end
   end
   @quests_window.dispose
   @quest_info.dispose if @quest_info != nil
   @map.dispose
 end
 def update
   @quests_window.update
   if @quests_window.active
     update_quests
     return
   end
   if @quest_info != nil
     update_info
     return
   end
 end
 def update_quests
   if Input.trigger?(Input::B)
     $game_system.se_play($data_system.cancel_se)
     $scene = Scene_Menu.new
     return
   end
   if Input.trigger?(Input::C)
     $game_system.se_play($data_system.decision_se)
     @quest_info = Window_QuestInfo.new(@quests2[@quests_window.index])
     @quest_info.back_opacity = 110
     @quests_window.active = false
     return
   end
 end
 def update_info
   if Input.trigger?(Input::B)
     $game_system.se_play($data_system.cancel_se)
     @quests_window.active = true
     @quest_info.dispose
     @quest_info = nil
     return
   end
 end
end
class Window_QuestInfo < Window_Base
 def initialize(quest)
   super(160, 0, 480, 480)
   self.contents = Bitmap.new(width - 32, height - 32)
   @quest = quest
   refresh
 end
 def refresh
   self.contents.clear
   if GameGuy::UsePicture
     pic = GameGuy.qpicture(@quest)
     bitmap = RPG::Cache.picture(GameGuy.qpicture(@quest)) if pic != nil
     rect = Rect.new(0, 0, bitmap.width, bitmap.height) if pic != nil
     self.contents.blt(480-bitmap.width-32, 0, bitmap, rect) if pic != nil
   end
   self.contents.font.color = system_color
   self.contents.draw_text(0, 0, 480, 32, "Quest:")
   self.contents.font.color = normal_color
   self.contents.draw_text(0, 32, 480, 32, GameGuy.qname(@quest))
   self.contents.font.color = system_color
   self.contents.draw_text(0, 64, 480, 32, "Reward:")
   self.contents.font.color = normal_color
   self.contents.draw_text(0, 96, 480, 32, GameGuy.qreward(@quest))
   self.contents.font.color = system_color
   self.contents.draw_text(0, 128, 480, 32, "Location:")
   self.contents.font.color = normal_color
   self.contents.draw_text(0, 160, 480, 32, GameGuy.qlocation(@quest))
   self.contents.font.color = system_color
   self.contents.draw_text(0, 192, 480, 32, "Completion:")
   self.contents.font.color = normal_color
   if $game_party.completed.include?(@quest)
     self.contents.font.color = crisis_color
     self.contents.draw_text(0, 224, 480, 32, "Completed")
   else
     self.contents.font.color = normal_color
     self.contents.draw_text(0, 224, 480, 32, "In Progress")
   end
   self.contents.font.color = system_color
   self.contents.draw_text(0, 256, 480, 32, "Description:")
   self.contents.font.color = normal_color
   text = self.contents.slice_text(GameGuy.qdescription(@quest), 480)
   text.each_index {|i|
       self.contents.draw_text(0, 288 + i*32, 480, 32, text[i])}
 end
end
class Bitmap
 
 def slice_text(text, width)
   words = text.split(' ')
   return words if words.size == 1
   result, current_text = [], words.shift
   words.each_index {|i|
       if self.text_size("#{current_text} #{words[i]}").width > width
         result.push(current_text)
         current_text = words[i]
       else
         current_text = "#{current_text} #{words[i]}"
       end
       result.push(current_text) if i >= words.size - 1}
   return result
 end
 
end


If you use RMX-OS and you would like to use this script with it. Place the above script below RMX-OS. Then place the plugin below beneath the above script.
Spoiler: ShowHide
if !defined?(RMXOS) || RMXOS::VERSION < 1.09
 raise 'ERROR: The "Blizz-ABS Controller" requires RMX-OS 1.09 or higher.'
end
module RMXOS
 module Options
   SAVE_DATA[Game_Party].push('@quests')
   SAVE_DATA[Game_Party].push('@completed')
 end
end



Instructions

In the script.

Looking for a fast way to configure this? Check out mroedesigns' config tool!
http://forum.chaos-project.com/index.php/topic,10125.new.html#new


Compatibility

Not tested with SDK.
Works with all of my scripts and blizzard's scripts. (Tested with most add-ons and all of his scripts)


Credits and Thanks


  • game_guy ~ Making it
  • Beta Testers ~ Sally and Landith



Author's Notes

Enjoy and give credits

Sally

Very nice and simple script, i suggest using it for its simplicity.

G_G

thanks sally I decided to make my own quest log when I couldnt find one with a right layout and/or making a quest easily.

Yin

OK, I just tested it out and it's actually pretty good! I liked it, but the quest info does look a bit empty. My suggestion, try putting the actual description in the area that's empty (the complete right side). Throw in an option to show a picture on the bottom. I did a quick mockup. Here:

Those would make it perfect. But those are just suggestions.
Newly formed MUGEN, RPG Maker, and BOR forum.
http://cavernofcreativity.com
Opening in September
My Partner in crime = TREXRELL

Calintz


Kagutsuchi

It works good, serves its purpose. Go with Yin's suggestion, thats all I can say.

G_G

*Updates* New features are
Longer Descriptions
Description is in better format
$quest.complete(item id) now completes the quest
And more

Holyrapid

So, if i want to add the quest menu option to the main menu in the game, do i just add the $quest.new thing somewhere? And if so, is it addable to STCMS (Storm tronics CMS)

Jackolas

you need to add
@scene = Scene_Quest.new

somewhere in the STCMS script

Holyrapid

Does it matter where i approx pput it? Do i just shove it to the end or, into some other part...

G_G

as long as you dont have a custom save system above it you can place it anywhere.

Holyrapid

Do i add the snipplet as it´s own, or do i put inside another script?
You approx. know what the STCMS looks like, so i just want to add a manu for the quest created with your quest script.

G_G

Well if you're using this with STCMS just place it above it. It can be under neath it and still work but the scripts need to be in order according to blizz's.

RTP Scripts
SDK (If have it)
custom scripts
blizz's scripts
main

Hellfire Dragon

Awesomeness :D Will this work with RMX-OS?

G_G

The saving will need to be a bit altered is all. So it saves quests. I'll make an rmx-os add on when a later version of rmx-os comes out. If you want it now I'll make one.

Holyrapid

I´ve got working now. Thanks to Jackolas.

Blizzard

Quote from: Hellfire Dragon on June 28, 2009, 06:14:06 pm
Awesomeness :D Will this work with RMX-OS?


You'll have to define another save variable in RMX-OS for this to work properly.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

G_G

Which I saw in the options. I've already figured out how to do it all. It shouldnt be too hard to make a small side plugin for it ;)

G_G


Calintz

I like this system.
It's quite simple, and very effective.

vacancydenied

Is it possible to add this as something you can view in the menu? I really like this script it seems simple enough for a noob like me to use. I might add it once I flesh out my game some more but after I get all the effects from the scripts I am using just right. =)
Nothing goes as planned but I keep going forward.


G_G

*Updates*
Changed some features and made it way more compatible. An RMX-OS Plugin will be made shortly. If anyone needs it right away let me know.

Let me know if there's anything wrong with this. And sorry for the late update, I actually had the updated script for over 2 months now. Anyways here it is.

Dudeidu

Hey,
Great script, ifind it realy useful   :).
I have a little issue:
When there is no quest active and i try to open the quest window this is what happens:


Thanks  :D.

G_G

Maybe you should disable opening quests until a quest is obtained then. I really don't have a fix for it.

I can try to figure one out later.

crzyone9584

When will the rmx-os add on be for this? It's an awesome one but i have no clue how to save to the system yet. Been trying to figure it out with other saving parts in different scripts.

G_G

Updated it with rmx-os plugin.

crzyone9584

I got the following error

QuoteScript '(RMX-OS) Quest System Save' line 6: NameError Occurred.
uninitialized constant RMXOS::OPTIONS::SAVE_DATA


should i re-create my save table?

G_G

Fixed. I spelled Options as OPTIONS.

crzyone9584

Since i added the save system I'm getting this error

QuoteScript 'Quest Log' line 149: NoMethodError Occurred.
undefined method 'include?' for nil:NilClass


I get that when i add a quest.

G_G

You should probably wipe your save data then. If that doesn't work I'll take a look at it later.

crzyone9584

Just a question but why does it require Blizz-ABS ?

if !defined?(RMXOS) || RMXOS::VERSION < 1.09
  raise 'ERROR: The "Blizz-ABS Controller" requires RMX-OS 1.09 or higher.'


Blizzard

Quote from: Hellfire's G_G on May 31, 2009, 08:12:58 pm
If you use RMX-OS and you would like to use this script with it. Place the above script below RMX-OS. Then place the plugin below beneath the above script.
if !defined?(RMXOS) || RMXOS::VERSION < 1.09
 raise 'ERROR: The "Blizz-ABS Controller" requires RMX-OS 1.09 or higher.'
end
module RMXOS
 module Options
   SAVE_DATA[Game_Party].push('@quests')
   SAVE_DATA[Game_Party].push('@completed')
 end
end


G_G just didn't rename the error message that is being displayed.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

crzyone9584

so i can replace that with

raise 'ERROR: "The Quest Log" requires RMX-OS 1.09 or higher'


Blizzard

Yeah. It's just an error message, it's not relevant for the player, only for the game developer.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

G_G

I forgot to change the error message. -_- Copied and pasted code D:

Blizzard

If you hadn't take it from one of my scripts, you'd have taken it from the chapter about plugins in the manual so it's fine. :P
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Sima Yi

Quite a nice script and I should have used it earlier  :P

Alton Wyte

What command would I use to check if there are no quests, so that it will play the buzzer instead of throwing an error? And What command would I put in Scene_Save to save the quests?

G_G

The quests save on its own. And I put up a fixed version. It should fix that error.

Alton Wyte

I replaced it, but now whenever I try to enter the menu the RGSS player stops working.

Landith

That would be because your using an illegal version of RMXP...
I'm too tired to think of how to fix it, I know it's really simple like changing the J to an E and the last number to a 2.
In the config file with your game.

Alton Wyte

No, I have the legal version. I got it from the RMXP site and purchased it.

G_G

It works fine for me. So it might be another script conflicting with it. I just added one line so it doesnt crash anymore. Thats it.

Alton Wyte

I don't know why, I did nothing, but the next day I got on and it didn't crash anymore.

TheSabreStorm

Okay...so...  I feel COMPLETELY stupid at the moment.  It's been awhile since I messed with RMXP, so I'm a bit rusty on things.

Regardless, I can't figure out just where to put this script.  I don't have any other scripts (yet) in the database, so where does this go, exactly?

WhiteRose

Below everything else, except Main. Once you begin to use more scripts, Blizz posted a sticky topic showing what the order in which you should place your scripts.

TheSabreStorm

Okay...well...I didn't see this one listed in Blizzard's post, presumably because this isn't his.  Either way, I put it below all the RTP scripts and above main, but it's not doing anything that I can tell.  I named it Quest Log System.  Is this incorrect?

WhiteRose

No, that's correct. The script is functioning properly. To see your quest log, you must use a script call containing:
$scene = Scene_Quest.new

For instructions on adding quests, marking them as complete, etc., see the instructions as the beginning of the script. If you need more help, try downloading the demo in the first post and seeing how it is done.

TheSabreStorm

Okay...  I'm stupid.

Do you have to set the thing up on an item or something?  I used the script call on an action-button triggered event and it pulled the log up no problem.  ><

crzyone9584

Quote from: TheSabreStorm on March 23, 2010, 11:22:36 pm
Okay...  I'm stupid.

Do you have to set the thing up on an item or something?  I used the script call on an action-button triggered event and it pulled the log up no problem.  ><



All quests are set up through the script. If you read threw the script you will notice how it is set up.

TheSabreStorm

Yeah, I can see that much.  I just couldn't figure out how to get the thing initiated.  Now that I have that figured out, the rest should be breezy.  Before I get too far into it, though, anybody have any idea how to impose a time limit on a quest?  I have to rewrite my entire scripts from before that I had for random weather effects, day-to-night shifts, and the calendar...but that won't be too hard.  Included in that whole script sequence was an idea for time-limited quests, but I never got around to doing it before my computer crashed and I lost all my stuff.

WhiteRose

A time limit meaning a certain amount of in-game days, or a certain amount of real time minutes? The minutes timer is already hard-coded into the RMXP program. For an in-game amount of time, you'd need to be using a system such as Blizz's ATES. Then do something like this:
1. When the timer begins, store the hour (or day amount; for help with setting up days, see my Calendar System in the Event Systems Database) to a variable.
2. Add a certain amount to that variable, indicating when the time would run out.
3. Create a Parallel Process event (make it a common event as well if the player will be going between maps) that checks if the time is greater than the variable. If so, then call the quest failure or game over screen or whatever.

There might be some flaws with this system as I just wrote it as I thought of it, but with a little tweaking you should be able to get it to work with whatever you need.

TheSabreStorm

Well, as I said, I had an event system set up that basically began a timer at the start of the game.  This timer controlled the day-to-night sequence and initialized the random weather generator.  If you slept at an inn, it automatically bumped the "game time" to the next day.  It all had a controlled day, day of the week week, month, and year system set up and an item that allowed you to pull the information to see the time, day, day of the week, month, and year.

I could easily institute it with this system, I think, but as I said, I have to go back and completely redo my system since I lost all the event scripting for it.  I was mostly just curious to see if anyone had another solution.  I'll be sure to check out your Calendar System, though.

flrodude

I'm confused.  :???:  Ok, i added a new quest into the person's log, but how do i OPEN the log?

G_G

Scene_Quest.new sorry for not placing in instructions

lonely_cubone

To be slightly more precise, call a script command, with the following code:

$scene = Scene_Quest.new

Just in case you don't know the exact syntax ;)

Murd

I'm currently using this script and found out it is very useful, simple but effective.
However; I'm not very good at Eng so I don't really understand how to use it
properly..

Here is a simulated quest senario, (please answer my ???)

1) Once you accept a quest -> call script Quest.add(id)
2) Suppose a quest you accepted is to bring back 10 potions to the quest giver,
    when you already got 10 -> call script ???
3) When you return potions to the quest giver -> call script ???

As the description says "Marks quest names with a yellow color if they're completed",
how to make the quest name marked yellow once complete?

Firstly I tried figure it out but I couldn't find the difference between
quest.complete(id) and quest.completed?(id) and what is the purpose of
call script quest.had?(id) ??

Can anyone help me about this?

Thank you so much,




nathmatt

the difference between quest.complete(id) and quest.completed?(id) is that quest.complete(id) completes the quest but quest.completed?(id) lets you know if the quest had been completed
Join Dead Frontier
Sorry, I will no longer be scripting for RMXP. I may or may not give support for my scripts. I don't have the will to script in RGSS anymore.
My script


Sacred Nym

Quote from: Murd on June 23, 2010, 09:39:40 am
1) Once you accept a quest -> call script Quest.add(id)

Correct

Quote2) Suppose a quest you accepted is to bring back 10 potions to the quest giver,
    when you already got 10 -> call script ???

No, what you want to do is set a variable equal to the number of potions in the player's inventory like so:
Spoiler: ShowHide


Then make a conditional branch checking if the player has enough:
Spoiler: ShowHide


Quote3) When you return potions to the quest giver -> call script ???

Quest.complete(id)

QuoteAs the description says "Marks quest names with a yellow color if they're completed",
how to make the quest name marked yellow once complete?

This is done automatically with Quest.complete

QuoteFirstly I tried figure it out but I couldn't find the difference between
quest.complete(id) and quest.completed?(id) and what is the purpose of
call script quest.had?(id) ??

Quest.complete marks the quest as completed. Quest.completed? is used with a conditional branch:
Spoiler: ShowHide


It checks if the quest has been marked as completed.

"Quest.has?" checks if the player has received the quest.
Quote昨日の自分に「さようなら」
Say "Goodbye" to who you were yesterday.

Murd

Thank you so much Sacred Nym !!
I understand the logic of the script now.

I just wondered about marking the quest name yellow thing as when I call script quest.complete(id),
it only shows the quest status "completed" in yellow but not the quest name

Unleashed

Hello,

i'm new here and i must say all of ur scripts are awesome  :D

But one question, i want to use the questlog in pokemon essentials
i did everything in the introductions but when i add a quest (Quest.add(1))
this error came up:
Spoiler: ShowHide


please help me to fix this  :blargh:

Thanks :nod:

Alton Wyte

Pokemon Essentials is VERY incompatible with almost all scripts because it replaces ALL the default scripts.

Unleashed

Quote from: Alton Wyte on July 11, 2010, 12:57:49 pm
Pokemon Essentials is VERY incompatible with almost all scripts because it replaces ALL the default scripts.

is there anyway to get it working? :(

WhiteRose

Judging by your title, it looks like you are trying to make an online Pokemon game. I might be mistaken, but you are probably trying to use either Netplay or RMX-OS. I don't know anything about Netplay, so I can't help you there, but if you're trying to use RMX-OS, I believe it is incompatible with Pokemon Essentials to quite a large degree. Combining them would require a special version of RMX-OS that is not planned on being released to the public.

Unleashed

i got the scripts by decrypting pokemon neon online but i read this thread http://forum.chaos-project.com/index.php?topic=5731.0 and now i know it was wrong...
sry i will not ask anymore :shy:

KRoP

  For some reason Ultimate Font Override from Tons isn't working with this script. D: I looked through the Quest Log script but the only things that seemed related to that Tons script were bitmap.new and font.color = system_color.  The line that returned an error was init_font_override_later(w, h)
  Any ideas on why this is happening?  I apologize for bringing up a seemingly unrelated script in this thread but I really don't get why this would happen.

G_G

I'll look at it sometime later. Besides expect an update soon. My complete overhaul of this systems gonna be awesome.

Xunbreakable89X

Um I have a question. How do I call the question screen?
I have a custom menu, but I wanna be able to bring it up using a common event. Whats the script to bring it up?

G_G


Xunbreakable89X

Quote from: game_guy on July 24, 2010, 11:17:05 pm
Scene_Quest.new

For some reason its not working for me. Should it be a comment or a Call script event?


Xunbreakable89X

Ehh still not working, fuck it:/

Sacred Nym

$scene = Scene_Quest.new

Need the full line.
Quote昨日の自分に「さようなら」
Say "Goodbye" to who you were yesterday.

keyonne

I am curious as to whether it would be possible to have 'sets' of quests. In my game, I have allowed for the player to have 4 character slots where they can choose between 10 races, 6 classes, and 2 genders to allow for a large amount of variation in the game. Each character slot has a separate inventory, separate set of characters, and should also have a separate quest log. However, you have no option to save the quest log and switch between new ones. Would adding this feature be too complex, or would it be possible without too much hassle?

G_G

I'll see what I can do. If anything I'll add it to 4.0.

keyonne

Thank you, that would be extremely helpful. :)

ojp2010

ETA on 4.0 loving the system

Taiine

Hey small little bug. If you try to open the quest book right away with out picking any quests up. it gives you this

Window_Command line 18 RGSS error

failed to create bitmap

also shows up in your demo, if you talk to the npc that opens the book before the one that gives you the quest.

Calintz

Not really a bug Taiine.
Anybody who uses this script will not actually call the scene without first giving the player a quest. That doesn't make much sense. The only reason this is even a problem is because Game_Guy split the two. I don't know why he, but he did.

Holyrapid

Well, i got a sort of a bug, or at least a bit of misfunction...
When you exit from the quest log, it goes into the menu, instead of the scene it was called from.
This can be a bit bugging that after being given the quest, if you've set in the events to call the log scene,
after checking the quests in therem, instead of the map, you're brought to the menu...

keyonne

I keep getting this for some unknown reason...
Spoiler: ShowHide

Holyrapid

I tried this again, and when i first tried to speak with the man, it crashed. But after speaking with the woman, and got a quest, and then talked to the guy, no problems.
So, could you add like a regular error message to, instead of having it crash if trying to open the quest menu, without having quests.
Maybe it could read in the menu something like 'no quest have been added yet.'?

G_G

Like I said I'm working on a nice remake with extra features and stuff like that. Just when I get my computer and my internet. Things at home are kind of jumbled. :S

Griver03

sry to necropost but ive a lil question, can you pls make me a patch that the quest window is always active even if no quests available ?!
i mean when you open the scene and use no map bg theres a black screen, i want that theres a clear window or maybe a string with "no quests in there".
would be very nice, thx
My most wanted games...



G_G

I have a rewrite for this script in my plans. Its kind of in the end but I'll be sure to include that feature.

SilverShadow737

Tagging this, it seems pretty cool.
Ginyu Force Rules

G_G

You could try something like this.
class Scene_Quest
  alias gg_different_window_skin_lat main
  def main
    $game_system.windowskin_name = "custom window skin name here"
    gg_different_window_skin_lat
    $game_system.windowskin_name = $data_system.windowskin_name
  end
end

mroedesigns


G_G

Nope sorry. I ended up going to my grandma's house for the rest of my vacation so I had to leave my computer behind. I guess I could work on it when I get back but I'm not sure how much time I will have since school starts in a week.

ruiran1

If you gyus need this:
Make an item called quest log make it only usable in the menu make it not consumable then make a common event with the script call (like in the demo with the guy) then put the same common event on the quest log.


  • This should be easy

  • not many people migth see this


monkeydash

Is there a way of changing the quest details as you go along?

Say for example I have a quest to buy something for a guy.

The Quest can be named: Buy Gift for Sam

I'd like for the reward to be a mystery to start with.
First part would be to talk to Sam and ask him what he wants. So quest log would say:

"Talk to Sam."

When he tells you what he wants - say an apple - I'd like the log to change to reflect that. So instead of saying 'talk to Sam', I'd like it to now say:

"Buy an Apple."

Once the apple is bought I'd like it to change to:

"Take the Apple to Sam"

You give Sam the apple. He thanks you. Quest completed and he gives you a cabbage. I dunno.
So the the quest log records that your reward was a cabbage.

Can this be done or would it require making three seperate quests and stating what the prize will be from the beginning?

G_G

I was planning on making a version that had multiple objectives per quest. But I'm no longer scripting for RMXP. My suggestion would be to try and find a different Quest Log script that will suit your needs.

Futendra

Could you make a configure program?

the one mroe made is full of bugs and he can't fix them because of loss of project files.


A configure program that works properly would be so awesome!


Also: My HUD overlaps the windows of the Quest Log, how do I fix this?

monkeydash

That's a shame. Thanks anyway.

Is there no way to call script to change it or something?

G_G

@Fut: Seeing that I'm not going to revamp/recreate the script, I'm not going to create a configuration program either.

@monkey: No theres not. The way I have it all setup its not really possible without some tweaking to the script.

Though I will promise this. When ARC is released. I'll make a quest log for it. I plan on making a lot of scripts for ARC when its released. <3

mroedesigns

Quote from: Futendra on January 14, 2012, 07:43:42 am
Could you make a configure program?

the one mroe made is full of bugs and he can't fix them because of loss of project files.


A configure program that works properly would be so awesome!


Also: My HUD overlaps the windows of the Quest Log, how do I fix this?


I may go back and redo mine, the only reason I didn't before was because GG was planning on making a newer version of this system.

Futendra

Quote from: mroedesigns on January 15, 2012, 04:13:04 am
Quote from: Futendra on January 14, 2012, 07:43:42 am
Could you make a configure program?

the one mroe made is full of bugs and he can't fix them because of loss of project files.


A configure program that works properly would be so awesome!


Also: My HUD overlaps the windows of the Quest Log, how do I fix this?


I may go back and redo mine, the only reason I didn't before was because GG was planning on making a newer version of this system.


That would be great, the bugs are that End, Else, Return, ... are all written with a capital so they should be end, else, return, ...

Also, I get errors after fixing this, I think you did something wrong terribly

mroedesigns

The errors you were telling me about were just missing register files that come with VB6, forgot to include a few. But yeah, there's a number of things that need fixed. I'll see what I can do, I'm not sure if I even have VB installed on my old top.

mroedesigns

Reworking the quest log. Any reason I would get an error here?

Spoiler: ShowHide
  def self.qlocation(id)
    case id
    #==================================================
    # Quest Location
    # Use when x then return ''location''
    # x = id, location = location in quotes
    #==================================================
    when 1 then return "l"
    end
    return "????"
  end


error at when 1 then return "l"


G_G

January 16, 2012, 03:07:27 pm #100 Last Edit: January 16, 2012, 03:08:35 pm by game_guy
Is it a syntax error or what? That doesn't make any sense to me. O_o

EDIT: I just tried this and I didn't get an error. So you have to have a syntax error somewhere above or below the script. Maybe a missing end or something.
module Test
  def self.qlocation(id)
    case id
    #==================================================
    # Quest Location
    # Use when x then return ''location''
    # x = id, location = location in quotes
    #==================================================
    when 1 then return "l"
    end
    return "????"
  end
end

print Test.qlocation(1)

mroedesigns

That's what I was sayin. It's a syntax, I'll find it  :roll:

After I get these last little bugs out though v2 will be finished

G_G

If you posted the entire script and not just part of it I could probably help you find it.

mroedesigns

I got it.

http://forum.chaos-project.com/index.php/topic,10125.0.html

Mind giving it a download and letting me know if I need to include any other files?

Kirye

Sorry for necro-ing this thread, I just had a quick question about it. D:

Is it possible to display variables in the quest log? I want to be able to use it for collection quests or "Defeat x amount of this monster" quests.

Spoiler: ShowHide

whitespirits

Hi guys running this with RMX-OS im getting errors on accepting quests and trying to open the quest window

Spoiler: ShowHide


Spoiler: ShowHide

KK20

Most likely running a save file that didn't get the chance to initialize the quest variables.

http://forum.chaos-project.com/index.php/topic,13656.msg180246.html#msg180246

Other Projects
RPG Maker XP Ace  Upgrade RMXP to RMVXA performance!
XPA Tilemap  Tilemap rewrite with many features, including custom resolution!

Nintendo Switch Friend Code: 8310-1917-5318
Discord: KK20 Tyler#8901

Join the CP Discord Server!

whitespirits

I'm looking for some extra features for this quest log, a difficulty setting In red orange or green, also adding a way of calculating variables, effectively so u can do 5/5 and when an item is added or variable it goes up or down if 1 is lost

KK20

My quest system doesn't support colors, but it does support game variables. I was thinking of potentially updating it again, but just didn't have enough ideas.

Other Projects
RPG Maker XP Ace  Upgrade RMXP to RMVXA performance!
XPA Tilemap  Tilemap rewrite with many features, including custom resolution!

Nintendo Switch Friend Code: 8310-1917-5318
Discord: KK20 Tyler#8901

Join the CP Discord Server!