Jump to content

Yiv

Inactive Member
  • Posts

    160
  • Joined

  • Last visited

  • Days Won

    1
  • Feedback

    0%

Posts posted by Yiv

  1. Dear community,

     

    I'm searching for a solution for this problem: I need the server attr of my map but I don't know how to convert this? I can't take an other one because my attr is used by server (which accesses the server attr) and I have problems with new systems now.

     

    I need to convert client attr to server attr. Any solution?

     

    Regards

  2. As the other said:

    You need a D drive with some clientfiles.

     

    Create a D: drive if you don't have one (just google if you don't know how).

    You need this folders of your client: environment, pc, property, special, terrainmaps, textureset, tree, zone and these DLLs: devil, granny2, ilu and MSS32.

    You find all folders in your epk files of the client (extract them and search - tip: environment -> ETC)

     

    Put all files into D:ymir work

     

    Regards

  3. Dear community,

     

    I defined many groups in group.txt but now not all groups are loaded.

    So I thought maybe there's an error and I checked and checked but found nothing. I got a presumption and moved my groups at the beginning of file and it works so I think there's a limit of groups you can have.

     

    Is this right? How could I solve this because I found nothing in the source about that.

     

    Regards

  4. You should do this because if you don't do you receive this error in syserr (doesn't matter InGame but doesn't look good):

    0417 19:41:07613 :: GRANNY: File is file format revision 6 (current version is 7)
    0417 19:41:07615 :: GRANNY: File has run-time type tag of 0x80000010, which doesn't match this version of Granny (0x80000037).  Automatic conversion will be attempted.

    Regards

  5. M2 Download Center

    This is the hidden content, please
    ( Internal )

    Dear community,

     

    this is my first guide for you in which I will show you how you change the older Granny 2.4 version which is the client using to the newer Granny 2.9 version.

    For this tutorial I'm using the mainline_released client source (all client sources are the same as I heard).

     

    DO NOT FORGET TO CREATE BACKUPS!

     

    1. Step:

    Navigate to novalineSrcsToolsRAD Game Toolsgrannycommon and unzip the file granny_common_2_9_12_0_release.zip. You will receive some folders. Now you navigate into the folder include and copy the granny.h file to the include folder of your client (for me it's mainline_releasedSrcsExterninclude). Then you go into the libwin32 folder and copy all the *.lib and *.pdb files into your lib folder of your client.

     

    2. Step:

    Open your client source and navigate to the project EterGrnLib.

    Open Mesh.cpp.

    Search for this:

    int * boneIndices = GrannyGetMeshBindingToBoneIndices(pgrnMeshBinding);

    Replace with this:

    int * boneIndices = (int*)GrannyGetMeshBindingToBoneIndices(pgrnMeshBinding);

    Search for this:

    return GrannyGetMeshBindingToBoneIndices(m_pgrnMeshBindingTemp);

    Replace with this:

    return (int*)GrannyGetMeshBindingToBoneIndices(m_pgrnMeshBindingTemp);

    Search for this:

    m_pgrnMeshDeformer = GrannyNewMeshDeformer(pgrnInputType, pgrnOutputType, GrannyDeformPositionNormal);

    Replace with this:

    m_pgrnMeshDeformer = GrannyNewMeshDeformer(pgrnInputType, pgrnOutputType, GrannyDeformPositionNormal, GrannyAllowUncopiedTail);

    -----

    Open ModelInstanceUpdate.cpp.

    Search for this:

    GrannyUpdateModelMatrix(m_pgrnModelInstance, fSecondsElapsed, (const float *) pMatrix, (float *) pMatrix);

    Replace with this:

    GrannyUpdateModelMatrix(m_pgrnModelInstance, fSecondsElapsed, (const float *) pMatrix, (float *) pMatrix, false);

    -----

    Open Material.cpp.

    Search for this:

    granny_variant twoSideResult = GrannyFindMatchingMember(pgrnMaterial->ExtendedData.Type, pgrnMaterial->ExtendedData.Object, "Two-sided");
    
    if (NULL != twoSideResult.Type)
    	GrannyConvertSingleObject(twoSideResult.Type, twoSideResult.Object, TwoSidedFieldType, &twoSided);

    Replace with this:

    granny_variant twoSideResult;
    
    if (GrannyFindMatchingMember(pgrnMaterial->ExtendedData.Type, pgrnMaterial->ExtendedData.Object, "Two-sided", &twoSideResult)  
    	&& NULL != twoSideResult.Type)
    	GrannyConvertSingleObject(twoSideResult.Type, twoSideResult.Object, TwoSidedFieldType, &twoSided, NULL);

    -----

    Open ModelInstanceModel.cpp

    Search for this:

    return GrannyGetMeshBindingToBoneIndices(m_vct_pgrnMeshBinding[iMeshBinding]);

    Replace with this:

    return (int*)GrannyGetMeshBindingToBoneIndices(m_vct_pgrnMeshBinding[iMeshBinding]);

    -----

    Navigate to the UserInterface project.

    Open UserInterface.cpp.

    Search for this (it's at the end of the file):

    static void GrannyError(granny_log_message_type Type,
    						granny_log_message_origin Origin,
    						char const *Error,
    						void *UserData)
    {
        TraceError("GRANNY: %s", Error);
    }

    Replace with this:

    static void GrannyError(granny_log_message_type Type,
    						granny_log_message_origin Origin,
    						char const* File,
    						granny_int32x Line,
    						char const *Error,
    						void *UserData)
    {
        TraceError("GRANNY: %s", Error);
    }

    Now rebuild the whole project!

     

     

    3. Step:

    Go to the folder where we unziped the things of the first step and go to the lib folder. Copy the granny2.dll into your main client directory.

     

     

    Now you're finished and you have Granny 2.9.

    I hope this guide helped you!

     

     

    Special Thanks to Cryfact!

     

    Regards

    • Metin2 Dev 104
    • Dislove 3
    • Think 1
    • Confused 1
    • Scream 2
    • Good 45
    • Love 13
    • Love 123
  6. He has an inventory like this but now the datatype of the slots isn't enough because the limit of BYTE (unsigned char) is 255.

    He has to increase it to use the last slots of belt window, but his problem is, he don't know every function which is using the cells so he has to change the datatypes there.

     

    Regards

  7. Dear community,

     

    I want to execute this query with the source and then after that work with the results:

    SELECT premium_state, special_stat, is_special FROM player WHERE name = '%s', GetName()

    My problem now is how I should execute the query in questlua_pc.cpp and then cache the 3 variables (premium_state VARCHAR, special_stat SMALLINT, is_special BOOLEAN) in these variables: std::string stPremStat, WORD wSpecStat, bool bIsSpec

     

    How can I do that?

     

    Regards

  8. Dear community,

     

    I don't know if it changed but normally (34083 and lower) if you wanted to change the title of the window you had to extract root and edit locale.py and change the value of APP_TITLE to the title you want. So, I did it but the window title is still "Zoria 2" although I changed APP_TITLE to "Development Client". I searched the source and all files in which it could be defined but I found nothing.

     

    Someone knows the solution?

     

    Regards

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