Jump to content

Owsap

Honorable Member
  • Posts

    264
  • Joined

  • Last visited

  • Days Won

    29
  • Feedback

    91%

Everything posted by Owsap

  1. Here is an easier way to write and read quest translations, a function that will filter and return the complete token. Github or M2DL Example: quest black_mapinfo_test begin state start begin when letter begin send_letter(locale_quest(6457)) end when info or button begin say_title(locale_quest(6457)) say(locale_quest(6459, "Joan", 15, 20000)) say(locale_quest(1534, "Joan")) local s = select(locale_quest(6555), locale_quest(6556)) if s == 1 then say(locale_quest(6232)) end end end end
  2. Fishing Game Preview Available for Sale For more information, visit my website, https://owsap.dev/shop/fishing-game/
  3. Download Click here to check the repository ↗ I think everyone already knows this problem, this happens because the client is just rendering the text pointer of the normal chat window, when opening the chat-log window, it just changes the position of the rendering text. Before After
  4. Updated repository. The error log is now more useful for analysis, the stack trace is now visible as well as the symbol name, module name, file name and lines (these outputs can be hidden via option). I'm sure it would be a good idea to encrypt these files however but regardless, I hope it will help some people with better crash logging. By the way, here is an example of an error log. Crash Simulation PyObject* appExit(PyObject* poSelf, PyObject* poArgs) { // TEST_CRASH assert("bug"); *((char*)NULL) = 0; // END_TEST_CRASH CPythonApplication::Instance().Exit(); return Py_BuildNone(); } Error Log (syserr/crash/error_log.txt) Module Name: ...\Metin2Distribute.exe Time Stamp: 1666049966 - Mon Oct 17 23:39:26 2022 Exception Type: 0xc0000005 eax: 0x0ccd1030 ebx: 0x00000000 ecx: 0x00992610 edx: 0x1e2238e8 esi: 0x0f2c5800 edi: 0x004a9a80 ebp: 0x0019ed84 esp: 0x0019ed6c 004a9a80 Metin2Distribute!appExit @ 484 1e0a8960 python27!PyCFunction_Call ...
  5. Download GitHub Repository ⚠ YOU NEED AT LEAST C++17 ⚠ I want to share some little changes about client crash logs, these changes will create a specific folder for all system error logs and a specific folder when the application crashes, which will dump the normal "ErrorLog.txt" named now as "error_log.txt" as well as the crashed "syserr" named now with timestamps and a log file of DxDiag. These changes can also be extended with CrashRpt if you want to send these logs to your server. As for anyone who is interested in using the CrashRpt, check it here, [Hidden Content]
  6. Thanks for sharing, I had the chance to try it out and it's working well of course, I like the way you have built this memory pool, the standard ones are somehow confusing and old. I would recommend everyone trying this out, of course it's not just copy paste but for better support you can add these to the memory pool template. void Create(size_t uChunkSize = 16, bool bGrowChunkSize = true) { m_uChunkSize = uChunkSize; m_bGrowChunkSize = bGrowChunkSize; } void Destroy() { Clear(); } void FreeAll() { Clear(); } With this you don't have to chase down all the functions that allocate memory and simply just replace CDynamicPool with CMemoryPoolNew If I'm using it wrong, please let me know, so far so good and keep up the nice work.
  7. I remember I did this bug on the official server with the Marriage ring, all I had to do was make my connection slow, open the trading window with another character, drag the window right beneath the quest button to advance and when the connection was slow it would take time to show the quest dialog but the trading window was open and I could click accept on both characters, this resulting in the quest to not find the item needed and duplicating it. By the way, thanks for share.
  8. Client Loading Performance Preview Available for Sale Currently only accepting offers For more information, visit my website, https://owsap.dev/shop/client-loading-performance/
  9. Fixed and improved some stuff. Go the repository! Fixed party entry. Rearrange ticket check. Add quest to warp from port to village. Added cooldown. Increased monster spawn. Do you want this? I have also added the rankings like the official. This system has already been shared here from @ Mali although you will have to adapt it. If you would like to use my version, I would suggest a poll, [Hidden Content]
  10. Gaya Market (Official) Preview Available for Sale For more information, visit my website, https://owsap.dev/shop/gaya-market-system/
  11. @sibermaster, if you expect help without providing any information then I'm afraid you're out of luck... I'm not a magician to know what the problem is so please, instead of making the topic a mess how about you show us the crash log of the core or maybe review the implementation steps.
  12. You need to have the correct map indexes in the same CONFIG file. Make sure the metin2_map_capedragonhead (301), metin2_map_defensewave (358) and metin2_map_defensewave_port (359) are in the same CONFIG. 301 metin2_map_capedragonhead 358 metin2_map_defensewave 359 metin2_map_defensewave_port CONFIG MAP_INDEX: 301 358 359
  13. Download Other Mirros Download Here (GitHub) | Download Here (Mega) This tool fills in missing values from extracted tables from official clients, these values such as gold, skills and other values are important for the final complete functioning of the table. Below is a list of the columns the reference table will replace with your full table. GoldMin GoldMax ResurrectionVnum PolymorphItem SkillLevel0 SkillVnum0 SkillLevel1 SkillVnum1 SkillLevel2 SkillVnum2 SkillLevel3 SkillVnum3 SkillLevel4 SkillVnum4 The reference values that will replace the fields of your table are from the official proto of 2014, as this table is a little old you can expand the file to your comfort. Features Multiple support for different types of tables that can be enabled in the config.ini file. Automatically fills null fields with 0. Simple script that looks for all files in monster2 folder that contain skills. Configuration The config.ini file allows the tool to correctly read certain table columns. Please note that enabled columns must be in the correct order as the official column. [TABLE_STRUCTURE] ; ScalePct MOB_SCALE = 0 ; ResistClaw, ResistBleeding WOLFMAN_CHARACTER = 0 ; AttElec, AttFire, AttIce, AttWind, AttEarth ELEMENTS = 0 For example, if your table contains columns like this: Vnum Name Rank Type BattleType Level ScalePct Size... then you need to enable MOB_SCALE. If your table contains columns with Wolfman that look like this, ... ResistBow ResistClaw ResistFire ResistElect ResistMagic ResistWind ResistPoison ResistBleeding ... then you have to enable WOLFMAN_CHARACTER. And continuously if you enable the ELEMENTS columns. Search Script The script find_special_attacks.py makes it easier to find all the monsters that contain skills, this will help expand the reference file with new entries. Using it is very simple, paste the script outside of your client's monster2 folder. There is currently no way to know the exact skill level and vnum for new entries (monsters) that are not in the reference file, but considering the monster's skill type, a bit of logic can help. Demonstration I hope this tool will be seful to most of you who are using official tables with missing values that are important. If you have any problem with the tool please let me know and if you want to me to expand the tool for your modified table, votes can be done.
  14. Repository updated. Replaced "functors" (function objects) with lambda expressions. Optimized execution time of random generation by making them static and corrected numerical overflow check on second count. (Thanks @ Ikarus_)
  15. @ Ikarus_, thanks for the feedback and heads-up, I have updated the repository. About the struct usage, sometimes I add the typedef and sometimes I don't, It's personal preference but for good practice I removed it and about the lua returns, I honestly completely ignored and forgot them because I copied the first function from another questlua file and I continued to paste the same returns for the other functions. As for the destruction of the instance I have reviewed and fixed it. Finally, I add a check to the CShipDefenseManager::OnKill functuion that should be enough to prevent it beeing called from every destruction of characters.
  16. @Calypso2, check the repository, it's been updated since yesterday and you can include <ctime> in your stdafx.h. @ martysama0134, this is something that I tested over and over again, when any character is purged, deleted or killed the pointer is removed immediately from the map and cleared preventing the pointer to get dangled and additional checks where made to avoid this issue but I might consider changing the storage type if eventually there are future problems with it. Thanks for the reply.
  17. Download Other Mirros Download Here (GitHub) Download Here (Mega) Ship Defense is a dungeon accessible only in groups (minimum 2 players, maximum 8) in which players set sail for the new continent defending the ship’s mast from increasingly stronger and more numerous monsters until they defeat all three heads of the Hydra boss. Once the mission is complete, the participants will receive some rewards (determined by chance). Information Demonstration
  18. There are several scammers and resellers out there but there are plenty more and even worse... I would say one of names but I guess some of you already know the top scammers out there. These people with this kind of behavior are a complete disgrace to society and themselves, toxic in the Metin2 community and greedy to seek every opportunity they can to make money at the expense of others. For creators, these people will always copy what you do, they will try to buy your works to resell them cheaper and/or more expensive, they will try to get into a project pretending to be someone to steal your work and others, they will try to sell you things that are not in reality and they will scam you in every possible way to make their living. There are others who will pretend to be someone to deceive you, there are others who will message you to buy services / protections and if you don't accept they will attack you until they get tired. There are others who are so jealous that they will put you under a rock because they cannot see others succeed and reach the top, as they cannot fight for themselves, they will try to put you in misery as they already are. Unfortunately, especially in the Metin2 community, they see everything as a reason to make money and they act like primitives hunting for survival. Finally, they will always be everywhere, creating another fake account and fake information to scam you again so please be careful and avoid these people, do some research first!
  19. Maybe I will do that when I have free time, depending as well if many people request this.
  20. Download GitHub (Click Here) / Mega (Click Here) To implement this feature, you need the Mythical Grade expansion implemented on your server! Google is your friend. Exchange of Dragon Stone Bonuses "Change Attribute" To change the bonuses of a mythical dragon stone unlike the different cases, you will have to select another option from the alchemist, that is "Mythical Dragon Stone: Bonus Change". You will need the stone that you intend to modify and the variable number of Dragon Flames depending on the clarity of the stone you intend to modify. According to the Wiki's, this is the table of variables for each clarity. SIDE NOTE I'm not sure where they got these numbers so I just hard coded them in a header file. They have also added a new group in the "dragon_soul_table.txt" parser file but for what I understood, it's just another probability table. I didn't find it necessary to follow their logic because the "ApplyNumSettings" group already has probabilities of 0 to 3 for adding additional bonuses. Video Preview If you find any problems, please let me know! Have fun!
  21. I took the liberty to extend this system for costumes, including weapon skins and mounts. As many of you know, it's possible to change the look of body costumes and weapon skins with armors and weapons, vice versa. Check out the costume support branch here (Metin2 Download) / [Hidden Content] [Hidden Content] Please note that this support branch is only for adding costume items in the transmutation window, not any full costume system. If you have any problems please let me know.
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.