Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 04/23/24 in all areas

  1. Download Updated at 2023.08.05. Alternative download links: Client & Serverfiles + VDI + Extension Pack [40250] Reference Serverfile + Client + Src [15 Available Languages] My goal was to make a reference r40250 serverfile as official as possible compared to what GF had back when their files got leaked in early 2014. No new systems added, only bug fixes. While I spent several hours testing, there may still be bugs. Please report bugs to me so I can fix them in the future, I want to make this project as bug free as possible. Available languages: EN/DE/HU/FR/CZ/DK/ES/GR/IT/NL/PL/PT/RO/RU/TR Please read Languages.txt to learn how to change the default EN language. SSH for VM: root/123456789 MySQL: root/123456789 Ingame: admin/123456789 Aliases and it's commands: start cd /usr/metin2/server && sh start.sh close cd /usr/metin2/server && sh close.sh clean cd /usr/metin2/server && sh clean.sh backup cd /usr/metin2/server && sh backup.sh questcompile cd /usr/metin2/server/share/locale/english/quest && python2.7 make.py dbclean cd /usr/metin2/src/server/db/src && gmake clean dbdep cd /usr/metin2/src/server/db/src && gmake dep dbcompile cd /usr/metin2/src/server/db/src && gmake -j9 gameclean cd /usr/metin2/src/server/game/src && gmake clean gamedep cd /usr/metin2/src/server/game/src && gmake dep gamecompile cd /usr/metin2/src/server/game/src && gmake -j9 Please read Changelog.txt to find more about the changes I made. Special thanks to: @Mali for the clean and updated client & server src files. @Sanchez for the 2014 base client. @Veltor88 for the translate.lua pack. @Fazer for the locale_string pack I made a little video about installing the serverfile (vm) and changing the language: PS: I know it's pretty late in 2021 but better than ever Sincerely, TMP4
    10 points
  2. Hello, i was searching like 2 years from Metin2's Closed Beta and found something. If someone interested, they can check the links below. I found some Korean Metin2 Cafe's from 2004: Naver 2004 Metin2 Cafe Daum 2004 Metin2 Cafe and more.. But if you want, you can search for. I found the Metin2.exe from 16.07.2004 on ftp.metin2.co.kr. I think its not working but if you wanna you can check. 16.07.2004 Metin2.exe Virustotal Magazine From 2003 METIN2 FIRST BETA (Magazine from 2003 February. It contains Metin2 photos. Its SO SO DIFFERENT) Article from 2003 METIN2 (Article from Metin2 2003.) Metin2 Beta test appeal (Lol someone won the Metin2 beta test) Some screenshots from metin2 cafes 2004: (Sura's first character model. He had mask before. But they removed after like 2-3 patch. I read from cafe. And he's holding the first level 1 sword model.) (First level 1 weapon models. They're some different.) (This is oldest photo ive ever seen from 3.closed beta. Its from 2004 March) And more...... If I add the all contents, i cant finish. So, please check manually from the cafe links.
    4 points
  3. This will fix the use of if (window->IsType(UI::CBar3D::Type())) Example SetColor of Bar3D is not working because of this bug This bug is still available on official [Hidden Content]
    4 points
  4. Hello community, I saw many tutorials and they all didn't work for me, many of them involved completely installing llvm9 which doesn't make sense since we will only use clang++90. Downloading a vdi with 50gb or more to compile your source is not something I advise, do a clean install of FreeBSD and follow this guide. I got several ways, I will share the easiest way to understand and use. In this guide I used FreeBSD 12.3 but I believe it will work on any version from 12 to 13. Step by Step [Hidden Content] Done! Now you can compile your source using clang++90
    4 points
  5. Download Center Google Drive or Metin2 Download The files are uploaded to Google Drive. Hello! Im here again. I made more changes and im going to share it with you. This V2 have more changes, take a look: Currently, I dont know any problem with the systems/modifications what I added, but if something is missing, please let me know and I'll try to add it/fix it. Datas: Last but not least, have a nice day.
    3 points
  6. Soon I want to release another version of myslq8 and directx9 files with fixes and additions. Should I add some systems too? I'm mainly thinking about the now rather basic systems such as mounts, cheque, etc. I'm thinking about talismans and the elemental system, but for now I just fixed type 33 and use these slots for experience rings, etc.
    3 points
  7. Patch v24.1.1.0: *New easter stuff. [Hidden Content] [Hidden Content] MEGA or M2DL
    3 points
  8. 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
    3 points
  9. [Hidden Content] There's a readme inside. Tested on 13.1 and 13.2. Probably won't work on 14.x
    3 points
  10. Download VDI ( FULLY UPDATED ) Alternative download links → SRC TAR (OUTDATED) or Client VS22 Source or CLIENT TMP4 BASE - Fully updated Updates List : #define ENABLE_AUTODETECT_INTERNAL_IP #define ENABLE_PROXY_IP #define ENABLE_PORT_SECURITY #define _IMPROVED_PACKET_ENCRYPTION_ // ��Ŷ ��ȣȭ ���� #define ENABLE_RING_OF_SECRETS #define __SKILL_COLOR_SYSTEM__ // Skill color system //#define __AUCTION__ #define __PET_SYSTEM__ #define __UDP_BLOCK__ #define ENABLE_ANTI_EXP #define BL_PARTY_POSITION #define __SEND_TARGET_INFO__ #define ENABLE_SEND_TARGET_INFO_EXTENDED #define ENABLE_WHISPER_RENEWAL #define ENABLE_DUEL_EFFECT #define BL_AUTOMATIC_OXEVENT #define ENABLE_EMOJI_SYSTEM #define __BL_ENABLE_PICKUP_ITEM_EFFECT__ #define ENABLE_PM_IN_GLOBAL_CHAT #define ENABLE_GLOBAL_CHAT #define __BL_KILL_BAR__ GAMEPLAY READY. Run & Enjoy DISCORD SERVER ( FOR QUESTIONS & IMPROVEMENTS ) Discord
    2 points
  11. M2 Download Center Download Here ( Internal ) Hi, I don't think I have to tell much about this. It'll look like the official one, some code is c&p from the official root files. Most of the own written code is NOT like the offical one. I added a new python module ("renderTarget"), so you don't need methods which officials use, like this: "playerm2g2.MyShopDecoShow( True )" You are able to display more than one render target at the same time. If you want to know more, take a look at the code. If there are any bugs, just message me. Download: [Hidden Content] Password: Cxl.Services
    2 points
  12. First version of METIN2 - (2003 February like 1.Closed Beta)
    2 points
  13. A TV program, they introduce Metin2 Look at 33:00 and 38:00 around, they introducing Metin2 on TV. I was shocked because i didnt saw these maps before on this video. And events too. Can someone clip it and share to here? LOL i found 1 video too TV introduction 2 - Starts at 45:00 TV introduction 3 Starts at 25:30
    2 points
  14. Thanks for reply. I found too many things but i did not put them. If I have time, i will put the more screenshots with description and extra 1 video from 2004 Korean game introduction on TV
    2 points
  15. 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
  16. Download Alternative download links → GG Drive Hello all, I decided to offer this package for free to someone who really needs it. The archive contains everything you need to modify this template Careful! The interface is PSD only You can contact me anytime if you want to edit something Have fun!
    2 points
  17. INTRODUCTION & PROBLEM Hello, today we will fix a few errors, especially the error that caused the core down by giving an unexpected negative (-) arg (number) in the commands (Example; /mob 101 -1), and we will also regulate the use of "ChatPacket" in this functions. WHY ? GMs are already part of the team, you may ask why we need this, you are right, but do not forget that a GM who does not have coding knowledge may accidentally trigger this, let's not leave it to chance. SOLUTION The process we will do is simple, it will be enough to make sure that the given arg value is within the range we want, let's get started. [Hidden Content]
    2 points
  18. Hi, By pressing SHIFT + RIGHT CLICK on the items eligible for sale, an interface will appear showing you how much money you will receive and how many items you have selected. The selected items will have a special icon indicating that they have been selected. More information can be found in the README. [Hidden Content] [Hidden Content]
    2 points
  19. Download Alternative download links → G-Drive Hello! I was searching for it back in the days but i never found it, so i share it with you. Gif about it:
    2 points
  20. [Hidden Content] [Hidden Content] You must add these: Reversed from 22.2.7.0 Official Binary. Thanks to @ Owsap You can disable the premium requirement. Edit the CanPickUpItem function according to your server.
    2 points
  21. M2 Download Center Download Here ( Github Backup ) - Download Here ( GitHub ) Download Here ( VM 9.2 ) or Download Here ( VM 12 ) Use this source: [Hidden Content] or [Hidden Content]
    2 points
  22. just istalled and I have the ''connect: Operation timed out'' in putty. this in db SYSERR: Apr 6 21:06:02 :: ChildLoop: AsyncSQL: query failed: Data truncated for column 'size' at row 1 (query: replace into mob_proto (vnum, name, locale_name, type, rank, battle_type, level, size, ai_flag, setRaceFlag, setImmuneFlag, on_click, empire, drop_item, resurrection_vnum, folder, st, dx, ht, iq, damage_min, damage_max, max_hp, regen_cycle, regen_percent, exp, gold_min, gold_max, def, attack_speed, move_speed, aggressive_hp_pct, aggressive_sight, attack_range, polymorph_item, enchant_curse, enchant_slow, enchant_poison, enchant_stun, enchant_critical, enchant_penetrate, resist_sword, resist_twohand, resist_dagger, resist_bell, resist_fan, resist_bow, resist_fire, resist_elect, resist_magic, resist_wind, resist_poison, dam_multiply, summon, drain_sp, mob_color, skill_vnum0, skill_level0, skill_vnum1, skill_level1, skill_vnum2, skill_level2, skill_vnum3, skill_level3, skill_vnum4, skill_level4, sp_berserk, sp_stoneskin, sp_godspeed, sp_deathblow, sp_revive) values (101, "??", "Wild Dog", 0, 0, 0, 1, ch1 socket_connect: HOST 188.212.***.***:15000, could not connect. SYSERR: Apr 6 21:11:09 :: heart_idle: losing 75 seconds. (lag occured) where to check? DISCORD: saaice
    2 points
  23. This tutorial is going to teach you how to compile, run and configure a server on Windows. I needed something like this a few days ago and since it doesn't exist, I decided to make it There is no addition or modification in the source or client (except for small bonuses). 0. Beginning At the end of the topic there will be two links where you will need to download: Client + Server + Source MySQL The client is based on the Metin2 Client fur r40250, I just edited it to have the classic format. Regardless the Server and Client source. 1. The files We will need to download the following files: Visual Studio Community 2019 - In order to compile both the server and the binary, we're going to need this MySQL - Connect and create the database 2. Installing The installation is easy enough for me to consider that I don't need to spend much time on this, however I hope this two pictures will facilitate (more) on what you need to do: Visual Studio Community Note: You actually just need the MSVC v142, C++ CMake, C++ ATL, C++ MFC and C++/CLI for this to work MySQL: Warning: In this tutorial we're going to use Mysql Server 5.7.33 X64 but you can (must) upgrade it to 8.0 2.1 Installing Server / Client / Database Here you need to pay attention because there's a limitation: Warning: You must unzip the file "dev" on C:\ If you don't want, follow the Mali61's topic and you need to create manually the symlinks for each core on the server. This is how it should be. Client: There isn't much to say, in pack/ you already have root and locale_de unpacked but since this is going to be localhost only, you don't need to change nothing on the serverinfo.py Bonus: I translated the client to English, just because Database: 1) Windows Key + R and write services.msc 2) Search for MySQL57 (or the version you installed) and click on Stop Since Im portuguese, yeah 3) Go to directory C:\ProgramData\MySQL 4) In the folder MySQL Server 5.7 (or the version you installed) and in the folder Data, paste the files you previously downloaded and unziped from mysql_dev.rar 5) On services.msc, start the MySQL process Back it again with the portuguese Server: These images are referenced in each core's CONFIG and conf.txt, respectively where the location is on directory C:\dev\2. Server. Warning: Don't forget to change the MySQL's user password! You need to put the same password you had when installing the MySQL. 3. Compile Server / Client Source There is nothing introductory since it is something very simple that you will be able to. Server: It's quite simple, to build the server source, we just need to open the file dev_server.sln which is located in C:\dev\1. Svn\Server\build You can build all at once or separately. Bonus: I linked the files to go to the directory C:\dev\2. Server\share\ so you don't need to c&p multiple times. Client: Same as before, open the dev_solution.sln which is located in C:\dev\1. Svn\Client Since I have a good computer, I enabled the multi-processor compilation option. If your computer is very slow while you are compiling, I suggest you deactivate by going to Properties in all the builds. 4. Starting the Server On the main directory of the server (C:\dev\2. Server) you'll have 2 bat files: start.bat* - As the name says, it will start the server clear.bat - It will clear all the server's logs * I forgot the make it dynamic so if you don't want to have on the C:\dev, you'll need to change the directory. Execute start.bat and it will show up first the db.exe, then auth's game.exe and last channel1's game.exe And there you have it, your server is now online! 5. Debug You can debug by going to Debug -> Start New Instance Bonus: I linked everything so you don't have to worry about anything 5. Credits I like to say that I don't know anything about anything and as such, everything here has its credits. @Mali61 - Client/Server compilable with VS2019 (Server & Client) @Karbust - If it wasn't for him, I couldn't have done this ThatGuyPT - The base was from his Windows Serverfiles 6. FAQ Q: Why didn't you use xampp instead of MySQL? A: At the moment I use MySQL a lot even outside of Metin2, so it makes more sense to me that it be this way. However, it is exactly the same, especially on localhost. Q: Can I migrate the source to FreeBSD? A: Yes, you can! As long as you have cmake configured, you can distribute to FreeBSD and use it there. Q: What is the id and password to enter the game? (I put this question because I know there will be someone asking this) A: You can create an account in the database, but you can use id: admin pw: 123 7. Links dev - mysql_dev All In One (Internal) If you have any questions that I can answer, feel free to write a post here.
    2 points
  24. Preview: [Hidden Content] The system is easy to implent. *For the affect icon to be seen in the affectshower you can add : Then extend it with the steps @ uiAffectShower.py. * If you have extended sockets before, You can make modifications to get rid of the value0 necessity. * You can skip (Optional) steps. Download: MEGA or M2DL
    2 points
  25. Download Center Internal Mega.nz GitHub Hi devs, I wanted to add this feature to my mainlines, being that this system is now considered standard in all servers. I downloaded the public version that emulated how the Pet System worked, but I decided to make my own (and am sharing it so you can test it for me as well) In game pic: Pros: Fewer lines of code (50 or so, versus 1200+ in the public system) By not using apply_type and value to assign the monster to ride, we will not lose a usable bonus Being horse-based, trivially it is code that has been tested for years. If you are on the mount and warp, you will still be on the mount at login (being that we use EnterHorse) You can take advantage of the horse name system with a few modifications You only get mount bonuses if you are riding it and not while it is summoned Cons: I couldn't find any Thanks to @ HFWhite for testing. You should at least have the mount costume system.
    2 points
  26. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) Now you can open shops directly. There is no need to adjust the coordinates when adding a new shop. Automatically adjusted according to the shop names.(remote_shop_names.txt) For new shop: Special thanks to @Tatsumaru for taskbar Icons :
    2 points
  27. GF Protos 24.0.4.0 Alternative download links → MEGA I did not include the item proto mask types and sub types.
    2 points
  28. BR v24.0.3. Root Meta Alternative download links → M2DL GF v24.0.4. Root Meta Alternative download links → M2DL
    2 points
  29. Patch v24.0.4.0: *contains whatever they added Download or M2DL
    2 points
  30. 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]
    2 points
  31. Download Alternative download links → Mega Hello Metin2 Dev. I'm here to present a GM Affect system. I was bored a few days ago and i wanted to create a different type of GM Symbol Affect for each grade, so i did it and decided to share it with you. Remember, the Symbol affects you see on this gif aren't mine so i won't share them, they are made from @ Ridack.. Hope you enjoy and like it. How does it work? You simply need to change the localization of the files on localeinfo.py -> Root. Here is a simple gif on how it is.
    2 points
  32. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) This is the Level System and Point's for Yohara 1. The maps are empty, in essence it's the system, (without mobs). 2. If you want to add the monsters on the maps you can contact me and, I add the monsters and put your credits, the truth was I was lazy :'(. 3. I can upload updates if you need it. 4. In essence if you are level 1 or higher, you become "Conqueror", otherwise you are a normal player, your job is simply to add that after Hydra, though, I'll add it later. 5. At the moment it calls the normal experience table, since I have not reviewed the officer's experience tables, but if you indicate the tables, I can modify the code and add that part. Images: In GitHub REAMDE. Link: [Hidden Content] You will need a some visual parts, you can with: [Hidden Content] I will continue making updates with information by Official Servers . The system is working properly.
    2 points
  33. GF 23.3.5 Root Meta Alternative download link → M2DL BR v24.0.0. Root Meta Alternative download link → M2DL
    2 points
  34. 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]
    2 points
  35. 23.1.4 Root Meta Alternative download links → Mega 23.2.5 Root Meta Alternative download links → Mega
    2 points
  36. I put together an AIO (all in one) package for those who might need. Packs 23.1.4 Protos 23.1.2 Root Metadata & Dumped Binary 23.1.2 I also took the liberty to add the `data` folder for monsters and pc motions for the server. And, if you are interested in finding guild marks, I dumped them in the `mark/` folder. Folder Structure External Link MEGA: [Hidden Content] M2DL: [Hidden Content] Special thanks to those people who helped in making this archive.
    2 points
  37. Hello community, I like to use level_limit and type_limit because the percentage works from 1% to 100% after studying how I could check the player level and the level defined in level_limit. In the example, the level limit is 50, so player level below (35) and 15 level above (65) can drop. mob_drop_item.txt (example): Group Metin_do_Combate { Level_limit 50 Mob 8002 Type limit 1 101051 1 100 -- Cofre das Habilidades 2 101001 1 100 -- Pergaminho Esverdeado 3 71151 5 100 -- Feitiço Verde } @src/game/item_manager.cpp [Hidden Content] Thanks to @ msnas and @ Intel
    2 points
  38. Summary Thread Last Update → Monday 1 April 2024 Powered by Core X Basic Tutorials / Beginners 27 Topics
    2 points
  39. How to create a Metin2 private server with Metin2 Project - Français Introduction I want to offer Metin2 Project as an alternative to stable and functional server files. Metin2 Project is shaped according to my ideas and my desires, my only limit is my imagination. All changes and fixes to Metin2 Project are made with defines. You can suggest ideas to me but I am free to refuse them without any justification. Summary Important information to know about Metin2 Project. Initial working base => @ Mali & @ TMP4 => TMP4's Project DB & GAME Ready for FreeBSD 32 Bit & 64 Bit Ready for MySQL Server 8 Ready for Microsoft Visual Studio 2022 EN DE HU FR CZ DK ES GR IT NL PL PT RO RU TR Avalable languages Test Environment When developing the project, the following configuration was used. FreeBSD 13.1 64 Bit MySQL Server 8.0.29 LLVM-Devel 15.0.D20220328_1 GDB 11.2 Makedepend 1.0.6,1 GMake 4.3_2 Python 2.7.18_1 Microsoft Visual Studio 2022 Access Credentials No database login credentials are provided. You must set up your own user to administer and manage your Metin2 Project server. The associated tutorial, allows you to create your login credentials to the database, you should be able to get there... Finally, I hope for you. Metin2 Accounts User: playerone User: playertwo User: playerthree User: playerfour User: playefive User: playersix User: playerseven User: playereight User: playernine User: playerten Password: player Changelogs 2022.XX.XX.0001 Spoiler XXX (In Dev, Use TMP4 Projet) Downloads Download the project and enjoy! No virtual machine is provided, you can create it yourself using the associated tutorial. 2022.XX.XX.0001 => Server + Client (In Dev, Use TMP4 Projet) Made With and Metin2 Project
    2 points
  40. Download Metin2 Download or Mega Hello everyone! Ofc, without the base tutorial, i cannot search for it in a random metin source. The base tutorial: Thank You again, masodikbela!!! So here is my stuffs: Proofs: __VT LINK__
    2 points
  41. M2 Download Center Download Here ( Internal ) Hey guyz, I just made a lil tool for the community. You can edit your item and mob_proto.txt with as a table. Put those txt files next to the program. There's some kinda run query function in it. You can run the simplest queries with it like "update Level*10" which will multiplicate all the Level values by 10. Only update function is available yet and without where. Operators you can use: +, -, *, /, = Download
    2 points
  42. M2 Download Center Download Here ( Internal ) Download
    2 points
  43. M2 Download Center Download Here ( Internal ) // If you use my special storage, and ofc if you want add "ACMD(do_sort_special_storage);" too. ^ //////////// CMD.CPP //////////// Search : ACMD(do_stun); Add after : #ifdef ENABLE_SORT_INVENTORY ACMD(do_sort_items); ACMD(do_sort_special_storage); #endif Search: { "notice", do_notice, 0, POS_DEAD, GM_LOW_WIZARD }, Add after : #ifdef ENABLE_SORT_INVENTORY { "click_sort_items", do_sort_items, 0, POS_DEAD, GM_PLAYER }, { "click_sort_special_storage", do_sort_special_storage, 0, POS_DEAD, GM_PLAYER }, #endif //////////// CMD_GNERAL.CPP //////////// ADD THIS : #ifdef ENABLE_SORT_INVENTORY ACMD (do_sort_items) { if (ch->IsDead() || ch->GetExchange() || ch->IsShop() || ch->IsOpenSafebox() || ch->IsCubeOpen()) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You can't sort your inventory with those windows open.")); return; } int lastSortInventoryPulse = ch->GetSortInventoryPulse(); int currentPulse = thecore_pulse(); if (lastSortInventoryPulse > currentPulse) { int deltaInSeconds = ((lastSortInventoryPulse / PASSES_PER_SEC(1)) - (currentPulse / PASSES_PER_SEC(1))); int minutes = deltaInSeconds / 60; int seconds = (deltaInSeconds - (minutes * 60)); return; } for (int i = 0; i < INVENTORY_MAX_NUM; ++i) { LPITEM item = ch->GetInventoryItem(i); if(!item) continue; if(item->isLocked()) continue; if(item->GetCount() == g_bItemCountLimit) continue; if (item->IsStackable() && !IS_SET(item->GetAntiFlag(), ITEM_ANTIFLAG_STACK)) { for (int j = i; j < INVENTORY_MAX_NUM; ++j) { LPITEM item2 = ch->GetInventoryItem(j); if(!item2) continue; if(item2->isLocked()) continue; if (item2->GetVnum() == item->GetVnum()) { bool bStopSockets = false; for (int k = 0; k < ITEM_SOCKET_MAX_NUM; ++k) { if (item2->GetSocket(k) != item->GetSocket(k)) { bStopSockets = true; break; } } if(bStopSockets) continue; BYTE bAddCount = MIN(g_bItemCountLimit - item->GetCount(), item2->GetCount()); item->SetCount(item->GetCount() + bAddCount); item2->SetCount(item2->GetCount() - bAddCount); continue; } } } } ch->SetNextSortInventoryPulse(thecore_pulse() + PASSES_PER_SEC(60)); } ACMD (do_sort_special_storage) { if (ch->IsDead() || ch->GetExchange() || ch->IsShop() || ch->IsOpenSafebox() || ch->IsCubeOpen()) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You can't sort your inventory with those windows open.")); return; } int lastSortSpecialStoragePulse = ch->GetSortSpecialStoragePulse(); int currentPulse = thecore_pulse(); if (lastSortSpecialStoragePulse > currentPulse) { int deltaInSeconds = ((lastSortSpecialStoragePulse / PASSES_PER_SEC(1)) - (currentPulse / PASSES_PER_SEC(1))); int minutes = deltaInSeconds / 60; int seconds = (deltaInSeconds - (minutes * 60)); ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You can sort your inventory again in %02d seconds."), seconds); return; } for (int m = 0; m < 3; m++) { for (int i = 0; i < SPECIAL_INVENTORY_MAX_NUM; ++i) { LPITEM item; switch(m) { case 0: item = ch->GetUpgradeInventoryItem(i); break; case 1: item = ch->GetBookInventoryItem(i); break; case 2: item = ch->GetStoneInventoryItem(i); break; default: item = ch->GetUpgradeInventoryItem(i); break; } if(!item) continue; if(item->isLocked()) continue; if(item->GetCount() == g_bItemCountLimit) continue; if (item->IsStackable() && !IS_SET(item->GetAntiFlag(), ITEM_ANTIFLAG_STACK)) { for (int j = i; j < SPECIAL_INVENTORY_MAX_NUM; ++j) { LPITEM item2; switch(m) { case 0: item2 = ch->GetUpgradeInventoryItem(j); break; case 1: item2 = ch->GetBookInventoryItem(j); break; case 2: item2 = ch->GetStoneInventoryItem(j); break; default: item2 = ch->GetUpgradeInventoryItem(j); break; } if(!item2) continue; if(item2->isLocked()) continue; if (item2->GetVnum() == item->GetVnum()) { bool bStopSockets = false; for (int k = 0; k < ITEM_SOCKET_MAX_NUM; ++k) { if (item2->GetSocket(k) != item->GetSocket(k)) { bStopSockets = true; break; } } if(bStopSockets) continue; BYTE bAddCount = MIN(g_bItemCountLimit - item->GetCount(), item2->GetCount()); item->SetCount(item->GetCount() + bAddCount); item2->SetCount(item2->GetCount() - bAddCount); continue; } } } } } ch->SetNextSortSpecialStoragePulse(thecore_pulse() + PASSES_PER_SEC(60)); } #endif //////////// char.cpp //////////// Search : m_iSyncHackCount = 0; Add after: #ifdef ENABLE_SORT_INVENTORY m_sortInventoryPulse = 0; m_sortSpecialStoragePulse = 0; #endif //////////// char.h //////////// Search : void GiveGold(INT iAmount); Add after : #ifdef ENABLE_SORT_INVENTORY void SetNextSortInventoryPulse(int pulse) { m_sortInventoryPulse = pulse; } int GetSortInventoryPulse() { return m_sortInventoryPulse; } void SetNextSortSpecialStoragePulse(int pulse) { m_sortSpecialStoragePulse = pulse; } int GetSortSpecialStoragePulse() { return m_sortSpecialStoragePulse; } #endif Search : LPSHOP m_pkShop; LPSHOP m_pkMyShop; std::string m_stShopSign; LPCHARACTER m_pkChrShopOwner; Add after : #ifdef ENABLE_SORT_INVENTORY int m_sortInventoryPulse; int m_sortSpecialStoragePulse; #endif /////// Service.h //////// Add this : #define ENABLE_SORT_INVENTORY Description : [Hidden Content]
    2 points
  44. M2 Download Center Download Here ( Internal )
    2 points
  45. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) Patch 17.5 Official Servers for the Skill Paeryong center of enemy
    2 points
  46. root & uiscript [Hidden Content] property [Hidden Content] locale_br & root & uiscript [Hidden Content] special thanks to @juniorferraz for supplying the packs for br client. Metin2 Download
    2 points
  47. M2 Download Center Download Here ( GitHub ) Download Here ( MEGA ) Download Here ( Internal ) I came across this new insert event by quests which I had to use while I was developing the 6th & 7th Attribute System so I decided to share this little feature and it could be useful in some situations.
    1 point
  48. M2 Download Center Download Here ( Internal ) Hi, I encourage you to use a free, proprietary weapon set. Perfect for Halloween Download: [Hidden Content] Scan: [Hidden Content]
    1 point
  49. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) Petit exemple. Juste une partie c ++:
    1 point
  50. M2 Download Center Download Here ( Internal ) hello people, today I bring many logos in metin. psd, which is good because it can change xD Sorry for my english ! I'm used to the Portuguese... Download: [Hidden Content] [Hidden Content] Credits: Me - Upload mayanpack - logos
    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.