Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 06/05/21 in all areas

  1. M2 Download Center Download Here ( Internal ) i have here some Skillicons for you to Share I've cut them all way for you Download
    4 points
  2. M2 Download Center Download Here ( Internal ) GitHub repository: [Hidden Content]
    3 points
  3. Seems like i can't edit posts, anyways: - Fixed the empire reselect bug which was caused due to include "service.h" was missing. - Fixed a bug in character window where the values were shown as 999 because some function was missing. (Added isPoly function) - Fixed a bug in official multi textline (NO NOT the public ones..) where after each popupdialog the line position got more buggy during the client opened time. Im almost done, should i create a new topic? Maybe this can be our Metin2.dev community files.
    3 points
  4. M2 Download Center Download Here ( Internal ) Hello peeps! Got some more utilities that i use to automate boring stuff, so, maybe it can help u guys too The script kills the client processes, generates dump_proto and moves it into locale_xx directory (optional), crypts a list of files(root, locale, icon, ...etc) and starts the client. import os import shutil import bcolors import time class utilities: def __init__(self, packer_path, client_path, launcher_Name, dumpProto_path, locale_XX_path): self.packer_path = packer_path self.client_path = client_path self.launcher_Name = launcher_Name self.dumpProto_path = dumpProto_path self.locale_XX_path = locale_XX_path def fox_Pack(self, filesList): for i in filesList: print(f"\t* Will exec :> [{i}]") os.chdir(self.packer_path) os.system(f"tools\\Archiver.exe make_xml/{i}_create.xml") os.system(f"tools\\Archiver.exe xml/{i}_create.xml") time.sleep(0.5) # os.system(archiver_path) def killProcess(self): import psutil for proc in psutil.process_iter(): # check whether the process name matches if proc.name() == self.launcher_Name: proc.kill() time.sleep(0.5) def createItemProto(self): os.chdir(self.dumpProto_path) os.system(f"{self.dumpProto_path}\\dump_proto.exe") if os.path.isfile(self.locale_XX_path + r"\item_proto_old"): os.remove(self.locale_XX_path + r"\item_proto_old") os.rename(self.locale_XX_path + "\\item_proto", self.locale_XX_path + "\\item_proto_old") shutil.copy2("item_proto", self.locale_XX_path) def startClient(self): os.chdir(self.client_path) os.startfile(self.client_path + "\\" + self.launcher_Name) if __name__ == "__main__": start_time = time.time() print(f"{bcolors.OKMSG}{bcolors.OK}#-------[START]-------#\n{bcolors.ENDC}") utils = utilities( #packer Location packer_path = r"C:\Users\itsas\Desktop\M2\versionControl\client\Packer", #client Location client_path = r"C:\Users\itsas\Desktop\M2\versionControl\client\Metin2", launcher_Name = "metin2_launcher.exe", #dumpProto RELEASE Location dumpProto_path = r"C:\Users\itsas\Desktop\M2\versionControl\DumpProto\Release", #locale\XX Location locale_XX_path = r"C:\Users\itsas\Desktop\M2\versionControl\client\Client\locale_general\ro") utils.killProcess() utils.createItemProto() #To pack multiple files, addd in the below list more, directory names utils.fox_Pack(["locale_general", "icon", "item"]) utils.startClient() print(f"{bcolors.BLUE}--- {bcolors.WAITMSG}{bcolors.BLUE}{(time.time() - start_time)} seconds ---\n{bcolors.ENDC}") print(f"{bcolors.OKMSG}{bcolors.OK}#-------[STOP]-------#") Prereq: Python 3.9 Libraries: bcolors, shutil
    3 points
  5. M2 Download Center Download Here ( Internal ) The script updates item prices (buy/sell) for an item vnum: Considering item vnum is 110, it can update till 119 (or starting vnum 112 can go till 115, or 117, or w/e you desire) It can update for a single vnum (upgrade items, aswell), more in comments below Combined with can be pretty efficient from halo import Halo import bcolors class Append_new_prices: def __init__(self, value_dict, proto_location): self.proto_location = proto_location self.protoLst = [] self.value_dict = value_dict def get_proto_asList(self): with open(self.proto_location, 'r', encoding="utf8") as file: for line in file.readlines(): lineLst = line.split('\t') self.protoLst.append(lineLst) self.modified_protoLst = [] def update_protoLst(self): count = 0 for vnum, prices in self.value_dict.items(): try: upp_range = prices['uppLimit'] except KeyError: upp_range = 1 vnum_lst = self.get_item_VnumRange(vnum, upp_range) # while upp_range >= 0: for lineLst in self.protoLst: if "buy" not in prices.keys(): prices['buy'] = 0 if "sell" not in prices.keys(): prices['sell'] = 0 # print((lineLst[0]), " == ", vnum_lst) try: line_vnum = int(lineLst[0]) except ValueError: line_vnum = "VNUM NOT INT PFFFFF" if line_vnum in vnum_lst: lineLst[9] = prices['buy'] lineLst[10] = prices['sell'] self.protoLst[self.protoLst.index(lineLst)] = lineLst @staticmethod def get_item_VnumRange(vnum, range_lim): vnum_lst = [] plus_val = 0 # if range_lim == 0: # range_lim = 1 vnum = int(vnum) for i in range(0, range_lim + 1): vnum += plus_val vnum_lst.append(vnum) plus_val = 1 return vnum_lst def write_new_proto_fromList(self): with open(self.proto_location, 'w', encoding="utf8") as file: for line in self.protoLst: file.write('\t'.join(self.str_list(line))) def str_list(self, lst): new_lst = [] for i in lst: new_lst.append(str(i)) return new_lst if __name__ == "__main__": #First number (110) is the starting vnum, uppLimit is till when to stop adding prices, upplimit 9 means => 110, 111, 112, 113, 114...119 #It can have h/e many "item" objects as dictionary elements #!!!!!Count starts from 0! items = \ { "110": { "buy": 55, "sell": 43, "uppLimit": 1 }, # "120":{ # "buy":4000, # "sell":400000, # "uppLimit":9 # } } setPrices = Append_new_prices(value_dict=items, proto_location=r'C:\Users\itsas\Desktop\M2\versionControl\DumpProto\Release\item_proto.txt') with Halo(text='Loading', spinner='dots'): setPrices.get_proto_asList() setPrices.update_protoLst() setPrices.write_new_proto_fromList() print(f'{bcolors.OKMSG}{bcolors.OK} Done!') Prereq: Libs: Halo, bcoloros Python 3.9
    2 points
  6. M2 Download Center Download Here ( Internal ) Hello, XenForo is a forum content manager written in the PHP programming language using Zend Framework. It is developed by former senior vBulletin developers Kier Darby and Mike Sullivan. It's a so called nulled, crack version, you don't need the license to use it. Sincerly; ASIKOO
    2 points
  7. M2 Download Center Download Here ( Internal ) [Replica] Old Metin2 Website & ItemShop This is a working replica of the old Metin2 website and ItemShop. The project originally made in 2013 for a possible server but we never opened it. For now I just refactored it to be compatible with PHP7/8, tidied the code a little but honestly, expect real old shit procedural style code! While you can use "as is", I highly recommend to check it for old vulnerabilities before you take it live because of it's deprecated nature. The language is hungarian, you can use web.archive.org to speed up your translation. Website: ItemShop: Download: [Hidden Content] Regards, TMP4
    1 point
  8. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) [Hidden Content]
    1 point
  9. Hi Ira! Masodi here.
    1 point
  10. Hi, i'm Indra. thanks for welcoming me to this forum.
    1 point
  11. Change this: if (iSizeBuffer > 0) { TEMP_BUFFER tempbuf; LPBUFFER lpBufferDecrypt = tempbuf.getptr(); buffer_adjust_size(lpBufferDecrypt, iSizeBuffer); int iSizeAfter = TEA_Decrypt((DWORD*)buffer_write_peek(lpBufferDecrypt), (DWORD*)buffer_read_peek(m_lpInputBuffer), GetDecryptionKey(), to this: if (iSizeBuffer > 0) { LPBUFFER lpBufferDecrypt = buffer_new(iSizeBuffer); int iSizeAfter = TEA_Decrypt((DWORD*)buffer_write_peek(lpBufferDecrypt), (DWORD*)buffer_read_peek(m_lpInputBuffer), GetDecryptionKey(), iSizeBuffer);
    1 point
  12. post your int DESC::ProcessInput() function from desc.cpp
    1 point
  13. Hello fellow devs; I was implementing the Bonus Board on my client and despite it looked quite simple, it is actually giving me this confusing error. I've tried to rollback the changes and to implement it again, for a second time, with enhanced attention; but despite this the error prompts again. SYSERR CLIENT This confuses me a lot. Thanks in advance for your time and help; Cheers
    1 point
  14. Invasion on the wall. Wall before: Desired end result: Starting work: Sketch completed. Now I must to wait for the paints and painting equipment. I didn't manage to mix the colours perfectly, but otherwise it goes quite well. End:
    1 point
  15. M2 Download Center Download Here ( Internal ) Hello guys welcome back again. i hope you like them ,if you like them just do Like and comment. if you found any problem or mistakes just comment or pm me. Download: Regards, Dane
    1 point
  16. Python version. Work in both ways. From inventory to safebox and from safebox to inventory. [Hidden Content]
    1 point
  17. good luck with it it costed me an about 35-40 euros to get these back so good luck with it hairdyes [hide][Hidden Content] [Hidden Content] [Hidden Content] [Hidden Content]] 46kid [hide][Hidden Content] [Hidden Content] [Hidden Content] [Hidden Content]] 47kid [hide][Hidden Content] [Hidden Content] [Hidden Content] [Hidden Content]] 48kid [hide][Hidden Content] [Hidden Content] [Hidden Content] [Hidden Content]] PS: yes i made these for dany but somehow he didn't really wanted to make a server with wolfman.
    1 point
  18. (2.5) Questions & Answers specific rules Don't modify your thread (or reply to it) to mark it solved, and not explain the solution to the issue. For these who wants this, there're two simple methods: 1. Disable for all maps. [Hidden Content] 2. Disable for a specific map. # Search in CANNOT_SEE_INFO_MAP_DICT for: "metin2_map_devilsCatacomb" : False, # Add after: "metin2_your_map_name" : False,
    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.