Page 1 of 1

[ModPack] sys4_quests [sys4_quests][git]

PostPosted: Thu Mar 17, 2016 12:45
by sys4
Hi everybody !

This mod take the same concept than sys4_achievements but this time without the awards mod as dependencies, but with the mod quests instead.

This modpack provide :
  • An api for easily make quests (sys4_quests)
  • It also provide already written quests. (minetest_quests, ...)

Work for solo and multiplayer.
Work only with Minetest 0.4.14.
Work only if you have first join a world with this mod enabled.

An Example of how to make quests with this API is described in the file "sys4_quests/example.lua"

TARGET :
You have to follow proposed quests and finish them to unlock craft of items they unlock. Otherwise if you intent to craft a locked item, you will obtain a waste item.

INSTALLATION :
Download the source code and place it in a new folder named "sys4_quests" into the mod folder of minetest.

+ DEPENDS :


CONFIGURATION :
  • You can change the level of difficulty by editing the local variable "level" in sys4_quests/init.lua" file.
  • By default the level is 12 but for an easier gameplay you can set it down to 1. Or above 12 if you want a more difficult gameplay.
  • Because the numbers of quests may be consequent, you would to increase the number of displayed quests by editing the file "hud.lua" of the "quests" mod and set the local variable "show_max" to 15 or 20.

CHAT COMMANDS :
  • /lcraft [on|off] : Enable or not locked crafts. (default is on)
  • /bookmode [on|off] : Enable or not written books that shows you how to craft unlocked items when you reach a quest. (default is off)
  • /lqg [group index] : Display groups of quests or display quests of a group if group index is given as argument.
  • /iquest <quest_name> : Display infos of the quest.
  • /fquest <quest_name> : Force an active quest to be immediately finished.
  • /itemqq <item> : Display the quest to finish which unlock this item.
  • /getcraft <item> : Display craft recipes of this item.

DOWNLOADS :
  • Latest Unstable : .zip
  • Latest Stable : .zip
  • Version 0.2.3 with the following groups of quests : Dark Age, Wood Age, Farming Age, Stone Age, Metal Age, Middle Age.
  • Version 0.1 without groups.
  • Code on gitHub
Caution : Don't upgrade between major versions else you have to restart a new world.
Major versions are those with second digit changed ex : (0.1.* and 0.2.* are different major versions but 0.2.1 and 0.2.3 are minor versions you can upgrade)

TODO (May to change) :
  • Version 0.3 : Add quests for farming_redo and i will try farming_plus, plantlife modpack, moretrees.
  • Version 0.4 : Add a new group called "Modern Age" with support of mesecons, pipeworks, technic and digiline.
screenshot_20160317_190949.png
Screenshot 1
screenshot_20160317_190949.png (41.24 KiB) Viewed 3890 times

screenshot_20160317_191220.png
Screenshot : Quest description
screenshot_20160317_191220.png (66.94 KiB) Viewed 3890 times

screenshot_20160317_191331.png
Screenshot : Waste
screenshot_20160317_191331.png (50.28 KiB) Viewed 3890 times

Re: [ModPack] sys4_quests [sys4_quests][git]

PostPosted: Sat May 07, 2016 22:05
by benrob0329
Wow, why hasn't anyone replied to this yet? It looks awesome!

Re: [ModPack] sys4_quests [sys4_quests][git]

PostPosted: Mon May 09, 2016 16:49
by Don
I agree! This looks awesome.

Re: [ModPack] sys4_quests [sys4_quests][git]

PostPosted: Tue May 10, 2016 16:29
by Minetestforfun
Happy to see the evolution of the quest system, keep up the good work ! :)

Re: [ModPack] sys4_quests [sys4_quests][git]

PostPosted: Wed Jun 01, 2016 22:44
by sys4
Update.
- Taking into consideration minetest 0.4.14 update.
- Improved API which make possible multi dependencies between quests. (exemple.lua file updated for description)
- Quests entirely rewritten
- Removed ethereal quests
- Add mobs quests
- Add unified_inventory quests (for crafting bags)

I have added Dia diagrams in the project which shows relations between quests.

Re: [ModPack] sys4_quests [sys4_quests][git]

PostPosted: Sun Jun 05, 2016 18:50
by sys4
Update :
- Added moreores quests

Re: [ModPack] sys4_quests [sys4_quests][git]

PostPosted: Thu Jun 16, 2016 19:56
by MykieDoesStuff
This is looking good. Bookmarked.

Re: [ModPack] sys4_quests [sys4_quests][git]

PostPosted: Sat Jun 18, 2016 22:46
by sys4
Thanks :)

Update :
- Add new quests for thirsty mod.
- Add custom sounds for (new, fail, successful quests) when central_message mod is detected.
- Merged Xanthin branch for German translations. (So cool Xanthin ;)

Soon i will make videos for demo.

Re: [ModPack] sys4_quests [sys4_quests][git]

PostPosted: Mon Jul 11, 2016 15:42
by sys4
Big update (Version 0.2) :
- Added quest groups implementation:
  • Quests inside a group must be all finished before the next group of quests start. (If any)
  • If some quests are not defined to be inside a group then they are automatically included in a 'global' group.
  • The quests inside the 'global' group are playable in parallel to other group of quests.
Also in this way, there are less quests displayed at the same time. This was a problem i think.

- Rewrite of quests separated in the followings groups : 'Wood Age', 'Farming Age', 'Stone Age', 'Metal Age' and 'Middle Age'
- Some quests was simplified
- Added 'ethereal', 'moreblocks' and 'carts' related quests
- Added support of ethereal:bowl as a replacement of thirsty:wooden_bowl
- Downgraded default level to 12
- Added 5 new chat commands : '/lqg', '/fquest', '/iquest', '/itemqq', '/getcraft'
- Finished french translations
- Added description.txt and screenshot.png in the modpack root directory

The top post has been updated :)

Re: [ModPack] sys4_quests [sys4_quests][git]

PostPosted: Wed Jul 27, 2016 02:18
by izzyb
EDIT AGAIN: I think I may have solved both these issues. Turns out my minetest_game was outdated. As was my git pull of minetest. Haven't played with it long, but I've confirmed I can now make ladders, and I haven't been able to trigger a crash with falling blocks yet.

I'm seeing this error pop up when sand or gravel fall in the game. First couple times I was smothered in the sand - this one I was high on a wall when I triggered the fall and the only thing under it was a rat. I didn't capture the error the first couple of times, but this is the relavent part of the log - I hit ctrl-c in the terminal that started minetest when the error came up.

Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
2016-07-26 19:37:30: WARNING[Main]: Map::getNodeMetadata(): Block not found
2016-07-26 19:37:30: ERROR[Main]: ServerError: Lua: Runtime error from mod '*builtin*' in callback luaentity_Step(): /home/izzyb/.minetest/mods/sys4_quests/sys4_quests/init.lua:685: attempt to index local 'digger' (a nil value)
2016-07-26 19:37:30: ERROR[Main]: stack traceback:
2016-07-26 19:37:30: ERROR[Main]:    /home/izzyb/.minetest/mods/sys4_quests/sys4_quests/init.lua:685: in function 'callback'
2016-07-26 19:37:30: ERROR[Main]:    /usr/local/share/minetest/builtin/game/falling.lua:92: in function </usr/local/share/minetest/builtin/game/falling.lua:43>
2016-07-26 19:37:30: ACTION[Main]: Writing quests to file
2016-07-26 19:38:10: [Main]: INFO: signal_handler(): Ctrl-C pressed, shutting down.


I found turning off quest and reloading fixes the problem. Then I can turn quest back on.

I'm loving this mod btw! Was just poking through the example to give quest creation a try. I'm finding I can't create some important items. Ladders for instance. I'm thinking this should be active in the Wood Age. I'll try creating a mod with some of the missing items I need.

EDIT: I just noticed that ladders are defined as part of minetest_quests. Not sure why I can't craft them still. I'm in metal age already. I've confirmed the required quests are listed in my Finished quests. Not sure what's wrong. Thoughts?

Re: [ModPack] sys4_quests [sys4_quests][git]

PostPosted: Thu Jul 28, 2016 07:17
by sys4
Thanks for your feedback izzyb :)
I was thinking i was the only one who loved this mod ;) but you show me i was wrong.

Metal age already ? Wow ! I have to speed up the development of the next releases before you ended all the quests ;)

If you want you can try the unstable version (with a new world). I'm testing farming_redo related quests (for the instance) and i'm planning to add food related quests. And later i'll make a new group called "Modern Age" for introduce quests related to mesecons, pipeworks, technic, ...
btw: If you found another mistakes in this mod, don't hesitate to report it here or in the git repos.

Re: [ModPack] sys4_quests [sys4_quests][git]

PostPosted: Fri Jul 29, 2016 19:06
by izzyb
Looks like I was wrong about the falling bug being an update issue. Just got another one...

Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
2016-07-29 12:34:44: ERROR[Main]: ServerError: Lua: Runtime error from mod '*builtin*' in callback luaentity_Step(): /home/izzyb/.minetest/mods/sys4_quests/sys4_quests/init.lua:685: attempt to index local 'digger' (a nil value)
2016-07-29 12:34:44: ERROR[Main]: stack traceback:
2016-07-29 12:34:44: ERROR[Main]:    /home/izzyb/.minetest/mods/sys4_quests/sys4_quests/init.lua:685: in function 'callback'
2016-07-29 12:34:44: ERROR[Main]:    /usr/local/share/minetest/builtin/game/falling.lua:92: in function </usr/local/share/minetest/builtin/game/falling.lua:43>
2016-07-29 12:34:44: ACTION[Server]: izzyb leaves game. List of players:
2016-07-29 12:34:44: ACTION[Main]: Writing quests to file


Not sure what the gravel fell on.

I'll have a look at the unstable version this weekend maybe. I see in the code you have options to insert a group that are commented out. Is this coming in the development version? I tried adding a group but see it puts it at the end which isn't what I want.

I managed to successfully create a global quest for a couple of items. I'll play some more and post them here for others.

Re: [ModPack] sys4_quests [sys4_quests][git]

PostPosted: Sun Jul 31, 2016 10:15
by sys4
Hmmm... it's annoying.

I can't reproduce it. It's look like this is a random problem, perhaps caused by some lags ? Or a mod you used and i don't have ?
Anyway, in dev branch (unstable) I've make a fix for avoiding the crash when 'digger' is nil, but i don't know if this fix will be enough. To be continued so...

Good to see you create some new quests, i'm curious to have a look in your resulting work. Also effectively, i will finish the implementation of options to insert a group in the wanted order for your pleasure ;) and perhaps for the others. Stay updated with dev version so.

EDIT : It's done with the ability to insert a new group of quests in dev version.
You have to call this function in this manner :
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
sys4_quests.insertQuestGroup(existingGroupName, newGroupName)

The new group will take the place of the existing group. The existing group and followers will be displaced after the new group.

Re: [ModPack] sys4_quests [sys4_quests][git]

PostPosted: Thu Aug 04, 2016 01:01
by izzyb
I've notice the "Tree Digger Lover" quest from moreblocks_quests only accepts default:tree and default:jungletree as valid trees for the quest. I've spawned in an area with only default:pine_trees around. It accepted them for the Tree Digger quest, so at first I thought something was broken when it wouldn't accept digging pine_trees for the quest. Now I'm wondering if this was intentional to force you to find other types of trees? Seems like a good idea for a quest, but there is no indication to the player that this is what is needed. So, a couple of suggestions/questions...

1) Can you add a field to the quests that let you specify some text to be displayed on the quest info screen for a more complete description of what is needed to complete the quest. That could allow games to provide a more colourful description of the quest to match the games theme.

2) Is it possible to specify group:tree for instance on the tree digging quests? If not, could you add that ability and update these quests to use tree groups. Perhaps creating quests to find specific trees, but not so early in the game when you're still dealing with wood tools.

EDIT: It's occurred to me that I'm using carbon_ng as my base. I thought it was based on the current Minetest Game, but perhaps there are some differences. Could explain the crashes I've seen and my latest problem which is I can't create ladders again. I'm in the farming age already in the latest test world I'm playing in, so this should have been granted already. I'll have to have a closer look in a few days...

Re: [ModPack] sys4_quests [sys4_quests][git]

PostPosted: Thu Aug 04, 2016 06:53
by izzyb
sys4 wrote:Hmmm... it's annoying.

I can't reproduce it. It's look like this is a random problem, perhaps caused by some lags ? Or a mod you used and i don't have ?
Anyway, in dev branch (unstable) I've make a fix for avoiding the crash when 'digger' is nil, but i don't know if this fix will be enough. To be continued so...


This will likely solve the crashes which is enough for now. I think this may be a bug in carbon_ng someplace. That's the base I'm using for my world. I'll have a closer look and follow up with them.
Good to see you create some new quests, i'm curious to have a look in your resulting work. Also effectively, i will finish the implementation of options to insert a group in the wanted order for your pleasure ;) and perhaps for the others. Stay updated with dev version so.

EDIT : It's done with the ability to insert a new group of quests in dev version.
You have to call this function in this manner :
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
sys4_quests.insertQuestGroup(existingGroupName, newGroupName)

The new group will take the place of the existing group. The existing group and followers will be displaced after the new group.


Cool! I'll work on a Pink Princess Age to go with the Pink mod. My daughter will love it! ;)

I'm currently working on a default quest for the hook mod. Was testing it when I found I couldn't make ladders.

Re: [ModPack] sys4_quests [sys4_quests][git]

PostPosted: Thu Aug 04, 2016 07:05
by izzyb
I was just thinking it would be nice to have more then just a linear sequence of quest groups. Then you could have multiple quest paths to follow in parallel. Would be useful for creating a world were players could follow different paths to master different skills. Say a Wizard quest path and a Knight quest path or whatever. Having the option to have one quest block other quests might be useful also. So if you start down the path to being a Wizard, it blocks the knights path for example. Would make for some interesting game play requiring team work from different classes of player.

Re: [ModPack] sys4_quests [sys4_quests][git]

PostPosted: Fri Sep 02, 2016 07:13
by izzyb
I'm working on a quest for the fishing mod. The fishing mod requires you to collect worms for bait. The worms come up from soil you've hoed. The worms are entities that get added to your inventory on a right click. Here's the specific code from the register_entity call:

Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
 on_rightclick = function(self, clicker)
                if clicker:is_player() and clicker:get_inventory() then
                        clicker:get_inventory():add_item("main", "fishing:bait_worm")
                        self.object:remove()
                end


How hard would it be to add a quest type that triggers on right clicks or inventory additions so I can add worm collection to the quest? There are a number of other triggers I can think of - hitting entities for instance; killing entities would be another.

Another question I have relates to overriding quests from other mods. For instance, the cotton_digger quest requires collecting a lot of cotton which I've found to be a long process in normal game play. I'm thinking you should adjust it into different levels like many of the other item quests. But, assuming that wasn't an option for whatever reason, is it possible to override the count value to lower it? I'm going to try adding a "cotton_thief" quest to the farming age that will allow only collecting a few strings. Would it be possible to alter the cotton_digger quest to activate after the new one I create? EDIT: (And can the node counter be a fraction since it's multiplied with the level - so .25 * 12 would give you a count of 3?) -- Never mind, I found the "custom_level = true" attribute.

EDIT: Also could you add a command that resets a users quests to new user status? I've noticed I have to delete my players file in addition to the quests file in order to manually do it. Also, could you output the quests file in a more human readable formate. I've been trying to modify values in it for testing purposes and find it's really difficult to parse manually.

Re: [ModPack] sys4_quests [sys4_quests][git]

PostPosted: Mon Nov 14, 2016 02:30
by sys4
Sorry for my such late response, but life isn't so simple and I had to stop coding since this summer.
But I'm back now and I have intention to continue updating and improving this mod.
Thanks you izzyb, I appreciate your feedbacks. I will seriously pay attention on it for the next days to decide what to do exactly.