caanmasu 319 Posted July 27, 2023 Share Posted July 27, 2023 (edited) Hello everyone I bring you my second quest tutorial where you can improve your quest/lua skills (a bit of SQL too) until you become a real expert. Note: in the attached file is the first and second tutorial (Spanish and English language) This tutorial is about an infinity Dungeon. The dynamic of my tutorials is to make a quest where I show point by point how I would do it, and I explain it in detail. If you want to skip the tutorial and just use the quest, you are free to do so, I left a folder with the files to install. I must warn that I only provide code, not models. I use already existing models from the game, specifically, demon tower map, Reaper as boss, dogs as monsters to destroy, etc. You can use the dungeon with the models you want, this way you improve the user experience. The dungeon is customizable, you only have to change numbers. I must also warn that the dungeon has not been tested with several players, although I did good tests with several of my characters, the best tests are done with real players. In case you find bugs, report them to my Discord. Another important note, if you don't read the tutorial, there are additional data that you can't miss, they are really mandatory. You must go to the tutorial and at the end you will find a section called 'Additional data:'. Really, you can't miss it. The content of this tutorial is as follows: 1. Show a button on the NPC 2. Show the NPC button only when we are in the map outside the dungeon. 3. Create the first dungeon jump 4. Create group mode 5. Add some restrictions for entry 6. Create two room mechanics and run them so that they are chosen randomly. 7. Take the character out of the dungeon when player die. 8. Create the ranking log 9. Add dungeon rejoin 10. Display the ranking 11. Add an announcement when someone breaks a floor record. 12. Create spectator mode 13. Increase the difficulty for each floor 14. Add logs 15. Create rewards 16. Create 5 dungeon mechanics 17. Dynamize the base coordinates 18. Add remaining time on each floor 19. Facilitate entry into GMs characters 20. Convert texts to variables Some gifs: Spectator mode Dugeon ranking Rejoin Announcement when someone breaks a floor record Mission 1: killAllMonsters Mission 2: killBossWithMonsters Mission 3: killAllStones Mission 4: purgePillarsRightOrder Mission 5: findRightKey Number of lines of code: translate.lua: 48 questlib.lua: 76 quest_infinity_dungeon.sql: 9 infinity_dungeon.quest: 167 infinity_dungeon_lib.lua: 408 infinity_dungeon_mission_lib.lua: 287 infinity_dungeon_rewards.lua: 26 Total: 1021 lines If you liked the intention of this post you can help me with a reaction, so you can give more popularity to this post and make it more visited so that more people can access to the knowledge of free quest/lua of the highest quality ever seen. Once an acquaintance told me that there was not enough quest documentation for Metin2 and I agreed with him. At that time I knew a little about quest/lua but I said to myself 'knowledge should be free but someone should provide it, not for profit' and I didn't expect that I was going to do it. I didn't want to be left alone with what I knew, I had the need to share it for everyone. About my knowledge of quest/lua: When I first learned quest/lua, I already had base experience of programming in general. I learned quest/lua empirically by watching other people's quest, the LUA source code in C++ about functions and the binary source code related to RAW TEXT tokens, in that order. I could say that I have seen and reviewed thousands of quests written by German, Spanish, English, Romanian, Turkish and other nationalities. I have also seen all levels of quests written by others. I have created many quests for clients, of all kinds of nationalities for all kinds of servers. In total I have accumulated more than 10 thousand hours of quest/lua programming. I have dedicated a lot of time of my life to this. I am a person who does not stay with what he knows, but wants to extend himself more, so I researched for a long time how to improve the quality of my code and to this day I put it into practice and it is the most important pillar of all my programming: code quality. I learned many code structures from many quest until I created my own structure and also my own libraries. When quest/lua is limited to what I need, I have no difficulty in modifying or creating LUA functions in C++ as this is also part of quest. There is much more about this but I think it is enough in this post. The day I leave, there will be forever (or until Metin2 dies completely) this knowledge that will be useful to improve the experience of players in Metin2 private servers. If they are shit server or not, I don't care. If you need any help you can contact me. My Discord is 'caanmasu'. Greetings to all. Download: https://acortar.link/bBp1hk or This is the hidden content, please Sign In or Sign Up Edited July 27, 2023 by Metin2 Dev International Core X - External 2 Internal 52 1 8 4 37 Link to comment Share on other sites More sharing options...
Morbius2 2 Posted July 29, 2023 Share Posted July 29, 2023 Good! thanks Link to comment Share on other sites More sharing options...
Deiklo 0 Posted July 30, 2023 Share Posted July 30, 2023 This is a great contribution bro, thank you very much. Can this infinity dungeon quest be implemented on other maps? I have that doubt Btw, until now you are the person who knows the most about this language and above all, you share it with modesty. keep it up! Link to comment Share on other sites More sharing options...
caanmasu 319 Posted July 31, 2023 Author Share Posted July 31, 2023 3 hours ago, Deiklo said: This is a great contribution bro, thank you very much. Can this infinity dungeon quest be implemented on other maps? I have that doubt Btw, until now you are the person who knows the most about this language and above all, you share it with modesty. keep it up! Hi @Deiklo! The coding is designed to be customized. You can assign the dungeon map you want, including monsters, rewards, required level, among others. To change the map you must modify the infinity_dungeon_lib.data table. It is very easy to do it since the variables are very telling, and in case they are not, I left comments that detail it. map_index, map_index_out, base_cords, outside_pos and in each jump of each mission. Regarding the compliment, thank you friend, a pleasure to serve you. Link to comment Share on other sites More sharing options...
hero2 0 Posted April 4 Share Posted April 4 Very nice, nice sharing, we are waiting for posts like ronark, ramadan events etc. Link to comment Share on other sites More sharing options...
Recommended Posts