Jump to content

Mitachi

Developer
  • Posts

    139
  • Joined

  • Last visited

  • Days Won

    3
  • Feedback

    100%

Posts posted by Mitachi

  1. They are used for various things, they are text files that usually contain "layer and layout" information, on metin2 we use them to take desired shapes from an image

    For example, in locale/ui/

    u have "login.png and login.sub" or "logo.png and logo.sub"

    Thanks to the subfile it is possible to define the coordinates of each single pixel of an image.

    For example, in public.dds you have yang slot, cheque slot and much button

    spacer.png

    File cheque_slot.sub:

    title subImage
    version 1.0
    image "Public.dds"
    left 206
    top 446
    right 230
    bottom 464
    

    As you can see, this file crops the desired pixels from that image. Basically, if there were no .sub files everything should have its own image, a client consisting of 2kk of files is not nice (Also you should define the coordinates of anything in Python and we don't like useless code either)

    To create one you just need to have the photo from where you want to take the piece of image or the complete photo, and then through an editor such as GIMP or Photoshop take the measurements of the pixels

    • Love 1
  2. By chance you played with the enumerator EWindows ?

    Search and diff in UserInterface/GameType.h and in common/lenght.h

    //example
    enum EWindows
    {
    	RESERVED_WINDOW,
    	INVENTORY,
    	EQUIPMENT,
    	SAFEBOX,
    	MALL,
    	DRAGON_SOUL_INVENTORY,
    	BELT_INVENTORY,
    #ifdef __AUCTION__
    	AUCTION,
    #endif
    	GROUND
    };

    The order must be the same on both client and server sides

    But I honestly don't think you have changed that, if you give us more information we can help you, for example
    "it happened after I implemented this system"
    it's like going to a restaurant and not saying what you want to order :c

  3. Simple, in config.h you can declare ur variable, for example:

    extern BYTE  g_variableExample;

    then, in config.cpp you define your variable, for example:

    BYTE g_variableExample = 100;

    after,  in this file,  search this function:

    static bool __LoadGeneralConfigFile(const char* configName)
    {..

    in this function, search this while loop:

    	while (fgets(buf, 256, fp))
    	{
    		parse_token(buf, token_string, value_string);

    in this while u can find much Token, perfect, you have to create a new token for function

    		TOKEN("newvariable")
    		{
    			str_to_number(g_variableExample, value_string);
    			fprintf(stdout, "VARIABLE_LIMIT: %d\n", g_variableExample);
    			continue;
    		}

    If u search in token, u can find "fprint(stdout, "VARIABLE_LIMIT: %d\n", variable name);

    "VARIABLE_LIMIT: " is the declaration that you can put in the CONFIG of your cores to use the variable differently according to your needs

  4. I don't know if you misspelled the question, or are you really asking this because it is full of guides around for these basic things, however I help you

    Navicat

    applytype= vnum bonus (applytype 0 - 1 - 2)

    applyvalue= value of bonus  (applyvalue 0 - 1 - 2)

    Example: https://metin2.download/picture/RKp4yx6Km8YR1hPiF0K14ekJ4rckKc84/.png

    37 = Magic Resistence

    6 = how much magic resistance?

    This is for the server side, then to make them also visual in game, item_proto client, you have to manually give the bonuses to the item

    https://metin2.download/picture/oa9AhuI5bK2xYg3r0GwE4007nn4WWa9K/.png

     

    • Good 1
  5.  

    @TMP4 I can't tell you why you don't start the game without a gdb, but I can tell you that the gdb problem you encountered does not come from the compilation the game file has undergone, but your jail is "badly updateds or not updates" as it is missing that flag required by gdb, probably in the latest versions

    You could try updating your freebsd

  6. There is a big difference between legality and ethics, we are a community of young people and we must respect each other. I don't care much for Ymir. I am the first to use leaked systems, but I do it for fun, I don't sell them.
    The real problem is to ask for support for the leaked material, just use it for yourself and don't annoy anyone, that's fine with me too.

    My opinion is that being a paladin serves no purpose, so much so as to cover Ymir Webzen's ass by proving that he is a fanboy, when they are the first to give a damn about what they have done, Metin2 is one of the scam games they have made that has had success.

    (my personal thought)

    • Lmao 1
    • Love 1
  7. For people who encounter this problem and cannot solve it, the solution is multifactorial.

    The first can be in the interface module, diff the file with a working one, find it online.

     

    I solved it personally by editing in char.cpp

     

    #ifdef ENABLE_OFFLINE_SHOP
    	if (IsPC() || IsNPC() ||/*error*/ GetRaceNum() == 30000) //like to  if (IsPC() || IsNPC() && GetRaceNum() == 30000)
    	{		
    		if (!CTargetManager::instance().GetTargetInfo(pkChrCauser->GetPlayerID(), TARGET_TYPE_VID, GetVID()) || GetRaceNum() == 30000)
    #else
    	if (IsPC())
    	{
    		if (!CTargetManager::instance().GetTargetInfo(pkChrCauser->GetPlayerID(), TARGET_TYPE_VID, GetVID()))
    #endif

     

    for obscure reason, there was an && instead of || °-° before GetRaceNum

    if I find others I will let you know, I took this system online and it was written incorrectly.

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