daily pastebin goal
63%
SHARE
TWEET

CONFIG

a guest Dec 31st, 2013 49 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
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top