[VXA] Quest Journal 1.0.3

0 Members and 3 Guests are viewing this topic.

*
Rep:
Level 97
2014 Most Unsung Member2014 Best RPG Maker User - Engine2013 Best RPG Maker User (Scripting)2012 Most Mature Member2012 Favorite Staff Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Use of Avatar and Signature Space2011 Best RPG Maker User (Scripting)2011 Most Mature Member2011 Favourite Staff Member2011 Best Veteran2010 Best RPG Maker User (Scripting)2010 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 Most Unsung Member2014 Best RPG Maker User - Engine2013 Best RPG Maker User (Scripting)2012 Most Mature Member2012 Favorite Staff Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Use of Avatar and Signature Space2011 Best RPG Maker User (Scripting)2011 Most Mature Member2011 Favourite Staff Member2011 Best Veteran2010 Best RPG Maker User (Scripting)2010 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 73
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 55
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 Most Unsung Member2014 Best RPG Maker User - Engine2013 Best RPG Maker User (Scripting)2012 Most Mature Member2012 Favorite Staff Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Use of Avatar and Signature Space2011 Best RPG Maker User (Scripting)2011 Most Mature Member2011 Favourite Staff Member2011 Best Veteran2010 Best RPG Maker User (Scripting)2010 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 77
RMRK Junior
Death Common Events is probably a good idea.

***
hail satan buddy 666
Rep:
Level 55
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 Most Unsung Member2014 Best RPG Maker User - Engine2013 Best RPG Maker User (Scripting)2012 Most Mature Member2012 Favorite Staff Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Use of Avatar and Signature Space2011 Best RPG Maker User (Scripting)2011 Most Mature Member2011 Favourite Staff Member2011 Best Veteran2010 Best RPG Maker User (Scripting)2010 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 55
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 Most Unsung Member2014 Best RPG Maker User - Engine2013 Best RPG Maker User (Scripting)2012 Most Mature Member2012 Favorite Staff Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Use of Avatar and Signature Space2011 Best RPG Maker User (Scripting)2011 Most Mature Member2011 Favourite Staff Member2011 Best Veteran2010 Best RPG Maker User (Scripting)2010 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 55
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 51
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 55
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 51
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 51
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 55
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 Most Unsung Member2014 Best RPG Maker User - Engine2013 Best RPG Maker User (Scripting)2012 Most Mature Member2012 Favorite Staff Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Use of Avatar and Signature Space2011 Best RPG Maker User (Scripting)2011 Most Mature Member2011 Favourite Staff Member2011 Best Veteran2010 Best RPG Maker User (Scripting)2010 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 51
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 82
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 51
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 82
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 51
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