blanco 181 Posted October 19, 2019 Share Posted October 19, 2019 (edited) When the character dies the sash stays in a weird position, any ideas on how this could be fixed? Using: Sash System with Scale Function v0.3 by LeNnT Edited August 25, 2022 by Metin2 Dev Core X - External 2 Internal Link to comment Share on other sites More sharing options...
Premium Syreldar 1875 Posted October 20, 2019 Premium Share Posted October 20, 2019 The problem is basically the skeleton part to which they're attached to, I believe the normal servers also have this issue. 1 "Nothing's free in this life. Ignorant people have an obligation to make up for their ignorance by paying those who help them. Either you got the brains or cash, if you lack both you're useless." Syreldar Link to comment Share on other sites More sharing options...
Premium WeedHex 635 Posted October 20, 2019 Premium Share Posted October 20, 2019 Right 5 hours ago, Syreldar said: The problem is basically the skeleton part to which they're attached to, I believe the normal servers also have this issue. Link to comment Share on other sites More sharing options...
Flourine 106 Posted October 20, 2019 Share Posted October 20, 2019 5 godzin temu, WeedHex napisał: Right true Link to comment Share on other sites More sharing options...
AltanOzkan 17 Posted January 7, 2020 Share Posted January 7, 2020 Any news about fix Link to comment Share on other sites More sharing options...
Premium Jira 458 Posted January 7, 2020 Premium Share Posted January 7, 2020 you can hide it if the char is dead, but this isn't an fix.. Link to comment Share on other sites More sharing options...
Honorable Member Owsap 8165 Posted January 7, 2020 Honorable Member Share Posted January 7, 2020 (edited) A possible way to fix this issue is to change the scale of sash when the character is dead, at first I think all characters will be in the same position while laying down so adjusting the z position to -30 should do the trick and would be less weird. @ InstanceBase.cpp /// 1. // Search @ void CInstanceBase::SetAcce m_GraphicThingInstance.SetScalePosition(fPositionX, fPositionY, fPositionZ); // Add above if (IsDead()) fPositionZ -= 30; @ char_battle.cpp /// 1. // Search @ void CHARACTER::Dead GetDesc()->SetPhase(PHASE_DEAD); // Add below LPITEM pkAcce = GetWear(WEAR_COSTUME_ACCE); if (pkAcce && pkAcce->IsEquipped()) this->UpdatePacket(); Edited August 25, 2022 by Metin2 Dev Core X - External 2 Internal 3 https://owsap.dev/ / https://osf.owsap.dev/ Link to comment Share on other sites More sharing options...
Premium Wizz 4 Posted January 7, 2020 Premium Share Posted January 7, 2020 @Owsap that's nice! Link to comment Share on other sites More sharing options...
Bizzy 101 Posted February 15, 2020 Share Posted February 15, 2020 (edited) https://metin2.download/picture/lHzp4mYfJ6Rr9bFZ9XB1RlEs2V1q631R/.png hmm Edited September 4, 2022 by Metin2 Dev Core X - External 2 Internal Link to comment Share on other sites More sharing options...
Johnny69 365 Posted February 15, 2020 Share Posted February 15, 2020 // InstanceBaseBattle.cpp // Search for: m_GraphicThingInstance.Die(); // Add after: m_GraphicThingInstance.SetScalePosition(0.0f, 0.0f, 0.0f); The current scale position function is not writed ok for attached models. Official server realised that and changed it. Do the same 4 Link to comment Share on other sites More sharing options...
Honorable Member xP3NG3Rx 19674 Posted February 17, 2020 Honorable Member Share Posted February 17, 2020 (edited) Yes they did, but diffent way. Spoiler int __thiscall CGraphicThingInstance::DeformNoSkin(int this) { int v1; // esi int result; // eax unsigned int v3; // edi unsigned int v4; // ecx int v5; // ecx int v6; // ecx int v7; // ecx int v8; // eax int v9; // ecx v1 = this; *(_BYTE *)(this + 604) = 1; result = (*(_DWORD *)(this + 684) - *(_DWORD *)(this + 680)) >> 2; v3 = 0; if ( result ) { do { v4 = (*(_DWORD *)(v1 + 684) - *(_DWORD *)(v1 + 680)) >> 2; if ( v3 >= v4 ) _invalid_parameter_noinfo(v4); result = CGrannyLODController::isModelInstance(*(_DWORD *)(*(_DWORD *)(v1 + 680) + 4 * v3)); if ( result ) { if ( v3 == 5 ) { CGraphicThingInstance::RecalcAccePositionMatrixFromBoneMatrix((float *)v1); if ( (unsigned int)((*(_DWORD *)(v1 + 684) - *(_DWORD *)(v1 + 680)) >> 2) <= 5 ) _invalid_parameter_noinfo(v6); v7 = *(_DWORD *)(*(_DWORD *)(v1 + 680) + 20); v8 = v1 + 380; } else { if ( v3 >= (*(_DWORD *)(v1 + 684) - *(_DWORD *)(v1 + 680)) >> 2 ) _invalid_parameter_noinfo(v5); v9 = *(_DWORD *)(*(_DWORD *)(v1 + 680) + 4 * v3); v8 = v1 + 108; } result = CGrannyLODController::DeformNoSkin(v8); } ++v3; } while ( v3 < (*(_DWORD *)(v1 + 684) - *(_DWORD *)(v1 + 680)) >> 2 ); } return result; } int __thiscall CGraphicThingInstance::RecalcAccePositionMatrixFromBoneMatrix(float *this) { float *v1; // ebx int result; // eax float *v3; // eax double v4; // st7 float *v5; // eax double v6; // st7 int v7; // [esp+8h] [ebp-ACh] float v8; // [esp+Ch] [ebp-A8h] float v9; // [esp+10h] [ebp-A4h] float v10; // [esp+14h] [ebp-A0h] float v11; // [esp+18h] [ebp-9Ch] float v12; // [esp+1Ch] [ebp-98h] float v13; // [esp+20h] [ebp-94h] int v14; // [esp+24h] [ebp-90h] int v15; // [esp+28h] [ebp-8Ch] int v16; // [esp+2Ch] [ebp-88h] int v17; // [esp+30h] [ebp-84h] char v18; // [esp+34h] [ebp-80h] char v19; // [esp+74h] [ebp-40h] v1 = this; if ( !((*((_DWORD *)this + 171) - *((_DWORD *)this + 170)) >> 2) ) _invalid_parameter_noinfo(this); result = CGrannyLODController::GetModelInstance(**((_DWORD **)v1 + 170)); if ( result ) { v7 = 0; CGrannyModelInstance::GetBoneIndexByName("Bip01 Spine2", &v7); v3 = (float *)CGrannyModelInstance::GetBoneMatrixPointer(v7); if ( v3 ) { v12 = v3[12]; v13 = v3[13]; v4 = v3[14]; v5 = v1 + 111; v11 = v4; v5[14] = 0.0; v5[13] = 0.0; v14 = 0; v5[12] = 0.0; v15 = 0; v5[11] = 0.0; v16 = 0; v5[9] = 0.0; v17 = 0; v5[8] = 0.0; v5[7] = 0.0; v5[6] = 0.0; v5[4] = 0.0; v5[3] = 0.0; v5[2] = 0.0; v5[1] = 0.0; v5[15] = 1.0; v5[10] = 1.0; v5[5] = 1.0; *v5 = 1.0; v8 = v12; v9 = v13; v10 = v11; D3DXMatrixTransformation(v1 + 111, &v8, &v14, v1 + 91, 0, 0, 0); } D3DXMatrixMultiply(&v18, v1 + 127, v1 + 111); result = D3DXMatrixMultiply(&v19, &v18, v1 + 10); v6 = v1[1]; qmemcpy(v1 + 95, &v19, 64u); v1[107] = v6 + v1[107]; v1[108] = v1[2] + v1[108]; v1[109] = v1[3] + v1[109]; } return result; } Edited August 25, 2022 by Metin2 Dev Core X - External 2 Internal 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now