Zeriab 9 Report post Posted January 10, 2009 Quest Book Version: 1.2 Introduction This is a fairly heavy quest book which provides an overview over a number of quests represented by pictures. Each of the quests can be selected and a window with quest specific details will be shown. (The pictures are 80x80) Features Quests can have any number of parts. (Only the text for the current part is shown) The quest book can be applied to a game in progress since whether quests are solved or not depends on variables, switches or a combination of them. Solved quests kept and can be shown. The opacity of background of the quest book can be changed and a picture can be shown behind it accordingly to a variable. Screenshots Demo QuestBook version 1.2 (rar) Script I really suggest the demo rather than the script since it also contains example pictures. I have included them for people who just want to take a look at the script. Quest Book Script Here is the example usage of the script used in the demo: (I would suggest placing it in a different section) Installation Insert the script just above main. (Like so many other scripts) Insert just below the script a new section. This section will be were you configure the script. Create quests and such. Instructions I will try an experiment here. Instead of written a big wall of text explaining everything I want to know where my explanation should be in-depth and where it should be more shallow. I.e. where should I focus. Please look at the example usage of the script. What is for you the most confusing parts? Will you be able to modify the quests? Will you be able to add another quest? Will you be able to add/remove a quest part? Is it clear how the Quest_Criteria works? Do you understand the top part where you configure the background? How do you add/remove another background picture? How do you change the opacity of the quest book? The path? Can you figure out how to modify, add and remove the actual picture files? (You should probably download the demo for this) This is a case of help me become better at helping you. I am sorry for the inconvenience. Compatibility If you are using exotic save systems At the bottom of the script (Binding to Scene_Load section in the demo) you find this code #============================================================================== # ** Scene_Load #------------------------------------------------------------------------------ # Aliases and uses the on_decision method to reset $game_quests on the proper # time. #============================================================================== class Scene_Load < Scene_File # Check if the alias already exists (To avoid F12 errors) unless self.method_defined?(:zeriab_questbook_scene_load_on_decision) alias zeriab_questbook_scene_load_on_decision :on_decision end def on_decision(*args) # Call the original method zeriab_questbook_scene_load_on_decision(*args) # Check if the scene has changed unless $scene == self # Reset quest data $game_quests.reset end end end The idea with that snippet is to call a method when you load a save. It is used to preserve consistency in the quest book $game_quests.reset Note only do this if there is a problem with the snippet. (You can try putting a " p 'test' " in the reset method in Game_Quests if you want to test that it is called when you load a game) Credits and Thanks Credits goes to Zeriab Special thanks goes to Indinera who requested the script for the game Laxius Force I would like to thank everyone using their time to try and use my system. I would like to thank everyone reading this topic. Thanks. Terms and Conditions Copyright © 2007 Zeriab This script is free to use under the condition of Zeriab being credited. (Commercial and non-commercial projects alike) This script can be freely changed and distributed under the condition of the original author remains in the script. Verbatim copies of this topic can be freely distributed This script is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Author's Notes This script were designed for a game so the visualization is very fixed. I would be delighted if you report any bug, errors or issues you find. In fact I would be delighted if you took the time and replied even if you have nothing to report. Suggestions are more than welcome And finally: ENJOY! - Zeriab 1 Kiriashi reacted to this Share this post Link to post Share on other sites
Polraudio 122 Report post Posted January 10, 2009 No errors to report sir! Very good script i might use. it thank you very much Zeriab. End of report sir! Share this post Link to post Share on other sites
Agckuu_Coceg 5 Report post Posted September 28, 2009 Zeriab, this is excellent script... But how to make so that pictures were the individual size, instead of standard 80*80? Please explain. Thankful in advance. Share this post Link to post Share on other sites
Zeriab 9 Report post Posted October 10, 2009 Sorry for the very slow response. That's good to hear Polraudio :3 @Agckuu_Coceg: There is no easy way of doing that. I have not made the sizes dynamic so one will have to deal with a lot of math. Sorry :( Share this post Link to post Share on other sites
Derek 3 Report post Posted October 10, 2009 This is still perhaps the nicest quest script that I have seen to date. Share this post Link to post Share on other sites
zane203 8 Report post Posted October 10, 2009 all the links are broken x.X Share this post Link to post Share on other sites
Nisage 31 Report post Posted October 10, 2009 I hate it when the links die :( Here's the demo..... http://www.sendspace.com/file/kh6cqv Share this post Link to post Share on other sites
Derek 3 Report post Posted October 10, 2009 Ouch, thanks for the rescue Nisage. Share this post Link to post Share on other sites
Agckuu_Coceg 5 Report post Posted October 12, 2009 "There is no easy way of doing that. I have not made the sizes dynamic so one will have to deal with a lot of math. Sorry :(" I understand that it is difficult, but you for certain will help me. You could not specify the basic lines of editing in script Window_Quest that I could interrupt them for the individual size? Share this post Link to post Share on other sites
Zeriab 9 Report post Posted October 12, 2009 Links have been fixed. Thanks for alerting me to the issue ^_^ @Derek: I am glad you like it :3 @Nisage: Thanks for providing a link @Agckuu_Coceg: Here are what you'll have to change (I hope I haven't missed anything) *Window_Base line 20-21 Window_Questbook: @column_max has to correspond to how many quests will fit in one column. (Line 26) draw_icon method will have to be modified (line 68-74) update_cursor_rect will have to be modified (line 123-125) top_row will have to be modified (line 134) top_row= will have to be modified (line 141-144) page_row_max will have to be modified (line 149-154) Good luck *hugs* - Zeriab 1 Kiriashi reacted to this Share this post Link to post Share on other sites
Kiriashi 117 Report post Posted October 12, 2009 Zeriab, you didn't hug in this post: Sorry for the very slow response. That's good to hear Polraudio :3 @Agckuu_Coceg: There is no easy way of doing that. I have not made the sizes dynamic so one will have to deal with a lot of math. Sorry :( :o Its been a while man! Share this post Link to post Share on other sites
Zeriab 9 Report post Posted October 13, 2009 You are right D: It must have been a mistake. It has indeed been a while *hugs* Share this post Link to post Share on other sites
Kiriashi 117 Report post Posted October 13, 2009 *hugs back* I have like 5 billion of your scripts in my game. :P Share this post Link to post Share on other sites
korija2029 0 Report post Posted April 9, 2011 Sry but i have bug i make four quest and there will be only one four times PS my quest setting is there #============================================================================== # ** Quest settings #------------------------------------------------------------------------------ # This place is for you to set some settings to the quest menu #============================================================================== # The opacity of the windows. 0 = invisible and 255 = totally visible WINDOW_OPACITY = 225 # The directory of the backgrounds BACKGROUND_DIR = "Quest/Backgrounds/" # Number of the variable used BACK_VAR = 15 # A hash which contains the names of the pictures used for the background # 2 => "Somename.png" means that the picture named Somename.png will be # displayed as background picture if the variable has value 2 # # 3 are displayed here but you can declare more # # The first one ('standard' => "Back1.png") defines the standard background # picture. It is used if another picture can't be found. For example if the # variable for some reason is -2315. BACK_PICS = {'standard' => "Back1.png", 0 => "Back1.png", 2 => "Somename.png", 7 => "2.png"} #============================================================================== # ** Quests #------------------------------------------------------------------------------ # This place is for you to enter the quests. #============================================================================== #################### ## THE MAIN QUEST ## #################### # Part 1 gq = Game_Quest.new dq = Data_Quest.new dq.icon = "Whoyouare.png" dq.owner = "Grayhound" dq.location = "?????" dq.goal = "Zjisti kdo jsi" dq.info = "Démonický hlas ti řekl ať najdeš vesnici jménem aryo\n"+ " potomti prý řekne co dál.\n" qc = Quest_Criteria.new(["Switch", 12, true]) # No criteria, active from the start gq.add_quest(dq,qc) # Part 2 dq = Data_Quest.new dq.icon = "Completed.png" dq.owner = "Grayhound" dq.location = "?????" dq.goal = "Najdi Younu" dq.info = "Gratuluji našel jsi yunu!" qc = Quest_Criteria.new gq.set_completed_quest(dq,qc) # Adds the final quest to $game_quests $game_quests.add(gq) #-------------------------------# # Childrens # #-------------------------------# # Part 1 dq = Data_Quest.new dq.icon = "Childrens.png" dq.owner = "Aryo" dq.location = "Ostrov Kuriku" dq.goal = "Najdi ztracené děti" dq.info = "Zjistil si\n" + " že ve vesnici aryo na ostrově Kuriku\n" + " se záhadně ztrácejí děti\n" + "Tak zjisti kde jsou" qc = Quest_Criteria.new(["Switch", 26, true]) # Switch 2 must be true gq.add_quest(dq,qc) # The completed quest part dq = Data_Quest.new dq.icon = "Completed.png" dq.owner = "Aryo" dq.location = "Ostrov Kuriku" dq.goal = "Najdi ztracené děti" dq.info = "Zjistl si že imperium unášelo děti z tohoto ostrova\n"+ "Ty si je zachránil a dovedl zpět k rodinám" qc = Quest_Criteria.new(["Switch", 26, true]), (["Switch", 27, true]) gq.set_completed_quest(dq,qc) # Adds the final quest to $game_quests $game_quests.add(gq) #-------------------------------# # Castle QUEST # #-------------------------------# # Part 1 dq = Data_Quest.new dq.icon = "Castle.png" dq.owner = "Grayhound" dq.location = "Ostrov Tyros" dq.goal = "Získej Hrad" dq.info = "Zjistil si\n" + "že na ostrově Tyros\n" + "se nachází neobsazená pevnost.\n" + "Tak si ji musíš získat pro sebe." qc = Quest_Criteria.new(["Switch", 33, true]) gq.add_quest(dq,qc) # The completed quest part dq = Data_Quest.new dq.icon = "Completed.png" dq.owner = "Grayhound" dq.location = "Ostrov Tyros" dq.goal = "Získej Hrad" dq.info = "Získal si hrad který se nachází na ostrově Tyros\n"+ "Sám pro sebe\n"+ "Nyní může začít válka" qc = Quest_Criteria.new(["Switch", 33, true]), (["Switch", 34, true]) gq.set_completed_quest(dq,qc) # Adds the final quest to $game_quests $game_quests.add(gq) #-------------------------------# # Massacre QUEST # #-------------------------------# # Part 1 dq = Data_Quest.new dq.icon = "Massacre.png" dq.owner = "Grayhound" dq.location = "?????" dq.goal = "Zjisti proč byla vyhlazena škola kouzel" dq.info = "Zjisti proč nechal\n" + "mocný císař\n" + "Vyvraždit školu kouzel kam si chodil." qc = Quest_Criteria.new gq.add_quest(dq,qc) # The completed quest part dq = Data_Quest.new dq.icon = "Completed.png" dq.owner = "Grayhound" dq.location = "?????" dq.goal = "Zjistil si proč nechal císař vyvraždit školu koužel" dq.info = "Zjistil si že císař\n"+ "nechal vyvraždit školu kouzel\n"+ "Protože tam rebelové rekrutovali mágy" qc = Quest_Criteria.new(["Variable", 4, "==", 5]) gq.set_completed_quest(dq,qc) # Adds the final quest to $game_quests $game_quests.add(gq) Share this post Link to post Share on other sites
kellessdee 48 Report post Posted April 9, 2011 (edited) You probably shouldn't necropost...but I'll give you a solution # Part 1 gq = Game_Quest.new dq = Data_Quest.new dq.icon = "Whoyouare.png" dq.owner = "Grayhound" dq.location = "?????" dq.goal = "Zjisti kdo jsi" dq.info = "Démonický hlas ti řekl ať najdeš vesnici jménem aryo\n"+ " potomti prý řekne co dál.\n" qc = Quest_Criteria.new(["Switch", 12, true]) # No criteria, active from the start gq.add_quest(dq,qc) # Part 2 dq = Data_Quest.new dq.icon = "Completed.png" dq.owner = "Grayhound" dq.location = "?????" dq.goal = "Najdi Younu" dq.info = "Gratuluji našel jsi yunu!" qc = Quest_Criteria.new gq.set_completed_quest(dq,qc) # Adds the final quest to $game_quests $game_quests.add(gq) Here, you did everything perfect, created quest added the data to the quest then added the quest to the game's quests. $game_quests.add(gq) adds the quest. Now, in the 3 other quests you created, you ONLY created the data quest, but re-added the same "gc" variable, so the game ran, and out put 4 of the same quest. what you need to do, for each quest is follow this format and add before each data_quest is created: gq = Game_Quest.new dq = Data_Quest.new dq.icon = "Whoyouare.png" dq.owner = "Grayhound" dq.location = "?????" dq.goal = "Zjisti kdo jsi" dq.info = "Démonický hlas ti řekl ať najdeš vesnici jménem aryo\n"+ " potomti prý řekne co dál.\n" qc = Quest_Criteria.new(["Switch", 12, true]) # No criteria, active from the start gq.add_quest(dq,qc) so basically add that before EVERY quest you make(except replace all the values with the quest values you wish to make), it need both parts part 1 and part 2. If you just fill out part 2 and add it the game quests, it will not work. hope that makes sense Edited April 9, 2011 by kellessdee Share this post Link to post Share on other sites