Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 01/13/20 in all areas

  1. 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
    3 points
  2. 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 points
  3. 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.
    2 points
  4. M2 Download Center Download Here ( Internal ) Hey there, I have an Halloween gift for you all. i have been working for a few hours on official like element image on target window(See screenshots below). When you click on a mob if it is defined as elemental, it will open an element image in addition to the target window. Don't forget to hit the like button! (C) Metin2 guild wars - coded by [GA]Ruin - 27/10/2017 (I create custom metin2 systems in c++/python. if you want a custom system send me a pm and we can talk over skype). Let's begin! Server Side: Open service.h, add in the end: #define ELEMENT_TARGET Open char.cpp, search for else { p.dwVID = 0; p.bHPPercent = 0; } add below: #ifdef ELEMENT_TARGET const int ELEMENT_BASE = 11; DWORD curElementBase = ELEMENT_BASE; DWORD raceFlag; if (m_pkChrTarget && m_pkChrTarget->IsMonster() && (raceFlag = m_pkChrTarget->GetMobTable().dwRaceFlag) >= RACE_FLAG_ATT_ELEC) { for (int i = RACE_FLAG_ATT_ELEC; i <= RACE_FLAG_ATT_DARK; i *= 2) { curElementBase++; int diff = raceFlag - i; if (abs(diff) <= 1024) break; } p.bElement = curElementBase - ELEMENT_BASE; } else { p.bElement = 0; } #endif open packet.h, search for: } TPacketGCTarget; add above: #ifdef ELEMENT_TARGET BYTE bElement; #endif Client side: open locale_inc.h, add in the end: #define ELEMENT_TARGET open packet.h, search for } TPacketGCTarget; add above: #ifdef ELEMENT_TARGET BYTE bElement; #endif open PythonNetworkPhaseGame.cpp, look for: else if (pInstPlayer->CanViewTargetHP(*pInstTarget)) replace below with the following: #ifdef ELEMENT_TARGET PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "SetHPTargetBoard", Py_BuildValue("(iii)", TargetPacket.dwVID, TargetPacket.bHPPercent, TargetPacket.bElement)); #else PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "SetHPTargetBoard", Py_BuildValue("(ii)", TargetPacket.dwVID, TargetPacket.bHPPercent)); #endif open PythonApplicationModule.cpp, look for #ifdef ENABLE_ENERGY_SYSTEM add above: #ifdef ELEMENT_TARGET PyModule_AddIntConstant(poModule, "ENABLE_VIEW_ELEMENT", 1); #else PyModule_AddIntConstant(poModule, "ENABLE_VIEW_ELEMENT", 0); #endif open game.py, look for def SetHPTargetBoard(self, vid, hpPercentage): if vid != self.targetBoard.GetTargetVID(): self.targetBoard.ResetTargetBoard() self.targetBoard.SetEnemyVID(vid) self.targetBoard.SetHP(hpPercentage) self.targetBoard.Show() replace with: if app.ENABLE_VIEW_ELEMENT: def SetHPTargetBoard(self, vid, hpPercentage,bElement): if vid != self.targetBoard.GetTargetVID(): self.targetBoard.ResetTargetBoard() self.targetBoard.SetEnemyVID(vid) self.targetBoard.SetHP(hpPercentage) self.targetBoard.SetElementImage(bElement) self.targetBoard.Show() else: def SetHPTargetBoard(self, vid, hpPercentage): if vid != self.targetBoard.GetTargetVID(): self.targetBoard.ResetTargetBoard() self.targetBoard.SetEnemyVID(vid) self.targetBoard.SetHP(hpPercentage) self.targetBoard.Show() open uitarget.py, look for import background add below: if app.ENABLE_VIEW_ELEMENT: ELEMENT_IMAGE_DIC = {1: "elect", 2: "fire", 3: "ice", 4: "wind", 5: "earth", 6 : "dark"} look for: self.isShowButton = False add below: if app.ENABLE_VIEW_ELEMENT: self.elementImage = None inside Destroy method, look for: self.__Initialize() add below: if app.ENABLE_VIEW_ELEMENT: self.elementImage = None inside ResetTargetBoard method, look for: self.hpGauge.Hide() add below: if app.ENABLE_VIEW_ELEMENT and self.elementImage: self.elementImage = None look for : def SetElementImage(self,elementId): add above: if app.ENABLE_VIEW_ELEMENT: def SetElementImage(self,elementId): try: if elementId > 0 and elementId in ELEMENT_IMAGE_DIC.keys(): self.elementImage = ui.ImageBox() self.elementImage.SetParent(self.name) self.elementImage.SetPosition(-60,-12) self.elementImage.LoadImage("d:/ymir work/ui/game/12zi/element/%s.sub" % (ELEMENT_IMAGE_DIC[elementId])) self.elementImage.Show() except: pass Compile server, client source and root pack and that's it! Enjoy! Happy halloween!
    1 point
  5. Download Metin2 Download Hi, 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. External Link : Mega or Go Sincerly, ASIKOO
    1 point
  6. M2 Download Center Download ( Latest Version ) 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 M2D Storage Password for the archive is: vanilla Password for older source archives: vanillamt2 Best Regards Vanilla
    1 point
  7. M2 Download Center Download Here ( Internal ) Hey, Today i will share how can you change the Whitemark in Minimap with a new one. I saw that there is a topic in Questions & Answers but seems not complete so. Minimap Whitemark - New Download:
    1 point
  8. 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 : Click Here 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
    1 point
  9. Hey y'all. Question has been given, let me know.
    1 point
  10. Exporters: [Hidden Content] CAD: [Hidden Content] not sure if they works
    1 point
  11. It seems to me you didn't understand my answer well. 1. Inside your sources, there are many files in which the functions are defined. The pc.xxx functions are defined inside questlua_pc.cpp. 2. All the useable functions are listed inside quest_functions, if you add new ones, they have to be also added there, because that file also works as an automatic "includer" for global functions; which are those defined inside the sources and/or external lua files such as questlib.lua. When a quest uses a determined function, the compiler looks for it inside that file. If it's not found then an error will pop up and your quest will not compile. (unless it's defined in the quest itself)
    1 point
  12. #closed Problem solved. Best regards Raylee
    1 point
  13. another download link [Hidden Content]
    1 point
  14. Thank you for your feedback, I really appreciate it.
    1 point
  15. There's not much difference. [Hidden Content] TEST
    1 point
  16. Hello, It's a shame to have deleted your request for help... It could have helped other members ! Regards, ASIKOO
    0 points
  17. Unfortunately, I can only choose one answer
    0 points
  18. Hey guys. I'm using the Zymos Powermount Quest with the standard powermounts. However, there is a strange bug. After serverstart, using a powermount the first time works (by clicking on the item), but if you dismount and then try to mount again, you get dismounted immediately and the mount is gone so fast, you can't even see it. I've been googling for it for quite a while now, I tried changing some parts in the quest but nothing worked. Maybe there is a mistake left still that I am unable to find. I am using the fliege files and the system was implemented already, so I don't really know what is wrong. Searched in google and in metin2 boards but couldn't find any solutions. Best regards Apo
    0 points
×
×
  • 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.