Read more about advertising your project here
Quest Journal v. 2.1

0 Members and 1 Guest are viewing this topic.

*
Rep:
Level 95
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 Member2010 Best RPG Maker User (Scripting)2010 Best Use Of Avatar And Signature Space
Quest Journal
Version: 2.1c
Author: modern algebra
Date: February 17, 2012

Version History


  • < Version 2.1c> 2012.02.17 - Fixed a bug where the scrolling window would not be large enough
  • <Version 2.1b> 2011.08.16 - Fixed a bug with removing quests
  • <Version 2.1a> 2011.05.11 - Fixed a bug where selecting an empty slot in the Quest Shop would cause an error
  • <Version 2.1> 2011.05.09 - Added features to show client, location, and level and also made it so you could change the order in which each section appears. Also added a feature to distribute rewards and made compatibile with Dargor's Custom Commands
  • <Version 2.0a> 2011.05.05 - Clarified compatibility with other menu scripts (must be pasted below!) and added a feature to turn off justified text
  • <Version 2.0> 2011.05.01 - A complete rewrite of the script and including tons of new features, including page scrolling, rewards, easier script calls, quest shops, and more.
  • <Version 1.1> 2008.04.10 - A minor bug fix involving quests with ID 4. A few added functions for tracking quests, including the ability to conceal given quests as well as uncompleting and unfailing objectives. This older version is still supported and you can find the demo attached (Just in case anyone downloads this thinking otherwise, this is obviously the demo for 1.1, not 2.0)
  • <Version 1.0> 2008.03.25 - 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.

For people already using 1.1 and wanting to convert their projects to the new Quest Journal 2.0, you don't have to TOTALLY restart making all of your quests. Just go to line 392 and replace the when branches there with the ones you made for 1.1. Then, if you wanted to make use of the new features like rewards, you can add those lines. Otherwise, the quests you setup will look and operate exactly like they did in 1.1. Similarly, all of the old commands, like $game_party.quests[id].reveal_objective (y) still work, so you won't need to go changing every event you ever used it for. But there are easier ways to do it now.

Features

  • Supports hundreds of objective-based quests (only limited by the Bitmap size limit), all of which are uniquely created by you!
  • Vastly configurable! You can change anything from the font of subtitles to the windowskins to the very order in which the sections of the quest information are laid out
  • Quests are updated and monitored by short and easy to use script calls (For instance, rather than the $game_party.quests[5].reveal_objective (0) of previous versions, it is simply reveal_objective (5, 0) and you can even reveal more than one objective at a time)
  • If the information is too much to fit on one page, you can select the quest and use the vertical directional keys to scroll it up and down
  • Customizable categories. Not only are you no longer required to have the four default categories, you can change their order and create new categories
  • You can create quest shops where the player can purchase quests from a vendor and have it revealed to them
  • You can change the details (like name, description, rewards) in-game
  • You can now set rewards to a quest and it will list them
  • You can now show a banner at the top of a quest
  • Can assign quests a common event which it will call the moment it is completed.
  • Built in to the default menu, but you could also cancel that and have it accessible by key from the map
  • Can call the quest menu up to a specific quest
  • If using the Special Codes Formatter, can use special message codes to draw icons, change the colour of text, etc...

Screenshots

A simple, completed quest which has a banner. As it has too much information to fit, you can select the quest and scroll down to see the rest. Moreover, notice that I have changed the labels (Missions, Summary, etc...), the fonts, the colors, and even the size of the text. All of this is customizable unlike in previous versions.
A pretty ugly screenshot to show that the order of everything can be changed. Want the description to show up first, then the name, then the banner, then the client, etc... you can do that!
This is the brand new Quest Purchasing scene! Here you can have the player pay gold to reveal a new quest.
You can use a background image behind the quest menu if you so desire. That one does not mesh well at all; it's just a sample I found at http://1024x.net/65/-/Colorful_Pattern_Background/. You can also make the windows totally transparent if you want.

Instructions

Paste this script into the Script Editor (F11) in its own slot above Main and below Materials.

I would recommend separating the Configuration module from the Script itself in two different slots, as I think it makes it neater. That is totally optional though. If you do want to do it though, instructions on where to make the split are located in the Script Header at line 20.

Instructions for creating, updating and monitoring quests, as well as for changing the settings, are all in the Script header and in the two EDITABLE REGIONS. It is highly recommended that you take the time to familiarize yourself with them in detail.

In brief, however, the following codes are used to update quest progress:

Code: [Select]
reveal_objective (quest_id, objective_id_1, ..., objective_id_n)
  quest_id : the integer ID of the quest you want to access.
  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.
conceal_objective (quest_id, objective_id_1, ..., objective_id_n)
complete_objective (quest_id, objective_id_1, ..., objective_id_n)
uncomplete_objective (quest_id, objective_id_1, ..., objective_id_n)
fail_objective (quest_id, objective_id_1, ..., objective_id_n)
unfail_objective (quest_id, objective_id_1, ..., objective_id_n)
change_reward_status (quest_id, value)

The following codes are used in a conditional progress to monitor quest progress (each of the objective_etc? will only return as true if the quest is also revealed):

Code: [Select]
quest_revealed? (quest_id)
  quest_id : the integer ID of the quest you want to access.
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.
quest_complete? (quest_id)
objective_complete? (quest_id, objective_id_1, ... objective_id_n)
quest_failed? (quest_id)
objective_failed? (quest_id, objective_id_1, ... objective_id_n)
quest_rewarded? (quest_id)

For details on what each of these does, see the script. As well, there are lots of other instructions in the script you should pay attention to. Read them carefully!

You can also change the attributes of quests in-game with any of the following codes:

Code: [Select]
quest (quest_id).method = new_value
  method : the attribute you want to change. This can be either:
    banner; name; description; objectives; prime_objectives; rewards;
    common_event_id; icon_index; or custom_categories.
  new_value : this is the value that you are changing it to. It must
    be of the same form as the original (ie. a string for name or
    description, an array of strings for objectives, an integer for
    icon_index, etc...)

Script


This script is too long to post, so please retrieve it from Pastebin.

You can also get it from the demo, but if you do, you need to take both the configuration module and the Implementation part. I recommend you take the clean configuration copy.

NB: This script REQUIRES the Paragraph Formatter! The Special Codes Formatter (found under the Addons in that same topic) is also recommended. If you want the Description box rounded, then you need the Bitmap Addons script.

Credit


  • modern algebra

Support


Please post in this thread at RMRK if you encounter any bugs or incompatibilities or errors, and I will do my best to resolve it. Feel free to post also if you have any suggestions or simply want to talk about the script.

Known Compatibility Issues

This script is designed to automatically insert itself in the default menu, if you turn that option on. It is also made to do the same with YEM Main Menu Melody, my own Full Status Custom Menu System, my own Phantasia-esque Custom Menu System, and Dargor's Custom Commands. It has to be pasted below them in the Script Editor, however. It may work if you place it below other Menus as well, but it was not designed for them and so there might be an incompatibility there. You can always turn MENU_ACCESS off and insert it manually into the other menu script if need be.

Other than menu systems, there probably aren't very many scripts with which it would be incompatible. If you encounter any, please post in this topic and I will try to help you out.

Demo


Please see attached (need to be logged in)
« Last Edit: February 17, 2012, 11:15:01 PM by modern algebra »

*
Rep:
Level 95
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 Member2010 Best RPG Maker User (Scripting)2010 Best Use Of Avatar And Signature Space
Sorry everybody. There is a minor problem with the script.

I have uploaded a new version, but if you don't want to bother downloading anew, then the fix is:

Go to line 582 and find this line:

Code: [Select]
modalg_quest_jrnl_intlz (width, commands, column_max = 1, row_max = 0, spacing = 32)

Replace it with:

Code: [Select]
modalg_quest_jrnl_intlz (width, commands, column_max, row_max, spacing)

***
Rep:
Level 85
Master of Stepmania
Amazing modern! Just what i needed!

EDIT: Anyway that you can PM or post the script.....i'm using an older version of VX so i can't see yours, and i don't want to start my project over either. Enterbrain should have included compatibility support.
« Last Edit: March 27, 2008, 03:26:58 PM by gameo »
Does 2+2 equal a peanut?

*
Rep:
Level 95
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 Member2010 Best RPG Maker User (Scripting)2010 Best Use Of Avatar And Signature Space
Umm, sure. You using Japanese translation?

Anyway, I'll put it in a text. Give me a moment.

EDIT::

THere, I added a text file. When I was saving it, it said it removed something though, so tell me if it has errors.
« Last Edit: March 27, 2008, 07:04:43 PM by modern algebra »

***
Rep:
Level 85
Master of Stepmania
Works fine, this script is amazing! The style and design is unique, and the functions itself reminds a lot of World of Warcraft's quest log.

Great app  ;)
Does 2+2 equal a peanut?

*
Rep:
Level 95
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 Member2010 Best RPG Maker User (Scripting)2010 Best Use Of Avatar And Signature Space
I'm glad you liked it. I hope that no errors pop up anywhere, but be sure to tell me if they do and I will fix them as soon as possible

**
Rep:
Level 84
Nice Script Rep+


One of the best rpg maker xp games ever!Try it out!
http://www.quintessence-tbv.com

********
Shadow Knight
Rep:
Level 89
Ruin that brick wall!
Project of the Month winner for October 2008
+rep
I see your scripts everywhere these days, you're really a hard worker.
Tried it and....of course it works!

<3 the layout of the quest screen.
EDIT:I still love it.
Be kind, everyone you meet is fighting a hard battle.

*
Rep: +0/-0Level 83
I absolutly love this script, but i am having a problem however.
I made a screenshot, would someone please take a look and tell me what to do to fix this?

http://i223.photobucket.com/albums/dd78/bladenl/RPGVXScriptError.jpg

thnx

*
Rep:
Level 95
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 Member2010 Best RPG Maker User (Scripting)2010 Best Use Of Avatar And Signature Space
Hmm, I'm guessing that the description of the quest is nil, but it's a bit strange - I'll take a look. Can I see the quest that it is trying to draw (the way you set it up in the editor)?

**
Rep: +0/-0Level 83
How can I discheck the acctive obiective? (green to white)

*
Rep: +0/-0Level 83
Never mind, i found my fault, i just gave them the same quest ID. Stupid of me. :P

*
Rep:
Level 95
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 Member2010 Best RPG Maker User (Scripting)2010 Best Use Of Avatar And Signature Space
@Znik - I don't really understand the question. By default values, green denotes that the objective is complete, while white means that it's active. Once an objective is complete, you can't uncomplete it - that wouldn't make sense. If you wanted to, then you could conceal the objective, or you could reset the quest and not complete the objective this time. But, if you just want active objectives to be green and complete objectives to be white than you can changes these values at line 93:

Code: [Select]
  ACTIVE_COLOUR = 0              # The colour of a quest that is active
  COMPLETE_COLOUR = 11           # The colour of a quest that is complete
  FAILED_COLOUR = 18   

to
Code: [Select]
  ACTIVE_COLOUR = 11             # The colour of a quest that is active
  COMPLETE_COLOUR = 0           # The colour of a quest that is complete
  FAILED_COLOUR = 18   

@Blade - glad to hear that you solved your problem.

**
Rep: +0/-0Level 83
if i completed 1 tag i quest (green) how i can return to uncompleted (return to white).
example:
i make in common event [arallel proces where
i get 5 herbs but used it and i no have now but the completed tag was stay

*
Rep:
Level 95
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 Member2010 Best RPG Maker User (Scripting)2010 Best Use Of Avatar And Signature Space
Ah, I see.

I have no direct command, but you can do this:

Code: [Select]
q = $game_party.quests[quest_id]
q.complete_objectives.delete (objective_id)

I'll include a method to do that in the next version perhaps

**
Rep: +0/-0Level 83
works perfectly !
you are big man :D

thx

********
Shadow Knight
Rep:
Level 89
Ruin that brick wall!
Project of the Month winner for October 2008
works perfectly !
you are big man :D

thx
no he is modern XD
Be kind, everyone you meet is fighting a hard battle.

**
Rep: +0/-0Level 83
i paste in script and working
0o

*
Rep:
Level 95
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 Member2010 Best RPG Maker User (Scripting)2010 Best Use Of Avatar And Signature Space
you are big man :D

Thanks, though that compliment makes you sound a bit like a Korean prostitute :P. And I'm glad to hear that everything is working properly. I should be thanking you as you brought to my attention that the script should include an option to uncomplete an objective. So, thank you.

**
Rep: +0/-0Level 83
 wanna say: thx:>

i have another question :>
how i can conceal a whole quest?

this is for single obiective:
$game_party.quests[quest_id].conceal_objective (objective_id)
but i need conceal a quest :/

can you help?
thx :)
« Last Edit: April 02, 2008, 03:27:09 AM by Znikomek »

*
Rep:
Level 95
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 Member2010 Best RPG Maker User (Scripting)2010 Best Use Of Avatar And Signature Space
You can't really. Why do you want to?

You can delete them if you're done with the quest completely - Just $game_party.quests[id] = nil


But I really can't see any reason that you'd want to conceal a quest unless you have multiple parties and in that case you'd have a script that, if it was done intelligently in any way, would have multiple Game_Party objects and thus there would be no conflict.

But, it is a fairly easy thing to add, so if you can give a good reason, then I could add it.

Alright, I put up a new version. You can now use the codes:

Code: [Select]
$game_party.quests[quest_id].uncomplete_objective (objective_id)
$game_party.quests[quest_id].unfail_objective (objective_id)
$game_party.quests[quest_id].concealed = true/false

Note that uncomplete_objective is slightly too long for the call script window, and so I'd recommend inputting the code like so:

Code: [Select]
q = $game_party.quests
q[quest_id].uncomplete_objective (objective_id)
« Last Edit: April 01, 2008, 05:50:02 PM by modern algebra »

**
Rep: +0/-0Level 83
Code: [Select]
But I really can't see any reason that you'd want to conceal a quest

yea! now me too can't see :/
mayby i say for what i need

i wanna create the respowning quest
if i done it once i can repeat it any time

can you help once again?

sry for taking yours free time

***
Rep:
Level 85
Master of Stepmania
Aah, a repeative quest script. Shouldn't be too hard, i don't really know Ruby but i got "Code-Eyes" so i can see through almost any programming language and edit it. Thus, i can't write my own ruby so let's wait for modern. This sounds like a good feature.
Does 2+2 equal a peanut?

*
Rep:
Level 95
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 Member2010 Best RPG Maker User (Scripting)2010 Best Use Of Avatar And Signature Space
You could remove a quest with this code:

Code: [Select]
$game_party.quests.remove (quest_id)

I actually have an error there, so before you do that, go into the script and at around line 562 yo should see:

Code: [Select]
@data.delete_at (quest_id)

That should be @data[quest_id] = nil


Anyway, I will release a new version soon - I am just going to change the array to a hash.

**
Rep: +0/-0Level 83
hmm...
its doesen working
if i talk to event with this script
doesent happend