daily pastebin goal
12%
SHARE
TWEET

CONFIG

a guest Dec 31st, 2013 48 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #==============================================================================
  2. #    Quest Journal
  3. #    Version: 2.1a
  4. #    Author: modern algebra (rmrk.net)
  5. #    Date: May 11, 2011
  6. #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  7. #  Description:
  8. #
  9. #    This script provides a graphical interface for showing quest progress. It
  10. #   is objective based, meaning that you choose when to reveal objectives and
  11. #   you can set it so that they show up as complete or failed. That said, this
  12. #   script does not build quests for you; it is only a supplementary scene for
  13. #   showing them. As such, you need to event all of the quests yourself and
  14. #   update quest progress via script call. Therefore, pay close attention to
  15. #   the instructions both here and in the EDITABLE REGIONS.
  16. #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  17. #  Instructions:
  18. #
  19. #    As with the previous version, all of the configuration is done in the
  20. #   QuestData module. While it is not necessary, it is recommended that you
  21. #   separate the configuration module from the rest of the script by cutting
  22. #   and pasting it into its own section (as you will see if you have the demo).
  23. #   If you wish to do that, you must cut everything from the first line down to
  24. #   the final end of the module. The first lines of the body script should be
  25. #   the equals bar right above # ** Game_Quest. Again, that is only to make
  26. #   things neater and has no functional relevance; it's up to you.
  27. #
  28. #    That said, you can go to EDITABLE REGION A at line 242 to configure the
  29. #   default settings for the script. This ranges from the functional settings
  30. #   at line 244 (such as whether access is from the menu or the map or which
  31. #   categories are shown in the scene) to the graphical settings at line 267
  32. #   (such as which icons to use for categories and what names should be given
  33. #   to various headings). All of these will work fine without modification, of
  34. #   course, but even if do not want to configure now, you should familiarize
  35. #   yourself with all the settings so that you can make the best use of your
  36. #   script. I have included tons of settings so that you can make the Quest
  37. #   Journal unique for your game, even down to the order in which each section
  38. #   of the info window is drawn. A brief description of each setting is
  39. #   included either to the left or directly above each constant.
  40. #
  41. #    EDITABLE REGION B is the real heart of the script however - this is where
  42. #   you fill in all of the details for the quests. Read the instructions at
  43. #   line 389 very carefully!
  44. #
  45. #    You can activate and access a quest with this code in the Script event
  46. #   command:
  47. #
  48. #        (quest (quest_id))
  49. #          quest_id : the integer ID of the quest you want to access
  50. #
  51. #   From that, you can access or alter any relevant data stored in the quest,
  52. #   like name, description, objectives, etc... Example:
  53. #         (quest (1)).name = "Rest in Pieces"
  54. #
  55. #    More relevantly, when it comes to controlling the progress of quests the
  56. #   following codes can be used in a Script event command. The arguments are
  57. #   the same for each command so I only explain them once. All of them are
  58. #   pretty self-explanatory and using any of them will activate the quest
  59. #   (unless you are using the MANUAL REVEAL setting at line 263).
  60. #    
  61. #        reveal_objective (quest_id, objective_id_1, ..., objective_id_n)
  62. #            quest_id : the integer ID of the quest you want to access.
  63. #            objective_id_1, ..., objective_id_n : a list of the IDs of the
  64. #              objectives you want to operate on. It can be as few as one or as
  65. #              many as all of them.
  66. #          Will show the listed objectives in the Quest's information
  67. #        conceal_objective (quest_id, objective_id_1, ..., objective_id_n)
  68. #          Will hide the listed objectives in the Quest's information
  69. #        complete_objective (quest_id, objective_id_1, ..., objective_id_n)
  70. #          Changes the colour of the listed objectives to the completed colour.
  71. #          The quest is completed once all prime objectives are.
  72. #        uncomplete_objective (quest_id, objective_id_1, ..., objective_id_n)
  73. #          Changes the status of the listed complete objectives back to active
  74. #        fail_objective (quest_id, objective_id_1, ..., objective_id_n)
  75. #          Changes the colour of the listed objectives to the failed colour.
  76. #          The quest is failed once one prime objective is.
  77. #        unfail_objective (quest_id, objective_id_1, ..., objective_id_n)
  78. #          Changes the status of the listed failed objectives back to active
  79. #        change_reward_status (quest_id, value)
  80. #            value : either true or false. If excluded, defaults to true.
  81. #          Totally optional, but this is just a personal switch which you can
  82. #          turn on when the reward is given. You can then make it a condition
  83. #          so you don't reward the players more than once. (see line 146)
  84. #
  85. #  EXAMPLES:
  86. #    reveal_objective (1, 0)
  87. #      This would reveal the first objective of the quest with ID 1
  88. #    complete_objective (6, 2, 3)
  89. #      This would complete the third & fourth objectives of the quest with ID 6
  90. #    change_reward_status (8)
  91. #      This would set the reward switch to true for the quest with ID 8.
  92. #
  93. #   Another new feature is the ability to set rewards that will show up in the
  94. #  menu (see EDITABLE REGION B). In addition to that, you can use the following
  95. #  code to automatically distribute the specified rewards for a quest if the
  96. #  quest is complete and no reward has yet been given:
  97. #
  98. #        give_quest_reward (quest_id)
  99. #          quest_id : the ID of the quest whose rewards you want to distribute
  100. #
  101. #   Of course, it can only distribute the rewards of type 0-4 (items, weapons,
  102. #   armors, gold, or exp). It won't distribute rewards you specify by string.
  103. #   To that end though, you can also use this code in a conditional branch and
  104. #   it will be satisfied only if it distributes the rewards. Thus, if you
  105. #   wanted to add some special rewards or do things like that, you can just put
  106. #   that in the branch for when it is true.
  107. #
  108. #    Other codes for the Script event command that can be useful are:
  109. #    
  110. #        reset_quest (quest_id)
  111. #            quest_id : the integer ID of the quest you want to access.
  112. #          This will re-initialize the quest, meaning all quest progress to
  113. #          date will be lost
  114. #        remove_quest (quest_id)
  115. #          Deactivates the quest and resets it
  116. #        conceal_quest (quest_id)
  117. #          Deactivates the quest so it won't show up in the scene, but progress
  118. #          is saved
  119. #        reveal_quest (quest_id)
  120. #          Activates or reactivates the quest. This command is NECESSARY if
  121. #          MANUAL_REVEAL at line 263 is true or it has previously been
  122. #          concealed. Otherwise, it is sufficient just to operate on the quest
  123. #        change_quest_access (:symbol)
  124. #          :symbol must be one of six options (include the colon!):
  125. #            :disable - prevents access to the quest scene (greys out in menu)
  126. #            :enable - enables access to the quest scene
  127. #            :disable_menu - this removes the quest option from the menu
  128. #            :enable_menu - this adds the quest option to the menu
  129. #            :disable_map - this prevents access by key from the map
  130. #            :enable_map - this allows access by key to the map
  131. #        change_quest_background ("bg_filename", bg_opacity)
  132. #            bg_filename : the filename of the picture for the background in  
  133. #              the Pictures folder
  134. #            bg_opacity  : the opacity of the background graphic. If excluded,
  135. #              this defaults to the value of the setting at line 269.
  136. #        change_quest_windows ("windowskin_filename", window_opacity)
  137. #            windowskin_filename : the name of the Window graphic in System folder
  138. #            window_opacity : the opacity of the windows. If excluded, this
  139. #              defaults to the value of the setting at line 271.
  140. #
  141. #    Also, there are a few codes that can be used in the Script command of a
  142. #   conditional branch. I note here that all of these are optional. You could
  143. #   use switch and variable checks and monitor quest progress solely through
  144. #   events. However, these commands make it a little easier and they are:
  145. #
  146. #        quest_revealed? (quest_id)
  147. #            quest_id : the integer ID of the quest you want to access.
  148. #          This is satisfied if the quest has been activated.
  149. #        objective_revealed? (quest_id, objective_id_1, ... objective_id_n)
  150. #            objective_id_1, ..., objective_id_n : a list of the IDs of the
  151. #              objectives you want to operate on. It can be as few as one or as
  152. #              many as all of them.
  153. #          This is satisfied if the listed objectives have been revealed
  154. #        quest_complete? (quest_id)
  155. #          This is satisfied if all prime objectives of the quest are complete
  156. #        objective_complete? (quest_id, objective_id_1, ... objective_id_n)
  157. #          This is satisfied if all the listed objectives have been completed
  158. #        quest_failed? (quest_id)
  159. #          This is satisfied if any prime objective of the quest is failed
  160. #        objective_failed? (quest_id, objective_id_1, ... objective_id_n)
  161. #          This is satisfied if all the listed objectives have been failed
  162. #        quest_rewarded? (quest_id)
  163. #          This is satisfied if you have changed the reward status to true.
  164. #
  165. #    If you want to call the Quest scene from an event, you use the following
  166. #   code in a call script:
  167. #
  168. #        call_quest
  169. #        call_quest (quest_id)
  170. #          quest_id : ID of the quest you want to open the scene on
  171. #
  172. #  If you do not specify a quest_id (line 168) then it will simply open the
  173. #  scene as it would normally. If you do specify a quest_id (line 169) then it
  174. #  will open the scene on that quest so long as it has been revealed and it is
  175. #  normally accessible through the quest menu.
  176. #
  177. #    It will only give the rewards which are specified by the array. It will
  178. #   obviously not distribute any rewards you identified by String. It will do
  179. #   nothing if the reward_given boolean is true or if the quest is not yet
  180. #   complete. As such, you can also use this in a conditional branch and it
  181. #   will return true only if it gives the reward.
  182. #
  183. #   Finally, a new feature in version 2.0 is the ability to have quest shops
  184. #  where the player can pay money to have a quest revealed. Setting it up is a
  185. #  little more complicated as it is all done in the script call and so you need
  186. #  to be careful not to spill over lines. Essentially, to identify the
  187. #  purchable quest you need to create an array like this:
  188. #      [quest_ID, cost, [o1, o2, ..., on], switch_ID]
  189. #          quest_ID      : ID of the quest available for purchase
  190. #          cost          : the price to buy the quest
  191. #          [o1, ..., on] : an array of the objectives revealed when the quest
  192. #            is purchased. If you exclude this, all objectives are revealed.
  193. #          switch_ID     : this is the ID of a switch. When that switch is ON
  194. #            the quest will be available for purchase. Otherwise it won't. If
  195. #            excluded, the quest will always be available for sale at this shop
  196. #   You need one of those for every quest available at the shop and you put
  197. #   them all in another array and you pass it to the following code:
  198. #
  199. #      call_quest_shop (quest_array, "ShopName")
  200. #          quest_array : the array of the above elements
  201. #          "ShopName"  : the name of the shop. Allows you to differentiate
  202. #             quest givers (defaults to the value at line 357 if excluded).
  203. #
  204. #   All of that is further complicated by the line length limit in the script
  205. #   command. In order to avoid this, it is better to create the array before
  206. #   calling the shop. See the example for how this can be done.
  207. #
  208. #  EXAMPLE:
  209. #    a = []
  210. #    a.push ([1, 50, [0]], [4, 80, 1])
  211. #    a.push ([3, 100], [5, 75, [0,1], 1])
  212. #    call_quest_shop (a, "Fighter's Guild")
  213. #
  214. #  The first line creates the array. The second line adds two quests to it: the
  215. #  quest with ID 1 will cost 50 Gold and, if purchased, will reveal the first
  216. #  objective; the quest with ID 4 will cost 80 Gold but will only show up if
  217. #  the switch with ID 1 is ON. It will reveal all objectives when purchased.
  218. #  The third line adds two more quests: the quest with ID 3 will cost 100 Gold
  219. #  and all objectives will be revealed when it is purchased; the quest with ID
  220. #  5 will cost 75 gold but will only show up when switch 1 is ON. If purchased,
  221. #  it will reveal the first two objectives.
  222. #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  223. #  Compatibility:
  224. #
  225. #    This script automatically adds itself to the default menu if you turn that
  226. #   feature on. It will also automatically add itself to the menu if you use
  227. #   Dargor's Custom Commands, YEM Main Menu Melody, Full Status Custom Menu
  228. #   System, or Phantasia-esque Custom Menu System. It must be below them though!
  229. #==============================================================================
  230.  
  231. $imported = {} unless $imported
  232. $imported["QuestJournal2.1"] = true
  233.  
  234. #==============================================================================
  235. # *** Quest Data
  236. #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  237. #  This is the configuration module for the Quest Journal
  238. #==============================================================================
  239.  
  240. module QuestData
  241.   #\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  242.   #    EDITABLE REGION A
  243.   #||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  244.   # Functional Configuration
  245.   # CATEGORIES - this is an array describing which categories are available for
  246.   #   the Quest Journal and the order in which they appear. The options are
  247.   #   :all, :active, :complete, and :failed. You can also create custom
  248.   #   categories which include only quests that are specifically added. To do
  249.   #   so, just make up a symbol name (:name, so like :primary or :secondary or
  250.   #   :companion or etc...) and add it to the array. Then, go to line 273 and
  251.   #   associate an icon with the SAME symbol. Then, when you are setting up the
  252.   #   quests at line 388, all you need to do is add that SAME symbol to the
  253.   #   custom_categories attribute
  254.   CATEGORIES = [:all, :active, :complete, :failed, :side]
  255.   # SORT_TYPE - This is how the quests are sorted. This value can be :id (sort
  256.   #   by ID), :revealed (sort by order they were revealed), :alphabet (sort
  257.   #   alphabetically by name), :level (sort by level) or :none. You can add
  258.   SORT_TYPE = :revealed     # reverse to any to flip. (IE. :revealedreverse)
  259.   MENU_ACCESS = true        # Can the script be accessed through the menu?
  260.   MENU_INDEX = 3            # If above is true, where in the command window?
  261.   KEY_ACCESS = false        # Can the quest log be accessed by a key        
  262.   MAPKEY_BUTTON = Input::L  # If above is true, which button?
  263.   # MANUAL_REVEAL - whether you need to manually reveal every quest with the
  264.   #  reveal_quest command or whether they are automatically revealed as soon as
  265.   #  they are operated on (I.e. when you reveal, complete, etc.. objectives)
  266.   MANUAL_REVEAL = true    
  267.   # Graphical Configuration
  268.   BG_PICTURE = ""           # The filename of the background picture
  269.   BG_OPACITY = 255          # The opacity of the background picture, if used
  270.   WINDOWS_SKIN = "Window"   # The skin of the windows in the Quest Scene
  271.   WINDOWS_OPACITY = 200     # The opacity of the windows in the Quest scene
  272.   LIST_WIDTH = 184          # The width, in pixels, of the left-hand windows
  273.   # ICONS - here is where you set up what icons are used for various things in
  274.   #  the script, like categories, gold, exp, or even for the menu option if you
  275.   #  are using one of the supported CMSes. If you have added custom categories
  276.   #  at line 245, then you should also add a line for each of the new categories
  277.   #  under the same format. Don't forget the comma at the end!
  278.   ICONS = {                
  279.     :all => 0,              # If 0, combines :active, :complete, and :failed
  280.     :active => 68,          # Icon representing active quest list
  281.     :complete => 359,       # Icon representing complete quest list
  282.     :failed => 360,         # Icon representing failed quest list
  283.     :side => 68,            # Icon representing side quest list
  284.     :menu => 0,             # Quests icon if using one of the supported CMSes
  285.     :gold => 361,           # Icon for gold if used as a reward
  286.     :exp => 0,              # Icon for exp if used as a reward
  287.     :level => 377,          # Icon for level. Simply prints integer out if 0
  288.     :client => 322,         # Icon for client
  289.     :location => 72,        # Icon for Location
  290.   }
  291.   # For the following colours, you can use either an integer, in which case it
  292.   # takes its colour from that index of the windowskin palette, or you can use
  293.   # an array in the form [Red, Green, Blue, Alpha] (Alpha can be excluded)
  294.   COLOURS = {
  295.     :active => 0,             # The colour of a quest that is active
  296.     :complete => [0, 255, 0], # The colour of a quest that is complete
  297.     :failed => [255, 0, 0],   # The colour of a quest that is failed
  298.     :label => 0,              # The colour for the label
  299.     :content => 0,            # The colour for the main content of the window
  300.     :subtitle => 0            # The colour for the subtitles
  301.   }
  302.   VOCAB_QUESTS = "Missions" # What you want Quests to be called (eg. 'Missions')
  303.   # LABEL_FONTNAME - The name of the font used for the label window. If "" or
  304.   #  [], then it just uses the default font.
  305.   LABEL_FONTNAME = ""
  306.   # LABEL_FONTSIZE - The size of the text in the label window. When 0, it will
  307.   #   be automatically fitted to the window size (since it is dynamic)
  308.   LABEL_FONTSIZE = 0        
  309.   LABEL_BOLD = true        # Whether the label should be bold
  310.   #  Info Window
  311.   # INFO_LAYOUT - this allows you to choose the vertical order in which each
  312.   #  section of the quest information is drawn. The sections are - :banner,
  313.   #  :name, :client, :level, :location, :description, :objectives, & :rewards.
  314.   #  If you put two in an array, then they will be drawn at the same position.
  315.   INFO_LAYOUT = [:banner, :name, [:client, :level], :location, :description,
  316.     :objectives, :rewards]
  317.   # NAME_FONTNAME - The name of the font used for the quest name in the info
  318.   #  window. If "" or [], then it just uses the default font.
  319.   NAME_FONTNAME = ""        
  320.   NAME_FONTSIZE = 20        # Size of the font used for the name
  321.   NAME_BOLD = true          # Whether the Name
  322.   # CONTENT_FONTNAME - The name of the font used for the actual content of the
  323.   #  description, objectives. If "" or [], then it just uses the default font.
  324.   CONTENT_FONTNAME = ""
  325.   # SUBTITLE FONTNAME - The font used for the subtitles in the info window
  326.   # (The subtitles are: Description, Objectives, Rewards)
  327.   SUBTITLE_FONTNAME = ""  
  328.   SUBTITLE_FONTSIZE = 20    # Size of the subtitles in quest info window
  329.   SUBTITLE_BOLD = true      # Whether to embolden the subtitles
  330.   VOCAB_CLIENT = "Employer:"
  331.   # CLIENT_WIDTH - The horizontal space available for client. If 0, it will
  332.   #  take a little over half of the screen
  333.   CLIENT_WIDTH = 0          
  334.   VOCAB_LOCATION = "Location:"# The text used to identify the location
  335.   # LOCATION_WIDTH - The horizontal space available for location. If 0, it will
  336.   #  take a little over half of the screen
  337.   LOCATION_WIDTH = 0        
  338.   LEVEL_SPACE = 16          # The spacing between each level icon, if using icon
  339.   VOCAB_DESCRIPTION = "Description" # The word to identify the description text
  340.   DESC_FONTSIZE = 20        # The size of the font used in the description
  341.   VOCAB_OBJECTIVES = "Objectives" # The word to identify the objectives list
  342.   OBJECTIVE_BULLET = "●"    # The character used for listing objectives
  343.   OBJ_FONTSIZE = 20         # The size of the font used for objectives
  344.   VOCAB_REWARDS = "Reward"  # The word to identify the Rewards list
  345.   REWARD_BULLET = ""        # The character used for listing rewards
  346.   REWARD_FONTSIZE = 20      # The size of the font for each reward
  347.   ITEM_NUMBER_PREFACE = "x" # When reward amount > 1, this prefaces it.
  348.   VOCAB_EXP = "EXP"         # The word used for experience, if used in rewards
  349.   DRAW_VOCAB_GOLD = false   # Whether to draw the Gold vocab or only use icon
  350.   # VOCAB_HELP_GENERAL - The phrase in the help window when the list is active
  351.   VOCAB_HELP_GENERAL = "Use the horizontal directional keys to switch categories"
  352.   # VOCAB_HELP_SELECTED - The phrase in the help window when info is active
  353.   VOCAB_HELP_SELECTED = "Use the vertical directional keys to scroll up and down"
  354.   # Alignment of text in the Help Window - 0 => Left; 1 => Centre; 2 => Right
  355.   HELP_ALIGNMENT = 1        
  356.   JUSTIFY_PARAGRAPHS = false# Whether Description/objectives are justified.
  357.   # Quest Shop Configuration
  358.   VOCAB_PURCHASE = "Mission List"  # What you want the shop to be called
  359.   PURCHASE_USE_GOLD_ICON = true    # Whether to use gold icon in Quest Shop
  360.   PURCHASE_INFO_LAYOUT = [:name, [:client, :level], :location, :description,
  361.   :rewards] # Same as line 310, but for the Shop
  362.   PURCHASE_SE = ["Shop", 80]       # The sound played when a quest is bought
  363.   PURCHASE_LIST_WIDTH = 224        # The list width for the purchase scene
  364.   #||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  365.   #    END EDITABLE REGION A
  366.   #////////////////////////////////////////////////////////////////////////////
  367.   ICONS.default = 0
  368.   COLOURS.default = 0
  369.   #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  370.   # * Quest Data
  371.   #````````````````````````````````````````````````````````````````````````````
  372.   #  Returns skeleton data for the quest
  373.   #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  374.   def self.quest_data (id)
  375.     # Set class variables to corresponding arguments
  376.     banner = ""
  377.     name = ""
  378.     description = ""
  379.     client = ""
  380.     location = ""
  381.     objectives = []
  382.     prime = nil
  383.     rewards = []
  384.     level = 0
  385.     common_event = 0
  386.     icon_index = 0
  387.     custom_categories = []
  388.     case id
  389.     #\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  390.     #    EDITABLE REGION B
  391.     #````````````````````````````````````````````````````````````````````````
  392.     #  To set up a quest, first identify it with an ID - this can be anything
  393.     #  as long as it is not the same as another quest, but it is important to
  394.     #  remember this ID as it is the only way to access your quest.
  395.     #    In any case, the format for setting up a quest is:
  396.     #
  397.     #      when <quest_id> # Give the quest an ID number
  398.     #        banner = "filename"
  399.     #        name = "quest_name"
  400.     #        client = "person who gave the quest"
  401.     #        location = "place to go for the quest"
  402.     #        description = "quest_description"
  403.     #        objectives[0] = "first_objective"
  404.     #        ...
  405.     #        objectives[n] = "(n - 1)th objective"
  406.     #        prime = [objective_id, ..., objective_id]
  407.     #        rewards = [ [type, id, amount], ..., [type, id], "text" ]
  408.     #        level = integer
  409.     #        common_event = id
  410.     #        icon_index = quest_icon_index
  411.     #        custom_categories.push (:symbol_1, ..., :symbol_n)
  412.     #
  413.     #    Each of these values have an importance.
  414.     #      banner is the name of a picture that can be shown at the top
  415.     #      name is the name of the quest
  416.     #      description is a small blurb explaining the overall goal of the quest
  417.     #      client is the name of the person who gave the quest
  418.     #      location is the place to go to to complete the quest
  419.     #      objective[0..n] are short-term goals that lead to the overall goal
  420.     #      primes are which objectives need to be complete before the quest is
  421.     #        considered to be complete
  422.     #      rewards will list the items you suggest. Note that there is no
  423.     #        automatic gain - it simply lists them in the scene - you will need
  424.     #        to give them out. The format is simple, [type, id, amount] where
  425.     #        type identifies whether it is an item (0), weapon (1), armor (2),
  426.     #        gold (3), or exp (4). id is the item ID (or the amount of gold or
  427.     #        exp). amount only applies if it is an item, weapon or armor and it
  428.     #        is how much of the item is given. If excluded, it won't draw it at
  429.     #        all but if it is included, it will draw even if only 1. You can
  430.     #        also just put a string ("text") and it will write that out.
  431.     #      level is the difficulty of the quest
  432.     #      common_event is the ID of a common event which is immediately called
  433.     #        when the quest is first completed.
  434.     #      icon_index is the icon that represents the quest
  435.     #      custom_categories is a new feature which allows you to define which
  436.     #        quests belong in special categories. All you need to do is add the
  437.     #        appropriate symbol (which corresponds to an included category at
  438.     #        line 245) and it will be added. Then, when the player scrolls over
  439.     #        to that category, this quest, if revealed, will be there.
  440.     #
  441.     #    Note that any of the above values can be omitted without throwing an
  442.     #    error, but for the quest to work properly you should at least set the
  443.     #    name, description, and objectives. If you do omit these, the default
  444.     #    values are:
  445.     #  
  446.     #      banner = ""
  447.     #      name = "??????"
  448.     #      description = "??????????"
  449.     #      client = ""
  450.     #      location = ""
  451.     #      objectives = []
  452.     #      prime = [all objectives]
  453.     #      rewards = []
  454.     #      level = 0
  455.     #      common_event = 0
  456.     #      icon_index = 0
  457.     #      custom_categories = []
  458.     #
  459.     #   If you do want to require that all objectives must be satisfied before
  460.     #   the quest is complete, then do not bother defining it. Otherwise, be
  461.     #   sure to set it. If you are using the Special Codes Formatter, recall
  462.     #   that all codes must be prefaced with \\, not just \.
  463.     #||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  464.     when 1 # Quest 1
  465.       name = "Prison Break"
  466.       description = "The Empire has imprisoned the people of Cyana. It's your job to free them."
  467.       client = "Guildmaster"
  468.       location = "Cyana Prison"
  469.       objectives[0] = "Find the prison cell."
  470.       objectives[1] = "Free the prisoners."
  471.       objectives[2] = "Return to the guild."
  472.       rewards = [ [3, 1500] ] # 1500 Gold
  473.       level = 1
  474.       icon_index = 59
  475.     when 2
  476.       name = "Hunting"
  477.       description = "There is a soldier in the Mist Forest. Hunt him down and kill him."
  478.       client = "Guildmaster"
  479.       location = "Mist Forest"
  480.       objectives[0] = "Buy a boat to cross the river."
  481.       objectives[1] = "Navigate your way through the Mist Forest."
  482.       objectives[2] = "Kill the soldier."
  483.       rewards = [ [3, 2000] ]
  484.       level = 2
  485.       icon_index = 11
  486.     when 3
  487.       name = "Bombs Away"
  488.       description = "The mountain pass between Amethyne and Five Islands is blocked. Clear the way."
  489.       client = "Guildmaster"
  490.       location = "Amethyne Region"
  491.       objectives[0] = "Meet with Flare in Emerdala."
  492.       objectives[1] = "Speak with King Rello."
  493.       objectives[2] = "Retrieve Tolian Powder from the peak of the Amethyne Mountains."
  494.       objectives[3] = "Bring the powder to the Amethyne North Inn."
  495.       objectives[4] = "Clear the Mountain Pass."
  496.       rewards = [ [3, 4000] ]
  497.       level = 3
  498.       icon_index = 43
  499.     when 4
  500.       name = "Vengeance"
  501.       description = "Gareth is a General in Kilano's military. He must be eliminated."
  502.       client = "Guildmaster"
  503.       location = "Five Islands Region"
  504.       objectives[0] = "Enter Gareth's Castle."
  505.       objectives[1] = "Search the Castle and meet with Shadow."
  506.       objectives[2] = "Kill all the guards in the Library."
  507.       objectives[3] = "Meet Shadow in the Library."
  508.       objectives[4] = "Kill Gareth."
  509.       rewards = [ [3, 5000] ]
  510.       level = 5
  511.       icon_index = 11
  512.     when 5
  513.       name = "The Test"
  514.       description = "Find the Training Facility in Diamo."
  515.       client = "Guildmaster"
  516.       location = "Diamo Region"
  517.       objectives[0] = "Cross the Ice Fields."
  518.       objectives[1] = "Enter the fortress."
  519.       objectives[2] = "Meet with the Guardians."
  520.       objectives[3] = "Sleep."
  521.       objectives[4] = "Meet the Master in the main hall."
  522.       objectives[5] = "Meet the Master in the courtyard."
  523.       objectives[6] = "Find a book about ghosts in the library."
  524.       objectives[7] = "Return to the Master."
  525.       objectives[8] = "Train against a practice dummy."
  526.       objectives[9] = "Meet the Master in the main hall."
  527.       objectives[10] = "Train with Shadow."
  528.       objectives[11] = "Find Shadow."
  529.       objectives[12] = "Sleep."
  530.       rewards = []
  531.       level = 5
  532.       icon_index = 11
  533.      
  534.  #  ASSASSINATION QUESTS
  535.     when 155
  536.       name = "Assassination"
  537.       description = "Kill the target hiding in Emerdala."
  538.       client = "Sanguine"
  539.       location = "Emerdala"
  540.       objectives[0] = "Kill the target."
  541.       objectives[1] = "Return to Sanguine."
  542.       rewards = [ ("???") ]
  543.       icon_index = 11
  544.       custom_categories.push (:side)
  545.     when 156
  546.       name = "Assassination"
  547.       description = "Kill the target hiding in the Mist Forest."
  548.       client = "Sanguine"
  549.       location = "Mist Forest"
  550.       objectives[0] = "Kill the target."
  551.       objectives[1] = "Return to Sanguine."
  552.       rewards = [ ("???") ]
  553.       icon_index = 11
  554.       custom_categories.push (:side)
  555.     when 157
  556.       name = "Assassination"
  557.       description = "Kill the target hiding in Amethyne."
  558.       client = "Sanguine"
  559.       location = "Amethyne"
  560.       objectives[0] = "Kill the target."
  561.       objectives[1] = "Return to Sanguine."
  562.       rewards = [ ("???") ]
  563.       icon_index = 11
  564.       custom_categories.push (:side)
  565.     when 158
  566.       name = "Assassination"
  567.       description = "Kill the target hiding in the Amethyne Mountains."
  568.       client = "Sanguine"
  569.       location = "Amethyne Mountains"
  570.       objectives[0] = "Kill the target."
  571.       objectives[1] = "Return to Sanguine."
  572.       rewards = [ ("???") ]
  573.       icon_index = 11
  574.       custom_categories.push (:side)
  575.     when 159
  576.       name = "Assassination"
  577.       description = "Kill the target hiding in Rubana."
  578.       client = "Sanguine"
  579.       location = "Rubana"
  580.       objectives[0] = "Kill the target."
  581.       objectives[1] = "Return to Sanguine."
  582.       rewards = [ ("???") ]
  583.       icon_index = 11
  584.       custom_categories.push (:side)
  585.     when 160
  586.       name = "Assassination"
  587.       description = "Kill the target hiding in the Floodgates."
  588.       client = "Sanguine"
  589.       location = "Floodgates"
  590.       objectives[0] = "Kill the target."
  591.       objectives[1] = "Return to Sanguine."
  592.       rewards = [ ("???") ]
  593.       icon_index = 11
  594.       custom_categories.push (:side)
  595.     when 161
  596.       name = "Assassination"
  597.       description = "Kill the target hiding in the Flow Tower."
  598.       client = "Sanguine"
  599.       location = "Flow Tower"
  600.       objectives[0] = "Kill the target."
  601.       objectives[1] = "Return to Sanguine."
  602.       rewards = [ ("???") ]
  603.       icon_index = 11
  604.       custom_categories.push (:side)
  605.     when 162
  606.       name = "Assassination"
  607.       description = "Kill the target hiding in Topale."
  608.       client = "Sanguine"
  609.       location = "Topale"
  610.       objectives[0] = "Kill the target."
  611.       objectives[1] = "Return to Sanguine."
  612.       rewards = [ ("???") ]
  613.       icon_index = 11
  614.       custom_categories.push (:side)
  615.     when 163
  616.       name = "Assassination"
  617.       description = "Kill the target hiding in Diamo."
  618.       client = "Sanguine"
  619.       location = "Diamo"
  620.       objectives[0] = "Kill the target."
  621.       objectives[1] = "Return to Sanguine."
  622.       rewards = [ ("???") ]
  623.       icon_index = 11
  624.       custom_categories.push (:side)
  625.     when 164
  626.       name = "Assassination"
  627.       description = "Kill the target hiding in the Snow Caves."
  628.       client = "Sanguine"
  629.       location = "Snow Caves"
  630.       objectives[0] = "Kill the target."
  631.       objectives[1] = "Return to Sanguine."
  632.       rewards = [ ("???") ]
  633.       icon_index = 11
  634.       custom_categories.push (:side)
  635.     when 165
  636.       name = "Assassination"
  637.       description = "Kill the target hiding in Silvein."
  638.       client = "Sanguine"
  639.       location = "Silvein"
  640.       objectives[0] = "Kill the target."
  641.       objectives[1] = "Return to Sanguine."
  642.       rewards = [ ("???") ]
  643.       icon_index = 11
  644.       custom_categories.push (:side)
  645.     when 166
  646.       name = "Assassination"
  647.       description = "Kill the target hiding in the Silver Mines."
  648.       client = "Sanguine"
  649.       location = "Silvein"
  650.       objectives[0] = "Kill the target."
  651.       objectives[1] = "Return to Sanguine."
  652.       rewards = [ ("???") ]
  653.       icon_index = 11
  654.       custom_categories.push (:side)
  655.     when 167
  656.       name = "Assassination"
  657.       description = "Kill the target hiding in Goldare."
  658.       client = "Sanguine"
  659.       location = "Goldare"
  660.       objectives[0] = "Kill the target."
  661.       objectives[1] = "Return to Sanguine."
  662.       rewards = [ ("???") ]
  663.       icon_index = 11
  664.       custom_categories.push (:side)
  665.     when 168
  666.       name = "Assassination"
  667.       description = "Kill the target hiding in the Magma Caverns."
  668.       client = "Sanguine"
  669.       location = "Magma Caverns"
  670.       objectives[0] = "Kill the target."
  671.       objectives[1] = "Return to Sanguine."
  672.       rewards = [ ("???") ]
  673.       icon_index = 11
  674.       custom_categories.push (:side)
  675.     when 169
  676.       name = "Assassination"
  677.       description = "Kill the target hiding in Sapphane."
  678.       client = "Sanguine"
  679.       location = "Sapphane"
  680.       objectives[0] = "Kill the target."
  681.       objectives[1] = "Return to Sanguine."
  682.       rewards = [ ("???") ]
  683.       icon_index = 11
  684.       custom_categories.push (:side)
  685.      
  686.  #  LOCK QUESTS  
  687.     when 170
  688.       name = "Infiltration"
  689.       description = "Obtain the item locked away in Emerdala."
  690.       client = "Numbers"
  691.       location = "Emerdala"
  692.       objectives[0] = "Obtain the item."
  693.       objectives[1] = "Return to Numbers."
  694.       rewards = [ ("???") ]
  695.       icon_index = 94    
  696.       custom_categories.push (:side)
  697.     when 171
  698.       name = "Infiltration"
  699.       description = "Obtain the item locked away in the Mist Forest."
  700.       client = "Numbers"
  701.       location = "Mist Forest"
  702.       objectives[0] = "Obtain the item."
  703.       objectives[1] = "Return to Numbers."
  704.       rewards = [ ("???") ]
  705.       icon_index = 94
  706.       custom_categories.push (:side)
  707.     when 172
  708.       name = "Infiltration"
  709.       description = "Obtain the item locked away in Amethyne."
  710.       client = "Numbers"
  711.       location = "Amethyne"
  712.       objectives[0] = "Obtain the item."
  713.       objectives[1] = "Return to Numbers."
  714.       rewards = [ ("???") ]
  715.       icon_index = 94
  716.       custom_categories.push (:side)
  717.     when 173
  718.       name = "Infiltration"
  719.       description = "Obtain the item locked away in the Amethyne Mountains."
  720.       client = "Numbers"
  721.       location = "Amethyne Mountains"
  722.       objectives[0] = "Obtain the item."
  723.       objectives[1] = "Return to Numbers."
  724.       rewards = [ ("???") ]
  725.       icon_index = 94
  726.       custom_categories.push (:side)
  727.     when 174
  728.       name = "Infiltration"
  729.       description = "Obtain the item locked away in Rubana."
  730.       client = "Numbers"
  731.       location = "Rubana"
  732.       objectives[0] = "Obtain the item."
  733.       objectives[1] = "Return to Numbers."
  734.       rewards = [ ("???") ]
  735.       icon_index = 94
  736.       custom_categories.push (:side)
  737.     when 175
  738.       name = "Infiltration"
  739.       description = "Obtain the item locked away in the Floodgates."
  740.       client = "Numbers"
  741.       location = "Floodgates"
  742.       objectives[0] = "Obtain the item."
  743.       objectives[1] = "Return to Numbers."
  744.       rewards = [ ("???") ]
  745.       icon_index = 94
  746.       custom_categories.push (:side)
  747.     when 176
  748.       name = "Infiltration"
  749.       description = "Obtain the item locked away in the Flow Tower."
  750.       client = "Numbers"
  751.       location = "Flow Tower"
  752.       objectives[0] = "Obtain the item."
  753.       objectives[1] = "Return to Numbers."
  754.       rewards = [ ("???") ]
  755.       icon_index = 94
  756.       custom_categories.push (:side)
  757.     when 177
  758.       name = "Infiltration"
  759.       description = "Obtain the item locked away in Topale."
  760.       client = "Numbers"
  761.       location = "Topale"
  762.       objectives[0] = "Obtain the item."
  763.       objectives[1] = "Return to Numbers."
  764.       rewards = [ ("???") ]
  765.       icon_index = 94
  766.       custom_categories.push (:side)
  767.     when 178
  768.       name = "Infiltration"
  769.       description = "Obtain the item locked away in Diamo."
  770.       client = "Numbers"
  771.       location = "Diamo"
  772.       objectives[0] = "Obtain the item."
  773.       objectives[1] = "Return to Numbers."
  774.       rewards = [ ("???") ]
  775.       icon_index = 94
  776.       custom_categories.push (:side)
  777.     when 179
  778.       name = "Infiltration"
  779.       description = "Obtain the item locked away in the Snow Caves."
  780.       client = "Numbers"
  781.       location = "Snow Caves"
  782.       objectives[0] = "Obtain the item."
  783.       objectives[1] = "Return to Numbers."
  784.       rewards = [ ("???") ]
  785.       icon_index = 94
  786.       custom_categories.push (:side)
  787.     when 180
  788.       name = "Infiltration"
  789.       description = "Obtain the item locked away in Silvein."
  790.       client = "Numbers"
  791.       location = "Silvein"
  792.       objectives[0] = "Obtain the item."
  793.       objectives[1] = "Return to Numbers."
  794.       rewards = [ ("???") ]
  795.       icon_index = 94
  796.       custom_categories.push (:side)
  797.     when 181
  798.       name = "Infiltration"
  799.       description = "Obtain the item locked away in the Silver Mines."
  800.       client = "Numbers"
  801.       location = "Silver Mines"
  802.       objectives[0] = "Obtain the item."
  803.       objectives[1] = "Return to Numbers."
  804.       rewards = [ ("???") ]
  805.       icon_index = 94
  806.       custom_categories.push (:side)
  807.     when 182
  808.       name = "Infiltration"
  809.       description = "Obtain the item locked away in Goldare."
  810.       client = "Numbers"
  811.       location = "Goldare"
  812.       objectives[0] = "Obtain the item."
  813.       objectives[1] = "Return to Numbers."
  814.       rewards = [ ("???") ]
  815.       icon_index = 94
  816.       custom_categories.push (:side)
  817.     when 183
  818.       name = "Infiltration"
  819.       description = "Obtain the item locked away in the Magma Caverns."
  820.       client = "Numbers"
  821.       location = "Magma Caverns"
  822.       objectives[0] = "Obtain the item."
  823.       objectives[1] = "Return to Numbers."
  824.       rewards = [ ("???") ]
  825.       icon_index = 94
  826.       custom_categories.push (:side)
  827.     when 184
  828.       name = "Infiltration"
  829.       description = "Obtain the item locked away in Sapphane."
  830.       client = "Numbers"
  831.       location = "Sapphane"
  832.       objectives[0] = "Obtain the item."
  833.       objectives[1] = "Return to Numbers."
  834.       rewards = [ ("???") ]
  835.       icon_index = 94
  836.       custom_categories.push (:side)
  837.      
  838.  #  INGERDIENT QUESTS  
  839.     when 185
  840.       name = "Plant Hunting"
  841.       description = "Find the ingredient somewhere in Emerdala."
  842.       client = "The Alchemist"
  843.       location = "Emerdala"
  844.       objectives[0] = "Find the ingredient."
  845.       objectives[1] = "Return to the Alchemist."
  846.       rewards = [ ("???") ]
  847.       icon_index = 74
  848.       custom_categories.push (:side)
  849.     when 186
  850.       name = "Plant Hunting"
  851.       description = "Find the ingredient somewhere in the Mist Forest."
  852.       client = "The Alchemist"
  853.       location = "Mist Forest"
  854.       objectives[0] = "Find the ingredient."
  855.       objectives[1] = "Return to the Alchemist."
  856.       rewards = [ ("???") ]
  857.       icon_index = 74
  858.       custom_categories.push (:side)
  859.     when 187
  860.       name = "Plant Hunting"
  861.       description = "Find the ingredient somewhere in Amethyne."
  862.       client = "The Alchemist"
  863.       location = "Amethyne"
  864.       objectives[0] = "Find the ingredient."
  865.       objectives[1] = "Return to the Alchemist."
  866.       rewards = [ ("???") ]
  867.       icon_index = 74
  868.       custom_categories.push (:side)
  869.     when 188
  870.       name = "Plant Hunting"
  871.       description = "Find the ingredient somewhere in the Amethyne Mountains."
  872.       client = "The Alchemist"
  873.       location = "Amethyne Mountains"
  874.       objectives[0] = "Find the ingredient."
  875.       objectives[1] = "Return to the Alchemist."
  876.       rewards = [ ("???") ]
  877.       icon_index = 74
  878.       custom_categories.push (:side)
  879.     when 189
  880.       name = "Plant Hunting"
  881.       description = "Find the ingredient somewhere in Rubana."
  882.       client = "The Alchemist"
  883.       location = "Rubana"
  884.       objectives[0] = "Find the ingredient."
  885.       objectives[1] = "Return to the Alchemist."
  886.       rewards = [ ("???") ]
  887.       icon_index = 74
  888.       custom_categories.push (:side)
  889.     when 190
  890.       name = "Plant Hunting"
  891.       description = "Find the ingredient somewhere in the Floodgates."
  892.       client = "The Alchemist"
  893.       location = "Floodgates"
  894.       objectives[0] = "Find the ingredient."
  895.       objectives[1] = "Return to the Alchemist."
  896.       rewards = [ ("???") ]
  897.       icon_index = 74
  898.       custom_categories.push (:side)
  899.     when 191
  900.       name = "Plant Hunting"
  901.       description = "Find the ingredient somewhere in the Flow Tower."
  902.       client = "The Alchemist"
  903.       location = "Flow Tower"
  904.       objectives[0] = "Find the ingredient."
  905.       objectives[1] = "Return to the Alchemist."
  906.       rewards = [ ("???") ]
  907.       icon_index = 74
  908.       custom_categories.push (:side)
  909.     when 192
  910.       name = "Plant Hunting"
  911.       description = "Find the ingredient somewhere in Topale."
  912.       client = "The Alchemist"
  913.       location = "Topale"
  914.       objectives[0] = "Find the ingredient."
  915.       objectives[1] = "Return to the Alchemist."
  916.       rewards = [ ("???") ]
  917.       icon_index = 74
  918.       custom_categories.push (:side)
  919.     when 193
  920.       name = "Plant Hunting"
  921.       description = "Find the ingredient somewhere in Diamo."
  922.       client = "The Alchemist"
  923.       location = "Diamo"
  924.       objectives[0] = "Find the ingredient."
  925.       objectives[1] = "Return to the Alchemist."
  926.       rewards = [ ("???") ]
  927.       icon_index = 74
  928.       custom_categories.push (:side)
  929.     when 194
  930.       name = "Plant Hunting"
  931.       description = "Find the ingredient somewhere in the Snow Caves."
  932.       client = "The Alchemist"
  933.       location = "Snow Caves"
  934.       objectives[0] = "Find the ingredient."
  935.       objectives[1] = "Return to the Alchemist."
  936.       rewards = [ ("???") ]
  937.       icon_index = 74
  938.       custom_categories.push (:side)
  939.     when 195
  940.       name = "Plant Hunting"
  941.       description = "Find the ingredient somewhere in Silvein."
  942.       client = "The Alchemist"
  943.       location = "Silvein"
  944.       objectives[0] = "Find the ingredient."
  945.       objectives[1] = "Return to the Alchemist."
  946.       rewards = [ ("???") ]
  947.       icon_index = 74
  948.       custom_categories.push (:side)
  949.     when 196
  950.       name = "Plant Hunting"
  951.       description = "Find the ingredient somewhere in the Silver Mines."
  952.       client = "The Alchemist"
  953.       location = "Silver Mines"
  954.       objectives[0] = "Find the ingredient."
  955.       objectives[1] = "Return to the Alchemist."
  956.       rewards = [ ("???") ]
  957.       icon_index = 74
  958.       custom_categories.push (:side)
  959.     when 197
  960.       name = "Plant Hunting"
  961.       description = "Find the ingredient somewhere in Goldare."
  962.       client = "The Alchemist"
  963.       location = "Goldare"
  964.       objectives[0] = "Find the ingredient."
  965.       objectives[1] = "Return to the Alchemist."
  966.       rewards = [ ("???") ]
  967.       icon_index = 74
  968.       custom_categories.push (:side)
  969.     when 198
  970.       name = "Plant Hunting"
  971.       description = "Find the ingredient somewhere in the Magma Caverns."
  972.       client = "The Alchemist"
  973.       location = "Magma Caverns"
  974.       objectives[0] = "Find the ingredient."
  975.       objectives[1] = "Return to the Alchemist."
  976.       rewards = [ ("???") ]
  977.       icon_index = 74
  978.       custom_categories.push (:side)
  979.     when 199
  980.       name = "Plant Hunting"
  981.       description = "Find the ingredient somewhere in Sapphane."
  982.       client = "The Alchemist"
  983.       location = "Sapphane"
  984.       objectives[0] = "Find the ingredient."
  985.       objectives[1] = "Return to the Alchemist."
  986.       rewards = [ ("???") ]
  987.       icon_index = 74
  988.       custom_categories.push (:side)
  989.  #   when 100
  990.  #     name = "Example"
  991.  #     banner = ""
  992.  #     description = "Example"
  993.  #     client = "Example"
  994.  #     location = "Example"
  995.  #     objectives[0] = ""
  996.  #     objectives[1] = ""
  997.  #     objectives[2] = ""
  998.  #     objectives[3] = ""
  999.  #     prime = [0,1,2,3]
  1000.  #     rewards = [ [3, 250] ]
  1001.  #     level = 1
  1002.  #     common_event = 0
  1003.  #     icon_index = 11
  1004.  #     custom_categories = []
  1005.     #||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  1006.     #    END EDITABLE REGION B
  1007.     #////////////////////////////////////////////////////////////////////////
  1008.     end
  1009.     unless prime
  1010.       prime = []
  1011.       objectives.each_index { |i| prime.push (i) }
  1012.     end
  1013.     return banner, name, description, client, location, objectives, prime,
  1014.       rewards, level, common_event, icon_index, custom_categories
  1015.   end
  1016. end
RAW Paste Data
Top