Jump to content

DemOnJR

Premium
  • Posts

    208
  • Joined

  • Last visited

  • Feedback

    0%

Everything posted by DemOnJR

  1. 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.
  2. 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:
  3. 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.
  4. 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())))
  5. Same on Marty Sama > global name 'questbutton_max' is not defined > change questbutton_max to self.QUEST_BUTTON_MAX_NUM
  6. 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!
  7. Tested on Martysama Source, is working.
  8. I think @ Papix has an hosting company.
  9. 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.")
  10. 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'.
  11. 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
  12. 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.
  13. Here you have the command [Hidden Content] You can see the differences just by register an new account from navicat with the right query.
  14. Update, Any new version of MartySama Srcs has solved this issue. (v5.4, v5.7...)
×
×
  • 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.