Honorable Member Mali 41912 Posted September 11, 2021 Honorable Member Share Posted September 11, 2021 M2 Download Center This is the hidden content, please Sign In or Sign Up ( Internal ) This is the hidden content, please Sign In or Sign Up Video: Spoiler Images: Spoiler Client Side is from 2018 official root. Of course I've made minor changes for slot marking and cheque(if app. checks) You have to add slot marking too. Mysql used to retrieve data during game launch, and to backup(default 1 hour, you can change at conf.txt) 143 1 1 1 1 1 1 65 10 91 Link to comment Share on other sites More sharing options...
Hik 108 Posted September 11, 2021 Share Posted September 11, 2021 Thanks!!! 1 Link to comment Share on other sites More sharing options...
Nitro Booster xLoGaN 26 Posted September 11, 2021 Nitro Booster Share Posted September 11, 2021 Thanks for this contribution! 2 Link to comment Share on other sites More sharing options...
Management AZICKO 7351 Posted September 11, 2021 Management Share Posted September 11, 2021 Your contributions to the Metin2 community are a real pleasure. Keep it up, you're a good man. 1 2 1 Scamming ? Reselling ? metin2.download | metin2.dev | fr.metin2.dev | metin2dev.org | metin2.top | top-metin2.org Link to comment Share on other sites More sharing options...
Contributor MrQuin 6409 Posted September 11, 2021 Contributor Share Posted September 11, 2021 (edited) *When the public one is better than the one been sold... Edited September 11, 2021 by MrQuin 14 1 My only accounts are here and on M2D, Don't trust anyone else from other shitty sites. Link to comment Share on other sites More sharing options...
Goof 2 Posted September 11, 2021 Share Posted September 11, 2021 works with Transmutation? Link to comment Share on other sites More sharing options...
Honorable Member Mali 41912 Posted September 12, 2021 Author Honorable Member Share Posted September 12, 2021 12 hours ago, Goof said: works with Transmutation? Of course it works if you edit it. (I hope you don't expect me to edit this system so it's compatible with someone else's work.) Link to comment Share on other sites More sharing options...
PetePeter 36 Posted September 12, 2021 Share Posted September 12, 2021 Thanks a lot @Malithat's an excellent code ! Maybe you can add the mysql backup on the server shutdown also ? Like the other cache do 2 Link to comment Share on other sites More sharing options...
PetePeter 36 Posted September 13, 2021 Share Posted September 13, 2021 For who want to save the backup on the shutdown of the server too, this code will work. common/tables.h // Search HEADER_GD_MAILBOX_UNREAD = 163, // Add HEADER_GD_MAILBOX_BACKUP = 164, db/ClientManager.cpp // Search case HEADER_GD_MAILBOX_UNREAD: QUERY_MAILBOX_UNREAD(peer, dwHandle, (TMailBox*)data); break; // Add after case HEADER_GD_MAILBOX_BACKUP: MAILBOX_BACKUP(); break; game/main.cpp // Search DBManager::instance().FlushBilling(true); // Add before sys_log(0, "<shutdown> Backup MailBox data..."); db_clientdesc->DBPacket(HEADER_GD_MAILBOX_BACKUP, 0, NULL, 0); I don't know if is the best way, but it's actually working. Link to comment Share on other sites More sharing options...
Honorable Member Mali 41912 Posted September 13, 2021 Author Honorable Member Share Posted September 13, 2021 9 minutes ago, PetePeter said: For who want to save the backup on the shutdown of the server too, this code will work. This is the hidden content, please Sign In or Sign Up 74 1 15 3 22 Link to comment Share on other sites More sharing options...
zsoltiabeka10 17 Posted September 13, 2021 Share Posted September 13, 2021 Hey, anyone got this error before? Spoiler Link to comment Share on other sites More sharing options...
Honorable Member Mali 41912 Posted September 14, 2021 Author Honorable Member Share Posted September 14, 2021 10 hours ago, zsoltiabeka10 said: Hey, anyone got this error before? Reveal hidden contents hey, check the repo 3 1 Link to comment Share on other sites More sharing options...
zsoltiabeka10 17 Posted September 14, 2021 Share Posted September 14, 2021 3 hours ago, Mali said: hey, check the repo Thanks it's good now! p.s: you have a typo in the repo: void initmail() { static PyMethodDef s_methods[] = { { "GetMailAddData", mailGetMailAddData, METH_VARARGS }, { "GetMailData", mailGetMailData, METH_VARARGS }, { "GetMailDict", mailGetMailDict, METH_VARARGS }, { "GetMailItemAttribute", mailGetMailItemAttribute, METH_VARARGS }, { "GetMailItemData", mailGetMailItemData, METH_VARARGS }, { "GetMailItemMetinSocket", mailGetMailItemMetinSocket, METH_VARARGS }, { NULL, NULL, NULL }, }; PyObject* poModule = Py_InitModule("mail", s_methods); void initmail() { static PyMethodDef s_methods[] = { { "GetMailAddData", mailGetMailAddData, METH_VARARGS }, { "GetMailData", mailGetMailData, METH_VARARGS }, { "GetMailDict", mailGetMailDict, METH_VARARGS }, { "GetMailItemAttribute", mailGetMailItemAttribute, METH_VARARGS }, { "GetMailItemData", mailGetMailItemData, METH_VARARGS }, { "GetMailItemMetinSocket", mailGetMailItemMetinSocket, METH_VARARGS }, { NULL, NULL, NULL }, }; PyObject* poModule = Py_InitModule("mail", s_methods); Maybe fix it for others to don't get confused Link to comment Share on other sites More sharing options...
boaspessoal 8 Posted September 14, 2021 Share Posted September 14, 2021 (edited) perhaps a way for GMs(through some item) or NPCs to give quest rewards through mailbox(not needing to have any concerns regarding inventory/safebox space) to players so they can pick them up whenever they please, would be a nice addition to this system. nevertheless, an amazing contribution, as always! Edited September 14, 2021 by boaspessoal Link to comment Share on other sites More sharing options...
Honorable Member Mali 41912 Posted September 14, 2021 Author Honorable Member Share Posted September 14, 2021 (edited) 53 minutes ago, boaspessoal said: perhaps a way for GMs(through some item) or NPCs to give quest rewards through mailbox(not needing to have any concerns regarding inventory/safebox space) to players so they can pick them up whenever they please, would be a nice addition to this system. nevertheless, an amazing contribution, as always! In the official game, battle royale rewards are distributed through the mailbox I will add a function for gm's. Can be good for ox event awards... Edited September 14, 2021 by Mali 1 Link to comment Share on other sites More sharing options...
Honorable Member Mali 41912 Posted September 15, 2021 Author Honorable Member Share Posted September 15, 2021 (edited) # Update: GM Message: -- (name, title, message, vnum, count, yang, won) game.send_gm_mail("Mali61", "Test", "We are testing GM mail!", 39068, 25, 1461, 61) and log... Edited August 26, 2022 by Metin2 Dev Core X - External 2 Internal 1 2 Link to comment Share on other sites More sharing options...
Goof 2 Posted September 15, 2021 Share Posted September 15, 2021 bro is the block button work? Link to comment Share on other sites More sharing options...
VegasForPresident 21 Posted September 15, 2021 Share Posted September 15, 2021 (edited) I really love you man, i need to change my name in MaliForPresident!! Sorry @ VegaS™ im really sorry buddy. Edited September 15, 2021 by VegasForPresident 1 1 Link to comment Share on other sites More sharing options...
VestulSalbatic 507 Posted September 18, 2021 Share Posted September 18, 2021 Amazing contribution! Your works is always the best Thanks for the topic.. 1 Link to comment Share on other sites More sharing options...
EAkar 8 Posted September 19, 2021 Share Posted September 19, 2021 __time32_t SendTime; __time32_t DeleteTime; ../../common/tables.h:851:2: error: '__time32_t' does not name a type; did you mean '__timer_t'? __time32_t SendTime; ^~~~~~~~~~ __timer_t ../../common/tables.h:852:2: error: '__time32_t' does not name a type; did you mean '__timer_t'? __time32_t DeleteTime; static std::unordered_set<std::string> NameSet; bool bFound = NameSet.find(p->szName) != NameSet.end(); error Link to comment Share on other sites More sharing options...
VegasForPresident 21 Posted September 19, 2021 Share Posted September 19, 2021 Does anyone know why i'm experiencing a kick after each warp? Besides that everything works perfect. I receive this error in game core: SYSERR: Sep 19 18:00:13 :: Analyze: login phase does not handle this packet! header 3 SYSERR: Sep 19 18:00:13 :: Process: UNKNOWN HEADER: 47, LAST HEADER: 3(109), REMAIN BYTES: 11, fd: 22 SYSERR: Sep 19 18:02:37 :: Analyze: login phase does not handle this packet! header 3 SYSERR: Sep 19 18:02:37 :: Process: UNKNOWN HEADER: 47, LAST HEADER: 3(104), REMAIN BYTES: 11, fd: 22 SYSERR: Sep 19 18:05:16 :: Analyze: login phase does not handle this packet! header 3 SYSERR: Sep 19 18:05:16 :: Process: UNKNOWN HEADER: 47, LAST HEADER: 3(100), REMAIN BYTES: 11, fd: 22 @ Mali I KNOW YOUR DOING PARTY AT THE MOMENT BRO BUT IS IT JUST ME ? WHY I DO GET THIS ERROR ;( Link to comment Share on other sites More sharing options...
Honorable Member Mali 41912 Posted September 19, 2021 Author Honorable Member Share Posted September 19, 2021 (edited) 7 minutes ago, VegasForPresident said: Does anyone know why i'm experiencing a kick after each warp? Besides that everything works perfect. I receive this error in game core: SYSERR: Sep 19 18:00:13 :: Analyze: login phase does not handle this packet! header 3 SYSERR: Sep 19 18:00:13 :: Process: UNKNOWN HEADER: 47, LAST HEADER: 3(109), REMAIN BYTES: 11, fd: 22 SYSERR: Sep 19 18:02:37 :: Analyze: login phase does not handle this packet! header 3 SYSERR: Sep 19 18:02:37 :: Process: UNKNOWN HEADER: 47, LAST HEADER: 3(104), REMAIN BYTES: 11, fd: 22 SYSERR: Sep 19 18:05:16 :: Analyze: login phase does not handle this packet! header 3 SYSERR: Sep 19 18:05:16 :: Process: UNKNOWN HEADER: 47, LAST HEADER: 3(100), REMAIN BYTES: 11, fd: 22 @ Mali I KNOW YOUR DOING PARTY AT THE MOMENT BRO BUT IS IT JUST ME ? WHY I DO GET THIS ERROR ;( hmm I think the problem is at your packets. for better results add it to clean files and see what happens. Edited September 19, 2021 by Mali Link to comment Share on other sites More sharing options...
VegasForPresident 21 Posted September 19, 2021 Share Posted September 19, 2021 Just now, Mali said: hmm I think the problem is at your packets. oh okay Link to comment Share on other sites More sharing options...
VegasForPresident 21 Posted September 20, 2021 Share Posted September 20, 2021 (edited) In fact it had nothing to do with mailbox. I solved my problem it was a mistake i made during the implementation of mailbox Suggestion: If you read the GM - Mail the GM Icon should go away. Edited September 20, 2021 by VegasForPresident Link to comment Share on other sites More sharing options...
zsoltiabeka10 17 Posted September 20, 2021 Share Posted September 20, 2021 @ 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; .... } Link to comment Share on other sites More sharing options...
Recommended Posts