RPG Crisis Community Forums: Quest Journal - RPG Maker VX Scripts - Tutorials/Scripts - RPG Crisis Community Forums

Jump to content

Quest Journal Bookmark

User is offline Elemental Crisis 

  • Administrator
    • Group: Administrators
    • Posts: 2,393
    • Joined: 22-June 10
    • LocationUSA
    • Time Online: 1d 6h 17m 39s

    31
    2538/9400
    Hit Points
    4670/4670
    Magic Points
    43%
    Experience
    : ADVENTURER
    ADVENTURER


    Tutorial/Script info

    • Added on: 25 July 2010 - 09:02 PM
    • Date Updated: 25 July 2010 - 09:07 PM
    • Views: 1,263
    Description: This script provides a graphical interface for viewing quest progress. It is an objective based quest log, meaning you can choose to reveal, conceal, complete, or fair any objective at any time. You can also specify which objectives need to be completed for the quest to be complete. It requires a fair amount of customization and designing the quests is entirely left up to you.

    Script Name: Quest Journal
    Author: modern algebra
    Version: 1.1
    Number Of Scripts: 1
    Description:
    This script provides a graphical interface for viewing quest progress. It is an objective based quest log, meaning you can choose to reveal, conceal, complete, or fair any objective at any time. You can also specify which objectives need to be completed for the quest to be complete. It requires a fair amount of customization and designing the quests is entirely left up to you.

    Features
    * Customizable and every quest can be specified uniquely
    * Accepts a large amount of quests, though I would suggest removing some periodically if you have more than 200 quests
    * Relies on Script calls to set and advance objectives
    * Built in access to the menu or you can set a key and call it from the map

    Screenshots:


    Instructions:
    Before you begin, you must have the following script for this script to work.
    Paragraph Formatter

    Basically, set up all of your quests in the module below. The Constants section is annotated, so read the comments near them to determine what you should set these constants to. As you can see, they are filled in with default values currently, and so that should give you an idea of what to do.

    Setting up quests can be a little bit harder. You will have to set one these up for every quest that you want represented in the scene. Refer to the editable region inside the class Quest for further instructions Once they are setup, you can activate them at any time in the game by this code:
    $game_party.quests[quest_id]

    There are several methods you can call that are of relevance. Namely:
    $game_party.quests[quest_id].reveal_objective (objective_id)
    $game_party.quests[quest_id].conceal_objective (objective_id)
    $game_party.quests[quest_id].complete_objective (objective_id)
    $game_party.quests[quest_id].uncomplete_objective (objective_id)
    $game_party.quests[quest_id].fail_objective (objective_id)
    $game_party.quests[quest_id].unfail_objective (objective_id)
    $game_party.quests[quest_id].complete?
    $game_party.quests[quest_id].failed?
    $game_party.quests[quest_id].concealed (= true/false)
    $game_party.quests[quest_id].reward_given (= true/false)
    $game_party.quests[quest_id].remove (quest_id)

    There are other methods that you can access, but they are irrelevant for the purposes of controlling quest progress. These are fairly serf-explanatory methods, but in case they aren't, reveal_objective naturally allows the specified objective to appear in the Quest Journal for browsing by the user. complete_objective notes when an objective is complete, and fail_objective notes when the player has done something that fails this objective. complete? returns true if all primary objectives have been completed and failed? returns true if any primary objective has been failed. reward_given serves the function of a switch. You should essentially make the reward event look like this:
    @> Conditional Branch: Script: $game_party.quests[quest_id].complete?
      @> Conditional Branch: Script: $game_party.quests[quest_id].reward_given
         @> ...Thank you or whatever you want the event to say once the reward has been given
      @> Else
         @> ...Give Reward
         @> Script: $game_party.quests[quest_id].reward_given = true
      @> Branch End
    @> Branch End

    later versions of this script will have an auto-reward system and also a Journal to which the player can write notes.

    You can also disable access to the Quest log at any time with the code:

    $game_system.quest_disabled = true

    And you can change how it is accessed with the codes:

    $game_system.quest_keyaccess = true / false  # ON MAP
    $game_system.quest_menuaccess = true / false # IN MENU

    Also, in a message, \nq

    [quest_id] will retrieve the name of a quest and print it in a message.

    You can also use the Quest Journal Config utility which makes adding/editing quests a lot easier. Click the link below to download it.
    Quest Journal Config

    Frequently Asked Questions:
    N/A

    Demo
     Quest Journal Demo.rar (243.27K)
    Number of downloads: 204

    Script:
    Spoiler
    0
    • View members tutorials/scripts
    • RPG Maker VX Scripts

    Share:

    Powered by (IM) Tutorials 1.1.2 © 2011, by Michael McCune