Honorable Member Mali 41857 Posted September 20, 2021 Author Honorable Member Share Posted September 20, 2021 (edited) 6 minutes ago, zsoltiabeka10 said: @ Mali A small thing that I've found out with the InitializeMailBoxTable() function: If you have it like in the repo, whenever you try /reload the mailbox table will fail and you can't reload your protos and stuff because it returns false if the table isn't empty. I changed it to skip loading it into the pointer if it already has data (from booting up the server). Because clearing the memory and inserting into it again caused me attachments reappear so that method didn't work for me. Maybe that could be a solution if anyone else having a problem like that. //repo bool CClientManager::InitializeMailBoxTable() { if (m_map_mailbox.empty() == false) return false; ..... } // change ? bool CClientManager::InitializeMailBoxTable() { //if (m_map_mailbox.empty() == false) //return false; if (!m_map_mailbox.empty()) return true; .... } Reload? That function for only boot. Why are you reloading? edit: I get it, for protos. I will change thanks Edited September 20, 2021 by Mali 1 1 1 Link to comment Share on other sites More sharing options...
zsoltiabeka10 17 Posted September 20, 2021 Share Posted September 20, 2021 For some reason whenever I tried /reload it gave me a syserr with mailbox table initalization failed. 1 Link to comment Share on other sites More sharing options...
Honorable Member Mali 41857 Posted September 22, 2021 Author Honorable Member Share Posted September 22, 2021 #Update Transmutation Spoiler 1 1 Link to comment Share on other sites More sharing options...
Active+ Member HFWhite 498 Posted October 2, 2021 Active+ Member Share Posted October 2, 2021 (edited) @ Mali do you know the cause of this error (while compiling DB Source)? Can you help me please? 'unordered_set' in namespace 'std' does not name a template type static std::unordered_set<std::string> NameSet; and 'NameSet' was not declared in this scope bool bFound = NameSet.find(p->szName) != NameSet.end(); SOLVED, FIX: #include <unordered_set> Edited October 3, 2021 by SCOOB 1 Link to comment Share on other sites More sharing options...
Active+ Member HFWhite 498 Posted October 2, 2021 Active+ Member Share Posted October 2, 2021 (edited) When I receive a normal mail (not from a GM) the time is still 7 Days. Even though in tables.h is set to be 30 days. Edit: Sometimes it shows 7 or 30 days, randomly. I had messages from GM that were 30 days and messages from players that were 7 days. And the other way around. So something is wrong with these: MAILBOX_REMAIN_DAY = 30, MAILBOX_REMAIN_DAY_GM = 7, Spoiler Edited September 4, 2022 by Metin2 Dev Core X - External 2 Internal 1 Link to comment Share on other sites More sharing options...
EAkar 8 Posted October 18, 2021 Share Posted October 18, 2021 If you adapt the transmutation system. BL_TRANSMUTATION You will get db.core. For clientmanagerboot.cpp set 512 to 1024. Link to comment Share on other sites More sharing options...
Active+ Member HFWhite 498 Posted October 19, 2021 Active+ Member Share Posted October 19, 2021 (edited) On 10/2/2021 at 11:50 PM, SCOOB said: When I receive a normal mail (not from a GM) the time is still 7 Days. Even though in tables.h is set to be 30 days. Edit: Sometimes it shows 7 or 30 days, randomly. I had messages from GM that were 30 days and messages from players that were 7 days. And the other way around. So something is wrong with these: MAILBOX_REMAIN_DAY = 30, MAILBOX_REMAIN_DAY_GM = 7, Still have this issue, how to fix? Spoiler Edited September 4, 2022 by Metin2 Dev Core X - External 2 Internal Link to comment Share on other sites More sharing options...
EAkar 8 Posted October 19, 2021 Share Posted October 19, 2021 (edited) For db syserr.txt, it always gives attrtype8 attrtype 9 attrtype10 ......... addfield syserr like this. I add it for mailbox and it keeps asking me to add it. 10 11 12 13 14 like a joke Edited October 19, 2021 by EAkar Link to comment Share on other sites More sharing options...
Bot Metin2 Dev 4879 Posted February 26, 2022 Bot Share Posted February 26, 2022 (edited) i don't know but don't open the window.. no errors anywhere.. Edited August 16, 2022 by Metin2 Dev Core X - External 2 Internal Link to comment Share on other sites More sharing options...
Bot Metin2 Dev 4879 Posted March 1, 2022 Bot Share Posted March 1, 2022 if i send alchemy and accept he told me i have inventory full... Link to comment Share on other sites More sharing options...
Chookez 71 Posted March 1, 2022 Share Posted March 1, 2022 3 hours ago, Cryptex said: if i send alchemy and accept he told me i have inventory full... Open exchange.cpp file, and search this: if (0 == s_vDSGrid[wBasePos]) Change wBasePos to wPos. Like this: if (0 == s_vDSGrid[wPos]) Link to comment Share on other sites More sharing options...
Bot Metin2 Dev 4879 Posted March 1, 2022 Bot Share Posted March 1, 2022 (edited) 44 minutes ago, Chookez said: Open exchange.cpp file, and search this: if (0 == s_vDSGrid[wBasePos]) Change wBasePos to wPos. Like this: if (0 == s_vDSGrid[wPos]) it's the same.. inventory is full Edited August 16, 2022 by Metin2 Dev Core X - External 2 Internal Link to comment Share on other sites More sharing options...
Sparta21 0 Posted May 18, 2022 Share Posted May 18, 2022 (edited) Spoiler Hello guys. I have a problem, if i get a message on the minimap don't show up the mailbox icon until character change or logout, and if i read the message don't disappear until log out or character change, what i do wrong? Thank you in advance for your help. @ Mali Edited August 16, 2022 by Metin2 Dev Core X - External 2 Internal Link to comment Share on other sites More sharing options...
Jimmermania 27 Posted July 25, 2022 Share Posted July 25, 2022 For some reason,i click on npc and nothing happens.Client sysser is empty... Link to comment Share on other sites More sharing options...
Sparta21 0 Posted July 26, 2022 Share Posted July 26, 2022 You have to make quest, to quest folder, the lua don't work me. Link to comment Share on other sites More sharing options...
Jimmermania 27 Posted July 26, 2022 Share Posted July 26, 2022 When i click on "Open mailbox" nothing happens after.. Link to comment Share on other sites More sharing options...
Sparta21 0 Posted July 29, 2022 Share Posted July 29, 2022 You try with lvl 20+ character? @Jimmermania Link to comment Share on other sites More sharing options...
Debloat 88 Posted April 30, 2023 Share Posted April 30, 2023 Gotta love Mali https://drive.google.com/file/d/13VxtS6bYzPJDQ9oSOXmTbdx5wccBQCOt/view Link to comment Share on other sites More sharing options...
Active+ Member HFWhite 498 Posted September 13, 2023 Active+ Member Share Posted September 13, 2023 (edited) On 10/19/2021 at 1:20 PM, SCOOB said: Still have this issue, how to fix? Hide contents still have this issue, did anyone find a fix? This is the only issue: Both GM and normal mail have the same time duration. it should be different. Edited September 13, 2023 by SCOOB Link to comment Share on other sites More sharing options...
Active+ Member HFWhite 498 Posted September 14, 2023 Active+ Member Share Posted September 14, 2023 (edited) On 10/2/2021 at 11:50 PM, SCOOB said: When I receive a normal mail (not from a GM) the time is still 7 Days. Even though in tables.h is set to be 30 days. Edit: Sometimes it shows 7 or 30 days, randomly. I had messages from GM that were 30 days and messages from players that were 7 days. And the other way around. So something is wrong with these: MAILBOX_REMAIN_DAY = 30, MAILBOX_REMAIN_DAY_GM = 7, Reveal hidden contents FIXED! I've added a separate check for bIsGMPost if (p.Message.bIsGMPost == true) { p.Message.DeleteTime = p.Message.SendTime + EMAILBOX::MAILBOX_REMAIN_DAY_GM * 60 * 60 * 24; } else { p.Message.DeleteTime = p.Message.SendTime + EMAILBOX::MAILBOX_REMAIN_DAY * 60 * 60 * 24; } and a check for if owner is GM if (Owner->IsGM()) { p.Message.bIsGMPost = true; } this fixed my issue GIF: Edited September 14, 2023 by Metin2 Dev International Core X - External 2 Internal 1 Link to comment Share on other sites More sharing options...
Ballads 19 Posted September 24, 2023 Share Posted September 24, 2023 Someone could help with this? Quote compile MailBox.cpp MailBox.cpp:473:112: error: cannot initialize a parameter of type 'LPITEM' (aka'CItem *') with an rvalue of type 'BYTE' (aka 'unsigned char') const DWORD pos = item->IsDragonSoul() ? Owner->GetEmptyDragonSulInventory(item) : Owner->GetEmptyInventory(item->GetSize()); ^~~~~~~~~~~~~~~ ./char.h:1172:35: note: passing argument to parameter 'item' here int GetEmptyInventory(LPITEM item) onst; ^ 1 error generated. gmake: *** [Makefile:104: OBJDIR/MailBox.o] Error 1 Link to comment Share on other sites More sharing options...
Ballads 19 Posted September 24, 2023 Share Posted September 24, 2023 (edited) I found a bug: If you send a message to someone and accidentally enter an upper or lower case letter, the message is sent normally but does not reach the recipient. Edited September 24, 2023 by Ballads Link to comment Share on other sites More sharing options...
Active+ Member HFWhite 498 Posted September 30, 2023 Active+ Member Share Posted September 30, 2023 (edited) On 9/24/2023 at 8:08 PM, Ballads said: I found a bug: If you send a message to someone and accidentally enter an upper or lower case letter, the message is sent normally but does not reach the recipient. Here's the FIX for this issue my friend @ Ballads ClientManager.cpp find: snprintf(s_szQuery, sizeof(s_szQuery), "SELECT * FROM player%s WHERE `name` = '%s' LIMIT 1", GetTablePostfix(), p->szName); and replace with this: snprintf(s_szQuery, sizeof(s_szQuery), "SELECT * FROM player%s WHERE `name` = convert('%s' using utf8mb4) collate utf8mb4_bin LIMIT 1", GetTablePostfix(), p->szName); now, the check name is case-sensitive. meaning: If the player you want to send a message is named "Scoob" and you type "sCoob" the server will tell you that the player does not exist. Have a great October! Edited September 30, 2023 by SCOOB found FIX 1 Link to comment Share on other sites More sharing options...
Ballads 19 Posted October 1, 2023 Share Posted October 1, 2023 11 hours ago, SCOOB said: Here's the FIX for this issue my friend @ Ballads ClientManager.cpp find: snprintf(s_szQuery, sizeof(s_szQuery), "SELECT * FROM player%s WHERE `name` = '%s' LIMIT 1", GetTablePostfix(), p->szName); and replace with this: snprintf(s_szQuery, sizeof(s_szQuery), "SELECT * FROM player%s WHERE `name` = convert('%s' using utf8mb4) collate utf8mb4_bin LIMIT 1", GetTablePostfix(), p->szName); now, the check name is case-sensitive. meaning: If the player you want to send a message is named "Scoob" and you type "sCoob" the server will tell you that the player does not exist. Have a great October! Bro, i have no words to say how I'm happy with it. You are the best! have a great LIFE! ♥ Link to comment Share on other sites More sharing options...
Marcos17 19 Posted October 11, 2023 Share Posted October 11, 2023 I implemented the System, and the only problem is that due to the mailbox item it doesn't open at all, due to the NPC it is working perfectly. Note: There is no error in any of the syssers, neither in Release or Debug Link to comment Share on other sites More sharing options...
Recommended Posts