Jump to content

Recommended Posts

  • 3 weeks later...

when I go to create a new character the client closes syserr:
1005 05:35:14488 :: CRaceManager::GetRaceDataPointer: cannot load data by dwRaceIndex 8
1005 05:35:14488 :: CGraphicThingInstance::RegisterModelThing(iModelThing=0, pModelThing=d:\ymir work\pc\warrior\warrior_novice.gr2)

 

Fix##

Edited by tarata12
Link to comment
Share on other sites

  • 2 weeks later...
  • 1 month later...
2 minutes ago, Ymir said:

 

 

 

I have both of these problems, does anyone know how to fix them?

 

 

 

I have both of these problems, does anyone know how to fix them?

1.PyhonPlayerSetting.cpp look Horse skills make all like warrior horse charge, horse splash

2. problem check playerSetting.py affect count and PyhonPlayerSetting.cpp

Link to comment
Share on other sites

On 11/20/2022 at 11:54 PM, forum80 said:

1.PyhonPlayerSetting.cpp look Le abilità del cavallo rendono tutti come la carica del cavallo guerriero, lo splash del cavallo

2. controllo problema playerSetting.py conteggio degli effetti e PyhonPlayerSetting.cpp

Sorry, I didn't understand well

 

Does anyone have a solution? Horse skills and "damage" on mobs are no longer seen

  • Metin2 Dev 1
Link to comment
Share on other sites

  • 1 month later...
  • 2 months later...

My client randomly crash after teleport (no any error, syserr clean, I dont find any problem in game, all works perfect - effects, icons, skills, dmg, gm flag, horse, etc..)

Using cython, anyone has similar problem or can know whats problem? Its only with teleport 1-5 teleports.. Game is clean, without any problem.

Link to comment
Share on other sites

  • Active Member
3 hours ago, Pseudabo said:

My client randomly crash after teleport (no any error, syserr clean, I dont find any problem in game, all works perfect - effects, icons, skills, dmg, gm flag, horse, etc..)

Using cython, anyone has similar problem or can know whats problem? Its only with teleport 1-5 teleports.. Game is clean, without any problem.

It's not a full tutorial man You have to think and add your own effects/motion

  • kekw 1
  • Lmao 1
Link to comment
Share on other sites

20 minutes ago, Draveniou1 said:

It's not a full tutorial man You have to think and add your own effects/motion

Actually no. I found problem. If you noticed, there are 67 spells hardcoded in the code and the game loads these files regardless of whether the spells are enabled or not. The problem is that the client randomly crashes during teleportation because it reads TGA images as DDS. This is an old bug that has been causing problems for some time now. A good example of this is loading images when moving from locale to etc. Therefore, if you have these files in the game but have 67 spells disabled, it will result in crashes and you won't get any errors because there are technically none. I'm adding a fix. I recommend applying it to any client because it's not just a fix for this thread, but an overall fix for the client and a prevention of crashes.


EterImageLib/DXTCImage.cpp

Search:

bool CDXTCImage::LoadHeaderFromMemory(const BYTE * c_pbMap)

Change:

bool CDXTCImage::LoadHeaderFromMemory(const BYTE * c_pbMap, int iSize)

Search:

DWORD dwMagic;

Add under:

if (iSize < sizeof(DWORD))
        return false;

Search:

dwMagic = *(DWORD *) c_pbMap;
    c_pbMap += sizeof(DWORD);

Add under:

iSize -= sizeof(DWORD);

Search:

DDSURFACEDESC2 ddsd;

Add under:

if (iSize < sizeof(DDSURFACEDESC2))
        return false;

Search:

memcpy(&ddsd, c_pbMap, sizeof(DDSURFACEDESC2));
    c_pbMap += sizeof(DDSURFACEDESC2);

Add under:

iSize -= sizeof(DDSURFACEDESC2);

Search:

return LoadFromMemory((const BYTE*) pvMap);

Change:

return LoadFromMemory((const BYTE*) pvMap, mappedFile.Size());

Search:

bool CDXTCImage::LoadFromMemory(const BYTE * c_pbMap)

Change:

bool CDXTCImage::LoadFromMemory(const BYTE * c_pbMap, int iSize)

Search:

if (!LoadHeaderFromMemory(c_pbMap))

Change:

if (!LoadHeaderFromMemory(c_pbMap, iSize))

EterImageLib/DXTCImage.h

Search:

        bool LoadFromMemory(const BYTE * c_pbMap);
        bool LoadHeaderFromMemory(const BYTE * c_pbMap);

Change:

        bool LoadFromMemory(const BYTE * c_pbMap, int iSize);
        bool LoadHeaderFromMemory(const BYTE * c_pbMap, int iSize);

EterLib/GrpImageTexture.cpp

Search:

if (image.LoadHeaderFromMemory((const BYTE *) c_pvBuf))

Change:

if (image.LoadHeaderFromMemory((const BYTE *) c_pvBuf, bufSize))

 

  • Love 10
Link to comment
Share on other sites

  • Honorable Member
On 4/2/2023 at 9:51 AM, Pseudabo said:

Actually no. I found problem. If you noticed, there are 67 spells hardcoded in the code and the game loads these files regardless of whether the spells are enabled or not. The problem is that the client randomly crashes during teleportation because it reads TGA images as DDS. This is an old bug that has been causing problems for some time now. A good example of this is loading images when moving from locale to etc. Therefore, if you have these files in the game but have 67 spells disabled, it will result in crashes and you won't get any errors because there are technically none. I'm adding a fix. I recommend applying it to any client because it's not just a fix for this thread, but an overall fix for the client and a prevention of crashes.


EterImageLib/DXTCImage.cpp

Search:

bool CDXTCImage::LoadHeaderFromMemory(const BYTE * c_pbMap)

Change:

bool CDXTCImage::LoadHeaderFromMemory(const BYTE * c_pbMap, int iSize)

Search:

DWORD dwMagic;

Add under:

if (iSize < sizeof(DWORD))
        return false;

Search:

dwMagic = *(DWORD *) c_pbMap;
    c_pbMap += sizeof(DWORD);

Add under:

iSize -= sizeof(DWORD);

Search:

DDSURFACEDESC2 ddsd;

Add under:

if (iSize < sizeof(DDSURFACEDESC2))
        return false;

Search:

memcpy(&ddsd, c_pbMap, sizeof(DDSURFACEDESC2));
    c_pbMap += sizeof(DDSURFACEDESC2);

Add under:

iSize -= sizeof(DDSURFACEDESC2);

Search:

return LoadFromMemory((const BYTE*) pvMap);

Change:

return LoadFromMemory((const BYTE*) pvMap, mappedFile.Size());

Search:

bool CDXTCImage::LoadFromMemory(const BYTE * c_pbMap)

Change:

bool CDXTCImage::LoadFromMemory(const BYTE * c_pbMap, int iSize)

Search:

if (!LoadHeaderFromMemory(c_pbMap))

Change:

if (!LoadHeaderFromMemory(c_pbMap, iSize))

EterImageLib/DXTCImage.h

Search:

        bool LoadFromMemory(const BYTE * c_pbMap);
        bool LoadHeaderFromMemory(const BYTE * c_pbMap);

Change:

        bool LoadFromMemory(const BYTE * c_pbMap, int iSize);
        bool LoadHeaderFromMemory(const BYTE * c_pbMap, int iSize);

EterLib/GrpImageTexture.cpp

Search:

if (image.LoadHeaderFromMemory((const BYTE *) c_pvBuf))

Change:

if (image.LoadHeaderFromMemory((const BYTE *) c_pvBuf, bufSize))

 

This fixes the fog.tga issue too. I forgot to add this fix on the WE.

Edited by martysama0134
  • Love 3
Link to comment
Share on other sites

  • 1 month later...
  • 2 months later...
  • Premium

Update to C++20 

This is the hidden content, please
 or 
This is the hidden content, please
idk if is the right one but is working...

On 6/4/2023 at 10:42 AM, iSkyx said:

Anyone know how to fix this?

 

 

0604 11:40:04110 :: CRaceManager::GetRaceDataPointer: cannot load data by dwRaceIndex 5
0604 11:40:04110 :: CResourceManager::GetResourcePointer: filename error!
 

Edit the followin lines with your msm locations mine are inside root/msm/....

static std::vector<TRaceData> m_vecRaceData =
{
  { RACE_WARRIOR_M, "msm/warrior_m.msm", "d:/ymir work/pc/warrior/intro/" },
  { RACE_WARRIOR_W, "msm/warrior_w.msm", "d:/ymir work/pc2/warrior/intro/" },

  { RACE_ASSASSIN_W, "msm/assassin_w.msm", "d:/ymir work/pc/assassin/intro/" },
  { RACE_ASSASSIN_M, "msm/assassin_m.msm", "d:/ymir work/pc2/assassin/intro/" },

  { RACE_SURA_M, "msm/sura_m.msm", "d:/ymir work/pc/sura/intro/" },
  { RACE_SURA_W, "msm/sura_w.msm", "d:/ymir work/pc2/sura/intro/" },

  { RACE_SHAMAN_W, "msm/shaman_w.msm", "d:/ymir work/pc/shaman/intro/" },
  { RACE_SHAMAN_M, "msm/shaman_m.msm", "d:/ymir work/pc2/shaman/intro/" },
};

Tests
Wihout:
spacer.png
With CPP PSM:
spacer.png

  • Metin2 Dev 34
  • Good 7
  • Love 10

plague.png.1f5de75b42146262dcd655a5a8078

Link to comment
Share on other sites

  • Premium
On 8/7/2023 at 5:15 AM, DemOnJR said:

Update to C++20 

This is the hidden content, please
 or 
This is the hidden content, please
idk if is the right one but is working...

Edit the followin lines with your msm locations mine are inside root/msm/....

static std::vector<TRaceData> m_vecRaceData =
{
  { RACE_WARRIOR_M, "msm/warrior_m.msm", "d:/ymir work/pc/warrior/intro/" },
  { RACE_WARRIOR_W, "msm/warrior_w.msm", "d:/ymir work/pc2/warrior/intro/" },

  { RACE_ASSASSIN_W, "msm/assassin_w.msm", "d:/ymir work/pc/assassin/intro/" },
  { RACE_ASSASSIN_M, "msm/assassin_m.msm", "d:/ymir work/pc2/assassin/intro/" },

  { RACE_SURA_M, "msm/sura_m.msm", "d:/ymir work/pc/sura/intro/" },
  { RACE_SURA_W, "msm/sura_w.msm", "d:/ymir work/pc2/sura/intro/" },

  { RACE_SHAMAN_W, "msm/shaman_w.msm", "d:/ymir work/pc/shaman/intro/" },
  { RACE_SHAMAN_M, "msm/shaman_m.msm", "d:/ymir work/pc2/shaman/intro/" },
};

Tests
Wihout:
spacer.png
With CPP PSM:
spacer.png

Thanks! I've updated repository with your contribution.

  • Metin2 Dev 4
  • Good 1
  • Love 3
Link to comment
Share on other sites

  • 1 month later...
  • 2 months later...
  • Premium

https://metin2.download/picture/XFiv7iCRb93jh1VbF5Icfi2Cdh7vAqZg/.gif
Its working. ❤️ 
edit: also, i dont have any lag when i meet a player. (The typical 0.5/1 sec lag u know)

Edited by Ulthar
Core X - External 2 Internal
  • Love 1

Ulthar

Link to comment
Share on other sites

  • Active+ Member
This is the hidden content, please

 

If anyone wants to have this system with Lykan here are the files, i've changed them to work with lykan, it took me a lot of time but it works!
Just replace, compile, and it should all work normally.

  • Metin2 Dev 9
  • Good 3
  • Love 2
Link to comment
Share on other sites

19 minutes ago, Ulthar said:

Set it to m1, for me its owrking on M1, but not on P.

Because when you check char_skill.cpp, M1 is the maximum.. It's akin to fishing.. Notice that it's not even in the skill_proto (thus has no level), and this isn't a tutorial copy and paste. This is a clean foundation where you need to go through all the skills and their index and adapt it to your game."

Link to comment
Share on other sites

  • Premium
3 minutes ago, Filachilla said:

Because when you check char_skill.cpp, M1 is the maximum.. It's akin to fishing.. Notice that it's not even in the skill_proto (thus has no level), and this isn't a tutorial copy and paste. This is a clean foundation where you need to go through all the skills and their index and adapt it to your game."

thanks for the long aswer. ofc. 😄

Ulthar

Link to comment
Share on other sites

Announcements



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