Scripts & Tutorials This forum is for scripts and code, as well as all kinds of tutorials, software, tools and so forth. Remember to give credit!
The thread revival limit does not apply here.


Reply
 
Thread Tools
  #1    
Old May 25th, 2017 (10:26 PM). Edited June 13th, 2017 by mej71.
mej71's Avatar
mej71 mej71 is offline
  • Moderator
 
Join Date: Mar 2014
Location: Omnipresence
Gender: Male
Posts: 1,226

A fairly comprehensive, yet easy to use system + UI for managing quests in your fangame

Features
  • Support for up to 10 stages per quest
  • Complex rewards
  • Very detailed compiler errors, tells you exactly what you've messed up
  • Doesn't save quest data for player (similar to how other objects are handled in Essentials, non-specific data is stored in a separate data file so that quest info is updated for old saves)
  • Plug and play
  • Won't break old save files by adding this script
  • Easy to edit and create new quests


How to Use
  1. Download .rar file
  2. Add quests.txt to your PBS folder
  3. Add the 'Quest UI' folder to Graphics/Pictures (be sure to include the folder itself, not just the contents)
  4. Add the text from questScript.txt into a new section above the Main but below the Compiler section
  5. And that's all there is to the installation

There's a few methods you will need to know to use the quest system (you will activate/complete/fail quests within your events, only you know in which context to do so)
Code:
activateQuest(id)
completeQuest(id)
failQuest(id)
advanceQuestToStage(questID, stageNum)
In all of these, 'id' and 'questID' refer to the ID of the desired quest, which is defined in quests.txt, the file you added to your PBS folder. The name of the quest can also be used in as the 'id' for these methods, since quest names are unique. The 'stageNum' refers to the desired stage number of that quest. Be sure the id you input exists, as there is currently no check against it

To open the quest menu, use the script
Code:
pbViewQuests

Editing the Quest PBS file
There's only 8 types of lines in the PBS that you need to know
  • Name - This is the name of the quest that will be displayed. Names must be unique (two quests cannot share a name)
  • Stage1 - This is the description of the current task of the quests. Each quest can have up to 10 stages (so Stage2, Stage9, etc are also valid). Stages must be listed in order, no skipping numbers.
  • Reward - This is the reward given to the player upon completion. When completion is triggered, it will read the string assigned and evaluate it as code. So if you make your reward "Kernel.pbMessage('Hello')", upon completion it will display a message saying "Hello". This reward is fairly simple, but keep in mind any type of code can be run here, so you can give items, set variables, or pretty much anything else you can code. Note that this code is not tested, so test all your rewards to ensure you didn't make errors. (Pro tip: semi-colons can be used to separate multiple instructions in a single line of code)
  • RewardDescription - A description of the reward, so they player may determine whether or not to pursue
  • QuestDescription - A description of the quest
  • StageLocation1 - Same as with Stage1, there are up to 10 locations supported. This tells the player where to go for the next task. Can either be the desired map name or map id. These are checked upon compile time to ensure the map exists. "nil" can be used if you don't want to specify a map
  • CompleteMessage - The "Result" description displayed in the UI for a completed quest.
  • FailedMessage - The "Result" description displayed in the UI for a failed quest.

What the default UI looks like



FAQ
  • Can you use '\b', images, or other text formatting?: No, these are currently not supported
  • More questions will appear as they are asked
Reply With Quote

Relevant Advertising!

  #2    
Old May 26th, 2017 (12:33 AM).
Marin's Avatar
Marin Marin is offline
Not Bored
  • Moderator
 
Join Date: Nov 2016
Location: The Netherlands
Gender: Male
Nature: Bashful
Posts: 606
Looks very interesting! I especially like the "next stage" feature.
__________________
Reply With Quote
  #3    
Old June 13th, 2017 (5:10 AM).
Pikapoo9000's Avatar
Pikapoo9000 Pikapoo9000 is offline
dank memes make dank dreams.
     
    Join Date: May 2017
    Location: idfk.
    Gender: Male
    Nature: Jolly
    Posts: 1
    How do you open the Quest menu where you can see all the quests?
    __________________
    allwaiys travellieng...
    Reply With Quote
      #4    
    Old June 13th, 2017 (11:41 PM).
    mej71's Avatar
    mej71 mej71 is offline
    • Moderator
     
    Join Date: Mar 2014
    Location: Omnipresence
    Gender: Male
    Posts: 1,226
    Quote:
    Originally Posted by Pikapoo9000 View Post
    How do you open the Quest menu where you can see all the quests?
    I meant to add that and completely forgot
    Code:
    pbViewQuests
    Just this quick line. It checks if you have any quests for you before opening
    Reply With Quote
      #5    
    Old June 14th, 2017 (7:19 AM).
    JustKenneth's Avatar
    JustKenneth JustKenneth is offline
    Developer Pokemon The Kingdom of Meralas
       
      Join Date: Oct 2009
      Location: Belgium
      Gender: Male
      Nature: Calm
      Posts: 8
      this looks a lot like Mobius' Quest Journal (maker).
      I tried to implement something like this in Essentials some time ago.
      I added this to the start menu:
      http://provenk.deviantart.com/art/Pausemenu-620214364
      http://provenk.deviantart.com/art/Quest-log-620214370

      it was quite buggy and not as complete as yours though.

      nice work!
      __________________
      "And as the sails arrived, the forest vanished and the city fell. Meralas is king now."
      - Xhicco - Pokemon: The Kingdom of Meralas
      Reply With Quote
        #6    
      Old June 14th, 2017 (1:06 PM).
      mej71's Avatar
      mej71 mej71 is offline
      • Moderator
       
      Join Date: Mar 2014
      Location: Omnipresence
      Gender: Male
      Posts: 1,226
      Quote:
      Originally Posted by JustKenneth View Post
      this looks a lot like Mobius' Quest Journal (maker).
      I tried to implement something like this in Essentials some time ago.
      I added this to the start menu:
      http://provenk.deviantart.com/art/Pausemenu-620214364
      http://provenk.deviantart.com/art/Quest-log-620214370

      it was quite buggy and not as complete as yours though.

      nice work!
      I originally did a small edit of that script for Essentials, it's in this section somewhere. This script was from scratch, but I kept a similar format of the text files, and tried to make it more complete and easy to use.
      Reply With Quote
        #7    
      Old June 24th, 2017 (3:01 PM).
      hanamir hanamir is offline
         
        Join Date: Feb 2017
        Posts: 14
        Thanks for this! I really wanted to use this but I keep getting this error after installing it. I really wanted to check it out and I followed all the directions but this error keeps popping up. I hope you are still willing to help on this thread.

        Script 'mej71 Quest System' line 402: RuntimeError
        occured.

        Invalid map id for quest , at stage 0

        Thats all it gave me, I can screenshot if necessary, however. Hope you can help. Thanks.
        Attached Thumbnails
        Screen Shot 2017-06-24 at 7.02.08 PM.png‎  
        Reply With Quote
          #8    
        Old July 6th, 2017 (2:01 PM).
        The_Don The_Don is offline
           
          Join Date: Jul 2017
          Posts: 13
          Click image for larger version

Name:	questprob.png
Views:	317
Size:	322.6 KB
ID:	82398

          How come it tells me that?
          Reply With Quote
            #9    
          Old July 7th, 2017 (12:50 AM).
          Marin's Avatar
          Marin Marin is offline
          Not Bored
          • Moderator
           
          Join Date: Nov 2016
          Location: The Netherlands
          Gender: Male
          Nature: Bashful
          Posts: 606
          Quote:
          Originally Posted by The_Don View Post
          Attachment 82398

          How come it tells me that?
          Do you have any quests?
          __________________
          Reply With Quote
            #10    
          Old July 7th, 2017 (3:29 AM).
          The_Don The_Don is offline
             
            Join Date: Jul 2017
            Posts: 13
            Quote:
            Originally Posted by M3rein View Post
            Do you have any quests?
            Weren't there some quest in yet? I tought i read that in the description?
            Reply With Quote
              #11    
            Old July 7th, 2017 (11:55 AM).
            mej71's Avatar
            mej71 mej71 is offline
            • Moderator
             
            Join Date: Mar 2014
            Location: Omnipresence
            Gender: Male
            Posts: 1,226
            Quote:
            Originally Posted by The_Don View Post
            Weren't there some quest in yet? I tought i read that in the description?
            The journal only shows discovered quests. Even if they're defined, you need to activate at least one to open the journal
            Reply With Quote
              #12    
            Old July 8th, 2017 (2:37 AM).
            dgeneratio dgeneratio is offline
            Dgeneratio
               
              Join Date: Sep 2012
              Age: 29
              Gender: Male
              Nature: Relaxed
              Posts: 4
              Hi Mej, where do these lines of code go? Sorry i'm new to Scripting so don't want to do an error.

              There's a few methods you will need to know to use the quest system (you will activate/complete/fail quests within your events, only you know in which context to do so)
              Code:
              activateQuest(id)
              completeQuest(id)
              failQuest(id)
              advanceQuestToStage(questID, stageNum)

              In all of these, 'id' and 'questID' refer to the ID of the desired quest, which is defined in quests.txt, the file you added to your PBS folder. The name of the quest can also be used in as the 'id' for these methods, since quest names are unique. The 'stageNum' refers to the desired stage number of that quest. Be sure the id you input exists, as there is currently no check against it

              To open the quest menu, use the script
              Code:
              pbViewQuests

              Cheers
              __________________
              Reply With Quote
                #13    
              Old November 8th, 2017 (12:41 AM).
              HarmonyConcept HarmonyConcept is offline
                 
                Join Date: Sep 2015
                Gender: Female
                Posts: 196
                Thank you for this! It works just fine. Some small remarks:

                1. I believe there is a small mistake in the script at line 523 that will prevent you from running the game (just remove a parenthesis):

                def getMaxStagesForQuest(questID))

                2. I had a "Invalid map id for quest" error message on first launch and fixed it by clearing the quests.txt file;

                3. There are two different "quest_bg" files in the graphics package, you may want to replace the first one (in Quest UI folder) by the second one (which is in Quest UI\Quest UI)
                Reply With Quote
                  #14    
                Old November 8th, 2017 (6:00 PM). Edited November 8th, 2017 by SolarLegacy.
                SolarLegacy SolarLegacy is offline
                   
                  Join Date: Sep 2015
                  Gender: Male
                  Posts: 9
                  ---------------------------
                  Pokemon Essentials
                  ---------------------------
                  Exception: RuntimeError

                  Message: Script error within event 3, map 33 (M's House):

                  Exception: TypeError

                  Message: Section041:559:in `[]'no implicit conversion from nil to integer

                  ***Full script:

                  pbViewQuests


                  Interpreter:243:in `pbExecuteScript'

                  Intl_Messages:559:in `get'

                  Intl_Messages:670:in `get'

                  Intl_Messages:707:in `pbGetMessage'

                  Quests:792:in `pbDrawQuestInfo'

                  Quests:751:in `each'

                  Quests:751:in `pbDrawQuestInfo'

                  Quests:735:in `pbDrawQuestsList'

                  Quests:681:in `pbDrawSections'

                  Quests:625:in `pbStartScene'



                  Interpreter:276:in `pbExecuteScript'

                  Interpreter:1606:in `command_355'

                  Interpreter:494:in `execute_command'

                  Interpreter:193:in `update'

                  Interpreter:106:in `loop'

                  Interpreter:198:in `update'

                  Scene_Map:103:in `follow_update'

                  Scene_Map:101:in `loop'

                  Scene_Map:114:in `follow_update'

                  PokemonFollowing:1551:in `update'



                  This exception was logged in

                  C:\Users\Michael\Saved Games/Pokemon Essentials/errorlog.txt.

                  Press Ctrl+C to copy this message to the clipboard.
                  ---------------------------
                  OK
                  ---------------------------

                  I am getting this error when ever I try and open the quest menu after accepting a quest.
                  Reply With Quote
                    #15    
                  Old December 1st, 2017 (2:43 AM).
                  Diego Mertens Diego Mertens is offline
                     
                    Join Date: Aug 2017
                    Posts: 7
                    And, the quest is just go to a map and nothing else? How can I put a quest where we have to go to a map, and pick an Hidden Object in a certain time and if you can't pick the object you just fail the mission?
                    Reply With Quote
                      #16    
                    Old 1 Week Ago (1:37 PM).
                    Feark's Avatar
                    Feark Feark is offline
                       
                      Join Date: Nov 2017
                      Posts: 2
                      Can I add something catch a pokemon in the quests?
                      Reply With Quote
                        #17    
                      Old 1 Week Ago (10:31 PM).
                      mej71's Avatar
                      mej71 mej71 is offline
                      • Moderator
                       
                      Join Date: Mar 2014
                      Location: Omnipresence
                      Gender: Male
                      Posts: 1,226
                      Quote:
                      Originally Posted by Diego Mertens View Post
                      And, the quest is just go to a map and nothing else? How can I put a quest where we have to go to a map, and pick an Hidden Object in a certain time and if you can't pick the object you just fail the mission?
                      No quest objectives get completed automatically, you add the completion of quest stages programmatically in your events or in the code. So in the event where you have the hidden object, just use a conditional branch.
                      Quote:
                      Originally Posted by Feark View Post
                      Can I add something catch a pokemon in the quests?
                      You'd need to add a check in the code that triggers after battle. I'm pretty sure there are a few examples already in Essentials
                      Reply With Quote
                        #18    
                      Old 1 Week Ago (4:49 AM).
                      Kaito123 Kaito123 is offline
                         
                        Join Date: Jul 2012
                        Gender: Male
                        Posts: 62
                        Is it possible to have rewards for each stage?
                        Reply With Quote
                          #19    
                        Old 1 Week Ago (1:38 PM).
                        mej71's Avatar
                        mej71 mej71 is offline
                        • Moderator
                         
                        Join Date: Mar 2014
                        Location: Omnipresence
                        Gender: Male
                        Posts: 1,226
                        Quote:
                        Originally Posted by Kaito123 View Post
                        Is it possible to have rewards for each stage?
                        Not programmed into it, no. But you could have multiple related quests
                        Reply With Quote
                          #20    
                        Old 3 Days Ago (9:25 AM).
                        Feark's Avatar
                        Feark Feark is offline
                           
                          Join Date: Nov 2017
                          Posts: 2
                          About the stage location? The name of my map is Redwood Forest then I used the name name on stage location description and there was na error in the line 414. It didnt recognize the map. What I did wrong?
                          Reply With Quote
                            #21    
                          Old 2 Days Ago (9:41 PM). Edited 1 Day Ago by DHMPGA.
                          DHMPGA DHMPGA is offline
                             
                            Join Date: Jun 2016
                            Posts: 2
                            I have a problem. I can not select the quest section, that is, I can not see completed or failed missions. Help me please!

                            Edit: In the version of Essentials 17.2 the commands X, Y and Z were deactivated, that is, the keys A, S and D. (PSystem_Controls, lines 91, 92 and 93).
                            I solved it by replacing the following Quest script commands
                            line 823 approximately ---> (Input :: X) by (Input :: LEFT)
                            and Line 838 -----> (Input :: Y) by (Input :: RIGHT)

                            I hope it helps someone else this correction :)
                            Reply With Quote
                            Reply

                            Quick Reply

                            Join the conversation!

                            Create an account to post a reply in this thread, participate in other discussions, and more!

                            Create a PokéCommunity Account

                            Sponsored Links
                            Thread Tools

                            Posting Rules
                            You may not post new threads
                            You may not post replies
                            You may not post attachments
                            You may not edit your posts

                            BB code is On
                            Smilies are On
                            [IMG] code is On
                            HTML code is Off

                            Forum Jump


                            All times are GMT -8. The time now is 9:43 PM.