Popular Content

Showing content with the highest reputation since 01/13/2020 in all areas

  1. 7 points
    11. The Releases category, should be available just for registered users. With that we avoid the guests which just open the releases category, take resources and go away, we need real users, not guests who takes everything and don't give a f**k. 12. Based on 11, implement a system that you can see hidden resources just if you like the post, then will be unhidden. With that we encourage the people to post more stuffs, because the resource will be evaluated of how many likes has.
  2. 7 points
    Hello, Quick back story, those are official from early 2014 pretty much, they contain SG sources, nova sources (2014+) and some wolfman prototype. Those are a small part of a big leak that occured in 2014. It contained Metin2 sources, Metin1 sources as well as Inferna sources. We currently have two theories that are sometimes called official theories but we can't really know who to trust. I am going to be short: It was either a leak made by an employee that copied the file and sold them later on. Or it was downloaded from their server after someone exploited a breach in it. Ever since, we never had any more leaks, might it be core or sources like we had from 2008 to 2014. The only "leak" was an uncythonized root from 2018 because they forgot to cythonize it.
  3. 6 points
    Hello Metin2Dev Community, I hope you're all right! It's been about 2 weeks since we took over the forum, which gave us time to familiarize ourselves with the community and the forum. It is now time to announce some of the projects for the forum. First of all, our projects are the following: Backup of all shared files to a Metin2Dev storage server to avoid dead links. Working on a new version of the forum with a new theme to make it more welcoming and "clean". Clean up all sections (useless topics, dead links, etc ...) and improve the forum tree structure if needed. Work on the more community aspect of the forum, for example by highlighting discord more prominently. Work on the forum to make it more easily accessible to new members. And a lot of other projects that we can't wait for you to discover! Don't hesitate to give us feedback if you have any. See you soon! The staff
  4. 4 points
    Sup bois This is a crack for Navicat. Works with the new Navicat Premium 15. https://mega.nz/#!xAZiwADS!b7OLxm6XuVoCBKhoVJ3BwHX7r7nvdRCLv_HiugI0WO0 Password: metin2.dev
  5. 3 points
    Dear M2Dev Community, I did not find a share with the Sources of Metin2... I share the sources with you today ! Kraizy sources with all branches of development. Download : Here ( The first sharing with the M2Dev storage server ! ) or Mega or Link Best Regards, ASIKOO
  6. 2 points
    Hi there devs, A few months ago I've made a solution for the well-known problems with the character select/logging out which is: once you are about to change character, the stats (ht, st, playtime, etc...) and parts (armor/head) don't update properly: you have to do it twice to see the correct values/items when a character is logging out from the game near to your character you can see a fast equipment change (the character is unequipping everything from him/herself) Explanation for the problems The usual coding video The fix GL for the setup and if you have further question(s), remark(s), or anything that you want to ask or suggest, feel free to post it here, or send it in PM. If you get error(s) please upload the affected (and edited) file(s) to http://pastebin.com/ and link it in your post, to make my work easier and probably I will be able to help you only in one post, so please spare me from asking basic requests like "Could you upload...". Thank you Have a nice day, ~masodikbela
  7. 2 points
    Hello, You can find those functions within the sources of the game. You will find various files named questlua_x.cpp. Open them, go at the very end. You will notice such lines: CQuestManager::instance().AddLuaFunctionTable("arena", arena_functions); Thanks to those, you will easily see which functions are related to arena (registered above within the list arena_function). To use them, you will need to write :"arena.function()". Another example with questlua_pc: CQuestManager::instance().AddLuaFunctionTable("pc", pc_functions); Now, if you want to find those functions, you either have to manually check each questlua_x.cpp files or to go serverside and find the file "quest_functions". Inside you will find every registered quest functions.
  8. 1 point
    Hi! As we told you yesterday, one of our main occupations is to revive the Metin2Dev community. This starts with a complete overhaul of the Discord server: - Directly accessible via the button on the homepage. - Community rooms have been set up: discussion, internet, music, artist, etc ... - Honoured members and VIPs now share the same room. Join us : https://discord.gg/3echkhW I remind you of some rules: - No NSFW, no racism, sexism, harassment. - Avoid spam, whatever the channel. - Advertising prohibited, for anything. For servers, use the appropriate section of the forum. - No links to questionable/unknown sites - Of course, all the rules of good manners apply. - Double account is prohibited We really hope that this new discord will allow the community to get to know each other better and share lots of moments together! Don't hesitate if you have any suggestions. See you soon The staff
  9. 1 point
    Find the dwID of the item in your database, maybe is still there. -Error with inventory cells -Error on the item_proto (wronge size etc.) -Other...
  10. 1 point
    I personally like MVS. The DDoS protection is very good as well as the support. I used the Cloud Virtual Server, tera package, 15€. No problem with 100 players online, I never got to stretch it to it's limits, so I don't really know how many I could have had on that machine until I needed to upgrade.
  11. 1 point
    Ovh should be fine but don't expect miracle if you get a big DDOS you will go down.
  12. 1 point
    Thank you for your feedback, I really appreciate it.
  13. 1 point
    Glad to see that this team is active. You can take a look here, maybe. https://invisioncommunity.com/files/file/9287-brilliant-discord-integration/ I would want to add something in the list: 10. Invite System https://invisioncommunity.com/files/file/7731-invite-system/ You can adapt it as you want, would be a good feature.
  14. 1 point
    There's not much difference. Find in EterPythonLib/PythonGraphic.cpp return jpeg_save(pbyBuffer, uWidth, uHeight, 85, pszFileName) != 0; Replace return jpeg_save(pbyBuffer, uWidth, uHeight, 100, pszFileName) != 0; TEST
  15. 1 point
    İ find it another board, maybe it necessary. Download
  16. 1 point
    As promised, here's to you the 3th RLS in Korean theme. 1 - NullPtr + NewCase on famous Item MYTHICAL_PEACH char_item.cpp Find for: case 71107: Add below of this line: quest::PC* pPC = quest::CQuestManager::instance().GetPC(GetPlayerID()); This prevent: if (!pPC) return false; In your database there is an item like 71107, add a new case for it 39032. case 71107: case 39032: 2 - Warp_all_to_village function was keeping also STAFF out. Replace the struct like this in questlua_global.cpp struct FWarpAllToVillage { FWarpAllToVillage() {}; void operator()(LPENTITY ent) { if (ent->IsType(ENTITY_CHARACTER)) { LPCHARACTER ch = (LPCHARACTER) ent; if (ch) { if (ch->IsPC() && !ch->IsGM()) { BYTE bEmpire = ch->GetEmpire(); if (!bEmpire) return; ch->WarpSet( g_start_position[bEmpire][0], g_start_position[bEmpire][1] ); } } } } }; 3 - Enable Syserr also in LUA. In file questlua_global.cpp find for int _syserr(lua_State* L) or ALUA(_syserr) If you don't have it or if you have, replace or insert this function . int _syserr(lua_State* L) { if (!lua_isstring(L, 1)) return 0; sys_err("From LUA: %s", lua_tostring(L, 1)); /* PC* pc = CQuestManager::instance().GetCurrentPC(); if (!pc) return 0; LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (!ch) return 0; ch->ChatPacket(CHAT_TYPE_INFO, "QUEST_SYSERR %s", lua_tostring(L, 1)); */ return 0; } As you can see I commented the char part, because I suggest to use without for server_timer and automatic things without char entity. If you want to use default function you can do it there is already syserr for LUA default but only with char entity. Don't forget to add the function in RegisterGlobalFunctionTable and quest_functions file. 4 - Fix of bonus application like Official on special mineral slots. File item.cpp find for: if (0 != accessoryGrade) replace the if statement with this fixed for 2 bonus like official. if (0 != accessoryGrade && i < ITEM_APPLY_MAX_NUM - 1) 5 - item with remain time stay into a shop, time shows: "Remain time 0 Sec.". In file uitooltip.py replace these functions: def AppendUniqueItemLastTime(self, restMin): def AppendMallItemLastTime(self, endTime): Like this: def AppendUniqueItemLastTime(self, restMin): if restMin > 0: restSecond = restMin*60 self.AppendSpace(5) self.AppendTextLine(localeInfo.LEFT_TIME + " : " + localeInfo.SecondToHM(restSecond), self.NORMAL_COLOR) def AppendMallItemLastTime(self, endTime): if endTime > 0: leftSec = max(0, endTime - app.GetGlobalTimeStamp()) self.AppendSpace(5) self.AppendTextLine(localeInfo.LEFT_TIME + " : " + localeInfo.SecondToDHM(leftSec), self.NORMAL_COLOR) END Regards WeedHex, React the thread for new others.
  17. 1 point
    https://github.com/blackdragonx61/Refresh-Money-With-Sleep You can change sleep time.
  18. 1 point
    Good idea, thanks for release. But here's one thing, C++ doesn't work like this, you did two loops and in the second loop you're trying to continue with the next iteration in the loop of iterator i, but this will not work, you continue the dmiss iterator, not i. Basically what you did is: for (int i = 0; i < 5; ++i) { for (int j = 0; j < 3; ++j) if (j == 2) continue; std::cout << i << std::endl; } // 0 1 2 3 4 You need something like: But in your case just for check two values, you don't need nested loops, using a simple condition for state OFF and FADE_OUT it's enough, also you should create StopAllSound2D function and use auto for all references/pointers. void CSoundManager::StopAllSound2D() { for (uint8_t i = 0; i < CSoundManager2D::INSTANCE_MAX_COUNT; ++i) { const auto pSoundInstance = ms_SoundManager2D.GetInstance(i); if (pSoundInstance) pSoundInstance->Stop(); } } void CSoundManager::MuteSound(const bool bFadeIn) { m_isMuted = !m_isMuted; if (m_isMuted) { StopAllSound2D(); StopAllSound3D(); } if (bFadeIn) { for (uint8_t i = 0; i < CSoundManagerStream::MUSIC_INSTANCE_MAX_NUM; ++i) { const auto rMusicInstance = m_MusicInstances[i]; if (rMusicInstance.MusicState == MUSIC_STATE_OFF || rMusicInstance.MusicState == MUSIC_STATE_FADE_OUT) continue; const auto pSoundInstance = ms_SoundManagerStream.GetInstance(i); if (pSoundInstance) m_isMuted ? pSoundInstance->Pause() : pSoundInstance->Resume(); } } char buf[15]; _snprintf(buf, sizeof(buf), "Mute %s.", m_isMuted ? "Enabled" : "Disabled"); IAbstractChat::GetSingleton().AppendChat(1, buf); }
  19. 1 point
    fast fix with small logic int i_add = (strstr(m_fontName, "Tahoma") == 0) ? 1 : 0; //for more fonts TextOutW(hDC, m_x + i_add, m_y, &keyValue, 1);
  20. 1 point
    I miss this brilliant guy I'm waiting for your comeback....
  21. 1 point
    Greetings! The new beta is finished! I'm proud to present r71480. This time a few things have changed. And in this revision, we have a lot of new stuff. In the following I'll provide the download link along with the things I'd love you to test. *** DISCLAIMER *** The core is marked as stable. Anyway, I'll make it clear that I'm not responsible if you use this core since I can't give a warranty that I fixed every single security breach that potentially could happen - that's totally impossible. But we all together made the source great and secure so every public issue is fixed by now. You can use it in production environments now. So... What's new? boot-trigger for quests With this you can execute commands, timers, and all the stuff you'd like to have just on boot-time! revisioning of the 'unique class' (+ a ton of posibilities) added the functionality to create unique-groups temp-Variables for quests upgraded all libs moved completely to the newest clang version fixed some big security issues in the source code fixed the ingame ban and unban commands unified tables and gave them a new way: unify! file clean-up revisioned the makefiles gave the source a new, easier structure removed all external dependencies just install them by ports.. No external-folder necessary! removed 'boost' dependency (no boost lib needed yay) partial implementation of the wolfman (claws etc. are added, needs review) And basically everything that has been offered in the earlier versions of the vanilla core. Nothing should be missing. And if you miss something, just feel free to tell me! What needs testing? There are few things I'd love you to test out: Please check if the core is vulnerable to any security breaches you may know (also the public ones, don't know if I missed something) Please test out the new features! I'd really love to know if the new unique-functions and the boot-trigger does the job. Explanation to new features: Unique with container support Unique has evolved! This time you have a few new possibilities. Don't know what unique is? Here's a short explanation: With the unique-questfunctions you can spawn or set mobs, npcs and now even players to have a unique name. This name is stored into a unique-container. You can access this container and get all the vid's by their unique name (also called: the key) So for example you can spawn a boss with a key. Later on you can check if this specific mob has been killed or not. Or you can set his hp on-the-fly. There's basically no limits! And now with the revised system you'll have even more options. The new unique system works with containers. By default there are two containers reserved: __DEFAULT__ and __CHARACTER__. The first one is for all the basic stuff. And the second one is reserved for players. Now, as you may have noticed, there's a default one which means that the container-stuff is optional. If you just use the unique functions without specifying a container, it'll just use the default stuff. But you CAN use your own containers just as you want to. You can create, delete and list all the containers running. There is a list with all the quest-functions down below. boot-trigger This is pretty self-explanatory. With this release you can use "when boot begin" to specify a block of code that will be executed once the core has been booted. temp-variables With the new temp-variables you can set and remove player-specific variables. They are stored in the core and not written to disk or database. So be careful because they might get dropped once the core shutdowns. It's just a quick storage for people who want to have something like a cache for quick access. new quest functions nil unique.spawn_unique(string key, int vnum, string pos=unused, string container=optional) nil unique.set_unique(string key, int vid, string container=optional) nil unique.purge_unique(string key, string container=optional) nil unique.kill_unique(string key, string container=optional) bool unique.is_unique_dead(string key, string container=optional) int unique.get_hp_perc(string key, string container=optional) nil unique.set_def_grade(string key, int def, string container=optional) nil unique.set_hp(string key, int hp, string container=optional) nil unique.set_max_hp(string key, int maxhp, string container=optional) int unique.get_vid(string key, string container=optional) bool unique.exists(string key, string container=optional) table unique.get_container_list() this prints out all the unique containers table unique.get_container_list(string key) this prints out all the vids in the unique-container "key" nil unique.remove_container(string key) removes a whole container (flushes it when called on standard containers) nil pc.temp_var_set(string key, string value) string pc.temp_var_get(string key) nil pc.temp_var_delete(string key) Thanks a lot for participating! If there are any questions, this is the topic related to it. Further releases will be made public here too! If you'd like to contribute, just post code additions here. Changelog older changelogs Download Useful information: All necessary libs are included. If you're building your own vanilla binary you'll first have to move into every project of the Internal directory and rebuild the libs. The main makefile is not adapted yet, I was too lazy (ps: Still too lazy!) rev 71480 see this post: rev 70220 STABLE Core Sourcecode rev 70140 BETA Core Sourcecode Password for the archive is: vanilla Password for older source archives: vanillamt2 Best Regards Vanilla
  22. 1 point
    So after 5 years I finally decided to make a map from scratch, which became the new map 1 for romanian players in WoM2: the Deunsang Citadel. Thanks to Ace for many of the models I use here: I am also releasing most of the trees and shrubs I used, these are from Oblivion and I did already release them before (and many people used them in their maps) but I reworked both the lighting and the textures, especially of the trees, and fixed a couple that were not working before. https://mega.nz/#!N1sVwAjB!JxklI1qYBUnzfq-DRcF5ab0mvS08ORbfl1D1oGSIv5I
  23. 1 point
    Probably you have sash/acce and that's the problem. In client/PythonNetworkStreamPhaseGameActor.cpp Search for: void CPythonNetworkStream::__RecvCharacterUpdatePacket(SNetworkUpdateActorData * pkNetUpdateActorData) Paste this: m_akSimplePlayerInfo[m_dwSelectedCharacterIndex].wSashPart = pkNetUpdateActorData->m_dwSash; Below this: m_akSimplePlayerInfo[m_dwSelectedCharacterIndex].wMainPart = pkNetUpdateActorData->m_dwArmor; Maybe you have dwAcce instead of sash.
  24. 1 point
    Try this: function party.has_item(vnum) local pids = {party.get_member_pids()} for i, pid in pairs(pids) do q.begin_other_pc_block(pid) if pc.count_item(vnum) > 0 then return 1 else return 0 end q.end_other_pc_block(pid) end end for i, pid in ipairs/pairs(pids) do
  25. 1 point
    The DSS works well ... but after a reboot are the items from the dss Window away Hi i got same problem but i fixxed it now i think maybe you can test it ALTER TABLE `item` CHANGE `window` `window` ENUM( 'INVENTORY', 'EQUIPMENT', 'SAFEBOX', 'MALL', 'DRAGON_SOUL_INVENTORY', 'BELT_INVENTORY' ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'INVENTORY' This addes the new enmus: 'DRAGON_SOUL_INVENTORY', 'BELT_INVENTORY' After this alle runs fine This Fixxed it by me !