-
Posts
208 -
Joined
-
Last visited
-
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Everything posted by DemOnJR
-
An error was found when you press CTRL+1 , 2 ... the Emoticon will show only to you, with his own key as message. At this time idk to solve it i will be back with an update if i solve this. Topic updated full fixed, i have also added github link for those who want to see how to add it more easily.
-
Thanks.
-
Download Center Github or Internal Link With this 'system' you will be able to open the PM Window just by clicking on the Player Name on any Chat Category not only on Global (normal, group, guild...) I use martysama so if you use anything else you need to edit it for your sources. Because i did not found an full tutorial here it is, is not perfect i know. Preview: [Hidden Content] Bellow is just an example, follow the tutorial on github or download it from dev. Pack Search inside interfacemodule.py and edit it like bellow: def MakeHyperlinkTooltip(self, hyperlink): tokens = hyperlink.split(":") if tokens and len(tokens): type = tokens[0] if "item" == type: self.hyperlinkItemTooltip.SetHyperlinkItem(tokens) # Add this under like here elif "msg" == type and str(tokens[1]) != player.GetMainCharacterName(): self.OpenWhisperDialog(str(tokens[1])) Server Srcs Search inside input_main.cpp and make the changes like bellow: // With Chat Color #ifdef ENABLE_CHAT_COLOR_SYSTEM static const char* colorbuf[] = {"|cFFffa200|H|h[Staff]|h|r", "|cFFff0000|H|h[Shinsoo]|h|r", "|cFFffc700|H|h[Chunjo]|h|r", "|cFF000bff|H|h[Jinno]|h|r"}; int len = snprintf(chatbuf, sizeof(chatbuf), "%s |Hmsg:%s|h%s|h|r : %s", (ch->IsGM()?colorbuf[0]:colorbuf[MINMAX(0, ch->GetEmpire(), 3)]), ch->GetName(), ch->GetName(), buf); #endif // Without Chat Color just change it like this int len = snprintf(chatbuf, sizeof(chatbuf), "|Hmsg:%s|h%s|h|r : %s", ch->GetName(), ch->GetName(), buf); Source @ Sanchez Client Srcs Search inside PythonNetworkStreamPhaseGame.cpp bool CPythonNetworkStream::RecvChatPacket() { .. // Search this like case CHAT_TYPE_WHISPER: { .. } .. } And add this inside the case, like this:
-
-
Disable loading BGM music/sounds when the player has the Volume set on 0.0 I speak about this ones when you open the client, login, select character, loading. 0706 17:55:00831 :: BGM/login_window.mp3 > 304 kb 0706 17:55:08657 :: BGM/characterselect.mp3 > 472 kb 0706 17:55:19083 :: BGM/enter_the_east.mp3 > 3.14 mb But you can add the maps with specific songs to the list... 0706 18:26:21453 :: BGM/desert.mp3 > 3.61 mb 0706 18:36:17583 :: BGM/follow_war_god.mp3 > 4.63 mb 0706 18:38:00674 :: BGM/save_me.mp3 > 2.90 mb ... and more Inside the Client Srcs file: SoundManager.cpp (MilesLib) Search for the function and make the changes like bellow: void CSoundManager::PlayMusic(DWORD dwIndex, const char * c_szFileName, float fVolume, float fVolumeSpeed) { # add this if (GetMusicVolume() == 0.0) return; # add this if (dwIndex >= CSoundManagerStream::MUSIC_INSTANCE_MAX_NUM) return; ... } The only one bug problem is that when an player changes an song with the volume 0 it will not load (ty @ Karbust) this can be fixed from python (root/uisystemoption.py) When the player is choosing any song set the volume to 5/10% then load the mp3 file. def __OnChangeMusic(self, fileName): # you can try snd.SetMusicVolume(0.1 * net.GetFieldMusicVolume()) systemSetting.SetMusicVolume(0.1) Sorry if it did not help you, and however to see the files loading without any use... It bothers me. If you have an better way post it bellow and i will update the topic.
-
How To Synchronize skill_proto ( Server <> Client )
DemOnJR replied to VegaS™'s topic in Programming & Scripts
I leave this for peoples that get: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe0 in position 5285: invalid continuation byte #!/usr/bin/env python # -*- coding: utf-8 -*- __name__ = "Skill Proto Synchronization" __author__ = "VegaS" __date__ = "2020-10-14" __version__ = "1.0" import os import json # Set working directory os.chdir(os.path.dirname(os.path.realpath(__file__))) # Skill proto file name, exported from MySQL. SKILL_PROTO_FILE_NAME: str = 'skill_proto.json' SKILL_PROTO_READ_COLUMNS: set[str] = {'dwVnum', 'bMaxLevel', 'bLevelLimit', 'szPointPoly', 'szSPCostPoly', 'szDurationPoly', 'szDurationSPCostPoly', 'szCooldownPoly', 'dwTargetRange'} # Skill table file name. SKILL_TABLE_FILE_NAME: str = 'skilltable.txt' SKILL_TABLE_CONTENT: dict[int, str] = {} with open(SKILL_PROTO_FILE_NAME, encoding="utf-8", errors="replace") as jsonFile: skillProtoContent: dict = json.load(jsonFile) for query in skillProtoContent['RECORDS']: SKILL_TABLE_CONTENT.update({ int(query['dwVnum']): '\t'.join( [str(columnValue) if isinstance(columnValue, (str, int)) else str() for columnName, columnValue in query.items() if columnName in SKILL_PROTO_READ_COLUMNS]) }) with open(SKILL_TABLE_FILE_NAME, 'w') as skillTableFile: skillTableFile.write('\n'.join(list(dict(sorted(SKILL_TABLE_CONTENT.items())).values()))) -
official Official Quest Width Expansion
DemOnJR replied to Owsap's topic in Features & Metin2 Systems
Same on Marty Sama > global name 'questbutton_max' is not defined > change questbutton_max to self.QUEST_BUTTON_MAX_NUM -
Is this normal? I can change the weapon only if 1 slot is free under the weapon if the free slot is on top the 2 hands weapon cannot be changed. The same for 1 slot items!
-
Did you post this fix full?
-
same.
-
Tested on Martysama Source, is working.
-
I think @ Papix has an hosting company.
-
for py users import os # function to rename files def rename_files(path): for dirpath, dirnames, filenames in os.walk(path): for filename in filenames: # check if filename contains uppercase characters if any(c.isupper() for c in filename): # rename file to lowercase os.rename(os.path.join(dirpath, filename), os.path.join(dirpath, filename.lower())) # enter the path of the directory to rename files path = input("Enter directory path: ") rename_files(path) print("All files have been renamed to lowercase.")
-
[Question] MARTYSAMA VS OWSAP FILES
DemOnJR replied to duwen123's topic in Community Support - Questions & Answers
Sure you have documentation for everything, from what dedicated server to pick, what apps do you need, how to install the server, configure, start, debugging... it's definitely not going to teach you how to c++, you have to know that already :)), and you need to work on your svfile from quests, drops, shops, everything that is about gameplay. You can go on his git and see the tutorials [Hidden Content] like how-to-mt2, how-to-general and much more. Also you can follow his progress idk if i'm allowed to share this [Hidden Content] Be sure that you will need also @ Mali, Owsap, @ Sonitex for systems, then if you need to secure your server you will need @ Shogun you will never find everything 'in one place'.- 28 replies
-
- 29
-
[QUESTION] What do you need in an administrative panel?
DemOnJR replied to Metin2 Dev's topic in Off Topic
Multiple groups with permissions for each option in the panel. Show all items on an character Log when an player drop an item from his inventory, alert for certain items Log for trade, alert for certain items Log for chat / pm, alert when a flagged word is detected Log play time including exp, level... the intervals when he left the server and entered again, example: start playing at 10:29 and did leave at 12:04 then starter again at 19:00 in the same day ... you get the point. Log when an new GUID is detected on an old account, alert. Log characters exit on certain maps with map graph and position, in this way you can detect lag and optimize the area if there are many disconnects around the same position. Debug for characters that if you manage to create Map Viewer and then teleport the player to the most near point out of texture on the same map. Search an character it should show first the character that match the search word then the characters that are detected on the same ip, guid, the same logic with accounts. By alert i mean an second log that will show only what the admin decides. If this is an public project remember to leave the git i think that i can help when i have free time -
[Question] MARTYSAMA VS OWSAP FILES
DemOnJR replied to duwen123's topic in Community Support - Questions & Answers
Short Long Story back in 2020 I wanted to learn how every pice of src code works and the internet was full of unreadable 'things'. If you want to learn and understand how the source works: So I decided to buy AdvancedSources from @ martysama0134 the most clean source code that i find which comes with documentation on the blog for everything you need, and yes I did learn every thing that i needed. If you want to understand how the systems works: I'm not an OSF 6 Ultimate customer but i did use @ Owsap multiple systems and I never had problems understanding the code or implementing the systems on AdvancedSources. -
How can i create Register Page for my server?
DemOnJR replied to Brayan's topic in Community Support - Questions & Answers
Here you have the command [Hidden Content] You can see the differences just by register an new account from navicat with the right query.- 11 replies
-
- 74
-
How can i create Register Page for my server?
DemOnJR replied to Brayan's topic in Community Support - Questions & Answers
Then you are doing something wrong. -
How can i create Register Page for my server?
DemOnJR replied to Brayan's topic in Community Support - Questions & Answers
Use: Metin2CMS -
Update, Any new version of MartySama Srcs has solved this issue. (v5.4, v5.7...)
-
problme with using putty private key !
DemOnJR replied to HattanBinNassar's topic in Community Support - Questions & Answers
Just search on google: [Hidden Content] [Hidden Content]