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

0 Members and 1 Guest are viewing this topic.

**
Rep: +0/-0Level 83
Hi, sorry to trouble.

I would like to ask if i can use this script with Syvkal's ring menu. http://www.rpgrevolution.com/forums/?showtopic=15958 .

I thought i can just disable your menu and add "$scene =scene_Quest.new" on his menu ... but i encountered many errors as soon i hit menu. So i thought (i am sorry for this) and removed your game window part to test it out, i can open the ring out but i got the

ArgumentError Occured while running script

wrong number of arguments (3 for 2)


Do you know which script is causing the error?

*
Rep:
Level 96
2013 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 Member2010 Best RPG Maker User (Scripting)2010 Best Use Of Avatar And Signature Space
Hmm, well that's a weird error. I just tested the two scripts in a new project and they seemed to work fine. The only thing I changed was this, in the Syvkal script:

Code: [Select]
   
   ["Quests", Cache::picture ('Icon_Equip'), "$scene =  Scene_Quest.new"],

underneath:

Code: [Select]

   # Preferably Insert your custom Menu Options Here
   # Otherwise the existing Menu Options will return to wrong point on the Menu

at line 60. It worked fine. I used Icon_Equip just to test - I imagine you'd want to change that though.

**
Rep: +0/-0Level 83
Ok, sorry again.

I tried again this time by pasting the syvkal's menu bar (required by ring menu) and the ring menu into your Quest journal V1.1 demo.

as soon i open the menu

i get

Script 'Quest Journal" line 915: NoMethodError occurred.

Undefined method 'commands' for #<Window_RingMenu:0x1928a40> 

i am sorry for the trouble.

*
Rep:
Level 96
2013 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 Member2010 Best RPG Maker User (Scripting)2010 Best Use Of Avatar And Signature Space
Try attaching that project to your post and I will take a look. I did the exact same thing with the script and it worked perfectly fine.


P.S. I put it below the Quest Journal. I think that the error you reported may occur if you put it above. So put it below.

**
Rep: +0/-0Level 83
Actually i don't have a project yet, i am looking to find a compatible quest log before i start.
But all i did was pasting ... them in this order in your Quest journal Demo

Syvkal's menu bar   (the link for this is in the same webpage i posted)
Ring menu
------- (waves here)
Paragraph Formatter
Quest Journal
------- (waves here)

and i put all her icon under picture folder.

After i begin your demo from the start. ...after the autorun messages. I open the menu with ESC Then i get  the messages.

I can't find a way to post the stuff on your demo. The attach isn't taking my things.

sorry for the trouble. If it really doesn't work.. don't worry about it. I can always use the "input" keys to use the quest log. Thank you.

*
Rep:
Level 96
2013 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 Member2010 Best RPG Maker User (Scripting)2010 Best Use Of Avatar And Signature Space
Yeah, put the Ring Menu below the Quest Journal in the editor.

**
Rep: +0/-0Level 83
It works now, thank you.


*
Rep:
Level 83
A bit of a nitpick. Quests don't appear in order of their Quest ID.



At first, I wondered if I was going crazy while I was creating my game, but I fired up my test engine and put in these values to test it:

Code: [Select]
    when 1
      name = 'Number 1'
      description = 'Number 1'
      objectives[0] = 'Objective 1'
      prime = [0]
      icon_index = 1
   
    when 2
      name = 'Number 2'
      description = 'Number 2'
      objectives[0] = 'Objective 1'
      prime = [0]
      icon_index = 1
     
    when 3
      name = 'Number 3'
      description = 'Number 3'
      objectives[0] = 'Objective 1'
      prime = [0]
      icon_index = 1
     
    when 4
      name = 'Number 4'
      description = 'Number 4'
      objectives[0] = 'Objective 1'
      prime = [0]
      icon_index = 1
     
    when 5
      name = 'Number 5'
      description = 'Number 5'
      objectives[0] = 'Objective 1'
      prime = [0]
      icon_index = 1
     
    when 6
      name = 'Number 6'
      description = 'Number 6'
      objectives[0] = 'Objective 1'
      prime = [0]
      icon_index = 1
     
    when 7
      name = 'Number 7'
      description = 'Number 7'
      objectives[0] = 'Objective 1'
      prime = [0]
      icon_index = 1
     
    when 8
      name = 'Number 8'
      description = 'Number 8'
      objectives[0] = 'Objective 1'
      prime = [0]
      icon_index = 1
     
    when 9
      name = 'Number 9'
      description = 'Number 9'
      objectives[0] = 'Objective 1'
      prime = [0]
      icon_index = 1
     
    when 10
      name = 'Number 10'
      description = 'Number 10'
      objectives[0] = 'Objective 1'
      prime = [0]
      icon_index = 1

The results are as shown as in the screenshot I posted just above.
Now, is there any way to sort the array? Every attempt I've tried to do so far has lead me to revel in an undefined [] operation.
To make sure it wasn't just incompatibility issues, I copied and pasted the dummy quests 1 through 10 into the demo you delivered as well. Same problem and same order.
Side-battle systems are the lens flare of RPG Maker.

*
Rep:
Level 96
2013 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 Member2010 Best RPG Maker User (Scripting)2010 Best Use Of Avatar And Signature Space
Yeah, it is a little strange I know.

Anyway, go to this section of code (line 518 with demo settings):

Code: [Select]
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Get Quest List
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def list
    quest_list = @data.values
    quest_list.each { |i| quest_list.delete (i) if i.concealed }
    return quest_list
  end

and change it to:

Code: [Select]
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Get Quest List
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def list
    quest_list = @data.values.sort { |a, b| a.id <=> b.id }
    quest_list.each { |i| quest_list.delete (i) if i.concealed }
    return quest_list
  end

That should sort it out.

*
Rep:
Level 83
Very rocking. Works nicely now~

This script is definitely one of your strongest due to its game-staple utility so I'm very glad to see it working at full capacity.
Side-battle systems are the lens flare of RPG Maker.

*
Rep:
Level 96
2013 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 Member2010 Best RPG Maker User (Scripting)2010 Best Use Of Avatar And Signature Space
Thanks. It was one of my first for VX so I'm happy that you like it. I still haven't gotten around to Version 2 yet though, with the actual Journal :(

**
Rep: +0/-0Level 82
This is a great script but I'm running into a problem.

My quest has 10 objectives, and  objective 9 and 10 are cut off by the window. Is it possible to have the window scrollable?

*
Rep:
Level 96
2013 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 Member2010 Best RPG Maker User (Scripting)2010 Best Use Of Avatar And Signature Space
No. It technically wouldn't be hard to add, but it would interfere with the secondary goal of this script, which is not yet implemented but is a user-editable Journal that would be called by selecting a quest. Since that feature is planned, I had not added scrolling functionality.

I would suggest one of two things:

(A) Split the quest in two
(B) Conceal some of the earlier objectives as they grow more distant

**
Rep: +0/-0Level 82
hmm okay, thanks for the reply.

I've looked and I cant find it but is there an area where I can reduce the spacing between the bullet objective items?

*
Rep:
Level 96
2013 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 Member2010 Best RPG Maker User (Scripting)2010 Best Use Of Avatar And Signature Space
Yeah, if you go down to Window_QuestInfo, you can change it. In the demo, this line is at 859, but with quests added it's probably much further down.

Code: [Select]

      y += WLH*([formatted_obj.lines.size, 2].min)

It is directly surrounded by these lines:

Code: [Select]
quest.revealed_objectives.each { |i|
      # Get the correct color
      contents.font.color = quest.complete_objectives.include? (i) ?
        text_color (ModAlg_QuestData::COMPLETE_COLOUR) : quest.failed_objectives.include? (i) ?
        text_color (ModAlg_QuestData::FAILED_COLOUR) : text_color (ModAlg_QuestData::ACTIVE_COLOUR)
      # Get objective
      objective = quest.objectives[i]
      # Draw Bullet
      tw = contents.text_size (ModAlg_QuestData::BULLET_CHARACTER).width
      x = 8
      contents.draw_text (x, y, tw, WLH, ModAlg_QuestData::BULLET_CHARACTER)
      x += tw + 4
      # Format the objective
      obj_bitmap = Bitmap.new (contents.width - x, 2*WLH)
      obj_bitmap.font = contents.font
      obj_bitmap.font.size -= 4
      formatted_obj = formatter.format (objective, obj_bitmap)
      # Draw Objective
      bmp = artist.draw (formatted_obj)
      contents.blt (x, y + 4, bmp, bmp.rect)
      # Modify the Y accordingly
      y += WLH*([formatted_obj.lines.size, 2].min)
    }
  end

Anyway, if you change what is added there, then that will change the spacing between each objective.

**
Rep: +0/-0Level 82
Perfect that works great!!! Thank you!!

**
Rep: +0/-0Level 82
Great script. I am curious of two things.
a) Could u separate the quest definitions into a separate file for ease of management?
b) How can you check to see if certain objectives are revealed. As in, I have some events which I want to appear only when the player is at a certain place in a quest line.

Thanks again

**
Rep: +0/-0Level 82
Anything on the two questions in the post above? More so how to check if certain objectives are revealed/completed?
Thanks.

*
Rep:
Level 96
2013 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 Member2010 Best RPG Maker User (Scripting)2010 Best Use Of Avatar And Signature Space
a) What do you mean by this? Separate file as in text document?

b) You can, but it doesn't have a nice command:

It can be done like this though:

$game_party.quests[quest_id].revealed_objectives.include? (index)

Just put that code in a Conditional Branch: Script command.

**
Rep: +0/-0Level 82
a) Create a second script module for us to create quests in. Just so they are separate from the main script and things aren't so long etc.

b) Yea thats what I am looking for. certain events depend on whether certain objectives are complete. Thanks.

Also, if I have your permission I would like to attempt to modify the script to include automatic quest started, object updated and quest completion messages. Also going to try to to put quest defined gold and experience and have it automatically given out upon quest completion.
« Last Edit: October 02, 2008, 01:16:21 PM by Selacius »

*
Rep:
Level 96
2013 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 Member2010 Best RPG Maker User (Scripting)2010 Best Use Of Avatar And Signature Space
Well, knock yourself out.

And if you want to separate it into a separate script file, just cut out this part:

Code: [Select]
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Constants
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Editable Region
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  QUESTS_LABEL = 'Quests'        # What you want Quests to be called (eg. 'Missions')
  ACTIVE_QUEST_ICON = 149        # What icon signifies a quest is active
  COMPLETE_QUEST_ICON = 150      # What icon signifies a quest is complete
  FAILED_QUEST_ICON = 179        # What icon signifies a quest is failed
  BULLET_CHARACTER = '?'         # The character used for listing objectives
  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             # The colour of a quest that is failed
  MENU_ACCESS = true             # Can the script be accessed through the menu?
  MENU_INDEX = 4                 # If above is true, where in the command window?
  KEY_ACCESS = false             # Can the quest log be accessed by a key         
  MAPKEY_BUTTON = Input::L       # If above is true, which button?
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Quest Data
  #----------------------------------------------------------------------------
  #  Returns skeleton data for the quesr
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def self.quest_data (id)
    # Set class variables to corresponding arguments
    objectives = []
    name = '??????'
    description = '??????????'
    icon_index = 0
    case id
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    # * EDITABLE REGION
    #------------------------------------------------------------------------
    #  To set up a quest, first identify it with an ID - this can be anything
    #  as long as it is not the same as another quest, but it is important to
    #  remember this ID as it is the only way to access your quest.
    #    In any case, the format for setting up a quest is:
    #
    #      when <quest_id> # Give the quest an ID number
    #        name = '<quest_name>'
    #        description = '<quest_description>'
    #        objectives[0] = '<first_objective>'
    #        ...
    #        objectives[n] = '<nth objective>'
    #        prime = [<objective_id>, ..., <objective_id>]
    #        icon_index = <quest_icon_index>
    #
    #    Each of these values have an importance.
    #      name is the name of the quest
    #      description is a small blurb explaining the overall goal of the quest
    #      objective[0..n] are short-term goals that lead to the overall goal
    #      primes are which objectives need to be complete before the quest is
    #        considered to be complete
    #      icon_index is the icon that represents the quest
    #
    #    Note that any of the above values can be omitted without throwing an
    #    error, but for the quest to work properly you should at least set the
    #    name, description, and objectives. If you do omit these, the default
    #    values are:
    #   
    #      name = '??????'
    #      description = '??????????'
    #      objectives = []
    #      prime = [all objectives]
    #      icon_index = 0
    #
    #   If you do want to require that all objectives must be satisfied before
    #   the quest is complete, then do not bother defining it. Otherwise, be
    #   sure to set it.
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    when 1 # Fetch
      name = 'Fetch'
      description = 'Martha needs someone to play with her dog'
      objectives[0] = 'Find a stick'
      objectives[1] = 'Throw the stick to the dog'
      objectives[2] = 'Retrieve the stick from the dog'
      icon_index = 79
    when 4 # Cat Retrieval
      name = 'Cat Retrieval'
      description = 'Mrs. Bunderby has lost her cat, and she has employed you to find it.'
      objectives[0] = 'Find the lost cat'
      objectives[1] = 'Climb the tree and retrieve the cat'
      objectives[2] = "Return a cat to Mrs. Bunderby"
      # Set prime objectives in an array based on index
      prime = [0, 2]
      icon_index = 137
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    # * END EDITABLE REGION
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    end
    return name, description, objectives, prime, icon_index
  end

Insert a new script Entry, and put this in:

Code: [Select]
module ModAlg_QuestData
  <paste the part you cut out here>
end

**
Rep: +0/-0Level 82
Hey having a minor problem with that code you gave me:
$game_party.quests[quest_id].revealed_objectives.include? (index)

If I go to a map which has a parallel event with that code as a conditional element before the quest has been started then the quest will be revealed but none of the objectives will be displayed. Once again I need this because I have a boat I want to appear as soon as a certain objective of a quest has been completed, and requires a parallel process. It works fine for action button and player touch systems.

*
Rep:
Level 96
2013 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 Member2010 Best RPG Maker User (Scripting)2010 Best Use Of Avatar And Signature Space
Well, then just put it within a con. branch checking if the quest has been revealed:

$game_party.quests.revealed? (quest_id)

**
Rep: +0/-0Level 82
Im getting an error with this when I use MOGs Scene Menu. It is in the Window_VaryHelpSize super() line. I don't know what the problem is though. Any ideas?