Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 03/29/24 in all areas

  1. Hi there, As I've promised a couple of times now, I'm posting all the resources I have - of course, while excluding leaks, hacks and so on and so forth. Since some of the resources I have are already posted on M2DL, I just copied their links here. Clients and Serverfiles Generic clients [RELEASE] Client by abesgaara v3.0 - CATACLYSM.rar, with pictures here Client by abesgaara v3.7 - Fall of the Cataclysm.rar Client by abesgaara v3.5 - Evolution CATACLYSM.rar Client metin2.it Omega [NEW]Client By SasuKe v3.0.rar 2011 Client by pilli_96.exe crank_client_v2.exe Modifizierter-2010-Client.rar Unofficial 2009-2010 Gameforge PL client.zip Private server clients ClujanMt2 v1.0.7z eMetin2V1.3.exe eQauLityMt2.rar metin2gx.exe metin2tim.exe Metin2UnitedUS-Setup.exe Metin2Vendetta.rar metin35.rar (password: Metin35) Client + serverfiles packs Daroo Serverfiles 1678-RC-B4: 2011 Client for 1678 Files.rar and Serverfiles1678-RC-B4.exe (password: germany) Profizocker files: Client_by_Profizocker94.exe (password: elitepvpers.de) and Serverfiles_by_Profizocker94_v2.exe (password: elitepvpers.de) Serverfiles only 2009 leaked serverfiles 2009 serverfiles by Rain/InstantServer.exe (password: mcncc.com) 2014 leaked serverfiles Serverfiles by computerkrank v2 2009 serverfiles by Hikaru & AciDDreaM.rar db2010.US.tar File Server 2010 n00b Ediction by Daroo.7z Fully untouched 34083 server files & DB.7z Metin2.tar.gz (EmpireMMORPG Serverfiles) Game content Alles für die Map - Tal von Ascaria (Devildown).rar Armi By Sandoz.rar Ascaria by DanyBany (2011.05.15).rar Ascaria by DanyBany (2011.11.06).rar DevilCatacomt+Quest+RegenDateien #FIXX.7z Handels-Map.rar Ingame-Itemshop.rar M2(cz)_EterPacks_17.0.12.7z Metin2 official archives - lollo_9_1 (martysama0134).exe neue+rüstungen+v5+by+EYvil.rar New Files (Game-Db-Client etc.).rar - this is a bundle made by pasha37 on 01.01.2014 (lol!), containing some useful things such as: GF .DE data/locale/protos, various game/db/client binaries, 2013 hybrid keys, 2013 non-Cython root from Yitian2, the original Windows Serverfiles release and some other miscellanea. Nuova Mappa.rar NW3 Maps & Quests.rar official_shops.rar Packfiles.rar quest_germany.tar.gz Miscellaneous tools Since probably there's little use for this, I decided to upload them in a single archive. It includes things such as archivers, client starters, libs, game diffs, autopatchers, map editors. And a Portmap I translated into Romanian. Web/web-related The same goes for this category as well. These are all old, crappy resources, probably full of exploits. Use at your own risk. I'm happy to complete this collection with your submissions once they're uploaded on M2DL. Regards, Exynox.
    3 points
  2. M2 Download Center Download Here ( Google Drive ) Download Here ( Internal ) I made a collection of official login, loading screens and wallpapers. There are over 100 picture, here is a quick preview: Don't worry, you will find categorized folders at the link, not in bulk. I may extend it in the future since there are more, mostly newer images. Regards, TMP4
    3 points
  3. Patch v24.1.1.0: *New easter stuff. [Hidden Content] [Hidden Content] MEGA or M2DL
    3 points
  4. Since I was using the officiall proto files, I noticed that when I was on the mount, I was thrown backwards and the slots were not loaded. When I looked at the proto file, I saw that they had removed the folder files of the mounts, so I pulled the folder names directly from the npclist.txt file. If the mob type is horse [CHAR_TYPE_HORSE], it gets it from here, otherwise it gets it according to mob_proto. [Hidden Content]
    3 points
  5. Download Center Download Hello, I made this system 6 years ago, and it's time to share it, i guess.
    2 points
  6. 2 points
  7. M2 Download Center Download Here ( Internal ) Download Here ( Latest Version ) This WE is a version compiled directly by me which includes infinite fixes and features. It's certain that you won't longer use the worldeditor_en! To make it simple, I wrote all the details about this feature and the common WE inside the relative config file: (called WorldEditorRemix.ini) ; Info: ; -) 100% translated ; -) granny2.11 ; -) F6 as Insert alternative ; -) many default features not present inside the worldeditor_en (probably, that binary was taken out from an SVN long time ago and resource hacked) such as Ins for all regions and skyboxes ; -) WASD UPLEFTDOWNRIGHT to move around (+asynchronous diagonally movements) ; -) UP-LEFT-DOWN-RIGHT to move around*10 (+asynchronous diagonally movements) ; -) config file for few things ; Output options by default ; few others such as default WASD movement ; whether or not Insert should let you go where you were before the press ; no MAI dump when saving atlas ; whether or not DevIL should compress and remove alpha from minimap.dds ; whether or not loading .mdatr building heights ; default textureset when creating maps ; overlapped tabs ; other stuff ; -) several bugfixes ; default title app name ; attempting to write to an empty textureset name when creating new maps ; ViewRadius doubled every load&save ; shadowmap.dds creation ; assert when saving atlas ; crash when adjusting height ; many buffer under/overflows ; *.mdc collision data saving (for game_test) ; not checking output options when loading maps ; water brush waterid bug (the id was increased until 256 each time the function was called; now it's based on the water height just like it should be) ; init texture map reload map crash and last 2px always blank ; square shape even for up/down height brushes ; add textureset texture button (+multiselection) ; remove textureset texture feature (just selecting a texture from the list and pressing DELETE) ; creation of empty textureset with index -1 (changed to 0) ; change baseposition button ; misspelled stuff ; skybox bottom image (nb: you also need a fixed launcher for this) ; removed boring CTRL requirement (to move the camera) when editing daylight/attr ; fixed refresh texture imagebox onKey pressing the down/up keys (like when onClicking them) ; fixed TextureSet file creation if not existing ; fixed new wolfman motion event handling ; fixed crash when editing animation attack bones and 00010.gr2 was missing ; fixed locale/ymir/mob_proto load (it autodetects the most common structures) and <map>/regen.txt load/save ; fixed ./group.txt load ; fixed load/save/edit <map>/regen.txt (very nice for "m" regens, untested for "g") ; load from PACK is available if pack/property is present! Be sure pack/Index exists! ; fixed multi-object selection crash ; fixed crash when previewing a missing texture ; fixed not clearing of old environment (e.g. skybox) when switching maps ; fixed not creating property folders in root tree (object tab) ; fixed object attachment in Model Tab ; fixed newly particles names in Effect Tab ; fixed crash when saving a .mse script with no mesh model ; fixed crash when inserting a lower gradient ; -) created new TextureSet field when creating new maps ; -) created new Change/Delete Texture buttons when double-clicking a texture ; -) created Background Music playback and Shadow Recalculate buttons ; -) created water height "set 0z", "+1z", "-1z" buttons ; -) server_attr generator ; -) every crash will generate a logs/WorldEditorRemix_{target}_{date}.dmp file useful for debugging ; -) implemented a "water path" mapsettings option (the launcher requires additional code) ; -) implemented a "wind strength" msenv option (the launcher requires additional code) ; -) the "encrypt data" feature does nothing (unimplemented) ; Note: ; 0) there are no regressions in this version! a bug here means it'd also be present in older WE versions too! ; 1) the shadow output option is tricky: when UpdateUI is called, shadows are hidden although the check is pressed (i implemented the shadow recalculate function for that) #fixed since v11 ; 2) the bgm player requires /miles and the fadein/out doesn't work until you load the map ; 3) the adjusting height button works only if mdatr height is detected ; 4) the Debug version is laggy when working on maps such as n_flame_dungeon and n_ice_dungeon (by default, because SphereRadius are intensively checked in SphereLib\spherepack.h) ; 5) if you load a map, the script panels (where you load .msa et similia) will have the camera perspective a little fucked up (0z instead of -32767z or 0x 0y -163,94z) ; 6) few tree objects are not movable and/or highlightable after placed on the ground and their selection is invisible (you can still delete 'em) ; trick: draw a square selecting a normal building and 'em, then move the building and you'll see all of 'em will be moved! ; 7) the server_attr generator will clean all the unused flags! attr[idx]&=~0xFFFFFFF8; ; 8) you can read files from pack/Index 'n stuff but be aware that Property will not be considered! #fixed since v15 ; 9) the MonsterAreaInfo features are laggy and buggy as fuck ; 10) even though you can select many textures at once (using ctrl+click on textureset list; for brushing or initializing a base texture), you can't delete more than one at the same time ; 11) the .mdatr height is tricky; if you move a building, the height will not be refreshed until you put a new building or whatever you want to trigger the update event ; 12) by default, the worldeditor tries to render only the first 8 terrain textures of a 32x32px region (nb: a 1x1 map is a 256x256 px region) ; 13) the minimap rendering cannot catch the buildings/trees inside the first 2x2 regions due a ymir cache fault and you need to set the camera to "see" them ; 14) when the textureset, environment, etc load fails, the old filename still remains loaded ; 15) the attr flag "3" (three) has no implementation, so don't use it! ; 16) load from PACK doesn't load texturesets from files for first (if they are already in pack/), and the object placer's object list will remain empty because it takes the list from property/ (and not from pack/property) ; 17) to save the regen.txt you press CTRL+S ; 18) if you enable the wireframe (f4) when on Attr Tab, you see the terrain all white ; 19) the water brush disappears when the camera renders the waterwheel small/big effect ; 20) the monster area info goes under ground if you're outside the relative sectree ; 21) the full skybox may be displayed only after the top picture has been added (if the other textures have already been inserted) ; 22) the slider in the Attr Tab is something like "16 photoshop layers" in which you can split your attrs; not so helpful and quite confusing sometimes ; 23) the fixed model - object attachment attaches static objects (hairs'skeleton will not mirror the playing animation) ; 24) in environment tab, if you insert lower gradients, you may end up with an out of range crash #fixed since v30 ; 25) brushes working out-of-screen/map-range may affect random terrain places ; TODO: ; A) look at more than 8 textures for region -> DONE ; B) create a shortcut to fix the #5 note -> DONE ; C) disable the radius <= GetRadius()+0.0001f check to fix the #4 note -> REJECTED ; the worldeditor_en calls this assert and, if ignored, the lag ceases to exist (this will not occur in source version) ; at least, if the release version is not a problem for you, use that in those few cases when .mse are abused and try to kill the debug one ; D) translation in more languages other than english -> REJECTED ; english should be enough! ; E) alternative path for d: -> REJECTED ; you can mount d as a subpath of c like this: ; subst d: "c:\mt2stuff" ; F) need to fix note #19 #25 -> TODO [shortcuts] ; ### SHORTCUTS ; # ESC(ape) Clean cursor ; # Canc(el|Delete) Delete stuff such as selected buildings ; # Ctrl+S Save map ; # Ins(ert) or F6 Save shadowmap|minimap.dds ; # F3 BoundGrid Show/Hide ; # F4 Render UI Show/Hide ; # F11 WireFrame Show/Hide ; # R Reload Texture ; # Z and X Decrease/Increase Texture Splat by 0.1 ; # CapsLock Show GaussianCubic effect if shadows are displayed ; # L-Shift+1-6 Show TextureCountThreshold flags (&2-7) as colors on the ground ; # L-Shift+8 Set Max Showable texture to 8 (de-fix note 12) ; # L-Shift+0 Set Max Showable texture to 255 (fix note 12) ; # H Refresh MDATR Heights (useful when you move an object) (fix note 11) ; # Y Set Perspective as default (fix note 5) ; # T Set the Camera to catch all the object on the screen (w/a note 13) then you'll be ready to press Insert/F6 ; # DO NOT HAVE AN OBJECT SELECTED WHEN USING THOSE SHORTCUTS (MW1-7) ; # MouseWheel+1 move cursor x rotation ; # MouseWheel+2 move cursor y rotation ; # MouseWheel+3 move cursor z rotation ; # MouseWheel+4 move cursor height base (1x) ; # MouseWheel+5 move cursor height base (0.5x) ; # MouseWheel+6 move cursor height base (0.05x) ; # MouseWheel+7 move cursor ambience scale (1x) ; # MouseWheel+Q move selected object height base (1x) ; # MouseWheel+9 move selected object x position (1x) (+asyncronous) ; # MouseWheel+0 move selected object y position (1x) (+asyncronous) ; # MW+RSHIFT+9|0 as above but *10x (+asyncronous) ; # MW+RCONTROL+9|0 as above but *100x (+asyncronous) ; # MouseLeft Insert Objects ; # MouseRight Move camera (it could require CTRL too) ; # SPACE Start move/selected animation in Object/Effect/Fly CB ; # ESC Stop animation in Effect/Fly CB [config] ; ### CONFIG OPTIONS VIEW_CHAR_OUTPUT_BY_DEFAULT = 1 VIEW_SHADOW_OUTPUT_BY_DEFAULT = 1 VIEW_WATER_OUTPUT_BY_DEFAULT = 1 ; WINDOW_HEIGHT_SIZE = 1080 ; WINDOW_WIDTH_SIZE = 1920 WINDOW_FOV_SIZE = 45 ; #100 = 1px (minimal px movement when pressing WASD) WASD_MINIMAL_MOVE = 100 ; came back from where you were before pressing Insert/F6 NO_GOTO_AFTER_INSERT = 1 ; disable MAI dumps when saving atlas and/or pressing Insert/F6 NOMAI_ATLAS_DUMP = 1 ; disable minimap.dds alpha saving and enable compression NOMINIMAP_RAWALPHA = 1 ; enable .mdatr height collision loading when moving on buildings or adjusting terrain DETECT_MDATR_HEIGHT = 1 ; disable fog when loading maps NOFOG_ONMAPLOAD = 1 ; refresh all checkbox configurations when loading maps 'n stuff REFRESHALL_ONUPDATEUI = 0 ; set a default mapname prefix when creating new maps ("" to disable) NEW_MAP_MAPNAME_PREFIX = "metin2_map_" ; display a default textureset when creating new maps ("" to disable) ; note: it loads the filepath if exists, otherwise it will create an empty textureset file NEWMAP_TEXTURESETLOADPATH = "textureset\metin2_a1.txt" ; create a default textureset as "textureset/{mapname}.txt" ; note: this option is not considered if NEWMAP_TEXTURESETLOADPATH is not empty. [before v24] ; note: this option is not considered if the TextureSet path input is not empty when creating a new map [since v24] NEWMAP_TEXTURESETSAVEASMAPNAME = 1 ; remove the weird attr flags from the generated server_attr SERVERATTR_REMOVE_WEIRD_FLAGS = 1 ; show diffuse lighting to object VIEW_OBJECT_LIGHTING = 1 ; path of mob_proto used for regen MOB_PROTO_PATH = "locale/ymir/mob_proto" ; select monster area info checkbox at startup VIEW_MONSTER_AREA_INFO = 0 ; brush cursor / object selection color RGB float between 0.0 to 1.0 (default: green -> 0 1 0) RENDER_CURSOR_COLOR_R = 0.0 RENDER_CURSOR_COLOR_G = 1.0 RENDER_CURSOR_COLOR_B = 0.0 Download: [Hidden Content] How To Map: This release will not cover this part. Look at CryPrime`s tutorials to understand how to do it. About the ServerAttr Generator: (since v14) This is a beta function but it should work fine. I tested it on gm_guild_build (1x1), metin2_map_a1 (4x5), metin2_map_trent (2x2), metin2_n_snowm_01 (6x6) and the result was the same as the blackyuko map editor. (I use a different lzo version and I clean deprecated and useless flags, so the size is different from this last one but the "final image" will be the same; using game_test to fix his server_attr will let mine and his perfectly equal byte per byte) I also give you the source code of my server_attr generator function. CLICK A server_attr file is based on all the attr.atr files merged into a one raw RGBA image and each one scaled from 256x256 to 512x512. After that, the image will be splitted into sectors of 128x128 px and each one compressed using lzo compression. The server_attr header is composed by the size of the map*4. (e.g. a 4x4 will have a 16x16 size with 256 sectors inside) (gj ymir CLICK) An uncompressed server_attr sector is just like this: CLICK (the sub 4 byte header is the size returned by the LzoCompress which indicates how much the compressed sector data are large) Each attr.atr is just like this: CLICK (the header is composed of 6 byte in total: 3 WORDs respectively for version, width and height; they are always 2634, 1, 1 so don't bother about it) A single attr.atr scaled from 256x256 to 512x512 will be just like this: CLICK You can use the game_test (from source) to perform few tasks like: Create a server_attr from a .mcd file (I won't suggest it) a <collision data filename> <map directory> Regenerate an old server_attr to server_attr.new using the current lzo compression and cleaning useless flag CLICK c <filename> Other stuff such as b to create a character instance or q to quit About the SkyBox Bottom pic fix: (since v21) Both metin2launch.exe and worldeditor.exe should be edited to see the bottom pic of the skybox. Ymir messed up the code wrongly flipping the bottom image. Open ./Srcs/Client/EterLib/SkyBox.cpp and replace: ////// Face 5: BOTTOM v3QuadPoints[0] = D3DXVECTOR3(1.0f, -1.0f, -1.0f); v3QuadPoints[1] = D3DXVECTOR3(1.0f, 1.0f, -1.0f); v3QuadPoints[2] = D3DXVECTOR3(-1.0f, -1.0f, -1.0f); v3QuadPoints[3] = D3DXVECTOR3(-1.0f, 1.0f, -1.0f); with: ////// Face 5: BOTTOM v3QuadPoints[0] = D3DXVECTOR3(1.0f, 1.0f, -1.0f); v3QuadPoints[1] = D3DXVECTOR3(1.0f, -1.0f, -1.0f); v3QuadPoints[2] = D3DXVECTOR3(-1.0f, 1.0f, -1.0f); v3QuadPoints[3] = D3DXVECTOR3(-1.0f, -1.0f, -1.0f); then recompile. Credits:
    2 points
  8. M2 Download Center Download Here ( Internal ) Hi, Here is the tool to pack item_proto,mob_proto (clientside) How to: Put on folder item_proto.txt & item_names.txt then just click on dump_proto. After that will create item_proto for your client. Download: [Hidden Content]
    2 points
  9. Download Metin2 Download or Mega Dear Devs. Today I going to share it with you. I searched a lot on this forum, but i didnt found a working max yang increase. I downloaded it many months ago from a really old forum :D. !!!IMPORTANT!!! The "system" is NOT mine! VT link Proof image: Here you go. For the mysql part, change them like this:
    2 points
  10. M2 Download Center Download Here ( Internal ) vt [Hidden Content]
    2 points
  11. M2 Download Center Download Here ( Internal ) Here I post the GitHub of the owner of Heavenly Hope file. Most of system are unfinished, bad coded, and I think that the better use to this file is take system and modify it, NOT start server with this file. "This project is not finish, you can use this project for optimize your project. You can also update this project by forking it for help me and every other peoples who want to make a server. This project is free to use and cannot be sell for money. I don't take any responsability of selling or bugs or issues." Service.h Local_inc.h Videos:
    2 points
  12. M2 Download Center Download Here ( Internal ) After a while, I found back my modded notepad++ langs.xml containing all the old metin2 lua functions in there. It's dated 2012 (I've added the recent langs.xml lua tags few hours ago for lua 5.2 as well), but I'll update it soon with the 40k functions and mine as well. (on github) How to "install" it? Well, open %appdata%\Notepad++\langs.xml and replace the <Language name="lua" ...> section with this: (it doesn't allow me to use <!-- --> comments though) [Hidden Content] After that, restart notepad++, and it's done. Enjoy your Christmas Abione. Note: Some people should already have tried to do so in the past, but this is the nicest way I like.
    2 points
  13. M2Dev Baguette Set Download Here ( Internal ) Download Here ( Mega ) Download Here ( Mega + Fix Texture) Baguette!!!
    1 point
  14. M2 Download Center Download Here ( Internal ) I know many people like me come here or try to find in another forums this select new character official.. and is just a part or is incomplete.. but i find a full version and i come here to reupload. so GL on servers. For make large description on characters / kingdoms: Check change BOX_VISIBLE_LINE_COUNT from 5 to 14 in PythonEventManager.h Thanks @Lajk Download: [Hidden Content]
    1 point
  15. M2 Download Center Download Here ( Internal 2.9 ) Download Here ( Last Release ) This is an archiver I've created, and it looks quite stable so far. The PackMakerLite (PML) supports type 0-1-2-3-4-5-6. As a summarize, the metin2 types are handled like this: Type 0 - only storage (no encryption/compression; it can be read fully from the .epk) Type 1 - compressed - lzo(file) Type 2 - compressed and encrypted - xtea(lzo(file)) Type 3 - encrypted with Panama - you must save an .iv key server-side in the panama/ folder. (content readable only after auth phase) The official used it only for patch2. Type 4 - encrypted with a mix of ciphers (cshybridcrypt) - you must save a .dat key server-side in the package/ folder. (content readable only after auth phase) Practically all the metin2_patch files. Type 5 - like type 4, but a server-side map/<map_name> is also provided. (content readable only after accessing the <map_name> map as a player) The official used it only for the catacomb data. Type 6 - compressed and encrypted - xtea(snappy(file)) Usage: Its settings (xtea keys, extensions, pack types to use) can be changed inside PackMakerLite.json: You can actually integrate the tool in the menu context (running the .reg files) for packing folders and unpacking .eix files: Remove "--nolog" from the .bat files if you want to see the logs again. Command-line options get overwritten by JSON config options. Last but not least: since the client handles all the filenames in lowercase, this tools automatically converts them as well. Thanks also to: blackdragonx61 / Mali - type4-5 extract code / type 6 compress code metin2team - type6 extract code By martysama0134
    1 point
  16. EDIT: I found a better way to search for the tag On char.cpp Instead of #ifdef ENABLE_CUSTOM_TAG_EFFECTS const char* name = GetName(); char result[5]; strncpy(result, name, 4); result[4] = '\0'; Make it like this #ifdef ENABLE_CUSTOM_TAG_EFFECTS const char* name = GetName(); size_t len = strcspn(name, "]"); char result[len+1]; strncpy(result, name, len +1); result[len + 1] = '\0'; This way you can have any tag size without having to do any modification on the code, and for what i saw on my tests, if i increased from 4 chars to 5 it will have problems, this way there is no problem at all!!!
    1 point
  17. M2 Download Center Download Here ( Internal ) Good evening Metin2Dev, Everyone should know these armors from way back, as they were included in the 2004 client of Metin2. But these armors had many bugs, were just core junk. Have now reworked and merged the textures, added new bones, fixed meshes and re-rigged. The armors should now work smoothly and no more bugs on white so that they can be used after 17 years, have fun with it. Edit* With the Kriger is still the original helmet, but now have no screen Download: [Hidden Content]
    1 point
  18. This itemshop is an open source project written by CYN3 with the assistance of the sura_head community. Special thanks to: CYN3 Amas KaiaProductions Installation guide: [Hidden Content]
    1 point
  19. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) [Hidden Content]
    1 point
  20. M2 Download Center Download Here ( Internal ) Hi, folks! With this guide you will be able to combine textlines with images, like rubinum does. Usage is simple: emojiTextLine.SetText("|Eemoji/key_ctrl|e + |Eemoji/key_x|e + |Eemoji/key_rclick|e - Direct sell") The files are located in the icon pack, so basically the code will load from icon/{GIVEN_PATH}.tga - in the sample the path for the X is: icon/emoji/key_x.tga Here are the images from rubinum client:  Howto: Have fun Sorry for arab players , for sure they have also developers, so let's go guys, finish it ? If you have problem, maybe I made a mistake in the guide of missed out something, just leave a comment below. PS.: Sometimes the code tag of the board puts an extra invisible character mostly the end of the lines, if your IDE cries for syntax error, but it seems correct, check that part of the file with notepad++, it will show a ?(question mark) where the problem is.
    1 point
  21. If you want an actual "system" for autofishing, you can add this fishbot: (tested myself & working) [hide][Hidden Content]]
    1 point
  22. M2 Download Center Download Here ( Internal ) Here is the translation of locale_string.txt file in 14 languages Languages: cz de dk en es fr hu it nl pl pt ro ru tr Link: Download
    1 point
  23. M2 Download Center Download Here ( Internal ) Hi, here I publish my edit of the public Render Target System. I hate it, when people earn money with public systems. Preview: [Hidden Content] DL: [Hidden Content] Original Thread [Hidden Content]
    1 point
  24. BRAZIL-24.0.0.0: Contains files like the latest atlas update that are not in GF From now on mob_drop_item.txt will be in client too! npc_location_01.dds Read More: [Hidden Content] [Hidden Content] BRAZIL-24.0.3.0: [Hidden Content] [Hidden Content] [Hidden Content] [Hidden Content] pw:blackdragonx61
    1 point
  25. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) [Hidden Content]
    1 point
  26. Download Metin2 Download Hi I noticed quite a bit of people have problems opening a dev server on Tmp4's source. I moved the server source to windows hoping it'd be easier for any beginners to get started. If anyone wants to give it a try, here it is: [Hidden Content] I've also removed matrix card, auction, udp port, etc.. Not all of them, but quite a few. NOTE: If you don't have the Client from Tmp4, go to his topic and download it(maybe give him a thanks while you're there). Here's the topic: OK, let's get started. How to: Download the files and move them in a folder. Open a terminal (CMD/PowerShell/GitBash, etc..) and cd into the folder where you downloaded the files. Now run: tar -xvzf client_src.tgz tar -xvzf root.tgz tar -xvzf server_extern.tgz tar -xvzf server_src.tgz tar -xvzf winsf.tgz If you get any errors from tar, you might need to install Git Bash(or just use WinRar or something). I wanted to give you the server already compiled, just to get started faster, but I cleaned up the objects and forgot to make a backup of the game and db.exe.. So, you'll have to compile them yourself, unfortunately. Go to server_src and open m2_server.2008.sln(I didn't rename it, do it yourself) then select Debug(or release, whatever you want) and Win32. After the game and db files are compiled, go back and open `winsf` folder. Now run `make_test_env.bat` with admin rights(it needs them to create the shortcuts(links)). After each compilation you just run `refresh.bat` to remove the old exe files and replace them with the new ones(Or just change the out directory in VS to winsf.. your choice). To start in debug mode, just run `run_d.bat`. If you don't have mysql server installed on your PC, get it from here: [Hidden Content] And click the second button(294.4MB). After it's installed, connect to the mysql server with either MySql WorkBench or with Navicat and import the sql scripts found in sql.rar. The tables are taken from some old serverfiles(from Marty, if I'm not mistaken). The tables are fucked, but it should work fine to get started. I'll fix them up later if I have time.. but not now.. Also, don't forget to change the user and password in the configs.(You'll find them in share/cores_config). Also. If your PC slows down while compiling, you might want to disable Multi-processor Compilation(I don't know if it's user specific or if it's saved in the solution's config, but I wanted to mention it just in case it's saved). The last step is to copy the exe files from client_src/binary into your client, pack the root folder with Eternexus(or whatever you use) and replace them in Client/pack. Here's two pictures: If I forgot anything, just let me know and I'll update the post as soon as I can. Also, please report whatever bugs/errors you find. It would be greatly appreciated. Cheers! Virus total found BitDefenderTheta in server_extern, but Antivirus found none, so you decide if you want to use them or just compile the libs yourself:
    1 point
  27. #Solution 1: [Hidden Content] #Solution 2: [Hidden Content]
    1 point
  28. Hello community, since there are a lot of topics and people here which have helped me with a lot of problems I had, I wanted to share with you a map I created some time ago to give something back. As the topic says, I named this map "Waterfall Island". Hopefully some of you will like this map and use it. Minimap: Inside of WE: Download Center Download
    1 point
  29. Hello community, I needed to remove the collision from all the monsters and decided to share with you how to do it. Anything included in mob_proto from vnum 101 to 99999 loses the collision. The collision is removed, but when you are attacking it continues to exist. Step by Step [Hidden Content]
    1 point
  30. Reversed From 22.2.7.0 [Hidden Content] [Hidden Content]
    1 point
  31. M2 Download Center Download Here ( Internal ) Hey guys Today i wanna show you how you can Update your Client. Its a Simple Tuorial but i dont see it here so i post it. At first for all of you they dont know for what we libjpeg use look this [Hidden Content] So Lets Start First of all open your Client Source and open the File JpegFile.cpp and search for #include <libjpeg-6b/jpeglib.h> #include <libjpeg-6b/jpegLibLink.h>[/php] and replace with that [php]#include <libjpeg-9a/jpeglib.h> #include <libjpeg-9a/jpegLibLink.h> As Next Download this Files [Hidden Content] [Hidden Content] Then put the libjpeg-9a Folder in your include folder and libjpeg-9aMT.lib, libjpeg-9aMTd.lib in your lib Folder Now Compile your Exe and you are done
    1 point
  32. M2 Download Center Download Here ( Internal ) Hey guys, I needed to be able to scroll on the ui with the mouse wheel and I thought it will be useful for others too so here's what to do. EterPythonLib PythonWindow.h Add virtual BOOL OnMouseWheel(int nLen); after like virtual BOOL OnMouseMiddleButtonUp(); In PythonWindow.cpp add the following function: BOOL CWindow::OnMouseWheel(int nLen) { long lValue; return PyCallClassMemberFunc(m_poHandler, "OnMouseWheel", Py_BuildValue("(i)", nLen), &lValue) && 0 != lValue; } In PythonWindowManager.h add bool RunMouseWheel(int nLen); after like void RunMouseMiddleButtonUp(long x, long y); In PythonWindowManager.cpp add the definition somewhere: bool CWindowManager::RunMouseWheel(int nLen) { CWindow* pWin = GetPointWindow(); while (pWin) { if (pWin->OnMouseWheel(nLen)) return true; pWin = pWin->GetParent(); } return false; } UserInterface In PythonApplicationEvent.cpp override the following function: void CPythonApplication::OnMouseWheel(int nLen) { UI::CWindowManager& rkWndMgr = UI::CWindowManager::Instance(); if (!rkWndMgr.RunMouseWheel(nLen)) { CCameraManager& rkCmrMgr = CCameraManager::Instance(); if (CCamera* pkCmrCur = rkCmrMgr.GetCurrentCamera()) pkCmrCur->Wheel(nLen); } } Then root/ui.py and find ScrollBar class and add this function to it: def OnMouseWheel(self, nLen): if nLen > 0: self.OnUp() return True elif nLen < 0: self.OnDown() return True return False But you can use OnMouseWheel everywhere to listen to scrolling. Good luck!
    1 point
  33. M2 Download Center Download Here ( Internal ) VegaS 2016 Characteristics: Description: It's a teleport ring quest You do the settings here: And on each error message you have a "Go back" button: Link download: [Hidden Content] How to use: Just make the configs and translations and you're done Another picture: Example of map1 configs:
    1 point
  34. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) /reload c doesn't work properly for client-side. Even if you re-open client. Bug:
    1 point
  35. M2 Download Center Download Here ( Internal ) Github
    1 point
  36. M2 Download Center Download Here ( Internal ) Download Here ( GitHub )
    1 point
  37. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) Github * This version is compatible with GF 21.1.3.0 Settings.json: * I'm using the current settings for convert to 2014 item and mob proto. Password: black
    1 point
  38. M2 Download Center Download Here ( Internal ) [Hidden Content]
    1 point
  39. M2 Download Center Download Here ( Internal ) Download Here Useful to create in-game renders
    1 point
  40. Thanks for the release, that's a good idea but instead of using metin2 TextFileLoader, you could use rapidjson or similar, which would be much faster and organized. Also, I would add a check of rank: [Hidden Content] Since you use it as an index of a vector and you get that value from a parser, you should be careful with it, otherwise, they'll get a crash core.
    1 point
  41. GitHub Repository: [Hidden Content] Preview: [Hidden Content]
    1 point
  42. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) I know this is very old idea but it's better than quest flag methods etc.
    1 point
  43. M2 Download Center Download Here ( Internal ) [Hidden Content] [Hidden Content] VT: [Hidden Content]
    1 point
  44. 1 point
  45. M2 Download Center Download Here ( Internal ) //Find in PythonNetworkStreamModule.cpp: PyObject* netGetBettingGuildWarValue(PyObject* poSelf, PyObject* poArgs) { char* szName; if (!PyTuple_GetString(poArgs, 0, &szName)) return Py_BuildException(); CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance(); return Py_BuildValue("i", rkNetStream.EXPORT_GetBettingGuildWarValue(szName)); } ///Add; static const char* ServerIPVName[4][2] = { {"192.168.0.100", "BETA-1"}, {"76.342.12.12", "BETA-2"}, {"145.12.231.12", "BETA-3"}, {"192.31.52.69", "BETA-4"} }; static unsigned int ServerPORT[] = {{13000},{1600},{1900},{21000},{11002},{13000}}; PyObject* netGetServer_IPNAME(PyObject* poSelf, PyObject* poArgs) { return Py_BuildValue("ssssssss", ServerIPVName[0][0], ServerIPVName[0][1], ServerIPVName[1][0], ServerIPVName[1][1], ServerIPVName[2][0], ServerIPVName[2][1], ServerIPVName[3][0], ServerIPVName[3][1] ); } PyObject* netGetServer_PORT(PyObject* poSelf, PyObject* poArgs) { return Py_BuildValue("iiiiii", ServerPORT[0],ServerPORT[1],ServerPORT[2],ServerPORT[3],ServerPORT[4],ServerPORT[5]); } //Find: { "SendOnClickPacket", netOnClickPacket, METH_VARARGS }, ///Add; { "GetServer_IPNAME", netGetServer_IPNAME, METH_VARARGS }, { "GetServer_PORT", netGetServer_PORT, METH_VARARGS }, Example ServerInfo.py import net (sv1_ip, sv1_name, sv2_ip, sv2_name, sv3_ip, sv3_name, sv4_ip, sv4_name) = net.GetServer_IPNAME() (ch1_port, ch2_port, ch3_port, ch4_port, auth_port, mark_port) = net.GetServer_PORT() CH_1_NAME = "|cFF00FFFF|hCH1" CH_2_NAME = "|cFF00FFFF|hCH2" CH_3_NAME = "|cFF00FFFF|hCH3" CH_4_NAME = "|cFF00FFFF|hCH4" STATE_NONE = "|cFFFF0000|hKAPALI" STATE_DICT = { 0 : "|cFFFF0000|hKAPALI", 1 : "|cff00ff00|hNORMAL", 2 : "|cff00ff00|hYOGUN", 3 : "|cff00ff00|hDOLU" } SERVER01_CHANNEL_DICT = { 1:{"key":11,"name":CH_1_NAME,"ip":sv1_ip,"tcp_port":ch1_port,"udp_port":ch1_port,"state":STATE_NONE,}, 2:{"key":12,"name":CH_2_NAME,"ip":sv1_ip,"tcp_port":ch2_port,"udp_port":ch2_port,"state":STATE_NONE,}, 3:{"key":13,"name":CH_3_NAME,"ip":sv1_ip,"tcp_port":ch3_port,"udp_port":ch3_port,"state":STATE_NONE,}, 4:{"key":14,"name":CH_4_NAME,"ip":sv1_ip,"tcp_port":ch4_port,"udp_port":ch4_port,"state":STATE_NONE,}, } SERVER02_CHANNEL_DICT = { 1:{"key":11,"name":CH_1_NAME,"ip":sv2_ip,"tcp_port":ch1_port,"udp_port":ch1_port,"state":STATE_NONE,}, 2:{"key":12,"name":CH_2_NAME,"ip":sv2_ip,"tcp_port":ch2_port,"udp_port":ch2_port,"state":STATE_NONE,}, 3:{"key":13,"name":CH_3_NAME,"ip":sv2_ip,"tcp_port":ch3_port,"udp_port":ch3_port,"state":STATE_NONE,}, 4:{"key":14,"name":CH_4_NAME,"ip":sv2_ip,"tcp_port":ch4_port,"udp_port":ch4_port,"state":STATE_NONE,}, } SERVER03_CHANNEL_DICT = { 1:{"key":11,"name":CH_1_NAME,"ip":sv3_ip,"tcp_port":ch1_port,"udp_port":ch1_port,"state":STATE_NONE,}, 2:{"key":12,"name":CH_2_NAME,"ip":sv3_ip,"tcp_port":ch2_port,"udp_port":ch2_port,"state":STATE_NONE,}, 3:{"key":13,"name":CH_3_NAME,"ip":sv3_ip,"tcp_port":ch3_port,"udp_port":ch3_port,"state":STATE_NONE,}, 4:{"key":14,"name":CH_4_NAME,"ip":sv3_ip,"tcp_port":ch4_port,"udp_port":ch4_port,"state":STATE_NONE,}, } SERVER04_CHANNEL_DICT = { 1:{"key":11,"name":CH_1_NAME,"ip":sv4_ip,"tcp_port":ch1_port,"udp_port":ch1_port,"state":STATE_NONE,}, 2:{"key":12,"name":CH_2_NAME,"ip":sv4_ip,"tcp_port":ch2_port,"udp_port":ch2_port,"state":STATE_NONE,}, 3:{"key":13,"name":CH_3_NAME,"ip":sv4_ip,"tcp_port":ch3_port,"udp_port":ch3_port,"state":STATE_NONE,}, 4:{"key":14,"name":CH_4_NAME,"ip":sv4_ip,"tcp_port":ch4_port,"udp_port":ch4_port,"state":STATE_NONE,}, } REGION_NAME_DICT = { 0 : "", } REGION_AUTH_SERVER_DICT = { 0 : { 1 : { "ip":sv1_ip, "port":auth_port, }, 2 : { "ip":sv2_ip, "port":auth_port, }, 3 : { "ip":sv3_ip, "port":auth_port, }, 4 : { "ip":sv4_ip, "port":auth_port, }, } } REGION_DICT = { 0 : { 1 : { "name" :sv1_name, "channel" : SERVER01_CHANNEL_DICT, }, 2 : { "name" :sv2_name, "channel" : SERVER02_CHANNEL_DICT, }, 3 : { "name" :sv3_name, "channel" : SERVER03_CHANNEL_DICT, }, 4 : { "name" :sv4_name, "channel" : SERVER04_CHANNEL_DICT, }, }, } MARKADDR_DICT = { 10 : { "ip" : sv1_ip, "tcp_port" : mark_port, "mark" : "10.tga", "symbol_path" : "10", }, 20 : { "ip" : sv2_ip, "tcp_port" : mark_port, "mark" : "20.tga", "symbol_path" : "20", }, 30 : { "ip" : sv3_ip, "tcp_port" : mark_port, "mark" : "30.tga", "symbol_path" : "30", }, 40 : { "ip" : sv4_ip, "tcp_port" : mark_port, "mark" : "40.tga", "symbol_path" : "40", }, }
    1 point
  46. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) An event handler without thread and sleep for client source. You can add many things etc. Example: EventHandler::Instance().AddEvent("exampletest",[]() { IAbstractChat::GetSingleton().AppendChat(CHAT_TYPE_INFO, "Test Message"); }, 5, 10 ); // ten time, delay 5 sec.
    1 point
  47. reformatted + passable hex value as arg [Hidden Content]
    1 point
  48. M2 Download Center Download Here ( Internal ) Heya, as title says it's party dice system self written (without CHAT_TYPE_DICE_INFO, it's up to you) [Hidden Content] (sry for laggs - "wooden pc" ^^) You can test possibility of same score there: [Hidden Content] char_battle.cpp //find if (ch->GetParty()) ch = ch->GetParty()->GetNextOwnership(ch, GetX(), GetY()); //replace with if (ch->GetParty()) { ch = ch->GetParty()->GetNextOwnership(ch, GetX(), GetY()); #ifdef __ENABLE_DICE_SYSTEM__ ch = ch->GetParty()->Dice(ch, GetX(), GetY(), item->GetName()); #endif } party.cpp //at the end of file add #ifdef __ENABLE_DICE_SYSTEM__ LPCHARACTER CParty::Dice(LPCHARACTER ch, long x, long y, const char * szName) //item name { for (TMemberMap::iterator it = m_memberMap.begin(); it != m_memberMap.end(); ++it) { if (it->second.pCharacter->GetDesc() && DISTANCE_APPROX(it->second.pCharacter->GetX() - x, it->second.pCharacter->GetY() - y) < PARTY_DEFAULT_RANGE) { ChatPacketToAllMember(CHAT_TYPE_DICE_INFO, "|cffffe6ba*** Rolling for the following item: %s ***", szName); while (1) { LPCHARACTER pkWinner; int iDice = 0; int iDraw = 0; for (TMemberMap::iterator it = m_memberMap.begin(); it != m_memberMap.end(); ++it) if (it->second.pCharacter->GetDesc() && DISTANCE_APPROX(it->second.pCharacter->GetX() - x, it->second.pCharacter->GetY() - y) < PARTY_DEFAULT_RANGE) { int iScore = number(1, 10000); if (iScore == iDice) iDraw == iScore; else if (iDice == 0 || iScore > iDice) { pkWinner = it->second.pCharacter; iDice = iScore; } ChatPacketToAllMember(CHAT_TYPE_DICE_INFO, "|cffffe6ba*** ->\t\t\t\t\t%s - Dice score: %d ***", it->second.pCharacter->GetName(), iScore); } if (iDice != iDraw) { ChatPacketToAllMember(CHAT_TYPE_DICE_INFO, "|cffbb00ff*** Winner of the item %s is: %s ***", szName, pkWinner->GetName()); return pkWinner; } else { ChatPacketToAllMember(CHAT_TYPE_DICE_INFO, ""); ChatPacketToAllMember(CHAT_TYPE_DICE_INFO, "|cffffe6ba*** Rolling again for the following item: %s ***", szName); } } } } return ch; } #endif party.h //find void P2PSetMemberLevel(DWORD pid, BYTE level); //or bool IsPartyInDungeon(int mapIndex); //add bellow #ifdef __ENABLE_DICE_SYSTEM__ LPCHARACTER Dice(LPCHARACTER ch, long x, long y, const char * szName); #endif length.h enum EChatType { CHAT_TYPE_TALKING, /* 그냥 채팅 */ CHAT_TYPE_INFO, /* 정보 (아이템을 집었다, 경험치를 얻었다. 등) */ CHAT_TYPE_NOTICE, /* 공지사항 */ CHAT_TYPE_PARTY, /* 파티말 */ CHAT_TYPE_GUILD, /* 길드말 */ CHAT_TYPE_COMMAND, /* 일반 명령 */ CHAT_TYPE_SHOUT, /* 외치기 */ CHAT_TYPE_WHISPER, CHAT_TYPE_BIG_NOTICE, CHAT_TYPE_MONARCH_NOTICE, #ifdef __ENABLE_DICE_SYSTEM__ CHAT_TYPE_DICE_INFO, #endif CHAT_TYPE_MAX_NUM };
    1 point
  49. You change windows configuration from 32bits to 64bits and that dll not work on 64bits. Here you have a version which work on 64 bits: [Hidden Content]
    1 point
  50. M2 Download Center Download Here ( Internal )
    1 point
×
×
  • 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.