[VXA] Quest Journal 1.0.3

0 Members and 5 Guests are viewing this topic.

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Quest Journal
Version: 1.0.3
Author: modern algebra
Date: 24 September 2012

Version History


  • <Version 1.0.3> 2012.09.24 - Fixed a minor incompatibility with ATS: Formatting
  • <Version 1.0.2> 2012.07.24 - Fixed a bug where the reset_quest, delete_quest, and setup_quest methods of Game_Interpreter would not work.
  • <Version 1.0.1> 2012.06.08 - Fixed a bug that would occur if there were less than two quest categories.
  • <Version 1.0d> 2012.02.27 - Fixed a bug with distribute_quest_rewards.
  • <Version 1.0c> 2012.02.23 - Fixed a bug where objective_revealed? did not exist.
  • <Version 1.0b> 2012.02.21 - Fixed a bug when CONCURRENT_ACTIVITY was set to false
  • <Version 1.0a> 2012.02.21 - Fixed a major bug with custom categories
  • <Version 1.0> 2012.02.19 - Original Release

Description


This script provides a graphical interface for showing quest progress. It is objective based, meaning that you choose when to reveal objectives and you can set it so that they show up as complete or failed. That said, this script does not build quests for you; it is only a supplementary scene for showing them. As such, you need to event all of the quests yourself and update/monitor quest progress via script call. Therefore, pay close attention to the instructions both here and in the Editable Regions.

Features

  • Unlimited number of quests (though if there are too many in one category there may be some lag when switching to that category)
  • Can setup and show lots of information about a quest
  • Vastly configurable, even down to the order in which data is shown and the fonts used
  • Quests are updated and monitored through simple script calls
  • If the information exceeds the visible height of the data window, can select the quest and scroll down to see the rest
  • Custom Categories permit you to add or remove categories and change their order
  • Access built into the menu, if it is so desired
  • Can manually add new types of basic data to be shown for each quest

Screenshots


The default setup.

Keep in mind that there are dozens of ways you can rearrange that. I did not give that quest a banner, but aside from that, you can totally rearrange the order in which the data is shown (on a quest per quest basis, if necessary), you can add new categories, you can change the icons of the default categories, you can add new types of data to show, you can change the font used for any particular entry, you can remove the category label window, etc. You have a lot of control over how the script looks, so even if you don't like the look of the default setup shown above, give the script a try and see if you can change it to your satisfaction.

Instructions

Paste this script into its own slot in the Script Editor, above Main but below Materials. You may wish to separate the configuration part of the script from the rest of it, for easier updating. See the header of the script on where the spot to do that is.

Please see the Header of the Script for detailed instructions on configuration and use.

Script


The script is too long. Please get it from Pastebin. A demo will be released shortly.

Addons

Debug Addon - napoleon has written a script that creates a debug menu for the Quest Journal, allowing you to manually complete or fail objectives in game to assist in testing.
Remove Quests from Default Categories - Some people use the script to display both quests and other information, and they would like the other information not to show up in the all, active, complete, and failed categories. This addon is for them.

Credit


  • modern algebra

Thanks

  • spywaretoff, for a bug report
  • Shadow Fox, for a bug report
  • AlexArmstrong, for a bug report
  • Ziemianin1, for a request

Support


Please post in this topic at RMRK.net to report any bugs, ask any questions, or make any comments or suggestions. Given the size of this script, I know that I have likely made errors and oversights. I greatly appreciate when someone reports errors.

Known Compatibility Issues

None currently. If you are using a custom menu script, however, it is recommended that the Quest Journal be below it in the Script Editor.

Demo


Brady has been kind enough to make a nice demo for working with the Quest Journal.

I will also be releasing a demo some time.

Author's Notes

This script imports most of the features from the VX version 2.1, as well as adds quite a few more.

One of the features that has not been imported is the Quest Shop. I will likely write an addon to the script for that feature sometime in the future, but for now I figured I would just release the basic script.
« Last Edit: October 24, 2015, 02:54:21 PM by modern algebra »

****
Rep:
Level 70
The Doctors in!
Looks great, I'm glad you decided to export it to VXA.

**
Rep: +0/-0Level 71
Contestant - GIAW 9
this is awesome this is one of the things I have been waiting for to come out for Ace
great job modern algebra
I have a blog now where I will be posting my scripts that I create.

My Favorite Animes:
    1. Full Metal Panic (all 3 seasons)
    2. Dragonaut the Resonance
    3. The Legend of the Legendary Heroes
    4. Spice and Wolf
    5. Rosario + Vampire

*
Rep:
Level 72
Artista
2012 Best Artist2012 Best RPG Maker User (Graphical)2011 Best RPG Maker User (Graphical)Winner - 2011 Summer Project of the Season
I know of so many people that have been waiting for this script! (myself included)

Thanks so much.  :)
My current project:

**
Rep: +0/-0Level 73
RMRK Junior
Yay, now all I need is someone to port over that Advanced Crafting System (ACS) script and all my favorite scripts will be ready for the English release :)

**
Rep:
Level 65
RMRK Junior
IT'S TOTALLY AWESOME!
May I call it "MALG Whatever Database"? (or AnythingJournal)
Because, even if you don't want quest journal, you can create with this script whatever you want. Wise using really grants ton of capabilities!
I played a little bit and got this - Travel Guide for jrpg tourists (Screenshot):
http://imageshack.us/photo/my-images/88/img1zw.png
With QuestJournal for old VX I created Achievments scene, with Ace version it's much easier, and (thanks to categories!) can be combined with other cool things (like Quest+Notes+Achievments Scene). 
This scripts makes me very happy! I like huge descriptions. And ranks (star icons super, and F-E-D-C-B-A-S for ninja games!). Omg, Global Text Codes works, I get colored quest name right now. It's remind me about ATS, both scripts have great customization (there was Synthesys Shop example in ATS VX 3.0 demo, and I created Teleportation System with Advanced Choises).
What it's all about. I really want to say "Thank you, modern algebra!". For AnythingJournal and other scripts :)

*****
Rep:
Level 84
This text is way too personal.
Bronze - GIAW 11 (Hard)Silver - GIAW Halloween
The legend returns.

Great job, MA!

*****
you don't wanna mess
Rep:
Level 79
bruh
2014 Zero to Hero2014 Best IRC Quote2014 Most Missed Member2012 Zero To HeroSecret Santa 2012 ParticipantContestant - GIAW 9For frequently finding and reporting spam and spam bots2011 Zero to Hero
Needs more Neo Gauge.
THIS IS AWESOME YOU ARE AMAZING.

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Well, I am glad you all like it and I hope that it doesn't disappoint!

And I am glad that you like the customization AlexArmstrong, It's always hard to choose a balance between ease of use and customizability, and I don't think I ever strike it right. So it's nice to know when people put it to good use :) The travel journal looks good too. P.S. You don't need to put the "Major Name:" (Mayor?) inside the quest data itself: you can change it in the VOCAB hash itself. client and location are around line 355, and you can just change it from "" to "Major Name:"
« Last Edit: February 20, 2012, 09:09:23 PM by modern algebra »

**
Rep:
Level 65
RMRK Junior
Yes, I really like it. It's not simple easy script, but it have good instructions. After 1.5 hours I easily created travel guide first version in about 15 min (banner was the hardest thing xD). And yes, it was just quick test version, so i doesn't put much work in it (actually, even "name" word not neccessary, it's ok just with icon and text like "Mayor Daniel" or "King Arthur", "Elder Ralph" etc.).
Oh no, our publishing house made a mistake in travel guide... Sure, he is "mayor". No wonder so less tourists buying our guide xD
Well, waiting your other new scripts! (type of interesting in crafting system too). Best regards!

Oh, just now I get "can't convert symbol into string error" on this string  @data[quest_id].custom_categories.include?(list_type)
I created new category :guide and add q[:custom_categories] = [:guide] in my quest. I'm not sure, maybe I'm just missed something in categories, but I have no idea, what it is.
« Last Edit: February 21, 2012, 07:37:35 PM by AlexArmstrong »

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Nah, that's my bad. Grab Version 1.0a from the first post. You don't need to replace the configuration, just the rest.
« Last Edit: February 21, 2012, 10:03:52 PM by modern algebra »

**
Rep: +0/-0Level 71
Contestant - GIAW 9
there is an error when CONCURRENT_ACTIVITY is set to false
Script 'Window Selectable' line 212 NoMethodError occurred.
undefined method 'call' for :on_category_ok:Symbol
I have a blog now where I will be posting my scripts that I create.

My Favorite Animes:
    1. Full Metal Panic (all 3 seasons)
    2. Dragonaut the Resonance
    3. The Legend of the Legendary Heroes
    4. Spice and Wolf
    5. Rosario + Vampire

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Sorry, CTRL+F the following line:

Code: [Select]
    @quest_category_window.set_handler(:ok, :on_category_ok)

and change it to:

Code: [Select]
    @quest_category_window.set_handler(:ok, method(:on_category_ok))

*
Rep: +0/-0Level 57
Zennethe Designs
You've done it again... Love it! So glad such talented people are part of the RM community.

Yay, now all I need is someone to port over that Advanced Crafting System (ACS) script and all my favorite scripts will be ready for the English release :)
Now sure if this is exactly what you are looking for BUT in case it is...
http://grimoirecastle.wordpress.com/2011/12/12/synthesis-shop/

**
Rep:
Level 71
RMRK Junior
The last script I need. Big thanks once again. ^-^

**
Rep: +0/-0Level 72
RMRK Junior

I can't use "objective_revealed?(a, b)" on a condition branch. It gives a No Method Error on Game_Interpreter.

Apart from that, it's an amazing script!
Once you are done with your extended choices, I'll have everything I need for my project's systems!


*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Sorry, I will post the fixed version shortly.

Edit: Version 1.0c has been released
« Last Edit: February 24, 2012, 01:11:24 AM by modern algebra »

**
Rep: +0/-0Level 71
Contestant - GIAW 9
I think there might be a problem with the description formatting
Spoiler for:
I used the script call quest(1).description = "" to change the description and this is how it turned out.
I have a blog now where I will be posting my scripts that I create.

My Favorite Animes:
    1. Full Metal Panic (all 3 seasons)
    2. Dragonaut the Resonance
    3. The Legend of the Legendary Heroes
    4. Spice and Wolf
    5. Rosario + Vampire

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Well, that's probably just a result of the width limitations in the Script field. I think what is happening is that the text between your "" extends over one line, and so it inserts \n after each line in the box, which is the next line code. The next line code is recognized by the formatting in this script since I wanted the user to be able to manually break line with \n if they wanted to do so. To fix your problem, you could do something like this in the script call instead:

Code: [Select]
d = "Jessica has told me that Boris is "
d += "looking for me. Maybe I should talk "
d += "to him before I do anything else."
quest(1).description = d
« Last Edit: February 24, 2012, 02:46:26 PM by modern algebra »

**
Rep: +0/-0Level 71
Contestant - GIAW 9
it works great now thanks for the help modern algebra
I have a blog now where I will be posting my scripts that I create.

My Favorite Animes:
    1. Full Metal Panic (all 3 seasons)
    2. Dragonaut the Resonance
    3. The Legend of the Legendary Heroes
    4. Spice and Wolf
    5. Rosario + Vampire

**
Rep: +0/-0Level 72
RMRK Junior

Is there a way to make the "objectives" to have a different VOCAB on different custom layouts? For example: I have quests that use the default layout and the "objectives" VOCAB is set to "Summary". On another (custom) layout, I'd also like to use the "objectives", but this time with the VOCAB "Notes". I think I could create a new BASIC_DATA_TYPE and set its VOCAB to "Notes", but then it wouldn't answer to the functions I can use with objectives, like "reveal_objective(x, y)".

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
I don't think that's a feature I care to add to the main script, but maybe I will write a little work around that would permit you to do it.

**
Rep: +0/-0Level 72
RMRK Junior
I understand. Thanks for that.

*
Rep: +0/-0Level 55
RMRK Junior
Thanks for the hard work. However, I got a problem. I do always get this Error (pic below), after the complete_objective function. I added a picture. The script I wrote are: "quest(1)", "reveal_objective(1, 1)" and "complete_objective (1, 1)", where it crashes.
As I'm the only one experiencing the problem I think it's my fault, but I don't know where. I used the sample quest for testing.



*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Don't put a space between complete_objective and (1, 1). In other words, do this:

Code: [Select]
complete_objective(1, 1)

And not this:

Code: [Select]
complete_objective (1, 1)

*
Rep:
Level 72
Artista
2012 Best Artist2012 Best RPG Maker User (Graphical)2011 Best RPG Maker User (Graphical)Winner - 2011 Summer Project of the Season
I haven't seen this in the thread, but what are your TOS for using this script in commercial projects? Or do you have general TOS for commercial projects with all of your scripts?  :)
My current project:

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Generally, I am fine with people using my scripts in commercial projects, as long as I get a free copy of the game when it's finished.  :police:

*
Rep:
Level 72
Artista
2012 Best Artist2012 Best RPG Maker User (Graphical)2011 Best RPG Maker User (Graphical)Winner - 2011 Summer Project of the Season
Great! I have a friend who's going to be branching into commercial projects with Ace, and I'm just about to recommend your scripts. I'll make sure you get a copy of his game when he's done developing. :)
My current project:

***
Rep:
Level 80
Monster Hunter
Wow MA i wish the VX version could look like that, it looks awesome :p

**
Rep: +0/-0Level 63
RMRK Junior
Good morning.
I love your script, but I can not make it work I speak French.
I can not do a quest!
how to activate the quest 1

Thank you in advance.

***
Rep:
Level 80
Monster Hunter
Good morning.
I love your script, but I can not make it work I speak French.
I can not do a quest!
how to activate the quest 1

Thank you in advance.
Si tu veut je peut te l'expliquer mieux ^^ (oui je parle fran├žais, (depuis 10 ans ;p))
If you like i could explain you how it works  (yes i speak french (for 10 years now ;p)

**
Rep: +0/-0Level 63
RMRK Junior
Oui ce serait formidable :D
Merci.
je sais faire l'appelle de script mais le reste non ^^

Anglais.

Yes it would be great :D
Thank you.
I know how the script calls but not the rest ^^

***
Rep:
Level 80
Monster Hunter
Oui ce serait formidable :D
Merci.
je sais faire l'appelle de script mais le reste non ^^

Anglais.

Yes it would be great :D
Thank you.
I know how the script calls but not the rest ^^
il me semble que le script est pareil que la version pour VX , tu devrait telecharger la demo de VX, cest tres bien expliquer (jai pas RMVXA)
http://rmrk.net/index.php/topic,25533.0.html  tu peut utiliser Google traduction sur le topic ^^

it looks like the script is the same as the VX version, you should download the demo for VX, its really well explained (i dont have RMVXA)
http://rmrk.net/index.php/topic,25533.0.html you can use Google Translation on the topic ^^
« Last Edit: March 17, 2012, 02:47:51 AM by Mitsarugi »

**
Rep: +0/-0Level 72
RMRK Junior
how do i make a quest for hunting a certain amount of monsters?

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
You do it with events, not through this script. This script just graphically represents that quest.

You would set up the quest in the script like this:

Code: [Select]

    when 7 # Quest 7 - this ID doesn't need to be 7, but it has to be unique
      q[:name]              = "Animal Trouble in Lynis"
      q[:level]             = 1
      q[:icon_index]        = 333
      q[:description]       = "Wolves are attacking the town of Lynis. The mayor has put a bounty on their heads."
      q[:objectives][0]     = "Speak to Mayor Trakia."
      q[:objectives][1]     = "Kill 5 Wolves.     \\v[4] / 5"
      q[:objectives][2]     = "Return their pelts to Mayor Trakia."
      q[:client]            = "Mayor Trakia"
      q[:location]          = "Black Forest"
      q[:rewards]           = [
        [:gold, 500],
      ]

As a sample, you would then set up the actual quest through events. In this example, I am using the pelt count as a proxy for wolves killed, meaning every wolf would need to have a 100% drop rate for pelts. However, that is not totally necessary. You could do it simply by kills, but you would need to set up counting events in every troop that has wolves (if you are doing random encounters). If you are not doing random encounters, you would just need to count the wolves in the troop inside the event in which the battle is called. Anyway, the following event does it by pelt count.

So first, you hear a rumour about the wolf troubles. That event would look like this:

@>Text: Hey, you might not want to go to Lynis. I hear there are wolves attacking that town every night!
@>Script: reveal_objective(7, 0)

7 is the quest ID I chose at the very top of the event I setup - "when 7". It has to be unique so that you can identify it when you are modifying objective status. That reveals the "Talk to Mayor Trakia" objective.

Then in Lynis, there would be this Mayor Trakia event:

Page 1: No conditions
  @>Text: Please help us! We are being attacked by wolves! I will give you 500 Gold if you kill five of them.
  @>Show Choices: OK!, No thanks!
   : When OK!
    @>Text: Oh thank you so much! Bring me five pelts for your reward.
    @>Script: complete_objective(7,0)
                   reveal_objective(7, 1, 2)
    @>Control Switches: Switch 34 is ON

Page 2: Condition: Switch 34 is ON
  @>Conditional Branch: Variable 4 >= 5
    @>Text: Oh, you have the pelts! That is wonderful news! Here is your reward
    @>Change Gold: +500
    @>Change Items: -5 Wolf Pelts
    @>Script: complete_objective(7,2)
    @>           quest(7).objectives[1] = "Kill 5 Wolves   5/5"
    @>Control Switch: Switch 34 = OFF
    @>Control Self-Switch: A = ON
  : Else
    @>Text: Please return when you have killed the savage beasts!
  @>Branch End

Page 3, Condition: Self-Switch A is ON
  @>Text: Thank you for your earlier assistance.

Switch 34 and Variable 4 were randomly chosen IDs. Again they can be any ID, as long as you are consistent. I chose variable 4 actually when setting up the quest, as I set that to be the pelt count.

Now all that is left is counting the wolves killed. This can be done with a parallel process common event like this:

Common Event, Trigger: Parallel Process, Switch Condition: Switch 34
  @>Variable Operation: [004: Pelt Count] = [Wolf Pelt] is present
  @>Conditional Branch: Variable [004: Pelt Count] >= 5
    @>Variable Operation: [004: Pelt Count] = 5
    @>Script: complete_objective(7, 1)
   : Else
    @>Conditional Branch: Script: objective_complete?(7, 1)
      @>Script: uncomplete_objective(7, 1)
     : Branch END
   : Branch END
  @>Wait: 6 frames


That's all very messy, but I am sure you can adapt it to your needs.

*
Rep: +0/-0Level 55
RMRK Junior
I am trying to use it in RPG Maker VX Ace and I keep getting this error:

Script 'Quest Log' line 795: NameError occurred

uninitialized constant Object::DataManager

Anyone able to help? D:

*
Rep: +0/-0Level 55
RMRK Junior
Hello.

First off, thankyou modern algebra for these wonderful scripts. I'm a total newbie with RPG Maker, first time using scripts, first time everything. I decided to try out your quest script.

This may be dumb but how do you move the quests to "completed" after the objectives are met? I've placed objective_complete?(ID, 0,1,2 etc) in my conditional branch to get my rewards but the quest didn't move to complete.

Also, is this script really customizable in terms of changing graphics?
I've put a picture in the banner section and it was real neat. Wonder if you can customize other parts.

Thankyou so much for inspiring me and I hope to learn a lot from you.
« Last Edit: March 18, 2012, 09:58:30 AM by Understatement »

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
With respect to your first question, the code you chose only checks whether the specified objectives are complete.

There are two ways to complete a script. Firstly, a quest completes when all prime objectives are completed. Which objectives are prime depends on the value of q[:prime_objectives] when you setup the quest. If you do not include it altogether, then all objectives are prime. If it is [x, y, z], then only objectives x, y, and z are prime.

To complete an objective, you use the following code in a regular Script event command (ie not the Conditional Branch field):

Code: [Select]
complete_objective(ID, x, y, ..., z)

Where x, y, and z are the objectives you want to complete. Once all the prime objectives are completed in this manner, then the quest status changes to complete. If any one of the prime objectives are failed, then the quest status changes to failed.

Alternatively, you can set it so that there are no prime objectives in the following way when setting the quest up:
Code: [Select]
q[:prime_objectives] = []

If you do that, then quests will never auto-complete or auto-fail, and so if you want to change the quest's status to complete or failed, you have to use one of the following codes (again in a Script event command, not in the Conditional Branch field):

Code: [Select]
manually_complete_quest(ID)
manually_fail_quest(ID)

Quests will still auto-activate whenever an objective is revealed (unless you've turned that feature off), but if you want to change its status back to active after completing or failing the quest, you must use the code:

Code: [Select]
manually_activate_quest(ID)

In all of the above code samples, ID should be replaced with the integer ID of the quest you are modifying and x, y, and z with the IDs of the objectives of which you are changing the status.

With respect to your second question as to how graphically customizable it is, the following is a semi-complete list:

  • You can add a banner
  • You can change the fonts and colours of all text
  • You can change the windowskin and window's tone
  • You can change any of the icons used in the script
  • You can add new categories to the category window
  • You can change the label shown for each category
  • You can choose not to show a label for any category
  • You can choose to show the category label in a separate window
  • You can change the label shown for the Quest Log as a whole
  • You can choose not to show a label for the Quest Log at all
  • You can add new "basic" data like :client and :location (ie icon and label, then a customizable entry for each quest
  • You can obviously change any and all data for the quest
  • In description and the objectives, you can use any message codes like \\v[n], \\c[n], etc.
  • You can change the order in which items are drawn either generally or on a per-quest basis. In other words, if you want the rewards to precede the objectives, then you can do that either on a general basis or for only a specific quest. In addition to that, you can specify that some things are drawn at the same y-coordinate, which is what is done in the default with the line, quest name, and quest level
  • You can change the quest level to show either as a number of a generic icon corresponding to the level (ie. 1 stars for level 1, 2 stars for level 2, etc...), as one unique icon for each level (ie. 1 bronze star for level 1, 1 silver star for level 2, etc...), or as a label (like "Rank:") followed by a number or letter corresponding to the level (you can set which letters correspond to which level).

There might be more that I am forgetting.

****
Rep:
Level 83
3...2...1...
I get:

"Script 'Quest Journal' line 1583: TypeError occurred.
can't convert true into Integer"

it worked fine until I tried to make the journal accessible from the menu.


Never mind, it was an error on my part. So far I like the script, MA!

**
Rep: +0/-0Level 68
Writer
Yeah well,I am loving this,but what's up with this!?



What's up with those question marks?

Great Script BTW!!!

**
Rep:
Level 54
RMRK Junior
It looks like your system isn't rendering the diamonds in the font properly for some reason.
It's more like a big ball of wibbly wobbly...timey wimey...stuff.

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Yeah, what Trihan said. Your font does not know how to reperesent the diamond. Just change the following line:

   
Code: [Select]
objective_bullet: "?",

to a character your font recognizes.
« Last Edit: April 11, 2012, 02:08:13 PM by Seamus »

**
Rep: +0/-0Level 68
Writer
Yeah, what Trihan said. Your font does not know how to reperesent the diamond. Just change the following line:

   
Code: [Select]
objective_bullet: "?",

to a character your font recognizes.

Thanks,it is working perfectly!!!!

**
Rep: +0/-0Level 83
Just wondering, unless I overlooked it, how would I mask rewards?

E.g. the reward is 5000 gold, but before a certain point (say a script call), the reward is ???

Like, a script call to questlog(questID, rewardIndex, bool hide)
true for hide, false for reveal

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
I guess I barely explained rewards in the script itself. Anyway, you would set it up in the quest itself as:

Code: [Select]
q[:rewards] = [
  [:gold, 500],
  [:string, 0, "???"]
]

The 0 in the string array is just the index of any icon you want to show. 0 is no icon, but you could change that to some other icon.

Then, when you want to reveal what it actually is, you would use the following code in a script call:

Code: [Select]
  quest(x).rewards[1] = [:weapon, 12]

Where x is the ID of the quest you setup. I use since array indices start at zero, so its ID is 1 since it is the reward after the gold. In that particular case, it is changed to give Weapon 12.
« Last Edit: April 28, 2012, 11:27:07 PM by modern algebra »

**
Rep: +0/-0Level 83
Alright, thats what i was looking for! Thanks. But would this work to add a reward?

Say I did not want the player knowing how many rewards they would get? Would I just leave blank strings?

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
You could just leave blank strings, or you could just push the new entries to the array. Ie: you could have the above example and it would show just the two rewards in the Quest scene.

But then you could use the following code:

Code: [Select]
quest(x).rewards.push([:item, 1, 2])

and then the quest would show three awards: the gold, Weapon 12, and now 2 of item 1.

**
Rep: +0/-0Level 83
Thank you! You are a godsend!

*
Rep: +0/-0Level 56
RMRK Junior
This is really a dumb question...
But, How can I enable the Quests scene?
It's always disabled in menu or in map

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Just reveal any objective of any quest. It is disabled until there is something in the journal to see.

*
Rep: +0/-0Level 56
RMRK Junior
Oh it's like that...
I thought It can be open without any quest..
Anyway, Thanks for the fast reply ^_^

*
Rep: +0/-0Level 67
Wannabe Scripter
This script looks awesome, hope to be implementing it soon.  Thanks!
We may rise and fall, but in the end we'll meet our fate together.

*
Rep: +0/-0Level 61
RMRK Junior
Where can I change the font size of the text inside the "description" box? I'd prefer it somewhat smaller than the default font size, but I didn't find the right line to edit this. Same with the text in Quest Objectives - is there a way to change the font size for these?

Also, might it be possible to place just plain text inside the "rewards" section? The main quest of my game doesn't have any specific item rewards, but as a flavor text it'd be nice to include something there. For example I tried this:

q[:rewards]           = "The King has promised you great wealth should you succeed with your quest, young hero."

but it didn't show up in the game at all.

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
In the Configuration section, you ought to see the following:

Code: [Select]
  FONTSIZES = {
    normal:         false, # normal: default font size
    scene_label:    28,    # scene_label: fontsize for the Scene Label window
    category_label: 24,    # category_label: fontsize for Category Label window
  } # <= Do not touch.

As explained in the instrunctions dealing with font aspects generally, you can change the i=size of the description text by simply inserting a line to do so. In other words, something like this:

Code: [Select]
  FONTSIZES = {
    normal:         false, # normal: default font size
    description:    16, # <- THIS
    scene_label:    28,    # scene_label: fontsize for the Scene Label window
    category_label: 24,    # category_label: fontsize for Category Label window
  } # <= Do not touch.

Change the 16 to whatever you want the font size to be. Mind you, it won't change the line height, just the size of the text.
For the reward thing, not really, no. I'd recommend just adding it to the description.

*
Rep: +0/-0Level 61
RMRK Junior
Thanks for the fast reply! - must've missed that part about the font size I see  ::) The rewards text part I can live without, it's very minor.

**
Rep:
Level 56
RMRK Junior
Hello,

I read in the instruction there is a demoi but I didn't saw it in the first page.
Can you upload one please ?
My english isn't that good to be able to understand all the instructions.

**
Rep: +0/-0Level 59
RMRK Junior
I am wondering when the demo will be released.
Thanks in advanced
« Last Edit: June 03, 2012, 08:05:58 AM by shadowfox43 »

**
Rep: +0/-0Level 68
RMRK Junior
hello,

Is it possible to delete the categories and only see the active quest?

Thank you
World of Forestia project

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Yes. Around line 357, you ought to see this:

Code: [Select]
  #  CATEGORIES - This array allows you to set which categories are available
  # in the Quest scene. The default categories are :all, :active, :complete,
  # and :failed, and their names are self-explanatory. You can add custom
  # categories as well, but note that you will need to make sure that each new
  # category has an icon set in the ICONS hash, as well as a label set in the
  # CATEGORY_VOCAB hash (if you are using SHOW_CATEGORY_LABEL). It is also
  # advisable to give it a sort type, unless you are fine with it being sorted
  # by ID, as is default.
  CATEGORIES = [:all, :active, :complete, :failed]

Just change the last line there to:

Code: [Select]
  CATEGORIES = [:active]

**
Rep: +0/-0Level 68
RMRK Junior
Thank you but it gives me an error at line 2464

error :

"Undefined method 'height' for nil: NilClass"

EDIT :

On a blank project it gives me an error line 2547

@quest_category_window.activate if QuestData::CONCURRENT_ACTIVITY &&

« Last Edit: June 08, 2012, 07:49:18 PM by spywaretoff »
World of Forestia project

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Sorry about that. The script removes the category window altogether when there is only one category, and it looks like I did not account for its absence at all points in the script. It should be fixed now, so you can grab the script again from pastebin. It is not necessary to replace the configuration section of the script if you have already altered aspects of that.


@others - I will try to release a demo sometime this week or the next.

**
Rep: +0/-0Level 68
RMRK Junior
Thank you it's perfect like this!

Superb script it helps me a lot in my game,
World of Forestia project

**
Rep:
Level 56
RMRK Junior
Quote
@others - I will try to release a demo sometime this week or the next.
Yes, please :)

***
if you try & edit my custom title i will hack you
Rep:
Level 65
Im PRO get used to it!
great script im already using this in my game!



Spoiler for projects:
God of Darkness
Devils nest
Unnamed Games(2)
The CREW experience


****
Bitch
Rep:
Level 86
Bits'n'Pixels
Just wanted to give my compliments on this.  It's a rad script; been usin' it from the start of my project now and by havin' access to this it's inspired me to make more of the Chapter Two section and allow it to have some more questy type options :)

**
Rep:
Level 56
RMRK Junior
Don't forget about the demo, please  ;D

****
Raped by DrSword
Rep:
Level 82
Dance with the enemy
Contestant - GIAW 10Contestant - GIAW 9
I have no idea how to begin working this. I need a demo D:


**
Rep:
Level 54
Hello \o/
Hi ! (:
I want to use this script but with Syvkal's Ring Menu (the pastebin) but I don't know where in the quest script, I can "put" the menu quest in the ring menu (I've already the Icon)

EDIT : Finally, I found how display the icon ! x)
« Last Edit: July 07, 2012, 05:59:17 PM by Teel »

**
Rep: +0/-0Level 54
RMRK Junior
Hi, I am getting the following error :

Script 'Game_Interpreter' line 1409 : NoMethodError occured.
undefined method 'remove_quest' for
#<Game_Interpreter:0x8281f74>

It is being triggered when I use the script call event and the command remove_quest(5)
Using RMVXA

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Hi, I am getting the following error :

Script 'Game_Interpreter' line 1409 : NoMethodError occured.
undefined method 'remove_quest' for
#<Game_Interpreter:0x8281f74>

It is being triggered when I use the script call event and the command remove_quest(5)
Using RMVXA

Sorry, use delete_quest, not remove_quest.

So:

Code: [Select]
delete_quest(5)

I must have left remove_quest in the instructions accidentally from a previous version.

Hi ! (:
I want to use this script but with Syvkal's Ring Menu (the pastebin) but I don't know where in the quest script, I can "put" the menu quest in the ring menu (I've already the Icon)

EDIT : Finally, I found how display the icon ! x)

So, just to be clear, this is resolved?

**
Rep: +0/-0Level 54
RMRK Junior
Yes I resolved it, thanks for the reply. I used the following command manually_complete_quest(5) instead. What was strange was that some of the quests with remove_quest would work and some would give me that error, love your script though. Currently using your script in my project Defender of Alefguard.

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Good to hear/read!

****
Bitch
Rep:
Level 86
Bits'n'Pixels
For anyone who's been having trouble getting started with the script, I've drawn up a short, unofficial basics demo (with moderns permission, for those who would like to know) to cover the foundations of the script.

This covers receiving quests, completing and revealing objectives, finishing quests and repeating quests.  There's no combat, just collection and interaction, and only takes five minutes to run through, but should give you all the understanding you need to get started with the script.

Hopefully this will help anyone having problems until modern has time to make his official demo :)

http://www.mediafire.com/download.php?3l1hxljnmso290l

Have fun :D

*
Rep: +0/-0Level 54
RMRK Junior
Found a bug in the demo that reset my red flower key items to 1. Below is how I came across this issue. Hope it helps!

I picked up 10 red flowers first before talking to the quest giver who requests white flowers. I did not talk to the girl to wants red flowers again before this. I then picked up a few white flowers and completed the quest multiple times. After this I went over to the old man and then the sword. I did not view the credits before completing the red flower quest. After this I went back to the first map with the red flower quest but my red flowers were reset to 1. There were still red flowers in the field but the amount only totaled to 9 after the reset, thus not allowing me to complete the quest.

****
Bitch
Rep:
Level 86
Bits'n'Pixels
(above issue mentioned has been fixed.  The issue was in the repeatable boys page, where it was taking reds instead of whites.  modern actually noticed this issue at first, but apparently I forgot to change it on both pages.)

For anyone who's been having trouble getting started with the script, I've drawn up a short, unofficial basics demo (with moderns permission, for those who would like to know) to cover the foundations of the script.

This covers receiving quests, completing and revealing objectives, finishing quests and repeating quests.  There's no combat, just collection and interaction, and only takes five minutes to run through, but should give you all the understanding you need to get started with the script.

Hopefully this will help anyone having problems until modern has time to make his official demo

http://www.mediafire.com/?sy17loho2mofc02

Hopefully, there should be no more issues within it.

Have fun :D
« Last Edit: July 19, 2012, 04:04:51 PM by Brady »

**
Rep: +0/-0Level 54
RMRK Junior
Hi,
I'm having some trouble with this. The script looks wonderful, but when I open up my project I get the error "Script 'Quest Journal Insturctions' line 3: SyntaxError occurred.

unexpected '.'
                #   Version: 1.0.1
How can I fix this? Also, would it be possible to use this with a ring menu script and if you don't mind me asking, how exactly could that be done?
Thanks!
Edit: Nevermind, fixed it! Getting this script to work with this ring menu script (http://www.rpgmakervxace.net/topic/1836-ring-menu-vxace/page__hl__%2Bring+%2Bmenu) would be really great though if anyone knows how.
Edit: Turns out their compatible! Nevermind.
« Last Edit: July 23, 2012, 04:43:19 AM by username78 »

*
Rep: +0/-0Level 54
RMRK Junior
First off, thanks for the great script.

But I have a slight problem. I have made a custom category called "Notes" and included a quest in it, but the quest is also appearing in "Active" category. Is there any way to uninclude a quest in category.

*
Rep: +0/-0Level 67
RMRK Junior
Help, I get this error:

using delete_quest (2) or using reset_quest (2)

sorry for my bad English xD

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Sorry, there was an error in the script. It is now fixed and you can get the new script from the first post. Also, you shouldn't put a space between the command and the brackets. It should be:

Code: [Select]
delete_quest(2)

and not:

Code: [Select]
delete_quest (2)

But the error you are getting was my fault. Retrieve the script from the first post and replace it and it should work. You don't need to replace any of the configuration, you just need to change the part following this:

Code: [Select]
#==============================================================================
# *** DataManager
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  Summary of Changes:
#    aliased method - self.extract_save_contents
#==============================================================================

In the main post, it is line 807, but it may be different for you depending on your configuration.


@talias - sorry, there isn't.
« Last Edit: July 24, 2012, 10:14:33 PM by modern algebra »

***
Rep:
Level 76
RMRK Junior
Quote
#==============================================================================
# *** DataManager
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  Summary of Changes:
#    aliased method - self.extract_save_contents
#==============================================================================
 
class << DataManager
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Extract Save Contents
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  alias maqj_extractsavecons_2kw5 extract_save_contents
  def extract_save_contents(*args, &block)
    maqj_extractsavecons_2kw5(*args, &block) # Call Original Method
    if $game_party.quests.nil?
      $game_party.init_maqj_data
      $game_system.init_maqj_data
    end
  end
end

Quote
#==============================================================================
# *** DataManager
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  Summary of Changes:
#    aliased method - self.extract_save_contents
#==============================================================================

class << DataManager
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Extract Save Contents
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  alias maqj_extractsavecons_2kw5 extract_save_contents
  def extract_save_contents(*args, &block)
    maqj_extractsavecons_2kw5(*args, &block) # Call Original Method
    if $game_party.quests.nil?
      $game_party.init_maqj_data
      $game_system.init_maqj_data
    end
  end
end

First is from the script at Pastebin and second is from my project. I don't see any difference...

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
No, I meant everything after those lines. All I am saying is that if you have done any configuration on the script, you don't need to do it all over. You only need to replace everything after the identified lines and can keep all the configuration intact.

**
Rep: +0/-0Level 54
Totes Pupsicles
Was wondering if anyone could help me out with something. I'm just trying to get this script to plug into Yanfly's Ace Menu Engine but I can' seem to call the script into Yanfly's correctly. As of right now I've been able to get Tsukihime's "Select Skill System" working with it but not MA's quest journal. I'm probably just overlooking something quite obvious but any help would be much appreciated. I've never been much of a coding guy  :P

This is how Yanfly's code works for calling menu scenes:

Code: [Select]
      when :item
        add_command(Vocab::item,   :item,   main_commands_enabled)
      when :skill
        add_command(Vocab::skill,  :skill,  main_commands_enabled)
      when :equip
        add_command(Vocab::equip,  :equip,  main_commands_enabled)
      when :status
        add_command(Vocab::status, :status, main_commands_enabled)
      when :battle_setup #<--- Tsukihime's Script
        add_command("Traits", :battle_skill, true)
      when :formation
        add_formation_command
      when :save
        add_original_commands
        add_save_command
      when :game_end
        add_game_end_command

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Not able to test since I am not at my computer, but does it not work just to put the Quest Journal under Yanfly's script in the Script Editor (keeping in mind that you also would have had to set MENU_ACCESS to true at line 238 and chosen an index at line 240)?
« Last Edit: August 08, 2012, 10:24:41 PM by modern algebra »

**
Rep: +0/-0Level 54
Totes Pupsicles
Yeah I've definitely made sure to read through your script and have marked it with an index number, and I always make sure to insert scripts properly based upon what they are most likely heavily modifying or overwriting. Yanfly's script ends up ignoring the listing of the index and instead just pushes all other menu options below the ones in his Menu Engine. I only ask if it's possible to incorporate the two together as Yanfly's script forces the Exit Game command to come before anything not being pulled by the Menu Engine. So in essence, my menu currently comes out like this:

Inventory
Equipment
Status
Skills
Tsukihime's Script
Formation
Save / Load
Exit Game
Quest Journal
Monster Catalogue

If you can't think of a way for Menu Engine Ace to incorporate your scripts I'll just keep trying to find a workaround. Thanks for your time though.


[EDIT]
I found a workaround, it involved me making a fake instance in Yanfly's script but not allowing the instance to actually show on the menu as a command. This for some reason moved the Save / Load command and the Exit Game commands to the bottom. Its weird and I'm hoping this doesn't lead to strange errors later.
« Last Edit: August 09, 2012, 07:26:35 AM by lostboyrufio »

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Hm, well I'm glad it's fixed for you.

I just tried the two scripts together and it worked fine; I wasn't able to reproduce the problem. Any chance that you could do me a favour and make a new game with the initial error reproduced? I'd like to see what was going wrong so that I could fix it for other users.

**
Rep: +0/-0Level 72
RMRK Junior
Yeah I've definitely made sure to read through your script and have marked it with an index number, and I always make sure to insert scripts properly based upon what they are most likely heavily modifying or overwriting. Yanfly's script ends up ignoring the listing of the index and instead just pushes all other menu options below the ones in his Menu Engine. I only ask if it's possible to incorporate the two together as Yanfly's script forces the Exit Game command to come before anything not being pulled by the Menu Engine. So in essence, my menu currently comes out like this:

Inventory
Equipment
Status
Skills
Tsukihime's Script
Formation
Save / Load
Exit Game
Quest Journal
Monster Catalogue

If you can't think of a way for Menu Engine Ace to incorporate your scripts I'll just keep trying to find a workaround. Thanks for your time though.


[EDIT]
I found a workaround, it involved me making a fake instance in Yanfly's script but not allowing the instance to actually show on the menu as a command. This for some reason moved the Save / Load command and the Exit Game commands to the bottom. Its weird and I'm hoping this doesn't lead to strange errors later.

How exactly did you go about doing this? I'm trying to call this script with yanflies as well. I have gotten the Quest Journal icon itself to appear, but upon clicking it my games crashes.

 
Code: [Select]
  #--------------------------------------------------------------------------
  # new method: command_journal
  #--------------------------------------------------------------------------
  def command_journal
    return unless $imported['MA_QuestJournal_1.0']
    SceneManager.call(Scene_Quest)
  end
^My Method inside yanflies (When the object is chosen from the menu this method is called to open the "Scene_Quest" Which is where I'm assuming the window setup is.)

Code: [Select]
    for command in YEA::MENU::COMMANDS
      case command
      #--- Default Commands ---
      when :item
        add_command(Vocab::item,   :item,   main_commands_enabled)
      when :skill
        add_command(Vocab::skill,  :skill,  main_commands_enabled)
      when :equip
        add_command(Vocab::equip,  :equip,  main_commands_enabled)
      when :status
        add_command(Vocab::status, :status, main_commands_enabled)
      when :journal
        add_command("Journal", :command_journal, true)
      when :formation
        add_formation_command
      when :save
        add_original_commands
        add_save_command
      when :game_end
        add_game_end_command

 And here's where I created the journal inside the menu commands.

Please, any help? I might be using the wrong scene perhaps?

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
As long as the Quest Journal is below YEA Menu Engine, you shouldn't need to edit anything in either script. It ought to be added to the menu automatically, and whenever I've tested it that is exactly what happens. I uploaded a project where I just pasted the two scripts into the same project, without editing anything at all, and it works fine.

Anyway, obviously it's a real problem, so could you please create a project with that error and share it so that I can see what is going wrong? I'd like to be able to fix this error.
« Last Edit: September 23, 2012, 05:11:11 AM by modern algebra »

**
Rep: +0/-0Level 72
RMRK Junior
As long as the Quest Journal is below YEA Menu Engine, you shouldn't need to edit anything in either script. It ought to be added to the menu automatically, and whenever I've tested it that is exactly what happens. I uploaded a project where I just pasted the two scripts into the same project, without editing anything at all, and it works fine.

Anyway, obviously it's a real problem, so could you please create a project with that error and share it so that I can see what is going wrong? I'd like to be able to fix this error.

Yes, but I am using a "Ring" menu system Since I do not use all of the menu options and im making a "Horror" game not a RPG I needed a simpler menu, when I put both scripts together (yours below yafles) the icon for the script does not appear. This is why I tried to create my own method. This method setup I am using makes the icon appear, however when selected the whole game itself crashes/freezes.

 Here's an example of my menu system: http://screensnapr.com/v/pNrKIu.jpg
« Last Edit: September 23, 2012, 03:20:21 AM by timedead »

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
I'd need to see the ring menu script itself.

**
Rep: +0/-0Level 72
RMRK Junior

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Well, it seems to work for me; I put the scripts in this order:

YEA Menu
Ring Menu
Quest Journal

All I needed to do was name a picture "Quests Icon" and it worked without any modifications to any script. A demo is attached.

**
Rep: +0/-0Level 72
RMRK Junior
Well, it seems to work for me; I put the scripts in this order:

YEA Menu
Ring Menu
Quest Journal

All I needed to do was name a picture "Quests Icon" and it worked without any modifications to any script. A demo is attached.

 It doesn't seem to work for me...

***
Rep:
Level 76
RMRK Junior
It works on my end, only problem is there are empty icon spaces next to the options on the title menu and other stuff like that.

**
Rep: +0/-0Level 72
RMRK Junior
It works on my end, only problem is there are empty icon spaces next to the options on the title menu and other stuff like that.

 I have it setup like in the demo, I also use other menu editing scripts like yafle's status and item menu screens. Any idea if those could interfere?

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
It might be possible. Try adding your other scripts into the working demo one by one and tell me when you hit a snag. Then upload that demo and tell me which script was the last that you added.


@Wiimeiser - that would happen whether you use the Quest Journal or not. If it's an error, it's an error inherent to YEA Menu.
« Last Edit: September 23, 2012, 12:02:17 PM by modern algebra »

**
Rep: +0/-0Level 72
RMRK Junior
It might be possible. Try adding your other scripts into the working demo one by one and tell me when you hit a snag. Then upload that demo and tell me which script was the last that you added.


@Wiimeiser - that would happen whether you use the Quest Journal or not. If it's an error, it's an error inherent to YEA Menu.

 I implemented all my scripts into your demo, and it still works, what possibly could be the problem?

EDIT: Would you mine actually taking a peak at the demo and giving me your thoughts?
« Last Edit: September 24, 2012, 04:07:18 AM by timedead »

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Might it be that you are still using the version of YEA Menu Engine that you had tried to edit? Try replacing it with a fresh copy. If that doesn't work, then I could take a look at your project - just upload it.

**
Rep: +0/-0Level 72
RMRK Junior
Might it be that you are still using the version of YEA Menu Engine that you had tried to edit? Try replacing it with a fresh copy. If that doesn't work, then I could take a look at your project - just upload it.

I coudln't get it, I pm'd you a demo. :/ Sorry.

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Thanks, I will take a look when I get the chance

pokeball YinOfflineFemale
**
Rep:
Level 86
I've been using this script for about a day and just wanted to know a few things before I customize it completely:

Is there a way to change the color of the blue lines?
Could I hide categories until a quest from that category is unlocked?
Could I add more to the description of a quest through a script call or by flipping a switch or variable?

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
1. Yes. Around line 482 you will see:

Code: [Select]
    # line:  This sets the colour for lines or boxes drawn in the quest scene
    line:             :system_color,
    # line_shadow:  This sets the colour of the shadow for lines or boxes drawn
    #  in the quest scene
    line_shadow: [0, 0, 0, 128],

As explained above those lines at line 461:

Code: [Select]
  #  COLOURS - This lets you change the colour for various aspects of the
  # quest scene. Each can be set in one of three ways:
  #    :symbol - If you use a symbol, the colour will be the result of calling
  #      the method of the same name. For instance, if you set something to
  #      :system_color, it will set the colour to the result of the Window_Base
  #      system_color method.
  #    Integer - If you set the colour to an integer, then it will take its
  #      colour from the windowskin palette, just like using \c[x] in messages.
  #    Array - You can also set the rgba values directly with an array in the
  #      format: [red, green, blue, alpha]. alpha can be excluded, but you must
  #      have values for red, green, and blue.

2. Yes, but it has to be done manually. As you can see at line 363:

Code: [Select]
  #  CATEGORIES - This array allows you to set which categories are available
  # in the Quest scene. The default categories are :all, :active, :complete,
  # and :failed, and their names are self-explanatory. You can add custom
  # categories as well, but note that you will need to make sure that each new
  # category has an icon set in the ICONS hash, as well as a label set in the
  # CATEGORY_VOCAB hash (if you are using SHOW_CATEGORY_LABEL). It is also
  # advisable to give it a sort type, unless you are fine with it being sorted
  # by ID, as is default.
  CATEGORIES = [:all, :active, :complete, :failed]

Those will be the default categories. You can remove any of them, but if it is empty then the :all category will be forced into it. If you later want to add a category (for instance, :failed) in the course of a game, you would need to use the following code in a script call:

Code: [Select]
s = $game_system
s.quest_categories << :failed

You could also set it directly, but you might need to make space. Ie, like:

Code: [Select]
s = $game_system
a = [:active, :complete, :failed]
s.quest_categories = a

However, as should be apparent, there is currently no way for a quest to automatically be added only when the first quest which fits in it is. You would have to do it manually.

3. Yes, through a script call. See line 48:

Code: [Select]
#    You can activate and access a quest with this code in the Script event
#   command:
#
#        quest(quest_id)
#          quest_id : the integer ID of the quest you want to access
#
#   From that, you can access or alter any relevant data stored in the quest,
#   like name, description, objectives, etc... Example:
#         quest(1).name = "Rest in Pieces"

So, if you wanted to change the description of quest 2, you would just do something like this:

Code: [Select]
quest(2).description = "bla bla"

Due to the space restrictions in a script call, you may need to break it up into various parts. One way to do that would be:

Code: [Select]
d1 = "bla bla bla"
d2 = " bla2 bla2 bla2"
quest(2).description = d1 + d2

pokeball YinOfflineFemale
**
Rep:
Level 86
Thanks, this is proving to be exactly what I need! Sounds perfect, looks great, functions as I need it to!

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
@Yin - I am glad you are liking it so far!



@timedead - I took a look at your project. The scripts are working together, but the quest system is disabled until a quest is actually revealed. This, combined with the fact that you have the ring menu set to hide disabled icons, is why the Quest Journal is not showing up in the menu. In other words, just reveal a quest and it will show up. Alternatively, go into the ring menu and find the following around like 88:

Code: [Select]
  #--------------------------------------------------------------------------
  # * Show Disabled Options
  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  #  Set to false to exclude disabled options for the menu
  #--------------------------------------------------------------------------
    DISABLED_SHOW = false

Change it to true.

Or, in the further alternative, if you don't want the quests menu to be disabled when a quest hasn't been revealed, you could go to the second last line in the Quest Journal, where you see this:

Code: [Select]
"!$game_system.quest_access_disabled && !$game_party.quests.list.empty?",

And you can change it to:

Code: [Select]
"!$game_system.quest_access_disabled",
« Last Edit: September 27, 2012, 12:15:43 AM by modern algebra »

**
Rep: +0/-0Level 72
RMRK Junior
@Yin - I am glad you are liking it so far!



@timedead - I took a look at your project. The scripts are working together, but the quest system is disabled until a quest is actually revealed. This, combined with the fact that you have the ring menu set to hide disabled icons, is why the Quest Journal is not showing up in the menu. In other words, just reveal a quest and it will show up. Alternatively, go into the ring menu and find the following around like 88:

Code: [Select]
  #--------------------------------------------------------------------------
  # * Show Disabled Options
  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  #  Set to false to exclude disabled options for the menu
  #--------------------------------------------------------------------------
    DISABLED_SHOW = false

Change it to true.

Or, in the further alternative, if you don't want the quests menu to be disabled when a quest hasn't been revealed, you could go to the second last line in the Quest Journal, where you see this:

Code: [Select]
"!$game_system.quest_access_disabled && !$game_party.quests.list.empty?",

And you can change it to:

Code: [Select]
"!$game_system.quest_access_disabled",

That got it working, You're amazing! I can't believe I didn't catch that.... I feel kinda stupid! anywho thanks a lot! looking forward to taking advantage of this script!

**
Rep:
Level 53
RMRK Junior
Looks great.   :D

Can't wait to dig into the code and see what I can make it do.

Thanks for making this, RPG's just aren't complete without a journal (IMHO)

**
Rep:
Level 84
Lone Wolf
Hey MA I love the script and I have a suggestion if you want to make it or not, it's up to you.

With the quests, could you make it possible to have monsters that you need to defeat as one or more of the conditions? Claimh has it in their script, but I prefer yours as it is much easier to understand.

I was just wondering if
a) it was currently possible
else
b) would you be interested in making an add-on to this amazing script?

Other than that, Love the script to bits. Good work on it :)
Broken Hearted
...Lost, Forgotten, Abandoned, Broken...

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
I'm not really sure what you mean. You can certainly put it in as an objective like you would any other objective, but if you are asking whether the script can automatically detect when the monster is killed and auto-complete that objective, then the answer is no - you would have to do that manually. That said, it would not be hard to do it manually. If the monsters are not randomly encountered, than it's especially easy since all you need to do is add 1 to a variable each time you defeat that monster, but it's also not terribly hard to do the same in a battle event for randomly encountered enemies.

***
Rep:
Level 76
RMRK Junior
Death Common Events is probably a good idea.

***
hail satan buddy 666
Rep:
Level 53
Blagil VlUE
Great quest script, I love it. Cool, Modern Algebra.
[

**
Rep:
Level 84
Lone Wolf
@MA ok, i'm not that good at trying to get things to work. I thought that there might have been something within the script I missed. That's alright :) I now understand how I can do it.
---- Now i realize it doesn't need an add-on for what I wanted as there are scripts that can work along-side this one to give the same outcome. Thank you for the help MA :)


@Wiimeister Thank you for the link, it's pretty much what I needed I guess to run the quest I wanted.
---- Script works like a charm thank you :)


Both of you thank you for your responces :)

---- before I was going to post this with a really annoying and very basic question, but I managed to figure the answer out myself.

*all happy now and can continue re-building my database*
Broken Hearted
...Lost, Forgotten, Abandoned, Broken...

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
I'm glad that you could resolve your issue. I hope you enjoy the script. Feel free to return if you have any other questions or feedback; I am always glad to have an opportunity to improve my scripts.

***
Rep:
Level 53
Infected with the sickness.
This seems like a really cool script. Im very new to this, in fact I just joined the site today. Started making my first RPG like 3 days ago, and I got most of the basics covered.. like cut-scenes, switches, some variables etc. But I have an issue with this script.. It seems like I can make it run fine, and I get most of how the script works.. but.. when I shall releave my first Quest Objective with script command: reveal_objective(1,1) I get an error from the Game_Interpreter script on line 1411.. and the game terminates.. I dont get it.

Also, is there a nice way to make the player cautious about the new objective in the quest log? Like Open the quest menu and display the added objective? I guess I could do it the easy way and just add a Input text event saying the quest log has been updated :P

Edit: I resolved the first issue, it was a mistake on my part.. Simple mistake as using a high capital R in reveal.. sigh Im stupid ^^
« Last Edit: November 23, 2012, 02:23:10 AM by Dizturb3d »
Can you feel that?..

                                    My Current Project:


I support:


Fade

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Nah, that's not stupid. It could happen to anyone unfamiliar with scripting.

As for the second issue, you can open the quest journal to a specific quest with the following code in a script call:

Code: [Select]
call_quest_journal(quest_id)

Where, naturally, quest_id is replaced with the integer ID of the quest you want to open.

***
Rep:
Level 53
Infected with the sickness.
Nah, that's not stupid. It could happen to anyone unfamiliar with scripting.

As for the second issue, you can open the quest journal to a specific quest with the following code in a script call:

Code: [Select]
call_quest_journal(quest_id)

Where, naturally, quest_id is replaced with the integer ID of the quest you want to open.

Thanks a bunch! Totally love this script! Now i just need to play around with it a bit more, and hopefully change the layout of the quest journal the way I want it :) Thanks again!
Can you feel that?..

                                    My Current Project:


I support:


Fade

**
Rep: +0/-0Level 49
RMRK Junior
Is there any calls I can do that allow me to check if a quest is completed, in conditional branch style, say, if Quest 8: "Defeat the Boulder Queen" is completed, a boulder event blocking a path will dissappear, instead of wasting switches on each and every single quest?

***
Rep:
Level 53
Infected with the sickness.
Is there any calls I can do that allow me to check if a quest is completed, in conditional branch style, say, if Quest 8: "Defeat the Boulder Queen" is completed, a boulder event blocking a path will dissappear, instead of wasting switches on each and every single quest?

Not sure if you can.. but you are not really "wasting" switches are you? :D You can have many, many switches so shouldnt be a problem.. and if you use self-switches as much as possible you will def have enough of switches :)
Can you feel that?..

                                    My Current Project:


I support:


Fade

*
Rep: +0/-0Level 49
RMRK Junior
I am very unfamiliar with scripting so when I looked through here I tried to make a test quest to see if I got it right. Everytime I try to launch though, I get this
Script 'Test' line 1: Syntax Error occured.
Unexpected keyword_when
when 1 # quest 1

How do I reslove this issue? I've never used a script before.

**
Rep: +0/-0Level 49
RMRK Junior
Is there any calls I can do that allow me to check if a quest is completed, in conditional branch style, say, if Quest 8: "Defeat the Boulder Queen" is completed, a boulder event blocking a path will dissappear, instead of wasting switches on each and every single quest?

Not sure if you can.. but you are not really "wasting" switches are you? :D You can have many, many switches so shouldnt be a problem.. and if you use self-switches as much as possible you will def have enough of switches :)

You'd have to think, you're using up multiple switches per quest, ofter per criteria, as well. You make a switch that says the quest was accepted. You make a switch that says criteria was met. You make a switch that says the quest was completed. Because in my game, these switches are nessassary as your actions effect things. I would like to see if Modern Algebra has a script call for such, as the script registers that a quest and its criteria was met, so I should be able to use that data in a conditional branch script call. I can't use self switches as things in my game don't work in a streamline fashion. It's not this-to-this-to-that. So events read switches to determine what's the current situation through priority (Hero has saved the town from the dragon that had came as a result of saying the wrong thing to a witch--> the bartender congradulates you, then registers that you also delivered his crates to Town B--> He thanks you for that, as well, and gives you 1000 Gold.)
« Last Edit: December 10, 2012, 05:50:20 PM by rubydragon44 »

***
Rep:
Level 53
Infected with the sickness.
You'd have to think, you're using up multiple switches per quest, ofter per criteria, as well. You make a switch that says the quest was accepted. You make a switch that says criteria was met. You make a switch that says the quest was completed. Because in my game, these switches are nessassary as your actions effect things. I would like to see if Modern Algebra has a script call for such, as the script registers that a quest and its criteria was met, so I should be able to use that data in a conditional branch script call. I can't use self switches as things in my game don't work in a streamline fashion. It's not this-to-this-to-that. So events read switches to determine what's the current situation through priority (Hero has saved the town from the dragon that had came as a result of saying the wrong thing to a witch--> the bartender congradulates you, then registers that you also delivered his crates to Town B--> He thanks you for that, as well, and gives you 1000 Gold.)

I see what you mean. I have similar events that needs multiple switches. But you can still use that same switch for multiple actions.. Like if you complete a quest, you can use that switch on several events to have different actions happening to alot of events. And you could also ask yourself if recieving a quest, or completing a special criteria in that particular quest, really has a big impact. Do you really need a switch when you pick up those crates?, does that action really affect the world around you? Instead you could use a self switch right there, and save the switch for when you actually deliver the quest to the owner etc.

But Im not sure exactly how your system works so I could be wrong here.. But still you have 5000 switches to work with, should be enough? :D

And Im pretty sure you can use the script command in a conditional branch already. If you input the script call for your quest, like for example:
Code: [Select]
complete_objective?(0, 1).

If you use that same script call in a conditional branch Im pretty sure that you could use it instead of a switch. I havnt tried it out yet, but I sure will and see how it works.

Edit: Yep, the script-calls actually works inside the conditional brances. I put in the wrong code first, but MA directed you to the line with the script commands :)


I am very unfamiliar with scripting so when I looked through here I tried to make a test quest to see if I got it right. Everytime I try to launch though, I get this
Script 'Test' line 1: Syntax Error occured.
Unexpected keyword_when
when 1 # quest 1

How do I reslove this issue? I've never used a script before.

Are you sure that you are setting up the quest at the correct line? Since the message says that the error occurs at "line 1:" I assume that you are setting up the quest at the beggining of the script? To keep in mind, all the green text in the script is Instructions only, and shouldnt be edited. The Input for your quests starts around line 611: along with all the Instructions there.

The Input of your quest should start around line: 781.

Example of how it could look:

Spoiler for script:
« Last Edit: December 10, 2012, 10:20:52 PM by Dizturb3d »
Can you feel that?..

                                    My Current Project:


I support:


Fade

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
I am very unfamiliar with scripting so when I looked through here I tried to make a test quest to see if I got it right. Everytime I try to launch though, I get this
Script 'Test' line 1: Syntax Error occured.
Unexpected keyword_when
when 1 # quest 1

How do I reslove this issue? I've never used a script before.

Dizturb3d is correct. It sounds like you created a new slot in the Script Editor and put your configuration there. That is wrong. You need to do the configuration inside the script itself, at the place that Dizturb3d mentioned.

Thanks for fielding that one, Dizturb3d!

Is there any calls I can do that allow me to check if a quest is completed, in conditional branch style, say, if Quest 8: "Defeat the Boulder Queen" is completed, a boulder event blocking a path will dissappear, instead of wasting switches on each and every single quest?

I'll direct you to line 162 of the Instructions:

Quote from: Instructions
#    Also, there are a few codes that can be used in the Script command of a
#   conditional branch. I note here that all of these are optional. You could
#   use switch and variable checks and monitor quest progress solely through
#   events. However, these commands make it a little easier and they are:
#
#        quest_revealed?(quest_id)
#            quest_id : the integer ID of the quest you want to access.
#          This is satisfied if the quest has been activated.
#
#        quest_complete?(quest_id)
#          This is satisfied if all prime objectives of the quest are complete
#
#        quest_failed?(quest_id)
#          This is satisfied if any prime objective of the quest is failed
#
#        quest_rewarded?(quest_id)
#          This is satisfied if you have changed the reward status to true.
#
#        objective_revealed?(quest_id, objective_id_1, ... objective_id_n)
#            objective_id_1, ..., objective_id_n : a list of the IDs of the
#              objectives you want to operate on. It can be as few as one or as
#              many as all of them.
#          This is satisfied if the listed objectives have been revealed
#
#        objective_active?(quest_id, objective_id_1, ... objective_id_n)
#          This is satisfied if all the listed objectives are revealed and
#          neither complete nor failed.
#
#        objective_complete?(quest_id, objective_id_1, ... objective_id_n)
#          This is satisfied if all the listed objectives have been completed
#
#        objective_failed?(quest_id, objective_id_1, ... objective_id_n)
#          This is satisfied if all the listed objectives have been failed

All of those will work inside the script call field of a conditional branch. So, if you wanted the condition to be whether Quest 8: Defeat the Boulder Queen is complete, you would just use the following code:

Code: [Select]
quest_complete?(8)

Unfortunately, there is no way currently to use them as conditions on an event page, but one idea I've had for an independent script would be a way to add conditions to an event through comments. If you're interested in that, I could maybe put it on my To Do list.
« Last Edit: December 10, 2012, 09:07:22 PM by modern algebra »

**
Rep: +0/-0Level 49
RMRK Junior
I'm trying to set this up with the Neo Menu System and no matter which way I put it in the code it comes up with an error. It's currently installed under the Menu script as well.

*
Rep:
Level 81
I'm trying to set this up with the Neo Menu System and no matter which way I put it in the code it comes up with an error. It's currently installed under the Menu script as well.

And that error would be?

Without some particular details, it's a stab in the dark at best in understanding what the problem is.
(Why do I always feel like it's the end of the world and I'm the last man standing?)

**
Rep: +0/-0Level 49
RMRK Junior
Script 'Menu' line 26: NameError occurred

uninitialized constant Vocab::Quests

This is my customization for the menu:

     
Code: [Select]
[Vocab::item,  "main_commands_enabled", false,   Scene_Item],
      [Vocab::skill, "main_commands_enabled", true,    Scene_Skill],
      [Vocab::equip, "main_commands_enabled", true,    Scene_Equip],
      [Vocab::status,"main_commands_enabled", true,    Scene_Status],
      [Vocab::Quests,"main_commands_enabled", true,    Scene_Quests],
      [Vocab::formation, "formation_enabled", false,   :command_formation],
      [Vocab::save,           "save_enabled", false,   Scene_Save],
      [Vocab::game_end,                 true, false,   Scene_End],
     

I made sure to match the vocab of the quest log but it doesn't look like it fixed it.

*
Rep:
Level 81
The error means that Vocab::Quests is a constant variable that doesn't exist, or it has no value if it does exist. I'm not entirely sure how to fix it, and would require me looking into things I'm not familiar with. You can try the following, though:

Change Vocab::Quests to

Code: [Select]
Vocab::quests

The difference is in the capital letter on "Quests". As it is, it's trying to find a constant variable called "Quests", but it can't. By changing it to "quests" it will try to find a variable or method called "quests" in "Vocab" which is more likely to exist.

In the event it doesn't exist, you can replace Vocab::Quests with a string that will used as the vocabulary name for Quests. So you could change it to:

Code: [Select]
["Quests", "main_commands_enabled", true, Scene_Quests],

And that should work. It does mean that you would have to change that string if you wanted to use a different name, which might be inconvenient.

Try the first suggestion, first, and let me know how that goes works. The second will work as a temporary fix until someone else can give you the correct answer (assuming mine is wrong).
(Why do I always feel like it's the end of the world and I'm the last man standing?)

**
Rep: +0/-0Level 49
RMRK Junior
Neither of these codes worked.

Vocab::quests gave me this error:

Script 'Menu' line 26: NoMethodError occurred.

underined method `quests' for Vocab:Module.


["Quests", "main_commands_enabled", true, Scene_Quests], gave me this one:

Script 'Menu' line 26: NameError occurred.
uninitialized constant Z01::Scene_Quests

*
Rep:
Level 81
What other scripts are you using? I have no idea what Z01 is referring to, and it's not something that's in the Quest Journal. It sounds like some kind of CMS script seeing as the default Scenes aren't throwing up any errors, only Scene_Quests.

As a starting point, try changing Scene_Quests to Scene_Quest. In Quest Journal, the Quest isn't pluralised, so that might be the cause. If it's not that either, then there's something else that I'm not sure about without some info on what Z01 is.
(Why do I always feel like it's the end of the world and I'm the last man standing?)

**
Rep: +0/-0Level 49
RMRK Junior
I did some fiddling around and it look like not entering the code line for the quest worked (and some trimming of scripts that I didn't didn't need). I feel so stupid now. Sorry.   :-[

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Well, I am glad it all worked out.

**
Rep: +0/-0Level 45
RMRK Junior
Hey, I was wondering if anybody could help me.

I'm trying to use this script along with Pacman's Menu augmenter, found here: http://rmrk.net/index.php/topic,46355.0.html

Problem is, when I load his script into the game, I cannot get a Quest icon to pop back up inside the main menu (via esc.) I can still hit Q in the game to access the quest window, but I'm trying to figure out how to have it so that the new main menu will display the Quests as an option.

Any help with this matter would be much appreciated. I'm rather terrible with scripting, so I'm losing my mind trying to figure out how to make everything work.

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Hmm, this sounds familiar. I think you can find the solution here: http://rmrk.net/index.php/topic,45009.msg536382.html#msg536382

That was for adding the Monster Catalogue to Pacman's script, but these scripts both work the same for adding to the menu, so all you need to do is use a different method. See also: http://rmrk.net/index.php/topic,45009.msg536482.html#msg536482

If you need further assistance, I can try to provide more tailored guidance for this script specifically.

**
Rep: +0/-0Level 45
RMRK Junior
I looked around at your other responses within that thread, and custom tailored the issue myself. Thank you very much for all your assistance! The system works perfectly now! :D

**
Rep: +0/-0Level 44
RMRK Junior
I love your script.

I'm writing a custom shop script and I want certain items to be displayed only when a specific quest is met:
Code: [Select]
module Common
class Shop
def self.by_quest(shop_type, purchase_only = false)
      case shop_type
      when :items
        if quest_complete?(7) # <<<<<<<<<<<<<<<<< crash here: Script 'Game_interpreter' line 1411: NoMethodError occured.
          show(:general_all, purchase_only)
        elsif quest_complete?(4)
          show(:general_advanced, purchase_only)
        else
          show(:general_basic, purchase_only)
        end
....
"Script 'Game_interpreter' line 1411: NoMethodError occured."

It works in scripts in events as well as outside of my module. But not inside of it. I did a ctrl+f to search for your "quest_completed?" definition but it's not there at all. How do I call quest_complete?(x) and objective_complete?(x,y) and such from another module?

Thanks in advance.

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
The following check would do it:

Code: [Select]
$game_party.quests.revealed?(7) && $game_party.quests[7].status?(:complete)

**
Rep: +0/-0Level 44
RMRK Junior
Thanks. Your 'support times' are incredibly fast. Keep up the good work!

**
Rep: +0/-0Level 44
RMRK Junior
No sorry this is no good.
Code: [Select]
$game_party.quests[7].status?(:complete)
will also reveal the quest (7,0) as an unwanted side-effect.

I tested it with a script in an event and indeed it does reveal the quest:
Code: [Select]
if $game_party.quests[7].status?(:complete)
 p 'complete'
else
 p 'not complete'
end

ofcourse i could manually hide it again after using that line in an if-statement but that is kind of bad imo.

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Yes, that is why the code I shared was:

Code: [Select]
$game_party.quests.revealed?(7) && $game_party.quests[7].status?(:complete)

Both parts of that expression are necessary in order to avoid the problem you have encountered. The first part checks whether the quest has been revealed, and if it hasn't been, then it won't check the second part and so it won't accidentally reveal the quest.
« Last Edit: January 12, 2013, 06:39:18 PM by modern algebra »

**
Rep: +0/-0Level 44
RMRK Junior
Oh sorry I misunderstood.

Could I be a pain one more time and ask what the code is for checking it for an objective like (7,1) (for example) through a script?

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
No worries!  ;D

For checking an objective, you again need to have the revealed check, and the entire code is:

Code: [Select]
$game_party.quests.revealed?(x) && $game_party.quests[x].objective_status?(:complete, y)

Where x is the ID of the quest and y is the ID of the objective. So, for your example, it is:

Code: [Select]
$game_party.quests.revealed?(7) && $game_party.quests[7].objective_status?(:complete, 1)

(keeping in mind that 1 is the second objective, with 0 being the first).

Also, if you want to check if more than one objective is complete, you can just insert it immediately after the 1. So, if you wanted to check if objectives 0, 1, and 3 are complete, it would be:

Code: [Select]
$game_party.quests.revealed?(7) && $game_party.quests[7].objective_status?(:complete, 0, 1, 3)

**
Rep: +0/-0Level 44
RMRK Junior
And again many thanks. That works perfectly. In case anyone else would ever need it, add this to your custom class:
Code: [Select]
    def self.quest_complete?(q_id)
      return $game_party.quests.revealed?(q_id) && $game_party.quests[q_id].status?(:complete)
    end
   
    def self.objective_complete?(q_id, *obj_id)
        $game_party.quests.revealed?(q_id) && $game_party.quests[q_id].objective_status?(:complete, *obj_id)
    end

**
Rep: +0/-0Level 44
RMRK Junior
I'm learning Ruby. I started like 2 weeks ago so my code might be 'noobish'. Today I felt brave and attempted to create an addon for your script to make it easier to debug my game.
It actually works  :o, but there were a few things that I couldn't figure out. (I'm sorry if I ask too many questions)

 Problems:
 - How do I retrieve a list of all objectives? The problem is that the user may
   have his objective id's as follow: 0,1,2,100,1000,434334,etc...
   For now I just used a placeholder "@@quests"
 - I also need to retrieve them without making them visible.
 - How do I retrieve the list of objectives that belong to a specific quest_id
   without revealing anything.

Code: [Select]
#==============================================================================
# Version 1.00
#
# About:
# A quick debug manager for turning on/off quests/objectives and/or revealing/
# concealing them.
#
# Instructions:
# Place below "Modern Algebra's Quest Journal" but above "? Main Process".
# Call like this: SceneManager.call(Scene_QJ_Debug).
# Or Press Q in the quest window to open the debug window
#
# Requires:
# - Modern Algebra's Quest Journal
# - RPG Maker VX Ace
#
# Written by Napoleon (My very first addon!).
#
# Version History:
# 1.00 (16-1-2013)
#   - First Release
#==============================================================================


#==============================================================================
# ? Quest Journal - Debug Addon - Singleton instance
#------------------------------------------------------------------------------
#  Singleton instance for the QJ debug scene
#==============================================================================
module Quest_Journal
  module Utility
################################################################################
# CONFIG START
################################################################################
    # When set to true (default) then you can Press [Q] (default) in the quest menu to open the debug menu.
    # When set to false this addon can only be manually called.       
    DEBUG_MENU_ENABLED = true
   
    # Key for opening the debug menu
    DEBUG_MENU_KEY = :L
   
    # The first quest id, usually 0
    FIRST_QUEST = 0
   
    # The maximum quest id to check. This must be equal or higher than your highest quest id
    MAX_QUEST = 1000

    # Quest text color when completed (in debug menu only)
    QUEST_COMPLETE_COLOR = 3 # 3 = lightgreen
################################################################################   
# CONFIG END
################################################################################
    # Samples:
      # Utility.quest_data(1,:objectives)
      # Utility.quest_data(1,:name)
    # Possible symbols: :line, :level, :name, :description, :objectives, :rewards
    def self.quest_data(q_id, symbol)   
      return QuestData.setup_quest(q_id)[symbol]
    end
   
    # Fills the @@quests variable with all used quest id's.
    def self.set_quest_data
      result = []
      array_idx = 0
      for i in FIRST_QUEST..MAX_QUEST
        if quest_data(i,:name) != nil
          result[array_idx] = i
          array_idx +=1
        end
      end
      return result
    end   
   
    #Utility.quests
    @@quests = set_quest_data
    # static getter
    def self.quests
      @@quests
    end 
   
    #Utility.quest_complete?()
    def self.quest_complete?(q_id)
      return $game_party.quests.revealed?(q_id) && $game_party.quests[q_id].status?(:complete)
    end   

    #Utility.reset_quest()
    def self.reset_quest(q_id)
      $game_party.quests.delete_quest(q_id)
      $game_party.quests.setup_quest(q_id)
    end   
    #Utility.objective_complete?(,)
    def self.objective_complete?(q_id, *obj_id)
      $game_party.quests.revealed?(q_id) && $game_party.quests[q_id].objective_status?(:complete, *obj_id)
    end
    #Utility.objective_revealed?(,)
    def self.objective_revealed?(q_id, *obj_id)
      $game_party.quests.revealed?(q_id) && $game_party.quests[q_id].objective_status?(:revealed, *obj_id)
    end
    #Utility.objective_concealed?(,)
    def self.objective_concealed?(q_id, *obj_id)
      $game_party.quests.revealed?(q_id) && $game_party.quests[q_id].objective_status?(:concealed, *obj_id)
    end         
    #Utility.objective_failed?(,)
    def self.objective_failed?(q_id, *obj_id)
      $game_party.quests.revealed?(q_id) && $game_party.quests[q_id].objective_status?(:failed, *obj_id)
    end   
    #Utility.complete_objective(,)
    def self.complete_objective(q_id, obj_id)
      $game_party.quests[q_id].complete_objective(obj_id)
    end
    #Utility.complete_quest(,)
    def self.complete_quest(q_id)
      obj_count = QuestData.setup_quest(q_id)[:objectives].length
      for i in 0..obj_count-1
          complete_objective(q_id,i)
      end
    end   
  end # Utility
 
  #==============================================================================
  # ? Quest Journal - Debug Addon - Quest window (left window)
  #------------------------------------------------------------------------------
  #  This window contains the list of all quests
  #==============================================================================
  class Window_Quests < Window_Selectable
    include Quest_Journal
    #--------------------------------------------------------------------------
    # * Class Variable
    #--------------------------------------------------------------------------
    @@last_top_row = 0                      # For saving first line
    @@last_index   = 0                      # For saving cursor position
    @@sel_quest_id = 1
    #--------------------------------------------------------------------------
    # * Public Instance Variables
    #--------------------------------------------------------------------------
    attr_reader   :right_window             # Right window
    attr_reader   :sel_quest_id             #   
    #--------------------------------------------------------------------------
    # * Object Initialization
    #--------------------------------------------------------------------------
    def initialize(x, y)
      super(x, y, window_width, window_height)
      @sel_quest_id = Utility.quests[0]
      refresh
      self.top_row = @@last_top_row
      select(@@last_index)
      activate
    end
    #--------------------------------------------------------------------------
    # * Get Window Width
    #--------------------------------------------------------------------------
    def window_width
      return 164
    end
    #--------------------------------------------------------------------------
    # * Get Window Height
    #--------------------------------------------------------------------------
    def window_height
      Graphics.height
    end
    #--------------------------------------------------------------------------
    # * Get Number of Items
    #--------------------------------------------------------------------------
    def item_max
      Utility.quests.length || 0
    end
    #--------------------------------------------------------------------------
    # * Frame Update
    #--------------------------------------------------------------------------
    def update
      super     
      if active && Input.trigger?(:L)
        q_id = Utility.quests[index]
        if Utility.quest_complete?(q_id)
          Utility.reset_quest(q_id)
        else
          Utility.complete_quest(q_id)
        end
        Sound.play_ok
        redraw_current_item
        @right_window.refresh
      end
     
      return unless @right_window
      @sel_quest_id = Utility.quests[index]
      @right_window.refresh_me
    end
    #--------------------------------------------------------------------------
    # * Refresh
    #--------------------------------------------------------------------------
    def refresh
      create_contents
      draw_all_items
    end
    #--------------------------------------------------------------------------
    # * Draw Item
    #--------------------------------------------------------------------------
    def draw_item(index)
      quest_id = Utility.quests[index]
      if Utility.quest_complete?(quest_id)
        change_color(text_color(Utility::QUEST_COMPLETE_COLOR))
      end 

      text = sprintf("%02d: #{$game_party.quests[quest_id].name} ", quest_id )
      text_rect = item_rect_for_text(index)
      text_rect.x+=24
     
      draw_text(text_rect, text)
      change_color(normal_color)
      draw_icon($game_party.quests[quest_id].icon_index, text_rect.x-24, text_rect.y, true)       
    end
    #--------------------------------------------------------------------------
    # * Processing When Cancel Button Is Pressed
    #--------------------------------------------------------------------------
    def process_cancel
      super
      @@last_top_row = top_row
      @@last_index = index
    end
    #--------------------------------------------------------------------------
    # * Set Right Window
    #--------------------------------------------------------------------------
    def right_window=(right_window)
      @right_window = right_window
      update
    end
  end

  #==============================================================================
  # ? Quest Journal - Debug Addon - Objective window (right window)
  #------------------------------------------------------------------------------
  #  This window contains the list of all objectives for the selected quest
  #==============================================================================
  #==============================================================================
  # ** Objective Window
  #------------------------------------------------------------------------------
  #  Displays the objectives for the currently selected quest (if any)
  #==============================================================================
  class Window_Objectives < Window_Selectable
    include Quest_Journal
    #--------------------------------------------------------------------------
    # * Public Instance Variables
    #--------------------------------------------------------------------------
    # None
    #--------------------------------------------------------------------------
    # * Private Instance Variables
    #--------------------------------------------------------------------------   
    # The previously selected quest id (in the left window)
    @previous_quest_id
   
    # The text colors for the objective status
    @@OBJ_COLORS = {
      'revealed' => 1, # blue
      'completed' => 3, # green
      'failed' => 18, # red
      'concealed' => 0 # white
    }
    #--------------------------------------------------------------------------
    # * Object Initialization
    #-------------------------------------------------------------------------
    def initialize(x, y, width, left_window)
      @left_window = left_window
      super(x, y, width, fitting_height(10))     
      refresh
    end
    #--------------------------------------------------------------------------
    # * Get Number of Items
    #--------------------------------------------------------------------------
    def item_max
      return QuestData.setup_quest(sel_q_id)[:objectives].length
    end
    #--------------------------------------------------------------------------
    # * Refresh
    #--------------------------------------------------------------------------
    def refresh
      contents.clear
      draw_all_items
    end
    #--------------------------------------------------------------------------
    # * Selected Quest ID
    #--------------------------------------------------------------------------
    def sel_q_id
      return @left_window.sel_quest_id
    end 
    #--------------------------------------------------------------------------
    # * Draw Item
    #-------------------------------------------------------------------------- 
    def draw_item(index)   
      if sel_q_id == nil then return end
     
      obj_id = index # store currently selected objective_id in a more meaningful variable name
      item_text = sprintf("Obj. %0d: #{$game_party.quests[sel_q_id].objectives[obj_id]}",obj_id)
      id_width = text_size(item_text).width
      status = Utility.objective_complete?(sel_q_id,obj_id) ? "[X]" : "[ ]"   
     
      # objective item color
      if Utility.objective_failed?(sel_q_id,index)
        change_color(text_color(@@OBJ_COLORS['failed']))
      elsif Utility.objective_concealed?(sel_q_id,index)
        change_color(text_color(@@OBJ_COLORS['concealed']))
      elsif Utility.objective_complete?(sel_q_id,index)             
        change_color(text_color(@@OBJ_COLORS['completed']))     
      elsif Utility.objective_revealed?(sel_q_id,index)
        change_color(text_color(@@OBJ_COLORS['revealed']))               
      end
     
      # draw text
      text_rect = item_rect_for_text(index)
      status_rect = item_rect_for_text(index)
      text_rect.width -= 30
      draw_text(text_rect, item_text)     
      # draw status
      status_rect.x+= 5
      draw_text(status_rect, status, 2)   
      change_color(normal_color) # reset text color
    end
    #--------------------------------------------------------------------------
    # * Refresh
    #--------------------------------------------------------------------------
    def refresh_me
      if sel_q_id != @previous_quest_id then refresh end
      @previous_quest_id = sel_q_id
    end
    #--------------------------------------------------------------------------
    # * redraw_current_items (redraws both windows current items)
    #--------------------------------------------------------------------------
    def redraw_current_items
      redraw_current_item
      @left_window.redraw_current_item
    end
    #--------------------------------------------------------------------------
    # * Frame Update
    #--------------------------------------------------------------------------
    def update
      super
     
      if Input.trigger?(:C)
        if Utility.objective_complete?(sel_q_id,index)
          $game_party.quests[sel_q_id].uncomplete_objective(index)
        else
          Utility.complete_objective(sel_q_id,index)
        end
        redraw_current_items
        Sound.play_ok
      end
     
      if Input.trigger?(:L)
        if Utility.objective_complete?(sel_q_id,index)
          $game_party.quests[sel_q_id].fail_objective(index)
          #p 'now failed'
        elsif Utility.objective_failed?(sel_q_id,index)
          $game_party.quests[sel_q_id].unfail_objective(index)
          $game_party.quests[sel_q_id].reveal_objective(index)
          #p 'now revealed'
        elsif Utility.objective_revealed?(sel_q_id,index)
          $game_party.quests[sel_q_id].conceal_objective(index)
          #p 'now concealed'
        else # it's ONLY revealed
          $game_party.quests[sel_q_id].complete_objective(index)
          #p 'now completed'
        end
        redraw_current_items
        Sound.play_cursor
      end     
    end
   
  end # end of right window class

end # end of module
#==============================================================================
# ? Quest Journal - Debug Addon - Scene
#------------------------------------------------------------------------------
#  The scene that contains the debug menu
#==============================================================================
class Scene_QJ_Debug < Scene_MenuBase
  #--------------------------------------------------------------------------
  # * Start Processing
  #--------------------------------------------------------------------------
  def start
    super
    create_left_window
    create_right_window
    create_help_window
  end
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  def terminate
    super
  end
  #--------------------------------------------------------------------------
  # * Create Left Window
  #--------------------------------------------------------------------------
  def create_left_window
    @left_window = Quest_Journal::Window_Quests.new(0, 0)
    @left_window.set_handler(:ok,     method(:on_left_ok))
    @left_window.set_handler(:cancel, method(:return_scene))
  end
  #--------------------------------------------------------------------------
  # * Create Right Window
  #--------------------------------------------------------------------------
  def create_right_window
    wx = @left_window.width
    ww = Graphics.width - wx
    @right_window = Quest_Journal::Window_Objectives.new(wx, 0, ww, @left_window)
    @right_window.set_handler(:cancel, method(:on_right_cancel))
    @left_window.right_window = @right_window
  end
  #--------------------------------------------------------------------------
  # * Create Help Window
  #--------------------------------------------------------------------------
  def create_help_window
    wx = @right_window.x
    wy = @right_window.height
    ww = @right_window.width
    wh = Graphics.height - wy
    @help_window = Window_Base.new(wx, wy, ww, wh)
    refresh_help_window(:left)
  end
  #--------------------------------------------------------------------------
  # * Left [OK]
  #--------------------------------------------------------------------------
  def on_left_ok
    refresh_help_window(:right)
    @right_window.activate
    @right_window.select(0)
  end
  #--------------------------------------------------------------------------
  # * Right [Cancel]
  #--------------------------------------------------------------------------
  def on_right_cancel
    @left_window.activate
    @right_window.unselect
    refresh_help_window(:left)
  end
  #--------------------------------------------------------------------------
  # * Refresh Help Window
  #--------------------------------------------------------------------------
  def refresh_help_window(window)
    if window == :left
      help_text = "C (Enter) : Select Quest.\n" +
                  "L (Q) : Complete / Reset"
    else
      help_text = "C (Enter) : Complete / Reset\n" +
                  "L (Q) : Completed [green]\nFailed [red]\nRevealed [blue]\nConcealed [white]"
    end
    @help_window.contents.clear
    @help_window.draw_text_ex(4, 0, help_text)
  end
end # Scene

#==============================================================================
# Overwrite Algebra's Window_QuestList update method so it can call this addon's scene
#==============================================================================
class Window_QuestList < Window_Selectable
  def update
    super
    if Quest_Journal::Utility::DEBUG_MENU_ENABLED && Input.trigger?(Quest_Journal::Utility::DEBUG_MENU_KEY)
      SceneManager.return
      SceneManager.call(Scene_QJ_Debug)
    end
  end
end
#==============================================================================
#
# ? End of File
#
#==============================================================================
« Last Edit: January 16, 2013, 02:12:01 PM by napoleon »

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
I suppose you'd have to do the following:

Code: [Select]
QuestData.setup_quest(id)[:objectives].compact

**
Rep: +0/-0Level 44
RMRK Junior
Thanks. The hardest part is to access all these quests and objectives without revealing them. But I have it all solved now except this one little thing. The code below will reset and conceal the quest. But after it's concealed it can never be revealed anymore... Not even through your reveal_objective(x,y). It stays concealed permanently until I restart the game. I tried another 'dirty' work-around by concealing all objectives but that won't work either. I'm all out of idea's.
Code: [Select]
    # Do not use outcommented version below. It counts as manual conceal and thus is not automatically revealed when calling revea_objective(x,y) for this quest... I think..
    #Utility.conceal_quest()
    #def self.conceal_quest(q_id)
    #  $game_party.quests[q_id].concealed = true
    #end
   
    #Utility.reset_quest()
    # Note that objective ID's may not have gaps. They must be numbered starting from 0 without any gaps in between.
    def self.reset_quest(q_id)
      $game_party.quests.delete_quest(q_id)
      $game_party.quests.setup_quest(q_id)
     
      # ARGH doesn't work. The quest itself will remain revealed after all objectives have been concealed.
      obj_count = QuestData.setup_quest(q_id)[:objectives].length
      for obj_id in 0..obj_count-1
          $game_party.quests[q_id].conceal_objective(obj_id)
      end
    end

Full code in case it matters and any1 cares for going through that bulk:
Code: [Select]
#==============================================================================
# Version 1.00
#
# About:
# A quick debug manager for turning on/off quests/objectives and/or revealing/
# concealing them.
#
# Instructions:
# Place below "Modern Algebra's Quest Journal" but above "? Main Process".
# Call like this: SceneManager.call(Scene_QJ_Debug).
# Or Press Q in the quest window to open the debug window
#
# Requires:
# - Modern Algebra's Quest Journal
# - RPG Maker VX Ace
#
# Written by Napoleon (My very first addon!).
#
# Version History:
# 1.00 (16-1-2013)
#   - First Release
#==============================================================================


#==============================================================================
# ? Quest Journal - Debug Addon - Singleton instance
#------------------------------------------------------------------------------
#  Singleton instance for the QJ debug scene
#==============================================================================
module Quest_Journal
  module Utility
################################################################################
# CONFIG START
################################################################################
    # When set to true (default) then you can Press [Q] (default) in the quest menu to open the debug menu.
    # When set to false this addon can only be manually called.       
    DEBUG_MENU_ENABLED = true
   
    # Key for opening the debug menu
    DEBUG_MENU_KEY = :L
   
    # Key for completing/resetting an entire quest (left window)
    COMPLETE_RESET_QUEST_KEY = :R
   
    # The first quest id, usually 0
    FIRST_QUEST = 0
   
    # The maximum quest id to check. This must be equal or higher than your highest quest id
    MAX_QUEST = 1000

    # Quest text color when completed (in debug menu only)
    QUEST_COMPLETE_COLOR = 3 # 3 = lightgreen
   
    # The text status colors
    OBJ_COLORS = {
      'revealed' => 1, # blue
      'completed' => 3, # green
      'failed' => 18, # red
      'concealed' => 0 # white
    }   
################################################################################   
# CONFIG END
################################################################################
    # Samples:
      # Utility.quest_data(1,:objectives)
      # Utility.quest_data(1,:name)
    # Possible symbols: :line, :level, :name, :description, :objectives, :rewards
    def self.quest_data(q_id, symbol)   
      return QuestData.setup_quest(q_id)[symbol]
    end
   
    # Returns an array with all used (=non-empty) quest id's.
    def self.set_quest_data
      result = []
      array_idx = 0
      for i in FIRST_QUEST..MAX_QUEST
        if quest_data(i,:name) != nil
          result[array_idx] = i
          array_idx +=1
        end
      end
      return result
    end   
   
    #Utility.quests
    @@quests = set_quest_data
    # static getter
    def self.quests
      @@quests
    end 
   
    #Utility.quest_complete?()
    def self.quest_complete?(q_id)
      return $game_party.quests.revealed?(q_id) && $game_party.quests[q_id].status?(:complete)
    end   
    #Utility.quest_revealed?()
    def self.quest_revealed?(q_id)
      return $game_party.quests.revealed?(q_id)
    end   
    #Utility.quest_failed?()
    def self.quest_failed?(q_id)
      return $game_party.quests.revealed?(q_id) && $game_party.quests[q_id].status?(:failed)
    end   
    #Utility.quest_concealed?()
    def self.quest_concealed?(q_id)
      return !$game_party.quests.revealed?(q_id)
    end       
   
    #Utility.objective_complete?(,)
    def self.objective_complete?(q_id, *obj_id)
      $game_party.quests.revealed?(q_id) && $game_party.quests[q_id].objective_status?(:complete, *obj_id)
    end
    #Utility.objective_revealed?(,)
    def self.objective_revealed?(q_id, *obj_id)
      $game_party.quests.revealed?(q_id) && $game_party.quests[q_id].objective_status?(:revealed, *obj_id)
    end
    #Utility.objective_concealed?(,)
    def self.objective_concealed?(q_id, *obj_id)
      $game_party.quests.revealed?(q_id) && $game_party.quests[q_id].objective_status?(:concealed, *obj_id)
    end         
    #Utility.objective_failed?(,)
    def self.objective_failed?(q_id, *obj_id)
      $game_party.quests.revealed?(q_id) && $game_party.quests[q_id].objective_status?(:failed, *obj_id)
    end   
    #Utility.complete_objective(,)
    def self.complete_objective(q_id, obj_id)
      $game_party.quests[q_id].complete_objective(obj_id)
    end
    #Utility.complete_quest(,)
    # Completes all objectives for the specified quest
    # Note that objective ID's may not have gaps. They must be numbered starting from 0 without any gaps in between.
    def self.complete_quest(q_id)
      obj_count = QuestData.setup_quest(q_id)[:objectives].length
      for i in 0..obj_count-1
          complete_objective(q_id,i)
      end
    end   
    #Utility.conceal_quest()
    def self.conceal_quest(q_id)
      $game_party.quests[q_id].concealed = true
    end
    #Utility.reset_quest()
    def self.reset_quest(q_id)
      $game_party.quests.delete_quest(q_id)
      $game_party.quests.setup_quest(q_id)
      conceal_quest(q_id)
    end
  end # Utility
 
  #==============================================================================
  # ? Quest Journal - Debug Addon - Quest window (left window)
  #------------------------------------------------------------------------------
  #  This window contains the list of all quests
  #==============================================================================
  class Window_Quests < Window_Selectable
    include Quest_Journal
    #--------------------------------------------------------------------------
    # * Class Variable
    #--------------------------------------------------------------------------
    @@last_top_row = 0                      # For saving first line
    @@last_index   = 0                      # For saving cursor position
    @@sel_quest_id = 1
    #--------------------------------------------------------------------------
    # * Public Instance Variables
    #--------------------------------------------------------------------------
    attr_reader   :right_window             # Right window
    attr_reader   :sel_quest_id             #   
    #--------------------------------------------------------------------------
    # * Object Initialization
    #--------------------------------------------------------------------------
    def initialize(x, y)
      super(x, y, window_width, window_height)
      @sel_quest_id = Utility.quests[0]
      refresh
      self.top_row = @@last_top_row
      select(@@last_index)
      activate
    end
    #--------------------------------------------------------------------------
    # * Get Window Width
    #--------------------------------------------------------------------------
    def window_width
      return 164
    end
    #--------------------------------------------------------------------------
    # * Get Window Height
    #--------------------------------------------------------------------------
    def window_height
      Graphics.height
    end
    #--------------------------------------------------------------------------
    # * Get Number of Items
    #--------------------------------------------------------------------------
    def item_max
      Utility.quests.length || 0
    end
    #--------------------------------------------------------------------------
    # * Frame Update
    #--------------------------------------------------------------------------
    def update
      super
      if active && Input.trigger?(Utility::COMPLETE_RESET_QUEST_KEY)
        q_id = Utility.quests[index]
        if Utility.quest_complete?(q_id)
          Utility.reset_quest(q_id)
        else
          Utility.complete_quest(q_id)
        end
        Sound.play_ok
        redraw_current_item
        @right_window.refresh
      end
     
      return unless @right_window
      @sel_quest_id = Utility.quests[index]
      @right_window.refresh_me
    end
    #--------------------------------------------------------------------------
    # * Refresh
    #--------------------------------------------------------------------------
    def refresh
      create_contents
      draw_all_items
    end
    #--------------------------------------------------------------------------
    # * Draw Item
    #--------------------------------------------------------------------------
    def draw_item(index)
      quest_id = Utility.quests[index]
     
      # quest item color
      if Utility.quest_failed?(quest_id)
        change_color(text_color(Utility::OBJ_COLORS['failed']))
      elsif Utility.quest_concealed?(quest_id)
        change_color(text_color(Utility::OBJ_COLORS['concealed']))
      elsif Utility.quest_complete?(quest_id)             
        change_color(text_color(Utility::OBJ_COLORS['completed']))     
      elsif Utility.quest_revealed?(quest_id)
        change_color(text_color(Utility::OBJ_COLORS['revealed']))               
      end

      text = sprintf("%02d: #{QuestData.setup_quest(quest_id)[:name]} ", quest_id )
     
      text_rect = item_rect_for_text(index)
      text_rect.x+=24
     
      draw_text(text_rect, text)
      change_color(normal_color)
      draw_icon(QuestData.setup_quest(quest_id)[:icon_index], text_rect.x-24, text_rect.y, true)
    end
    #--------------------------------------------------------------------------
    # * Processing When Cancel Button Is Pressed
    #--------------------------------------------------------------------------
    def process_cancel
      super
      @@last_top_row = top_row
      @@last_index = index
    end
    #--------------------------------------------------------------------------
    # * Set Right Window
    #--------------------------------------------------------------------------
    def right_window=(right_window)
      @right_window = right_window
      update
    end
  end

  #==============================================================================
  # ? Quest Journal - Debug Addon - Objective window (right window)
  #------------------------------------------------------------------------------
  #  This window contains the list of all objectives for the selected quest
  #==============================================================================
  #==============================================================================
  # ** Objective Window
  #------------------------------------------------------------------------------
  #  Displays the objectives for the currently selected quest (if any)
  #==============================================================================
  class Window_Objectives < Window_Selectable
    include Quest_Journal
    #--------------------------------------------------------------------------
    # * Public Instance Variables
    #--------------------------------------------------------------------------
    # None
    #--------------------------------------------------------------------------
    # * Private Instance Variables
    #--------------------------------------------------------------------------   
    # The previously selected quest id (in the left window)
    @previous_quest_id
   

    #--------------------------------------------------------------------------
    # * Object Initialization
    #-------------------------------------------------------------------------
    def initialize(x, y, width, left_window)
      @left_window = left_window
      super(x, y, width, fitting_height(10))     
      refresh
    end
    #--------------------------------------------------------------------------
    # * Get Number of Items
    #--------------------------------------------------------------------------
    def item_max
      return QuestData.setup_quest(sel_q_id)[:objectives].length
    end
    #--------------------------------------------------------------------------
    # * Refresh
    #--------------------------------------------------------------------------
    def refresh
      contents.clear
      draw_all_items
    end
    #--------------------------------------------------------------------------
    # * Selected Quest ID
    #--------------------------------------------------------------------------
    def sel_q_id
      return @left_window.sel_quest_id
    end 
    #--------------------------------------------------------------------------
    # * Draw Item
    #-------------------------------------------------------------------------- 
    def draw_item(index)   
      if sel_q_id == nil then return end
     
      obj_id = index # store currently selected objective_id in a more meaningful variable name
      item_text = sprintf("Obj. %0d: #{QuestData.setup_quest(sel_q_id)[:objectives][index]}",obj_id)
      id_width = text_size(item_text).width
      status = Utility.objective_complete?(sel_q_id,obj_id) ? "[X]" : "[ ]"   
     
      # objective item color
      if Utility.objective_failed?(sel_q_id,index)
        change_color(text_color(Utility::OBJ_COLORS['failed']))
      elsif Utility.objective_concealed?(sel_q_id,index)
        change_color(text_color(Utility::OBJ_COLORS['concealed']))
      elsif Utility.objective_complete?(sel_q_id,index)             
        change_color(text_color(Utility::OBJ_COLORS['completed']))     
      elsif Utility.objective_revealed?(sel_q_id,index)
        change_color(text_color(Utility::OBJ_COLORS['revealed']))               
      end
     
      # draw text
      text_rect = item_rect_for_text(index)
      status_rect = item_rect_for_text(index)
      text_rect.width -= 30
      draw_text(text_rect, item_text)     
      # draw status
      status_rect.x+= 5
      draw_text(status_rect, status, 2)   
      change_color(normal_color) # reset text color
    end
    #--------------------------------------------------------------------------
    # * Refresh
    #--------------------------------------------------------------------------
    def refresh_me
      if sel_q_id != @previous_quest_id then refresh end
      @previous_quest_id = sel_q_id
    end
    #--------------------------------------------------------------------------
    # * redraw_current_items (redraws both windows current items)
    #--------------------------------------------------------------------------
    def redraw_current_items
      redraw_current_item
      @left_window.redraw_current_item
    end
    #--------------------------------------------------------------------------
    # * Frame Update
    #--------------------------------------------------------------------------
    def update
      super
     
      if Input.trigger?(:C)
        if Utility.objective_complete?(sel_q_id,index)
          $game_party.quests[sel_q_id].uncomplete_objective(index)
        else
          Utility.complete_objective(sel_q_id,index)
        end
        redraw_current_items
        Sound.play_ok
      end
     
      if active && Input.trigger?(:L)
        if Utility.objective_complete?(sel_q_id,index)
          $game_party.quests[sel_q_id].fail_objective(index)
          #p 'now failed'
        elsif Utility.objective_failed?(sel_q_id,index)
          $game_party.quests[sel_q_id].unfail_objective(index)
          $game_party.quests[sel_q_id].reveal_objective(index)
          #p 'now revealed'
        elsif Utility.objective_revealed?(sel_q_id,index)
          $game_party.quests[sel_q_id].conceal_objective(index)
          #p 'now concealed'
        else # it's ONLY revealed
          $game_party.quests[sel_q_id].complete_objective(index)
          #p 'now completed'
        end
        redraw_current_items
        Sound.play_cursor
      end     
    end
   
  end # end of right window class

end # end of module
#==============================================================================
# ? Quest Journal - Debug Addon - Scene
#------------------------------------------------------------------------------
#  The scene that contains the debug menu
#==============================================================================
class Scene_QJ_Debug < Scene_MenuBase
  #--------------------------------------------------------------------------
  # * Start Processing
  #--------------------------------------------------------------------------
  def start
    super
    create_left_window
    create_right_window
    create_help_window
  end
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  def terminate
    super
  end
  #--------------------------------------------------------------------------
  # * Create Left Window
  #--------------------------------------------------------------------------
  def create_left_window
    @left_window = Quest_Journal::Window_Quests.new(0, 0)
    @left_window.set_handler(:ok,     method(:on_left_ok))
    @left_window.set_handler(:cancel, method(:return_scene))
  end
  #--------------------------------------------------------------------------
  # * Create Right Window
  #--------------------------------------------------------------------------
  def create_right_window
    wx = @left_window.width
    ww = Graphics.width - wx
    @right_window = Quest_Journal::Window_Objectives.new(wx, 0, ww, @left_window)
    @right_window.set_handler(:cancel, method(:on_right_cancel))
    @left_window.right_window = @right_window
  end
  #--------------------------------------------------------------------------
  # * Create Help Window
  #--------------------------------------------------------------------------
  def create_help_window
    wx = @right_window.x
    wy = @right_window.height
    ww = @right_window.width
    wh = Graphics.height - wy
    @help_window = Window_Base.new(wx, wy, ww, wh)
    refresh_help_window(:left)
  end
  #--------------------------------------------------------------------------
  # * Left [OK]
  #--------------------------------------------------------------------------
  def on_left_ok
    refresh_help_window(:right)
    @right_window.activate
    @right_window.select(0)
  end
  #--------------------------------------------------------------------------
  # * Right [Cancel]
  #--------------------------------------------------------------------------
  def on_right_cancel
    @left_window.activate
    @right_window.unselect
    refresh_help_window(:left)
  end
  #--------------------------------------------------------------------------
  # * Refresh Help Window
  #--------------------------------------------------------------------------
  def refresh_help_window(window)
    if window == :left
      help_text = "C (Enter) : Select Quest.\n" +
                  "R (W) : Complete / Reset+Conceal"
    else
      help_text = "C (Enter) : Complete / Reset\n" +
                  "L (Q) : Completed [green]\nFailed [red]\nRevealed [blue]\nConcealed [white]"
    end
    @help_window.contents.clear
    @help_window.draw_text_ex(4, 0, help_text)
  end
end # Scene

#==============================================================================
# Overwrite Algebra's Window_QuestList update method so it can call this addon's scene
#==============================================================================
class Window_QuestList < Window_Selectable
  def update
    super
    if Quest_Journal::Utility::DEBUG_MENU_ENABLED && Input.trigger?(Quest_Journal::Utility::DEBUG_MENU_KEY)
      SceneManager.return
      SceneManager.call(Scene_QJ_Debug)
    end
  end
end
#==============================================================================
#
# ? End of File
#
#==============================================================================

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
I'm not sure what you mean. You should be able to conceal and reveal quests with the code:

Code: [Select]
$game_party.quests[id].concealed = true/false

Setting it to true conceals the quest and setting it to false reveals it. I believe that when you do that, it will show up again.

Also that code:

Code: [Select]
QuestData.setup_quest(id)

will give you access to all of the quest data without revealing anything, not just objectives.

**
Rep: +0/-0Level 44
RMRK Junior
I know I did a "p QuestData.setup_quest(q_id)" to check out what's inside of it. It does not contain objective id's. But as long as the user configures his objective id's in a sequential manner it should be fine.
In fact, I just noticed that your script crashes if the user does not use a sequential objective-id-list. for Example:
Code: [Select]
      q[:objectives][0]     = "Meet your colleague"
      q[:objectives][1]     = "Travel to Castle"
      q[:objectives][2]     = "Don't steal the panties"
      q[:objectives][3]     = "Pass your exam"
      q[:objectives][4]     = "Celebrate your new rank"
      #q[:objectives][5]     = "Steal the panties!" <<< removed because it does not fit in my game
      #q[:objectives][6]     = "Steal the panties! Part 2" <<< removed because it does not fit in my game
      q[:objectives][7]     = "Go ZzzzZzz" # <<<<< skipped id 5 and 6. Will cause crash at some point.
This will crash your application when objective 7 is revealed. My addon won't crash but will display 2 empty rows. However, your documentation did not read that this was not allowed (or did I miss that?).
Because my events on the map check for certain objective id's to be completed (like a rock that is not removed until you 'Passed your exam'). When I for some reason decide to remove objective 2 because stealing panties doesn't fit in my story then I have to fill in a dummy objective in order for your script not to crash. And if I would just shift the higher objective-id's one value lower then I would have to check ALL of my maps to make sure that they don't use any of those objective id's and if they do update those too.
It would have been nice if an objective would have another parameter (weight) or something for sorting them so that you never have any gaps.
I'm sorry if I'm totally wrong.


About the concealing:
Code: [Select]
$game_party.quests[id].concealed = true
Yes it does conceal the quest. But the problem is that when I complete/fail/update an objective after I concealed the quest then Quest Journal does not automatically reveal the quest anymore . It stays concealed no matter what until I manually call:
Code: [Select]
$game_party.quests[id].concealed = false

The quest should just return to it's concealed state like when the game started. The above code is some kind of hard-conceal that sticks on it. That's not what I need. I just need to reset the quest and conceal it again (as if it was never revealed/used at all during this game-run).

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Well, the only way to do that is:

Code: [Select]
      $game_party.quests.delete_quest(q_id)

That should make it as if the quest was never revealed, without setting the hard conceal. But I guess I am asking why it's necessary to access the quest through the Game_Quests class when you can retrieve any relevant data from the QuestData.setup_quest(q_id)?



I'm unable to recreate the non-sequential IDs error in my test project. I could see that error occurring if the game tried to reveal an objective that was set to nil, but I'm not sure why it would happen otherwise if you tried to reveal an objective that was not set to nil but which was non-sequential. Could you maybe recreate the error in a demo and show it to me?


As for showing the blank spaces, you can prevent that by using the #compact method. Ie:

Code: [Select]
QuestData.setup_quest(id)[:objectives].compact

If you want to retrieve the IDs, then you'd need the non-compacted array of course, but the objectives array is arranged in such a way that the ID of the objective is its position in the array.

**
Rep: +0/-0Level 44
RMRK Junior
You are right, it happened because objective_complete(x,y) was called on a nil objective.
No it wasn't revealed by me, I just needed to reset and conceal a quest even if it was revealed by the user or by some event or whatever reason.
I got it all working now :). Many thanks again.

Here is the new version:
Code: [Select]
#==============================================================================
# Version 1.00
#
# About:
# A quick debug manager for completing/failing/revealing/concealing quests and
# objectives.
#
# Instructions:
# Place below "Modern Algebra's Quest Journal" but above "? Main Process".
# Call like this: SceneManager.call(Scene_QJ_Debug).
# Or Press Q (default) in the quest window to open the debug window.
#
# Requires:
# - Modern Algebra's Quest Journal 1.0.3
# - RPG Maker VX Ace
#
# Written by Napoleon (My very first addon!).
# Special thanks to Modern Algebra for answering my questions.
#
# Terms of Use:
# Credits are appreciated but not required. You may repost this as well as long
# as you do not claim this as your own work.
#
# Version History:
# 1.00 (17-1-2013)
#   - First Release
#==============================================================================


#==============================================================================
# ? Quest Journal - Debug Addon - Singleton instance
#------------------------------------------------------------------------------
#  Singleton instance for the QJ debug scene
#==============================================================================
module Quest_Journal
  module Utility
################################################################################
# CONFIG START
################################################################################
    # When set to true (default) then you can Press [Q] (default) in the quest menu to open the debug menu.
    # When set to false this addon can only be manually called.       
    DEBUG_MENU_ENABLED = true
   
    # Key for opening the debug menu from the quest journal. Use a nil value to disable this.
    DEBUG_MENU_KEY = QuestData::MAP_BUTTON # Should be [Q] by default
   
    # Key for completing/resetting an entire quest (left window)
    COMPLETE_RESET_QUEST_KEY = QuestData::MAP_BUTTON # Should be [Q] by default
   
    # Key for opening the debug menu directly from the map. Use a nil value to disable this.
    MAP_KEY = nil
   
    # When set to true then the debug menu will be shown if the Quest Journal has no quests and would have otherwise just played a 'buzzer sound'.
    SHOW_WHEN_NO_QUESTS = true
   
    # The first quest id, usually 0
    FIRST_QUEST = 0
   
    # When set to false then the map is shown after closing the debug menu even if it was opened through the Quest Journal's menu.
    RETURN_TO_QUEST_MENU = true
   
    # The maximum quest id to check. This must be equal or higher than your highest quest id
    MAX_QUEST = 1000

    # Quest text color when completed (in debug menu only)
    QUEST_COMPLETE_COLOR = 3 # 3 = lightgreen
   
    # The text status colors
    COLORS = {
      'revealed' => 1, # blue
      'completed' => 3, # green
      'failed' => 18, # red
      'concealed' => 0 # white
    }   
################################################################################   
# CONFIG END
################################################################################
    # Samples:
      # Utility.quest_data(1,:objectives)
      # Utility.quest_data(1,:name)
    # Possible symbols: :line, :level, :name, :description, :objectives, :rewards
    def self.quest_data(q_id, symbol)   
      return QuestData.setup_quest(q_id)[symbol]
    end
   
    # Returns an array with all used (=non-empty) quest id's.
    def self.set_quest_data
      result = []
      array_idx = 0
      for i in FIRST_QUEST..MAX_QUEST
        if quest_data(i,:name) != nil
          result[array_idx] = i
          array_idx +=1
        end
      end
      return result
    end   
   
    #Utility.quests
    @@quests = set_quest_data
    # static getter
    def self.quests
      @@quests
    end 
   
    #Utility.quest_complete?()
    def self.quest_complete?(q_id)
      return $game_party.quests.revealed?(q_id) && $game_party.quests[q_id].status?(:complete)
    end   
    #Utility.quest_revealed?()
    def self.quest_revealed?(q_id)
      return $game_party.quests.revealed?(q_id)
    end   
    #Utility.quest_failed?()
    def self.quest_failed?(q_id)
      return $game_party.quests.revealed?(q_id) && $game_party.quests[q_id].status?(:failed)
    end   
    #Utility.quest_concealed?()
    def self.quest_concealed?(q_id)
      return !$game_party.quests.revealed?(q_id)
    end       
   
    #Utility.objective_complete?(,)
    def self.objective_complete?(q_id, *obj_id)
      $game_party.quests.revealed?(q_id) && $game_party.quests[q_id].objective_status?(:complete, *obj_id)
    end
    #Utility.objective_revealed?(,)
    def self.objective_revealed?(q_id, *obj_id)
      $game_party.quests.revealed?(q_id) && $game_party.quests[q_id].objective_status?(:revealed, *obj_id)
    end
    #Utility.objective_concealed?(,)
    def self.objective_concealed?(q_id, *obj_id)
      $game_party.quests.revealed?(q_id) && $game_party.quests[q_id].objective_status?(:concealed, *obj_id)
    end         
    #Utility.objective_failed?(,)
    def self.objective_failed?(q_id, *obj_id)
      $game_party.quests.revealed?(q_id) && $game_party.quests[q_id].objective_status?(:failed, *obj_id)
    end   
    #Utility.complete_objective(,)
    def self.complete_objective(q_id, obj_id)
      $game_party.quests[q_id].complete_objective(obj_id)
    end
    #Utility.complete_quest(,)
    # Completes all objectives for the specified quest
    # Note that objective ID's may not have gaps. They must be numbered starting from 0 without any gaps in between.
    def self.complete_quest(q_id)
      obj_count = QuestData.setup_quest(q_id)[:objectives].compact.length
      for i in 0..obj_count-1
          complete_objective(q_id,i)
      end
    end   
   
    #Utility.reset_quest()
    def self.reset_quest(q_id)
      $game_party.quests.delete_quest(q_id)
    end
  end # Utility
 
  #==============================================================================
  # ? Quest Journal - Debug Addon - Quest window (left window)
  #------------------------------------------------------------------------------
  #  This window contains the list of all quests
  #==============================================================================
  class Window_Quests < Window_Selectable
    include Quest_Journal
    #--------------------------------------------------------------------------
    # * Class Variable
    #--------------------------------------------------------------------------
    @@last_top_row = 0                      # For saving first line
    @@last_index   = 0                      # For saving cursor position
    @@sel_quest_id = 1                      # The current selected quest id
    @@is_first_update                       # Determines if this window had it's first update called.
    #--------------------------------------------------------------------------
    # * Public Instance Variables
    #--------------------------------------------------------------------------
    attr_reader   :right_window             # Right window
    attr_reader   :sel_quest_id             #   
    #--------------------------------------------------------------------------
    # * Object Initialization
    #--------------------------------------------------------------------------
    def initialize(x, y)
      @@is_first_update = true
      super(x, y, window_width, window_height)
      @sel_quest_id = Utility.quests[0]
      refresh
      self.top_row = @@last_top_row
      select(@@last_index)
      activate
    end
    #--------------------------------------------------------------------------
    # * Get Window Width
    #--------------------------------------------------------------------------
    def window_width
      return 164
    end
    #--------------------------------------------------------------------------
    # * Get Window Height
    #--------------------------------------------------------------------------
    def window_height
      Graphics.height
    end
    #--------------------------------------------------------------------------
    # * Get Number of Items
    #--------------------------------------------------------------------------
    def item_max
      Utility.quests.length || 0
    end
    #--------------------------------------------------------------------------
    # * Frame Update
    #--------------------------------------------------------------------------
    def update     
      super
      if active && Input.trigger?(Utility::COMPLETE_RESET_QUEST_KEY) && !@@is_first_update
        q_id = Utility.quests[index]
        if Utility.quest_complete?(q_id)
          Utility.reset_quest(q_id)
        else
          Utility.complete_quest(q_id)
        end
        Sound.play_ok
        redraw_current_item
        @right_window.refresh
      end
     
      if !Input.press?(:L) then @@is_first_update = false end

      return unless @right_window
      @sel_quest_id = Utility.quests[index]
      @right_window.refresh_me
    end
    #--------------------------------------------------------------------------
    # * Refresh
    #--------------------------------------------------------------------------
    def refresh
      create_contents
      draw_all_items
    end
    #--------------------------------------------------------------------------
    # * Draw Item
    #--------------------------------------------------------------------------
    def draw_item(index)
      quest_id = Utility.quests[index]
     
      # quest item color
      if Utility.quest_failed?(quest_id)
        change_color(text_color(Utility::COLORS['failed']))
      elsif Utility.quest_concealed?(quest_id)
        change_color(text_color(Utility::COLORS['concealed']))
      elsif Utility.quest_complete?(quest_id)             
        change_color(text_color(Utility::COLORS['completed']))     
      elsif Utility.quest_revealed?(quest_id)
        change_color(text_color(Utility::COLORS['revealed']))               
      end

      text = sprintf("%02d: #{QuestData.setup_quest(quest_id)[:name]} ", quest_id )
      text_rect = item_rect_for_text(index)
      text_rect.x+=24
     
      draw_text(text_rect, text)
      change_color(normal_color)
      draw_icon(QuestData.setup_quest(quest_id)[:icon_index], text_rect.x-24, text_rect.y, true)
    end
    #--------------------------------------------------------------------------
    # * Processing When Cancel Button Is Pressed
    #--------------------------------------------------------------------------
    def process_cancel
      super
      @@last_top_row = top_row
      @@last_index = index
    end
    #--------------------------------------------------------------------------
    # * Set Right Window
    #--------------------------------------------------------------------------
    def right_window=(right_window)
      @right_window = right_window
      update
    end
  end

  #==============================================================================
  # ? Quest Journal - Debug Addon - Objective window (right window)
  #------------------------------------------------------------------------------
  #  This window contains the list of all objectives for the selected quest
  #==============================================================================
  #==============================================================================
  # ** Objective Window
  #------------------------------------------------------------------------------
  #  Displays the objectives for the currently selected quest (if any)
  #==============================================================================
  class Window_Objectives < Window_Selectable
    include Quest_Journal
    #--------------------------------------------------------------------------
    # * Public Instance Variables
    #--------------------------------------------------------------------------
    # None
    #--------------------------------------------------------------------------
    # * Private Instance Variables
    #--------------------------------------------------------------------------   
    # The previously selected quest id (in the left window)
    @previous_quest_id
   

    #--------------------------------------------------------------------------
    # * Object Initialization
    #-------------------------------------------------------------------------
    def initialize(x, y, width, left_window)
      @left_window = left_window
      super(x, y, width, fitting_height(10))     
      refresh
    end
    #--------------------------------------------------------------------------
    # * Get Number of Items
    #--------------------------------------------------------------------------
    def item_max
      return QuestData.setup_quest(sel_q_id)[:objectives].length
    end
    #--------------------------------------------------------------------------
    # * Refresh
    #--------------------------------------------------------------------------
    def refresh
      contents.clear
      draw_all_items
    end
    #--------------------------------------------------------------------------
    # * Selected Quest ID
    #--------------------------------------------------------------------------
    def sel_q_id
      return @left_window.sel_quest_id
    end 
    #--------------------------------------------------------------------------
    # * Draw Item
    #-------------------------------------------------------------------------- 
    def draw_item(index)   
      if sel_q_id == nil then return end
     
      obj_id = index # store currently selected objective_id in a more meaningful variable name
      item_text = sprintf("Obj. %0d: #{QuestData.setup_quest(sel_q_id)[:objectives][index]}",obj_id)
      id_width = text_size(item_text).width
      status = Utility.objective_complete?(sel_q_id,obj_id) ? "[X]" : "[ ]"   
     
      # objective item color
      if Utility.objective_failed?(sel_q_id,index)
        change_color(text_color(Utility::COLORS['failed']))
      elsif Utility.objective_concealed?(sel_q_id,index)
        change_color(text_color(Utility::COLORS['concealed']))
      elsif Utility.objective_complete?(sel_q_id,index)             
        change_color(text_color(Utility::COLORS['completed']))     
      elsif Utility.objective_revealed?(sel_q_id,index)
        change_color(text_color(Utility::COLORS['revealed']))               
      end
     
      # draw text
      text_rect = item_rect_for_text(index)
      status_rect = item_rect_for_text(index)
      text_rect.width -= 30
      draw_text(text_rect, item_text)     
      # draw status
      status_rect.x+= 5
      draw_text(status_rect, status, 2)   
      change_color(normal_color) # reset text color
    end
    #--------------------------------------------------------------------------
    # * Refresh
    #--------------------------------------------------------------------------
    def refresh_me
      if sel_q_id != @previous_quest_id then refresh end
      @previous_quest_id = sel_q_id
    end
    #--------------------------------------------------------------------------
    # * redraw_current_items (redraws both windows current items)
    #--------------------------------------------------------------------------
    def redraw_current_items
      redraw_current_item
      @left_window.redraw_current_item
    end
    #--------------------------------------------------------------------------
    # * Frame Update
    #--------------------------------------------------------------------------
    def update
      super
     
      if Input.trigger?(:C)
        if Utility.objective_complete?(sel_q_id,index)
          $game_party.quests[sel_q_id].uncomplete_objective(index)
        else
          Utility.complete_objective(sel_q_id,index)
        end
        redraw_current_items
        Sound.play_ok
      end
     
      if active && Input.trigger?(:L)
        if Utility.objective_complete?(sel_q_id,index)
          $game_party.quests[sel_q_id].fail_objective(index)
          #p 'now failed'
        elsif Utility.objective_failed?(sel_q_id,index)
          $game_party.quests[sel_q_id].unfail_objective(index)
          $game_party.quests[sel_q_id].reveal_objective(index)
          #p 'now revealed'
        elsif Utility.objective_revealed?(sel_q_id,index)
          $game_party.quests[sel_q_id].conceal_objective(index)
          #p 'now concealed'
        else # it's ONLY revealed
          $game_party.quests[sel_q_id].complete_objective(index)
          #p 'now completed'
        end
        redraw_current_items
        Sound.play_cursor
      end     
    end
   
  end # end of right window class

end # end of module
#==============================================================================
# ? Quest Journal - Debug Addon - Scene
#------------------------------------------------------------------------------
#  The scene that contains the debug menu
#==============================================================================
class Scene_QJ_Debug < Scene_MenuBase
  #--------------------------------------------------------------------------
  # * Start Processing
  #--------------------------------------------------------------------------
  def start
    super
    create_left_window
    create_right_window
    create_help_window
  end
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  def terminate
    super
  end
  #--------------------------------------------------------------------------
  # * Create Left Window
  #--------------------------------------------------------------------------
  def create_left_window
    @left_window = Quest_Journal::Window_Quests.new(0, 0)
    @left_window.set_handler(:ok,     method(:on_left_ok))
    @left_window.set_handler(:cancel, method(:return_scene))
  end
  #--------------------------------------------------------------------------
  # * Create Right Window
  #--------------------------------------------------------------------------
  def create_right_window
    wx = @left_window.width
    ww = Graphics.width - wx
    @right_window = Quest_Journal::Window_Objectives.new(wx, 0, ww, @left_window)
    @right_window.set_handler(:cancel, method(:on_right_cancel))
    @left_window.right_window = @right_window
  end
  #--------------------------------------------------------------------------
  # * Create Help Window
  #--------------------------------------------------------------------------
  def create_help_window
    wx = @right_window.x
    wy = @right_window.height
    ww = @right_window.width
    wh = Graphics.height - wy
    @help_window = Window_Base.new(wx, wy, ww, wh)
    refresh_help_window(:left)
  end
  #--------------------------------------------------------------------------
  # * Left [OK]
  #--------------------------------------------------------------------------
  def on_left_ok
    refresh_help_window(:right)
    @right_window.activate
    @right_window.select(0)
  end
  #--------------------------------------------------------------------------
  # * Right [Cancel]
  #--------------------------------------------------------------------------
  def on_right_cancel
    @left_window.activate
    @right_window.unselect
    refresh_help_window(:left)
  end
  #--------------------------------------------------------------------------
  # * Refresh Help Window
  #--------------------------------------------------------------------------
  def refresh_help_window(window)
    if window == :left
      help_text = "C (Enter) : Select Quest.\n" +
                  "#{Quest_Journal::Utility::COMPLETE_RESET_QUEST_KEY} (Q) : Complete / Reset+Conceal."
    else
      help_text = "C (Enter) : Complete / Reset\n" +
                  "L (Q) : Completed [green]\nFailed [red]\nRevealed [blue]\nConcealed [white]"
    end
    @help_window.contents.clear
    @help_window.draw_text_ex(4, 0, help_text)
  end
end # Scene

#==============================================================================
# Overwrite Algebra's Window_QuestList update method so it can call this addon's scene
#==============================================================================
class Window_QuestList < Window_Selectable
  def update
    super
    if Quest_Journal::Utility::DEBUG_MENU_ENABLED && Quest_Journal::Utility::DEBUG_MENU_KEY != nil && Input.trigger?(Quest_Journal::Utility::DEBUG_MENU_KEY)
      SceneManager.return if !Quest_Journal::Utility::RETURN_TO_QUEST_MENU
      SceneManager.call(Scene_QJ_Debug)
    end
  end
end
#==============================================================================
# Call this addon directly from the worldmap
#==============================================================================
class Scene_Map 
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Update Call Quest Journal
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def update_call_quest_journal
    if $game_map.interpreter.running?
      @quest_journal_calling = false
    else     
      if Input.trigger?(QuestData::MAP_BUTTON)
        if $game_system.quest_access_disabled || $game_party.quests.list.empty?
          Quest_Journal::Utility::DEBUG_MENU_ENABLED && Quest_Journal::Utility::SHOW_WHEN_NO_QUESTS ?
            SceneManager.call(Scene_QJ_Debug) : Sound.play_buzzer
        else
          @quest_journal_calling = true
        end
      end 
      if !@quest_journal_calling && Quest_Journal::Utility::DEBUG_MENU_ENABLED && Quest_Journal::Utility::MAP_KEY != nil && Input.trigger?(Quest_Journal::Utility::MAP_KEY) && $game_system.quest_map_access && !scene_changing?
        SceneManager.call(Scene_QJ_Debug)
      else
        call_quest_journal if @quest_journal_calling && !$game_player.moving?
      end
    end
  end
end
#==============================================================================
#
# ? End of File
#
#==============================================================================

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
No problem! I am happy that I could assist you.

I haven't looked at the code itself in any detail, but I would recommend that you disable the ability to call the debug scene unless $TEST is true. $TEST is a global variable which is true in test play and false when playing the game ordinarily.

Anyway, the debug menu is a great idea and I am sure other people will find it very helpful. You should give it its own topic!
« Last Edit: January 18, 2013, 01:38:56 AM by modern algebra »

**
Rep: +0/-0Level 44
RMRK Junior
Done and done :).
http://rmrk.net/index.php/topic,47539.0.html

My code probably isn't the best. Only been doing Ruby/RGSS for less than 3 weeks now and I'm sure that this code could be shortened by like 300%. But it works and doesn't conflict with other scripts.
« Last Edit: January 18, 2013, 12:28:15 PM by napoleon »

**
Rep: +0/-0Level 62
Yuri Queen
I'm having a bothersome issue. I called reveal_objective(1, 0) and get an interpreter error "string cannot be coerced into fixnum". Frustratingly, since it's pointing me to Game_Interpreter 1411 and not the quest script I'm having trouble locating whatever customization mistake I made. So I'm nowhere when it comes to fixing this myself.

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Can you screenshot the event in question for me? Just the page with the script command that is being bothersome.

**
Rep: +0/-0Level 62
Yuri Queen
Here it is. I tested to see if it was the Gab command, or interaction of the two. The error always happens if the Reveal command is used.


*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Hmm, that's strange. I think I will need to see a demo. Can you make a new project, recreate the error, and then share it with me? If that's inconvenient, I could take your current project, but I know some people aren't comfortable with sharing their projects and it will work just as well with a new project.

**
Rep: +0/-0Level 62
Yuri Queen
I included all the scripts from my actual project so you can see what I'm using for any possible interactions.

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Alright, at line 789 of my the Quest Journal, you have the following:

Code: [Select]
      q[:banner_hue]        = 0**

The ** is what is causing the error. Just make it:

Code: [Select]
      q[:banner_hue]        = 0

Additionally, for any of those settings where you aren't actually changing the default value, you don't need to include the line (though it also doesn't hurt).

In other words, what you have is functionally equivalent to:

Code: [Select]
      q[:name]              = "Shipping and Handling"
      q[:level]             = 1
      q[:icon_index]        = 232
      q[:description]       = "Gault Settlement needs to get its goods to market.."
      q[:objectives][0]     = "Consult Windbloom's Merchants' Guild"
      q[:objectives][1]     = "Deliver the contract to Gault"
      q[:objectives][2]     = "File the contract with the Guild"
      q[:prime_objectives]  = [2]
      q[:client]            = "Gault"
      q[:location]          = "Gault Settlement"
      q[:rewards]           = [
        [:item, 101, 10],
        [:gold, 500],
      ]

**
Rep: +0/-0Level 62
Yuri Queen
You know that moment where you look at something a hundred times and then someone else catches what you were looking for?

Thanks, algebra.

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
No problem! I am happy to help.

***
Rep:
Level 53
Infected with the sickness.
So I have been using your quest journal script for awhile now, and added tons of quests so far! I have to say I totally love this awesome script! There's just one thing I can't get around..
It's not that of a big deal anyway, but there might be a way to change the settings so it will work as I intend it to do. First off, is it possible to change the order of how the different tabs are being displayed?

I have the following tabs in the Journal window: Main/Side quests, Active quests, Completed quests, and Failed quests. The thing I want to do is, to change the order so that Main/Side Quests is displayed to the far right, while Active Quests is displayed to the far left. I also want the completed quests to move to the completed quests sections when you have completed it. As it is now the completed quests will also show up in the Main/Side quest section even when they are completed. Is it possible to set it up so they will only display in the completed quest section and not in the more of a 'all quests' section?

I'm also thinking that I might want to have a specific tab for Sidequests and Mainquests, so that Mainquests end up in one section and the sidequests in another, is this possible to implement aswell?

I have tried out changing the settings inside the script, but I just can't get it to work like I want it too, so thought I would ask if It's possible to implement what I have in mind?

Thanks  :)
« Last Edit: February 03, 2013, 01:14:46 PM by Dizturb3d »
Can you feel that?..

                                    My Current Project:


I support:


Fade

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Yes, almost all of that is possible. The section you are looking for starts at line 363 and looks like this:

Code: [Select]
  #  CATEGORIES - This array allows you to set which categories are available
  # in the Quest scene. The default categories are :all, :active, :complete,
  # and :failed, and their names are self-explanatory. You can add custom
  # categories as well, but note that you will need to make sure that each new
  # category has an icon set in the ICONS hash, as well as a label set in the
  # CATEGORY_VOCAB hash (if you are using SHOW_CATEGORY_LABEL). It is also
  # advisable to give it a sort type, unless you are fine with it being sorted
  # by ID, as is default.
  CATEGORIES = [:all, :active, :complete, :failed]

That array determines both which categories are present and the order they are in. So, if you changed it to:

Code: [Select]
[:active, :complete, :failed, :all]

Then that would make it so active quests was at the left and the all quests category is at the far right.

The :all category will always show all quests, including active, complete, and failed ones. That is its purpose, so there is no way to remove completed quests from it. What you want to do is dispose of the :all category and have it replaced with Main and Side quests, so you could make the array look like this (adjusted for order):

Code: [Select]
[:active, :complete, :failed, :main, :side]

Now you are adding custom categories, so you need to do two additional things. First, go up to line 318, where you will see this:

Code: [Select]
  #  ICONS - This is where you setup many of the icons used in the script. The
  # purpose of each is listed next to it. Also, if you make any custom
  # categories, you NEED to give them an icon by placing a line like the
  # others. So, if the new custom category is :romance then you would need to
  # set it like this:
  #    romance:     107,
  ICONS = {
    all:         226, # The icon for the All Quests category
    active:      236, # The icon for the Active Quests category
    complete:    238, # The icon for the Complete Quests category
    failed:      227, # The icon for the Failed Quests category
    client:      121, # The icon for client data. If none wanted, set to 0
    location:    231, # The icon for location data. If none wanted, set to 0
    reward_gold: 262, # The icon for gold rewards. If none wanted, set to 0
    reward_exp:  117, # The icon for exp rewards. If none wanted, set to 0
  } # <= Do not touch.

You need to give an icon to your new :main and :side categories. So, right between :failed and client, make it look like this:

Code: [Select]
    failed:      227, # The icon for the Failed Quests category
    main:        0,
    side:        0,
    client:      121, # The icon for client data. If none wanted, set to 0

And replace the 0s with the Icon index you want to show up. Secondly, go to line 380, where you will see:

Code: [Select]
  #  CATEGORY_VOCAB - If SHOW_CATEGORY_LABEL is true, this hash lets you set the
  # label for each category. For any custom categories you create, you will
  # need to add a line for each below and in the same format:
  #    :category => "Label",
  # Don't forget to add the comma at the end of each line.
  CATEGORY_VOCAB = {
    :all =>      "All Quests",      # The label for the :all category
    :active =>   "Active Quests",   # The label for the :active category
    :complete => "Complete Quests", # The label for the :complete category
    :failed =>   "Failed Quests",   # The label for the :failed category
  } # <= Do not touch.

Do the same thing and add entries for your main and side categories, like so:

Code: [Select]
  CATEGORY_VOCAB = {
    :all =>      "All Quests",      # The label for the :all category
    :active =>   "Active Quests",   # The label for the :active category
    :complete => "Complete Quests", # The label for the :complete category
    :failed =>   "Failed Quests",   # The label for the :failed category
    :main =>       "Main Quests",
    :side =>       "Side Quests",
  } # <= Do not touch.

That's only strictly necessary if you are showing the category label, but you should do it now even if you aren't in case you change your mind.

Finally, this is optional, but you can change the way in which the quests in each category are sorted. At line 391, you'll see:

Code: [Select]
  #  SORT_TYPE - This hash allows you to choose how each category is sorted.
  # For each category, default or custom, you can set a different sort method
  # There are seven options to choose from:
  #    :id - The quests are sorted from lowest to highest ID
  #    :alphabet - The quests are sorted in alphabetical order
  #    :level - The quests are sorted from the lowest to highest level
  #    :reveal - The quests are sorted from most recently revealed on.
  #            Every time a new quest is revealed, it will be at the top.
  #    :change - The quests are sorted from the one whose status most recently
  #            changed on. So, every time an objective is modified, that quest
  #            will be thrown to the top.
  #    :complete - The quests are sorted from the most recently completed on.
  #            Every time a quest is completed, it will be thrown to the top.
  #    :failed - The quests are sorted from the most recently failed on.
  #            Every time a quest is failed, it will be thrown to the top.
  #
  # Additionally, you can put _r at the end of any of the sort options and it
  # will reverse the order. So, for instance, if the sort method for a category
  # is :alphabet_r, then the quests will show up from Z-A
  SORT_TYPE = {
    :all =>      :id,       # Sort type for the All Quests category
    :active =>   :change,   # Sort type for the Active Quests category
    :complete => :complete, # Sort type for the Complete Quests category
    :failed =>   :failed,   # Sort type for the Failed Quests category
  } # <= Do not touch.

The instructions are pretty clear I think, but basically it's the same idea as the others. Change it to:

Code: [Select]
  SORT_TYPE = {
    :all =>      :id,       # Sort type for the All Quests category
    :active =>   :change,   # Sort type for the Active Quests category
    :complete => :complete, # Sort type for the Complete Quests category
    :failed =>   :failed,   # Sort type for the Failed Quests category
    :main =>     :change,   
    :side =>     :change,   
  } # <= Do not touch.

Naturally, you can use whatever sort type you want, not just :change. They are all listed in the Instructions above.

Now those categories are set up, but there are no quests in them. To add those, you have to configure each quest individually. For each quest, you need to modify the custom categories array. To make a quest go into the :main category, add this line to the setup for it:

Code: [Select]
      q[:custom_categories] = [:main]

To make it so that a quest goes into the :side category, just put:

Code: [Select]
      q[:custom_categories] = [:side]

There, now your quests will be categorized according to main and side quests.

As for moving complete quests out of there, that won't be done automatically. However, if, when you complete the quest, you also add the following line in a script call:

Code: [Select]
quest(4).custom_categories.delete(:main)

Then you will remove Quest with ID 4 from the "Main Quests" category. Just replace the 4 with whatever quest it is, and replace :main with :side where appropriate.

If you ever want them to return to those categories, you need to do it manually.



Also, you can repeat this process for as many custom categories as you want, and quests can belong to as many of those custom categories as you want.
« Last Edit: February 03, 2013, 02:22:49 PM by modern algebra »

***
Rep:
Level 53
Infected with the sickness.
Spoiler for:
Yes, almost all of that is possible. The section you are looking for starts at line 363 and looks like this:

Code: [Select]
  #  CATEGORIES - This array allows you to set which categories are available
  # in the Quest scene. The default categories are :all, :active, :complete,
  # and :failed, and their names are self-explanatory. You can add custom
  # categories as well, but note that you will need to make sure that each new
  # category has an icon set in the ICONS hash, as well as a label set in the
  # CATEGORY_VOCAB hash (if you are using SHOW_CATEGORY_LABEL). It is also
  # advisable to give it a sort type, unless you are fine with it being sorted
  # by ID, as is default.
  CATEGORIES = [:all, :active, :complete, :failed]

That array determines both which categories are present and the order they are in. So, if you changed it to:

Code: [Select]
[:active, :complete, :failed, :all]

Then that would make it so active quests was at the left and the all quests category is at the far right.

The :all category will always show all quests, including active, complete, and failed ones. That is its purpose, so there is no way to remove completed quests from it. What you want to do is dispose of the :all category and have it replaced with Main and Side quests, so you could make the array look like this (adjusted for order):

Code: [Select]
[:active, :complete, :failed, :main, :side]

Now you are adding custom categories, so you need to do two additional things. First, go up to line 318, where you will see this:

Code: [Select]
  #  ICONS - This is where you setup many of the icons used in the script. The
  # purpose of each is listed next to it. Also, if you make any custom
  # categories, you NEED to give them an icon by placing a line like the
  # others. So, if the new custom category is :romance then you would need to
  # set it like this:
  #    romance:     107,
  ICONS = {
    all:         226, # The icon for the All Quests category
    active:      236, # The icon for the Active Quests category
    complete:    238, # The icon for the Complete Quests category
    failed:      227, # The icon for the Failed Quests category
    client:      121, # The icon for client data. If none wanted, set to 0
    location:    231, # The icon for location data. If none wanted, set to 0
    reward_gold: 262, # The icon for gold rewards. If none wanted, set to 0
    reward_exp:  117, # The icon for exp rewards. If none wanted, set to 0
  } # <= Do not touch.

You need to give an icon to your new :main and :side categories. So, right between :failed and client, make it look like this:

Code: [Select]
    failed:      227, # The icon for the Failed Quests category
    main:        0,
    side:        0,
    client:      121, # The icon for client data. If none wanted, set to 0

And replace the 0s with the Icon index you want to show up. Secondly, go to line 380, where you will see:

Code: [Select]
  #  CATEGORY_VOCAB - If SHOW_CATEGORY_LABEL is true, this hash lets you set the
  # label for each category. For any custom categories you create, you will
  # need to add a line for each below and in the same format:
  #    :category => "Label",
  # Don't forget to add the comma at the end of each line.
  CATEGORY_VOCAB = {
    :all =>      "All Quests",      # The label for the :all category
    :active =>   "Active Quests",   # The label for the :active category
    :complete => "Complete Quests", # The label for the :complete category
    :failed =>   "Failed Quests",   # The label for the :failed category
  } # <= Do not touch.

Do the same thing and add entries for your main and side categories, like so:

Code: [Select]
  CATEGORY_VOCAB = {
    :all =>      "All Quests",      # The label for the :all category
    :active =>   "Active Quests",   # The label for the :active category
    :complete => "Complete Quests", # The label for the :complete category
    :failed =>   "Failed Quests",   # The label for the :failed category
    :main =>       "Main Quests",
    :side =>       "Side Quests",
  } # <= Do not touch.

That's only strictly necessary if you are showing the category label, but you should do it now even if you aren't in case you change your mind.

Finally, this is optional, but you can change the way in which the quests in each category are sorted. At line 391, you'll see:

Code: [Select]
  #  SORT_TYPE - This hash allows you to choose how each category is sorted.
  # For each category, default or custom, you can set a different sort method
  # There are seven options to choose from:
  #    :id - The quests are sorted from lowest to highest ID
  #    :alphabet - The quests are sorted in alphabetical order
  #    :level - The quests are sorted from the lowest to highest level
  #    :reveal - The quests are sorted from most recently revealed on.
  #            Every time a new quest is revealed, it will be at the top.
  #    :change - The quests are sorted from the one whose status most recently
  #            changed on. So, every time an objective is modified, that quest
  #            will be thrown to the top.
  #    :complete - The quests are sorted from the most recently completed on.
  #            Every time a quest is completed, it will be thrown to the top.
  #    :failed - The quests are sorted from the most recently failed on.
  #            Every time a quest is failed, it will be thrown to the top.
  #
  # Additionally, you can put _r at the end of any of the sort options and it
  # will reverse the order. So, for instance, if the sort method for a category
  # is :alphabet_r, then the quests will show up from Z-A
  SORT_TYPE = {
    :all =>      :id,       # Sort type for the All Quests category
    :active =>   :change,   # Sort type for the Active Quests category
    :complete => :complete, # Sort type for the Complete Quests category
    :failed =>   :failed,   # Sort type for the Failed Quests category
  } # <= Do not touch.

The instructions are pretty clear I think, but basically it's the same idea as the others. Change it to:

Code: [Select]
  SORT_TYPE = {
    :all =>      :id,       # Sort type for the All Quests category
    :active =>   :change,   # Sort type for the Active Quests category
    :complete => :complete, # Sort type for the Complete Quests category
    :failed =>   :failed,   # Sort type for the Failed Quests category
    :main =>     :change,   
    :side =>     :change,   
  } # <= Do not touch.

Naturally, you can use whatever sort type you want, not just :change. They are all listed in the Instructions above.

Now those categories are set up, but there are no quests in them. To add those, you have to configure each quest individually. For each quest, you need to modify the custom categories array. To make a quest go into the :main category, add this line to the setup for it:

Code: [Select]
      q[:custom_categories] = [:main]

To make it so that a quest goes into the :side category, just put:

Code: [Select]
      q[:custom_categories] = [:side]

There, now your quests will be categorized according to main and side quests.

As for moving complete quests out of there, that won't be done automatically. However, if, when you complete the quest, you also add the following line in a script call:

Code: [Select]
quest(4).custom_categories.delete(:main)

Then you will remove Quest with ID 4 from the "Main Quests" category. Just replace the 4 with whatever quest it is, and replace :main with :side where appropriate.

If you ever want them to return to those categories, you need to do it manually.



Also, you can repeat this process for as many custom categories as you want, and quests can belong to as many of those custom categories as you want.

Well, I wasn't too far off.. but I can see now which mistakes that I have done. Thanks alot for that information, you describe the process insanely well! I will follow the instructions you have given me, and I'm sure I will make it to work like I want it too! I guess this will be second nature later on, when I know how to set it up properly.
Just one last question though, about the script call that will delete the quest from an array. Should I put this script call inside the event that will complete the quest? Like if I put in the script call, complete_objective(x,x) and this is the objective that is the main one, should I also include that script call below that one to make it disappear from the Main or Side quest array?

Once again, thanks alot for your instructions! Will help me tons!  ;D
« Last Edit: February 03, 2013, 04:24:03 PM by Dizturb3d »
Can you feel that?..

                                    My Current Project:


I support:


Fade

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Yes.

And it's no problem. I figure there's no point in releasing scripts if I don't tell people how to use them.

***
Rep:
Level 53
Infected with the sickness.
Yes.

And it's no problem. I figure there's no point in releasing scripts if I don't tell people how to use them.

Well, that's true. It might just be a little frustrating for you since everything is stated inside the instructions..
After staring at the script for a long time though, I happen too look past alot of things and because of that I end up making mistakes. I'm just glad you opened my eyes a bit so I could see excactly what I was doing wrong.
Can you feel that?..

                                    My Current Project:


I support:


Fade

*
Rep: +0/-0Level 37
RMRK Junior


Please, any help?

This happens after i call the script "reveal_objective(0, 0, 1)" on an event.

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Well, vms_check_quest is not a method in my script, nor does it appear in Game_Interpreter by default. Have you ever modified any of the default scripts for any reason?

I will see what I can find out about this vms_check_quest method, but maybe you could upload your Scripts.rvdata2 so I can take a look?
« Last Edit: February 10, 2013, 06:43:21 PM by modern algebra »

*
Rep: +0/-0Level 37
RMRK Junior
Here it is.

I remember i tried  to put a quest script with "vms" in the name, but i deleted it already, i have no idea where it is...


EDIT: Oh, lord, the error was in the event, sorry!!

By the way, thank you so much for your help ;) and congratulations, the script is really awesome
« Last Edit: February 10, 2013, 06:37:58 PM by Bett0 »

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Yeah, I just found Vms Simple Quest Book, and that is where the method was coming from.

I take it you were calling that method inside of a conditional branch? Anyway, I'm glad you resolved the issue and I hope you continue to enjoy the script. If you encounter any more problems, I will be happy to take another look.

**
Rep:
Level 56
RMRK Junior
Hi,

Thank you for this script, I really like it.
I've two questions (if I missed the answers in the script, I am sorry).

1) Is possible to remove a quest from a category when it's completed ?
I would like it to only appear in the completed quests category because at the moment it appears also in subquests category.

2) Is possible to show unrevealed quest ?
I only wish the unrevealed quest to be shown by "????" and listed in the category of my choice.

« Last Edit: February 24, 2013, 10:23:44 PM by Chaos17 »

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
1) Yes, but you have to do it manually. When you complete the quest, you can use the following code:

Code: [Select]
quest(4).custom_categories.clear

That would remove Quest 4 from all custom categories. Just replace the 4 with the ID of whatever quest you're completing.

2) No, not built in. You'd either need to make a bunch of those dummy quests, reveal them, and then replace them whenever you get the real thing. Otherwise you'd need to do make every quest have the ???? name and description, and then change them manually.

So no, nothing that would be convenient.

**
Rep:
Level 56
RMRK Junior
Ok, I think I will stay simple.
By the way, is it normal that the number of the item isn't displayed when I set it to 1 ?
(Example : 1 antidote)



And that the word : gold isn't displayed ?
« Last Edit: February 25, 2013, 07:04:53 PM by Chaos17 »

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Yes, that's normal. If you want to change it, you can find the following method somewhere around line 2247 (changes depending on how much config you have, but just do CTRL+F):

Code: [Select]

  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Draw Item Reward
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def draw_item_reward(y, item, amount = 1)
    w = contents_width
    w = QuestData::BASIC_DATA_WIDTH if QuestData::BASIC_DATA_WIDTH.between?(1, w)
    x = (contents_width - w) / 2
    draw_item_name(item, x, y, true, w - 40)
    if amount > 1
      change_color(text_color(QuestData::COLOURS[:reward_amount]))
      draw_text(x + w - 40, y, 40, line_height, sprintf(QuestData::VOCAB[:reward_amount], amount), 2)
    end
  end

Replace it with:

Code: [Select]

  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Draw Item Reward
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def draw_item_reward(y, item, amount = 1)
    w = contents_width
    w = QuestData::BASIC_DATA_WIDTH if QuestData::BASIC_DATA_WIDTH.between?(1, w)
    x = (contents_width - w) / 2
    draw_item_name(item, x, y, true, w - 40)
    change_color(text_color(QuestData::COLOURS[:reward_amount]))
    draw_text(x + w - 40, y, 40, line_height, sprintf(QuestData::VOCAB[:reward_amount], amount), 2)
  end

As for text to indicate gold: that is normal, but you can change it by modifying a configuration setting. Around line 352, you'll see:

Code: [Select]
    # reward_gold: Text to identify gold rewards
    reward_gold:      "",

Just put whatever word you want to identify gold in betweeen the quotation marks. For instance:

Code: [Select]
    # reward_gold: Text to identify gold rewards
    reward_gold:      "Gold",

**
Rep:
Level 56
RMRK Junior
Thank you, it works.
One last thing : the word I used for gold is not white and there isn't any space between the icon and the word.



I am sorry if I missed something in the configuration setting.

**
Rep:
Level 56
RMRK Junior
Sorry, to double post but it seems I've a conflict with another of your script (ATS advanced choices) or is it because I didn't setup right my quest ?
I don't have that bug with my other quest...

Demo (I used the demo that you linked in the first page) : LINK
The bug happen when I try to open the quest menu.





« Last Edit: February 27, 2013, 04:16:51 PM by Chaos17 »

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Umm, well it looks like the problem is your description line. You have:

Code: [Select]
q[:description] = :"bla bla bla"

You need to remove the :

Just try:

Code: [Select]
q[:description] = "bla bla bla"


As for the other stuff, I guess you're right that it looks weird. You could fix the spacing problem by just adding a few blank spaces, but you wouldn't be able to change the colour of the gold label without changing the colour of all basic data labels (like client, location, etc.). I suppose I will have to fix that.
« Last Edit: February 27, 2013, 11:20:03 PM by modern algebra »

**
Rep:
Level 56
RMRK Junior
Someone already said :

Quote
You know that moment where you look at something a hundred times and then someone else catches what you were looking for?

You were right about the description, I feel so embarassed now.
Thank you for your help.
I look foward for your update.
« Last Edit: March 02, 2013, 09:57:25 PM by Chaos17 »

**
Rep: +0/-0Level 59
RMRK Junior
It's been over 6 months since I last touched the program and since I have finished my course, I am slowly getting back in the swing of things.
So if this question seems noobish then I apologize.

I am trying to make a repeatable quest. I have done everything required to get the quest repeatable however the rewards are not working.
I am using "distribute_quest_rewards(id)" as the method of gaining rewards.
Can anyone tell me how to make the repeatable quest continue distributing rewards via that script call every time it is completed?

The quest has one objective and that is fight a wolf for training purposes, and this is the setup I have.

Battle processing: Wolf
if win
@> Script: complete_objective(id, id)
@> script: distribute_quest_rewards(id)
@> wait: 5 frames
@> Script: uncomplete_objective(id, id)
@>
if loose
@> text : 'actor1', 1, normal bottom
:           : \n<Lisa>"I can't believe I lost to this wolf"
Branch end

And on another note I am currently using Yanfly Engine Ace - Ace Message System v1.04

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
I think you can do it with the change_reward_status code:

Code: [Select]
#        change_reward_status(quest_id, value)
#            value : either true or false. If excluded, defaults to true.
#          Totally optional, but this is just a personal switch which you can
#          turn on when the reward is given. You can then make it a condition
#          so you don't reward the players more than once. (see line 180)

For what you want, it would be:

Code: [Select]
change_reward_status(n, false)

where n is the ID of the quest

**
Rep: +0/-0Level 81
Hello. I am a huge fan of this script. It's really helped me organize all my various side-missions and main story changes into a cohesive and understandable form. I have no issues or questions; I merely wanted to congratulate your work.

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Thank you! That's really nice to hear.

**
Rep: +0/-0Level 59
RMRK Junior
I think you can do it with the change_reward_status code:

Code: [Select]
#        change_reward_status(quest_id, value)
#            value : either true or false. If excluded, defaults to true.
#          Totally optional, but this is just a personal switch which you can
#          turn on when the reward is given. You can then make it a condition
#          so you don't reward the players more than once. (see line 180)

For what you want, it would be:

Code: [Select]
change_reward_status(n, false)

where n is the ID of the quest


That worked. Thanks.

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
No problem.

*
Rep: +0/-0Level 36
RMRK Junior
Hello! I'd just like to say thank you for the very, very handy script.
However, I'm wondering if there's a way that when you open the script page, it's already selected the first quest and you can scroll up and down it directly, rather than having to hit enter to select it first. I've hidden the two bars on the side as best I can, and I want to remove their use as much as possible. Attached is a screenshot of what I've done so far, to understand what I mean.

« Last Edit: May 19, 2013, 02:46:52 AM by amicable »

**
Rep: +0/-0Level 86
out of curiosity.. would it be possible to edit this in a way that this could also manage a system like star ocean  til the end of time knowledge base, by using the objectives as a "when you find out more about something(people, places, item, spells).

and maybe add a custom category tab for the listed "somethings" above.

and making the IDs like this
Quests = 1XX1 (then next would be 1XX2.. the amount of Xs depends on how many quests you would have
People = 2XX1
Places = 3XX1
Items = 4XX1
Spells = 5XX1

for example.

when 2001

     q[:name]              = "Ryou"
      q[:level]             = 3
      q[:icon_index]        = 7
      q[:description]       = "He woke up in a strange place with only a note in his pocket saying "Live"."
      q[:objectives][0]     = Realizing that he had the power of a god, he felt betrayed by his father who never told him of this power"
      q[:objectives][1]     = "Upon arrival of his Homeland he noticed everything had changed. the land had become dark, and the houses were in rumble. "
      q[:objectives][2]     = "When he approached what he use to call home, he had a vision of a war happening. and the gods told him. "He was dead." confused he set out to discover what really happened."

[MORE QUEST OBJECTIVES TELLING THE ENTIRE STORY OF A "SOMETHING"]

      q[:prime_objectives]  = []
      q[:custom_categories] = [:people]
      q[:banner]            = ""
      q[:banner_hue]        = 0
      q[:client]            = ""
      q[:location]          = ""
      q[:common_event_id]   = 0

of course.. its a bad example story...but its just something i thought of on the top of my head..

But as story would unfold it would tell more about the "something" if necessary.. would that be possible?
       
« Last Edit: May 24, 2013, 09:31:40 PM by RockyAmyx »

**
Rep: +0/-0Level 86

**
Rep: +0/-0Level 86
^^ well .. i decided to do something else.. i thought maybe it would work .. but ehh.. kept getting stack overflow errors

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
It would have been possible, but I think you are probably better off to have found a different way.

*
Rep: +0/-0Level 83
I love this script but there are two things that I would like to be able to do with it.

The first is that I would like a window to appear when a new quest is added with the quest name, description and rewards.
Also, would it be possible to make the objectives of a quest appear with the uncompleted objectives above the completed ones as some quests in my game have a lot of objectives and it is a pain to scroll through all of the completed objectives just to check what I have to do next.

Other than these two small problems I think the script is great and looks brilliant.

Thanks a lot,

Docta Chav

**
Rep: +0/-0Level 49
RMRK Junior
So, would it be possible for me to make categories manually invisible vs visible then switching them to be visible?
My reason for asking/requesting is, like, say I wanted to categorize quests of different places, like, you've got your Village 2 Quests and your Fire Mountain Quests, etc., but you don't want the Category of Fire Mountain to be visible until Fire Mountain is discovered by the player in the first place.
I tried to use like
if $game_switches[1]
conditions but that didn't work.
So would you be willing to implement this or would you happen to know some IF functions I could add with switches to make this happen?

*
Rep: +0/-0Level 53
RMVXA Noodler
Modern Algebra you really nailed it on this one mate! Messed around with a few of your scripts now and they've all got the job done perfectly but the level of control offered here is out of this world! I can't imagine how much effort went into the script itself but it's massively appreciated man - thanks a LOT dude!
Courage over fear

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Thanks, I'm pleased that you like it!

@rubydragon - it is possible, though not particularly convenient. Firstly, you'd have to set up each category as you would normally. However, in the CATEGORIES array, just put the initial categories.

Then, when you want to reveal new categories, you would need to do something like this in a script call:

Code: [Select]
gs = $game_system
gs.quest_categories.push(:all)

Replace :all with the symbol for the category you want to add. To remove categories, you would do this:

Code: [Select]
gs = $game_system
gs.quest_categories.delete(:all)

**
Rep: +0/-0Level 53
Waiting ...
I found something we could use, or least I could use

Here is a scenario: You walk into an INN, he, the innkeeper, has a series of jobs posted. a, b, c, d (quest id 1-4 respectively). You do all the quests, you collect all the rewards. The jobs are still there, you click on one, say a, he states "thanks again."

What would be awesome is:

Code: [Select]
is_quests_complete?(id, id, id, id, id ,...) This way we could say if(is_quests_complete?(id, id, id ,...)){ Say something } else { do something }

Now I looked at your quest methods, your creating them on the fly, genius, how ever - is there a way to implement my idea with or with out altering your script?

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Well, I suppose you could just change quest_complete? to permit checking more than one quest at the time.

You could do it by adding the following into a new slot, somewhere below the Quest Journal but still above Main:

Code: [Select]
class Game_Interpreter
  alias maqj_vpedit_checkquest_8ik3 quest_complete?
  def quest_complete?(*args)
    args.each { |id| return false unless maqj_vpedit_checkquest_8ik3(id) }
    return true
  end
end

The code to use it would just be:

Code: [Select]
quest_complete?(id_1, id_2, id_3, ..., id_n)


**
Rep: +0/-0Level 53
Waiting ...
thank you, that does exactly what I want!

**
Rep: +0/-0Level 53
Waiting ...
Sorry for the double post, I tried to manipulate your function to do the same thing for multiple quests when check if they are revealed. how ever I got a game interpreter stack level to deep. Is there a way to say - if multiple quests are revealed, do this? else do that?

**
Rep: +0/-0Level 88
I am getting a weird/annoying error when I exit out of the quest journal scene:

Script 'SceneManager' line 66: SecurityError occurred.

Insecure: can't modify array


It's weird because it happens only sometimes (though more often than not to be a concern), and it happens only when I exit out of the quest journal scene. I'm a scripter myself, but I have no idea how to fix this lol any suggestions?

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
That does sound strange. If you could upload a demo with the error recreated I will take a look. If you're nervous about sharing your main project, then feel free to just recreate the error in a new project and upload that.


@Kalacious - Sorry I missed your post. It should be possible to do the same thing for each of those methods. The error you received sounds like you just did not change the name of the alias. However, the following should work:

Code: [Select]
class Game_Interpreter
  alias maqj_vpedit_questrevel_7oc4 quest_revealed?
  def quest_revealed?(*args)
    args.each { |id| return false unless maqj_vpedit_questrevel_7oc4(id) }
    return true
  end
end
« Last Edit: July 31, 2013, 12:35:36 AM by modern algebra »

**
Rep: +0/-0Level 88
I thank you for the willing to help, but I seemed to have solved it myself.
The error was caused by the arrangement of my scripts in the script editor. I fiddled around with their positions and it worked. The error hasn't shown up since! Thanks lol :P

**
Rep: +0/-0Level 53
Waiting ...
That does sound strange. If you could upload a demo with the error recreated I will take a look. If you're nervous about sharing your main project, then feel free to just recreate the error in a new project and upload that.


@Kalacious - Sorry I missed your post. It should be possible to do the same thing for each of those methods. The error you received sounds like you just did not change the name of the alias. However, the following should work:

Code: [Select]
class Game_Interpreter
  alias maqj_vpedit_questrevel_7oc4 quest_revealed?
  def quest_revealed?(*args)
    args.each { |id| return false unless maqj_vpedit_questrevel_7oc4(id) }
    return true
  end
end

Yay Thanks! Question, isnt quest(1).name suppose to give me the name of said quest? if so then you message options of \#{code}, where I do: \#{quest(1).name} doesnt work

**
Rep: +0/-0Level 57
RMRK Junior
How can i use variables in quest objectives?
I wan't to make something like this:
Quest objective: Kill 5 monsters;
And with every kill, quest objective should update (Kills 1/5, Kills 2/5... Kills 5/5). And when variable KILLS is 5 i will mark this objective as complete (with common event probably).
Right now I don't know how to show variable in quest objectives. So please add this feature, or explain me how to use variables, because I didn't saw anything about this in script comments.

**
Rep: +0/-0Level 36
RMRK Junior
I just wanted to thank you modern algebra, for this great script. It is by far better than any alternatives I have come across.

Edit: Question removed: Stupid mistakes.
« Last Edit: September 30, 2013, 05:48:46 PM by Rogueworld »

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Yay Thanks! Question, isnt quest(1).name suppose to give me the name of said quest? if so then you message options of \#{code}, where I do: \#{quest(1).name} doesnt work

Sorry to take so long to respond. I've been absent. Anyway, that method will only work in a regular Script call because the method is defined in Game_Interpreter, not Window_Message. If you want to access the name of a quest from inside a message, you will need to use:

Code: [Select]
$game_party.quests[1]

@Necrofenser -

You can show the value of a variable in an objective with the code:

Code: [Select]
\\v[n]

Where n is the ID of the variable. So, if you are recording Kills in variable 4, then you would use:

Code: [Select]
q[:objectives][0] = "Kills: \\v[4]/5"

As for marking the objective complete, you would have to do that manually by, for instance, checking whenever you update the kills variable and completing it when it equals 5.

**
Rep: +0/-0Level 36
StoryTeller
First of all, thanks a lot for sharing this script (again). Inm y humble opinion it's the best of it's kind.

I have found 01 bug and 01 incompability issue (while using a different font type). Here they are:

Bug:

  The :gold and :exp are having it's texts exchanged between each other. The icon and values are working allright, but when i set a reward to be :gold, it writes "XP" in the quest scene, and vice-versa.

Incompability:

I am using a script from zalerinian that allows the exchange of fonts. Everything is working fine (now) in other scenes, but in the quest scene the text is being cutted at the rewards section, even if the text line is small. I will post the zalerinian script and images of this section with the default VLGothic font and my alt Gabrielle font:

Zalerinian Font changer script
Code: [Select]
module Fonts
Original_Fonts = [ "VL Gothic", "Verdana", "Arial", "Courier New"]

def self.add_font(font_name, bold = false)
return if Font.default_name[0] == font_name
if font_name == "ORIGINAL_FONTS" then
Font.default_name = Original_Fonts
return
end
Font.default_bold = bold
puts "Bold set to " + Font.default_bold.to_s + "!"
Font.default_name.unshift(font_name)
puts "New Font System: " + Font.default_name.to_s + "\n\n"
end

def self.set_size(size)
Font.default_size = size
puts "Font size set to: " + Font.default_size.to_s
end

def self.set_bold(value)
if value == true || value == false
Font.default_bold = value
end
end

def self.remove_first
if Font.default_name.size == 1 then
puts "You should save at least one font, you know."
else
Font.default_name.shift
end
end
end

class Window_Base < Window
def line_height
return Font.default_size
end
end

class Window_Base < Window
alias convert_e_chars convert_escape_characters
def convert_escape_characters(text)
result = text.to_s.clone
result.gsub!(/\\F\[(\w+)\]/i) { Fonts.add_font($1) }
convert_e_chars(result)
end
end

Quest scene with default font


Quest scene with alt font


*
Rep:
Level 49
RMRK Junior
Edit line 2257 to expand the text width
Code: [Select]
draw_text(x + w - 40, y, this_space, line_height, sprintf(QuestData::VOCAB[:reward_amount], amount), 2)
Spoiler for "More About Vindaca":

Spoiler for "General Prices":
You can also build packages containing multiple resources. (Package prices are not included.)


Music

Basic Songs = $20 - $50 USD
Advanced Songs = $100+


Graphics
32 x 32, 4 Directional Sprite = $7 USD each / $50 USD per sheet
64 x 32, 4 Directional Sprite = $10 USD each / $60 USD per sheet
Backgrounds = $10 - $40 USD
Tilesets = $5 each / $20 - $50 USD per group
(depending on types of tilesets)
Iconset = $5 each / $35 - $80 if buying more then 10
(depending on quantity)
Windowskins = $7 each


Animations
Titles = $20+ USD (Depending on complexity)
Backgrounds= $20+ USD (Depending on complexity)
Regular Evented Scenes = $40+ USD each (Depending on complexity)
Parallax Scenes = $60+ USD each (Depending on complexity)
CG  = $300+ USD (Depending on complexity)
Maps

Basic Map Design = $7 USD each
Advanced Map Design = $10+ USD (Depending on complexity)
Scripts

Basic Custom Menu Script = $60 - $100 USD
More Advanced Menu Script = $120 - $300 USD (Animated, ext.)
Mini-games = $100 - $300 USD (Depending on complexity)
I am willing to build a custom card game if specifications are given Commissioned out E.T.A. 3 - 6 months
Battle Systems = $100 - $300 USD (Depending on complexity) Commissioned out E.T.A. 3 - 6 months
Others Scripts = $80 - $300 USD (Depending on complexity)

We are also willing to build games for you with as little or as much direction as you want. (Prices vary depending on complexity of game)
If you want to use your resources in multiple titles there is an additional charge of half the cost of the resource. (Prices vary depending on packages)
I require half of the total cost of any projects up front and the other half before completion.
If a project is finished and not picked up within 1 month of notification,
your resources will be resold and no money will be refunded.


**
Rep: +0/-0Level 36
StoryTeller
I've changed it to this:

Code: [Select]
draw_text(x + w - 40, y, 80, line_height, sprintf(QuestData::VOCAB[:reward_amount], amount), 2)

But nothing happened. It's weird because if you notice the screens i've posted, you will noitice that the gold word, apart from being small, is also cutted.
Thanks a lot for the help so far. Maybe i did something wrong too. And this line in my script is the line 2434, and i am using version 1.0.3  :).

*
Rep:
Level 49
RMRK Junior
This line is the third line above that one. 20 should do it.
Code: [Select]
draw_item_name(item, x, y, true, w - change_this_number)

That was actually the code for the values. Sorry  ;D
Spoiler for "More About Vindaca":

Spoiler for "General Prices":
You can also build packages containing multiple resources. (Package prices are not included.)


Music

Basic Songs = $20 - $50 USD
Advanced Songs = $100+


Graphics
32 x 32, 4 Directional Sprite = $7 USD each / $50 USD per sheet
64 x 32, 4 Directional Sprite = $10 USD each / $60 USD per sheet
Backgrounds = $10 - $40 USD
Tilesets = $5 each / $20 - $50 USD per group
(depending on types of tilesets)
Iconset = $5 each / $35 - $80 if buying more then 10
(depending on quantity)
Windowskins = $7 each


Animations
Titles = $20+ USD (Depending on complexity)
Backgrounds= $20+ USD (Depending on complexity)
Regular Evented Scenes = $40+ USD each (Depending on complexity)
Parallax Scenes = $60+ USD each (Depending on complexity)
CG  = $300+ USD (Depending on complexity)
Maps

Basic Map Design = $7 USD each
Advanced Map Design = $10+ USD (Depending on complexity)
Scripts

Basic Custom Menu Script = $60 - $100 USD
More Advanced Menu Script = $120 - $300 USD (Animated, ext.)
Mini-games = $100 - $300 USD (Depending on complexity)
I am willing to build a custom card game if specifications are given Commissioned out E.T.A. 3 - 6 months
Battle Systems = $100 - $300 USD (Depending on complexity) Commissioned out E.T.A. 3 - 6 months
Others Scripts = $80 - $300 USD (Depending on complexity)

We are also willing to build games for you with as little or as much direction as you want. (Prices vary depending on complexity of game)
If you want to use your resources in multiple titles there is an additional charge of half the cost of the resource. (Prices vary depending on packages)
I require half of the total cost of any projects up front and the other half before completion.
If a project is finished and not picked up within 1 month of notification,
your resources will be resold and no money will be refunded.


**
Rep: +0/-0Level 36
StoryTeller
Really weird...i tryed a lot of values (Starting from 20), but the cut in the words is exactly at the same place from my screens. It didnt change a thing at all :o.
It's like both "Reward" and "gold" words are being cut only in the reward section, but if it was a width problem, why is the gold word also being cutted since it's a very small word?
 
 And thanks for the help so far Vindaca, i really appreciate.