Jump to content

Night

Inactive Member
  • Posts

    839
  • Joined

  • Last visited

  • Days Won

    5
  • Feedback

    0%

Posts posted by Night

  1. well metin2 does not even run correctly under mysql > 5.5 so you should stick with the older version OR fix it so that it work properly with it.

    and going back to what @127.0.0.1 said , the mysql folder should never be overwritten , (which almost all those noob devs do).

    so to come up to what you did, you just uploaded a mysql.tar.gz and unpacked it with a smile :). causing the mysql to fuck up at some point.

    what you should do?

    try running mysql on safe mode.

    what if my db does not work even with this mode?

    (if you have a running server)

    take a backup of it, then reinstall the same version to get a backup of data. the reinstall it with a lower version (eh there should be some other way).

    then install your db with this data.

    (if not)

    reinstall a lower version nvm your data mate.

    note :

    make sure that the mysql folder is not there. (in your backup)

     

    • Love 1
  2. 2 hours ago, Esquire said:

    but this type dont play a few image

    how , so?

    both AniImageBox and ExpandedImageBox are sub classes for the same base class (Window) (in case of ExpandedImageBox is a sub class of ImageBox which is a sub class of Window too) 

    to put it simple there should not be a problem if you where to add a setscale member to the AniImageBox.

    and yet i still do not understand the reason why ExpandedImageBox  does not display some images.

    as long as the file extension is valid that is.

  3. 29 minutes ago, VegaS said:

    I would prefer to work more nice.

    
    List = [ ]
    List =
    [
    	[[ui.TextClass, 0], [0, 0], [x, y], [["SetDefaultFontName", [""]]], []],
    	[[ui.ImageClass, ""], [0, 0], [x , y], [["LoadImage", ["image"]]], ["movable", "float"]],
    ]
    
    	def SetText(self, index, msg = None):			
    		self.List[0].SetText("Text" + msg)
    		self.List[1].Show()

     

    
    		self.List = [
    			{"name": "A", "number": 1},
    			{"name": "B", "number": 2},
    		]
    		
    		self.Select = {}
    		self.Select["A"] = self.Loader.Button(self.Board, 'A', '', 15, 50, self.Main, 'A', 'A', 'A')
    		self.Select["B"] = self.Loader.Button(self.Board, 'B', '', 15, 50*2, self.Main, 'B', 'B', 'B')
    		
    		for i in xrange(len(self.List)):
    			self.Select[self.List[i]["name"]].Show()

    you used  a multidimensional array aka a list of lists , the first and second line of SetText will result in Attribute error exception to be raised.

    your method might be correct depending on how you do it , but it will result in you having to wast more time.

    for the List var you could use a tuple as it is a immutable (it does not change no matter what).

    ex.

    List = [ ]
    List =
    [
    	[(ui.TextClass, 0), (0, 0), (x, y), (["SetDefaultFontName", [""]]), ()],
    	[(ui.ImageClass, ""), (0, 0), (x , y), (["LoadImage", ["image"]]), ("movable", "float")],
    ]

    metin2 does have it's own methods for dealing with UI , i highly recommend using it. (there are already over 50 example of it in uiscript and the locale dir of each client).

    • Love 2
  4. dict does not store the original order of the item that were stored in it. (dict is pretty much like std::map in c++) (http://stackoverflow.com/questions/11274978/are-c-stdmapstring-string-ordered <- this will help you a bit , it's a bit off topic but if you are a c++ dev it can help you understand)

    so python offer another class which is the collections.OrderedDict which quite useful. for iteration.

    say :

    list(dict()) , will return a list which contain the keys of the dict() without the original order.

    list( collections.OrderedDict()) , will return a list whish contain the keys of the OrderedDict in their insertion order.

    and as always it is useful for iteration. and some other rare cases.

    there are other choices , but this is the first one google will point out.

  5. 1) I don't use clang because is more fast. Just because regornize better code. And it's native in freebsd 10+ ? You know NATIVE. make instruction more clear..

    2) *FreeBSD 10.2  ---upgrade mysql to 5.6.26 --- use gcc49 to compile. Try to run db or game. Game.core , debug with gdb ... woilla instruction problem.

    3) And more userful things.  In clang you can migrate code to c++11 with modernizer. :) Eh ?

    1) It's so """native""" that half of the ports will throw lots of errors when you compile them with clang. (default behavior)

    Native, in this case, means "installed by default", not "it makes instructions more clear blablabla".

    2) For binaries compiled with gcc4.9, you should usually use "gdb-7.10_4" (the minor version could vary), otherwise you'll get the "dwarf instruction problem" error. (pretty normal)

    Mysql 5.6 is one of the most criticized versions. Since you like to be alternative, you can also try MariaDB (mysql fork).

    3) As I stated before, one could even use both. Use clang's modernizr and then compile it with gcc. (which is pretty edgy)

    I rewrited some parts of smart_pointers to prevent memory leak.  Butt still have some leaks.

    Kinda all ymir's code is made with raw new/delete operators. The only code wrapped in smart pointers is related to the queries (and not all the times).

    Server-side, most all the stuff are loaded once (regens, map attrs, etc), and there's no default way to free them without closing the process. (I would call them "cached" and not "memory leaking" anyway)

    Client-side, it's the same thing, except of the Outdoor loading, which clearly leaks few mb every time you warp somewhere. (on the WE, it's pretty clear)

     

     

    Note: If he installs gcc on freebsd 10.x, he will have to remap few things otherwise cryptopp will be compiled with clang, and the rest of the game with gcc. (which will end with a linking failure)

    Or add g++49 in makefile cryptopp.

    ORR? To instal directly from package.

    pkg install security/cryptopp

    And take files from usr/local.

    marty did note the first way (which would be adding g++49 to the make file) however most ppl will have a hard time with it.if they did not learn c++.

    the secound way is a bit off. it could result in a linking error.

    • Love 1
  6. So you're telling me that everyone here does it manually?

    There must be another way..

    most of the ppl edit there old item proto to the newest one , some of them uses the old item proto structure for the server while loading the bleeding resistance as something else (for i.g stun ,slow anthing that you see that it fits) ,  if you have a new mob proto strucutre you can always get the old gold drop using excel.

    simply just manage it. it's easy.

  7. ACMD (do_item_full_set)
    {
    	BYTE job = ch->GetJob();
    	LPITEM item;
    	for (int i = 0; i < 6; i++)
    	{
    		item = ch->GetWear(i);
    		if (item != NULL)
    			ch->UnequipItem(item);
    	}
    	item = ch->GetWear(WEAR_SHIELD);
    	if (item != NULL)
    		ch->UnequipItem(item);
    	
    	
    	
    	switch (job)
    	{
    	case JOB_SURA:
    		{
    			int sura_item_list[9] = {20509, 13149, 15379, 479, 12549, 14209 , 17509, 16549, 72702};
    			
    			for(size_t i = 0; i <= ((sizeof(sura_item_list)/sizeof(int))-1); i++)
    			{
    				item = ITEM_MANAGER:instance().CreateItem(sura_item_list[i]);
    				if (!item || !item->EquipTo(ch, item->FindEquipCell(ch)))
    					M2_DESTROY_ITEM(item);
    			}
    		}
    		break;
    	case JOB_WARRIOR:
    		{
    			int worrior_item_list[9] = {20009, 13149, 15419, 469, 12289, 14209 , 17549, 16569, 72702};
    			
    			for(size_t i = 0; i <= ((sizeof(worrior_item_list)/sizeof(int))-1); i++)
    			{
    				item = ITEM_MANAGER:instance().CreateItem(worrior_item_list[i]);
    				if (!item || !item->EquipTo(ch, item->FindEquipCell(ch)))
    					M2_DESTROY_ITEM(item);
    			}
    		}
    		break;
    	case JOB_SHAMAN:
    		{
    			int shami_item_list[9] = {20759, 13149, 15379, 7379, 12689, 14209 , 17509, 16549, 72702};
    			
    			for(size_t i = 0; i <= ((sizeof(shami_item_list)/sizeof(int))-1); i++)
    			{
    				item = ITEM_MANAGER:instance().CreateItem(shami_item_list[i]);
    				if (!item || !item->EquipTo(ch, item->FindEquipCell(ch)))
    					M2_DESTROY_ITEM(item);
    			}
    		}
    		break;
    	case JOB_ASSASSIN:
    		{
    			int ninja_item_list[9] = {20259, 13149, 15419, 1349, 12409, 14209 , 17529, 16509, 72702};
    			
    			for(size_t i = 0; i <= ((sizeof(ninja_item_list)/sizeof(int))-1); i++)
    			{
    				item = ITEM_MANAGER:instance().CreateItem(ninja_item_list[i]);
    				if (!item || !item->EquipTo(ch, item->FindEquipCell(ch)))
    					M2_DESTROY_ITEM(item);
    			}
    		}
    		break;
    #ifdef ENABLE_WOLFMAN_CHARACTER
    		case JOB_WOLFMAN :
    			int lycan_item_list[9] = {20509, 15419, 13149, 479, 12549, 14209 , 17509, 16549, 72702}; // a list of random items change it
    			for(size_t i = 0; i <= ((sizeof(lycan_item_list)/sizeof(int))-1); i++)
    			{
    				item = ITEM_MANAGER:instance().CreateItem(lycan_item_list[i]);
    				if (!item || !item->EquipTo(ch, item->FindEquipCell(ch)))
    					M2_DESTROY_ITEM(item);
    			}
    		break;
    #endif
    	}
    }

    here is a smaller version using loops (you can also do it using a nested loop but that would be a (eh) hassle.

    • Love 1
  8. ok thank you all for all those informations

    i really appricieted
    but Ken\Martysama\Inya\shogun which dedicate site will use if they want to let him alive for over 1 year, for exemple.

    kimsufi?
    eterhost?
    ovh?

    if ken\martysama\inya\rumor or other big dev can answer to me i will appriciete that

    (bad english, sorry)

    martysama on ovh (kimsufi)

    shogun own eterhost (more or less) which is as well on ovh (i think that inya is with him if not then the same then it should be on ovh as well)

    ken/rumor no info.

    me : kimsufi (or ovh if you prefer).

    ps: kimsufi is nothing but another name to ovh

    • Love 1
  9. based on this : link
    and what i remember ymir did close some private server that where hosted on ovh (just some not all since ovh can not detect a metin2 pserver automaticly at least) , and if i remember correctly those server just re-opened not too long after that , which most likly mean that ymir did not take any legal action against the any server admin up until now , anyway if they where going to go after someone they will go after huge server admins not a new one that was born today. @metin2team for i.g own a server from 2010 and was not killed nor he had legal , if you want to fear problem then just be sure that you server is well protected.

    • Love 1
×
×
  • 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.