-
Posts
253 -
Joined
-
Last visited
-
Days Won
245
xpro last won the day on November 4
xpro had the most liked content!
Recent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
xpro's Achievements
- Rare
Recent Badges
1.9k
Reputation
-
Download again please, i add the key
- 76 replies
-
- 2000 players online
- best server files
- (and 4 more)
-
Previews: [Hidden Content] [Hidden Content] [Hidden Content] [Hidden Content] [Hidden Content] [Hidden Content] [Hidden Content] [Hidden Content] [Hidden Content] [Hidden Content] [Hidden Content] Mysql 5.6 Freebsd 12+ If you need help with instalation, text me on discord metin2.network Download: Download Link Solana.rar Necesary Libs Libs.rar
- 76 replies
-
- 22
-
- 2000 players online
- best server files
- (and 4 more)
-
You have 12 hours to add a valid download link, if not the topic will be send to Trash Category ^^
-
Hello, today, I'll present a complete guide on how to increase the length of character names. Simply changing the character limit isn't enough some interfaces need adjustments, such as the friend request window, the field for entering the player's nickname when sending a private message, and during character creation. When designing the interface, consider how many characters will be allowed to ensure that player names fit comfortably. UserInterface/StdAfx.h Find: PLAYER_NAME_MAX_LEN = 12, Change: PLAYER_NAME_MAX_LEN = 24, // Specifies the maximum number of characters allowed for a player name. game/src/input_login.cpp Find: void CInputLogin::CharacterCreate (LPDESC d, const char* data) if (strlen (pinfo->name) > 12) { d->Packet (&packFailure, sizeof (packFailure)); return; } Change: if (strlen (pinfo->name) > 24) { d->Packet (&packFailure, sizeof (packFailure)); return; } root/uiwhisper.py Find: def LoadDialog(self): self.resizeButton.SetPosition(280, 180) Change: self.resizeButton.SetPosition(380, 180) SQL Queries: ALTER TABLE player MODIFY COLUMN name VARCHAR(24); ALTER TABLE player_deleted MODIFY COLUMN name VARCHAR(24); ALTER TABLE change_name MODIFY COLUMN old_name VARCHAR(24), MODIFY COLUMN new_name VARCHAR(24); ALTER TABLE command_log MODIFY COLUMN username VARCHAR(24); ALTER TABLE levellog MODIFY COLUMN name VARCHAR(24); uiscript/whisperdialog.py window = { "name": "WhisperDialog", "style": ("movable", "float",), "x": 0, "y": 0, "width": 450, "height": 200, "children": ( { "name": "board", "type": "thinboard", "style": ("attach",), "x": 0, "y": 0, "width": 450, "height": 200, "children": ( { "name": "name_slot", "type": "image", "style": ("attach",), "x": 10, "y": 10, "image": "d:/ymir work/ui/public/Parameter_Slot_06.sub", "children": ( { "name": "titlename", "type": "text", "x": 3, "y": 3, "text": uiScriptLocale.WHISPER_NAME, }, { "name": "titlename_edit", "type": "editline", "x": 3, "y": 3, "width": 240, "height": 17, "input_limit": PLAYER_NAME_MAX_LEN, "text": uiScriptLocale.WHISPER_NAME, }, ), }, { "name": "gamemastermark", "type": "expanded_image", "style": ("attach",), "x": 306, "y": 6, "x_scale": 0.2, "y_scale": 0.2, "image": LOCALE_PATH + "/effect/ymirred.tga", }, { "name": "ignorebutton", "type": "toggle_button", "x": 245, "y": 10, "text": uiScriptLocale.WHISPER_BAN, "default_image": "d:/ymir work/ui/public/small_thin_button_01.sub", "over_image": "d:/ymir work/ui/public/small_thin_button_02.sub", "down_image": "d:/ymir work/ui/public/small_thin_button_03.sub", }, { "name": "reportviolentwhisperbutton", "type": "button", "x": 245, "y": 10, "text": uiScriptLocale.WHISPER_REPORT, "default_image": "d:/ymir work/ui/public/large_button_01.sub", "over_image": "d:/ymir work/ui/public/large_button_02.sub", "down_image": "d:/ymir work/ui/public/large_button_03.sub", }, { "name": "acceptbutton", "type": "button", "x": 235, "y": 9, "text": uiScriptLocale.OK, "default_image": "d:/ymir work/ui/public/small_thin_button_01.sub", "over_image": "d:/ymir work/ui/public/small_thin_button_02.sub", "down_image": "d:/ymir work/ui/public/small_thin_button_03.sub", }, { "name": "minimizebutton", "type": "button", "x": 380, "y": 12, "tooltip_text": uiScriptLocale.MINIMIZE, "default_image": "d:/ymir work/ui/public/minimize_button_01.sub", "over_image": "d:/ymir work/ui/public/minimize_button_02.sub", "down_image": "d:/ymir work/ui/public/minimize_button_03.sub", }, { "name": "closebutton", "type": "button", "x": 406, "y": 12, "tooltip_text": uiScriptLocale.CLOSE, "default_image": "d:/ymir work/ui/public/close_button_01.sub", "over_image": "d:/ymir work/ui/public/close_button_02.sub", "down_image": "d:/ymir work/ui/public/close_button_03.sub", }, { "name": "scrollbar", "type": "thin_scrollbar", "x": 406, "y": 35, "size": 120, }, { "name": "editbar", "type": "bar", "x": 10, "y": 140, "width": 420, "height": 50, "color": 0x77000000, "children": ( { "name": "chatline", "type": "editline", "x": 5, "y": 5, "width": 350, "height": 40, "with_codepage": 1, "input_limit": 40, "limit_width": 350, "multi_line": 1, }, { "name": "sendbutton", "type": "button", "x": 360, "y": 10, "text": uiScriptLocale.WHISPER_SEND, "default_image": "d:/ymir work/ui/public/xlarge_thin_button_01.sub", "over_image": "d:/ymir work/ui/public/xlarge_thin_button_02.sub", "down_image": "d:/ymir work/ui/public/xlarge_thin_button_03.sub", }, ), }, ), }, ), } uimessenger.py Find def OnPressAddFriendButton(self): friendNameBoard.SetTitle(localeInfo.MESSENGER_ADD_FRIEND) Add after friendNameBoard.SetMaxLength(24) uiscript/createcharacterwindow.py Find: "input_limit": 12, Change: "input_limit": 24, Find: { "name": "character_name_slot", "type": "image", "x": 97, "y": 4, "image": "d:/ymir work/ui/public/parameter_slot_04.sub", }, Change: { "name": "character_name_slot", "type": "image", "x": 97, "y": 4, "image": "d:/ymir work/ui/public/parameter_slot_06.sub", },
-
Hi, I'll show you what to do so that you do not repel specific monsters ( from a horse or from a shoe ). GameLib/ActorInstanceBattle.cpp Find: bool IS_HUGE_RACE(unsigned int vnum)) { ... } Add after: bool IS_BLOCK_ANTIKNOCK(unsigned int vnum) { const CPythonNonPlayer::TMobTable * pMobTable = CPythonNonPlayer::Instance().GetTable(vnum); int iMobRank = 0; if (pMobTable) iMobRank = pMobTable->bRank; if (iMobRank == 5) return true; return false; } Find: extern bool IS_HUGE_RACE(unsigned int vnum); if (IS_HUGE_RACE(rkActorDst.GetRace())) return false; Add after: if (IS_BLOCK_ANTIKNOCK(rkActorDst.GetRace())) return false;
-
char.cpp void CHARACTER::BroadcastTargetPacket() Find: p.bHPPercent = MINMAX (0, (GetHP()* 100) / GetMaxHP(), 100); Change: p.bHPPercent = int(float(GetHP()) / float(GetMaxHP()) * 100.0f); In function void CHARACTER::SetTarget(LPCHARACTER pkChrTarget) Find: p.bHPPercent = MINMAX(0, (m_pkChrTarget->GetHP() * 100) / m_pkChrTarget->GetMaxHP(), 100); Change: p.bHPPercent = m_pkChrTarget->GetMaxHP() <= 0 ? 0 : int(float(m_pkChrTarget->GetHP()) / float(m_pkChrTarget->GetMaxHP()) * 100.0f);
-
Downlaod: [Hidden Content] m2designer.rar
-
- Quest section is usually default in Martysama, Turkish necessary quests have been added. Most people could not install what was shared in the other topic and the files are not in raw form. You can think of the completely untouched version shared here as a ready-to-install version. ++FreeBSD 14.0 User Information: User: root Password: password Port: 22 ++MariaDB Information: User: root Password: password Port: 3306 ++GM Account Information: User: root Password: 12345 ---------PROGRAMS REQUIRED FOR INSTALLATION: 1- Filezilla 2- Navicat 3- Puty 4- VirtualBox - Create a folder named asd on the desktop and put the file named multi.ova in the FreeBSD14.rar file. - Double-click the multi.ova file. A screen called ''Import Virtual Device'' will appear, say finish. - From the Settings section, give the amount of ram you want to give to the system. - Select the network type you are connected to from the Network section, save and exit. - Let's start it with the Start option. After typing Username: root Password: password and logging in, let's write the ifconfig command. An ip address starting with 192.168 will appear, write that ip address somewhere. -----------FileZilla Program Write your ip address. Username: root Password: password Port: 22 Write /home/s3ll_svfiles/main in the remote site section and open the folder Open the gen_settings.py file with notepad. v_bindHostname='192.168.1.58' v_proxyHostname='192.168.1.58' Write your own ip address in these sections and save. --------PUTTY PROGRAM Username: root Password: password Port: 22 After logging in, write cd /home/s3ll_svfiles/main python admin_panel.py. Write 666 on the screen that opens. Write python admin_panel.py again, write 1 and open the game. NOTE!! SOURCE AND SERVER FILES ARE READY INSTALLED IN BSD. ALL YOU NEED TO DO is to write your IP address in the gen_settings.py file, log in to putty and process the gen_settings.py file, then the game opens directly. SOURCE COMPILATION - Client Source is compiled without errors with Visual Studio 2022. You can create the metin2client.exe file by opening the .sln file in the client folder, cleaning it from bulk compile, and then compile. - To compile Server Source, you can compile it with the cd /home/s3ll_server/Srcs/Server gmake clean gmake all command after logging in to Putty . If your computer is good and you want to compile several files at the same time according to your core count in the processor section, instead of the gmake all command; you can compile faster with gmake -j4 or gmake -j8. Example usage: cd /s3ll_server/Srcs/Server gmake -j4 Download: [Hidden Content]
-
FULL + Client (Modelle, Map, Items, Icons) + Source !! + Quest Download: [Hidden Content]