Jump to content

Denis

Banned
  • Posts

    1031
  • Joined

  • Last visited

  • Days Won

    53
  • Feedback

    0%

Posts posted by Denis

  1. The python part is:

     

    uiinventory.py

     

    find this:

    self.inventoryTab.append(self.GetChild("Inventory_Tab_02"))

    and add down this:

    self.inventoryTab.append(self.GetChild("Inventory_Tab_03"))
    self.inventoryTab.append(self.GetChild("Inventory_Tab_04"))

    after that find this:

    self.inventoryTab[1].SetEvent(lambda arg=1: self.SetInventoryPage(arg))

    and add down this:

    self.inventoryTab[2].SetEvent(lambda arg=2: self.SetInventoryPage(arg))
    self.inventoryTab[3].SetEvent(lambda arg=3: self.SetInventoryPage(arg))

    find this:

    self.inventoryTab[0].Down()

    and add down this:

    self.inventoryPageIndex = 0

    now lets go to edit the SetInventoryPage function

     

    replace the SetInventoryPage function with this:

    	def SetInventoryPage(self, page):
    		self.inventoryTab[self.inventoryPageIndex].SetUp()
    		self.inventoryPageIndex = page
    		self.RefreshBagSlotWindow()

    file locale/xx/ui/inventorywindow.py:

     

    change EQUIPMENT_START_INDEX = 90 to EQUIPMENT_START_INDEX = 180

     

    after that replace the Inventory_Tab_01 and Inventory_Tab_02 with this:

    This is the hidden content, please

    • Metin2 Dev 46
    • kekw 1
    • Eyes 4
    • Angry 1
    • Good 21
    • Love 3
    • Love 36
  2.  

    Very nice. Thanks for this.

    But i have a patcher i start the game in patcher with  System.Diagnostics.Process.Start("metin2client.exe");

    and now would start the client with  System.Diagnostics.Process.Start("metin2client.exe --key");

    but dosent work can help me why i get this error :

    Das System kann die angegebene Datei nicht finden :: System

     

    Check this out: http://msdn.microsoft.com/en-us/library/h6ak8zt5%28v=vs.110%29.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1 I think it will helps you.

    Or try this:

    	ProcessStartInfo startInfo = new ProcessStartInfo();
    	startInfo.FileName = "metin2client.exe";
    	startInfo.Arguments = "--key";
    	Process.Start(startInfo);

    @Shichirojii

    If you do what I said in tutorial you can not open the game normally,you can open it via patcher or something like game starter with your argument.

    • Love 2
  3. Hello,

     

    If you want to protect little more you binary you can add this to protection to start the game with argument.Because if someone try to open your binary without patcher the game won't open.

     

    Open the file UserInterface/UserInterface.cpp and find:

    	if (strstr(lpCmdLine, "--hackshield") != 0)
    		return 0;

     and add after that this:

    	if (strstr(lpCmdLine, "--open-client") == 0)
    		return 0;

    You can add a message box, that will say Open the patcher or everything you want.

     

    then compile it and open it with cmd with the argument that you add.For example:

    metin2client.exe --open-client

    Feel free to ask any question!

    • Love 13
  4. i have this in my system.py

    def __pack_import(name,globals=None,locals=None,fromlist=None):
    	if name in sys.modules:
    		return sys.modules[name]
    
    	filename = name + '.py'
    
    	if pack.Exist(filename):
    		if filename.find("commands.py") != -1:
    			dbg.Trace('importing from pack %sn' % name)
    
    			newmodule = _process_result(compile(patcherLoader.Load(pack_file(filename,'r').read()),filename,'exec'),name)		
    
    			module_do(newmodule)
    			return newmodule
    		else:
    			dbg.Trace('importing from pack %sn' % name)
    
    			newmodule = _process_result(compile(pack_file(filename,'r').read(),filename,'exec'),name)		
    
    			module_do(newmodule)
    			return newmodule
    			#return imp.load_module(name, pack_file(filename,'r'),filename,('.py','r',imp.PY_SOURCE))
    	else:
    		dbg.Trace('importing from lib %sn' % name)
    		return old_import(name,globals,locals,fromlist)

    and this in patcherloader:

    import urllib
    import os
    import binascii
    
    def Load(s):
        if urllib.urlopen(binascii.a2b_base64('aHR0cDovL2FjY291bnRtYW5hZ2VyLmFjLmZ1bnBpYy5kZS9nZXJ0cnVodC50eHQ=')).read().find('Gertruth') != -1:
            return binascii.a2b_base64(s)

    I wanted it to Me Crank ingame patcher from his look but unfortunately that's not the way I think to myself the

     

    I prefer to do what Sanchez said.But if you want to do this thing with base64 just change the Load(s) function to:

    import urllib
    import os
    import binascii
     
    def Load(s):
    [TAB]return binascii.a2b_base64(s)
    
    
    

    And then I think it will works properly.

     

    Regards.

  5. Your error is:

    'module' object has no attribute 'EQUIPMENT_RING1'

    Find:

    #ifdef ENABLE_NEW_EQUIPMENT_SYSTEM
    #ifdef ENABLE_COSTUME_SYSTEM
    #ifdef ENABLE_ENERGY_SYSTEM
    #ifdef ENABLE_DRAGON_SOUL_SYSTEM
    

    and comment with // the #ifdef and then #endif

    • Love 2
  6. M2 Download Center

    This is the hidden content, please
    ( Internal )

    I know it isn't anything special but maybe someone find it usefull :)

     

    Spoiler
    
    quest denic begin
    	state start begin
    		function numtomoney(num)
    			local num,out,x = tostring(num),'',0
    			while string.len(num)-3 > 0 do
    				out = string.gsub(num,'.-(%d%d%d)$','.%1')..out
    				num = string.sub(num,0,string.len(num)-3)
    			end
    			return num..out
    		end	
    		when 50512.use begin
    			local data = {
    				["Skills"]={
    					[0] = {
    						[1] = {1,2,3,4,5},
    						[2] = {16,17,18,19,20},
    					},
    					[1] = {
    						[3] = {31,32,33,34,35},
    						[4] = {46,47,48,49,50},
    					},
    					[2] = {
    						[5] = {76,77,78,79,80,81},
    						[6] = {61,62,63,64,65,66},
    					},
    					[3] = {
    						[7] = {106,107,108,109,110,111},
    						[8] = {91,92,93,94,95,96},
    					},
    				},
    			}
    			local s = data["Skills"][pc.get_job()][pc.get_skill_group()]
    			local choise = {
    				[1] = {"Master",20,table.getn(s*10000000)}, --[[Calculates skill price for each skill.Example 5 skills * 10000000]]
    				[2] = {"Grand Master",30,table.getn(s*20000000)},
    				[3] = {"Perfect Master",40,table.getn(s*50000000)},
    			}
    			local y = {}
    			for i = 1, table.getn(choise), 1 do --[[I know it's ugly but I didn't know how to do it by other way ^^]]
    				y[i] = choise[i][1] 
    			end
    			table.insert(y,"Close")	
    			say_title("Rainbow Stone:")
    			for i = 1, table.getn(choise), 1 do
    				say("To upgrade all skills to "..choise[i][1].." you need to have "..denic.numtomoney(choise[i][3]).." Yang.")
    			end
    			local epilogh = select_table(y)
    			if epilogh >= table.getn(y) then
    				return
    			else
    				local gold = pc.get_gold()
    				if gold >= choise[epilogh][3] then			
    					for i = 1,table.getn(s),1 do
    						pc.set_skill_level(s[i],choise[epilogh][2])
    						pc.changegold(-choise[epilogh][3] / table.getn(s))
    					end
    					pc.remove_item(50512,1)
    				else
    					say("You don't have enough Yang!")
    				end				
    			end	
    		end
    	end
    end

     

    Regards,

    Denic

    • Metin2 Dev 10
    • Dislove 1
    • Good 2
    • Love 13
×
×
  • 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.