Core Fehler :DQuote:
@Babycake
in wie fern geschrottet?
Aber egal, ist einer von meinem 5 Testis ^^
Best Regards, _Babycake
Core Fehler :DQuote:
@Babycake
in wie fern geschrottet?
//----- (08128BB0) --------------------------------------------------------
int __cdecl CHARACTER__CreatePlayerProto(int a1, void *s)
{
int v2; // ecx@1
int v3; // eax@1
int v11; // eax@3
const char *v12; // eax@4
int v13; // ecx@5
int v14; // eax@7
int v15; // eax@8
int v16; // eax@10
int v17; // eax@10
int v18; // eax@11
int v19; // eax@12
signed int v20; // edx@13
int v21; // eax@13
int v22; // edx@15
int v23; // ecx@15
int result; // eax@17
int v25; // ST0C_4@17
unsigned int v26; // eax@25
char *v27; // ecx@28
int v35; // [sp+4h] [bp-74h]@22
int v36; // [sp+Ch] [bp-6Ch]@13
unsigned int v37; // [sp+24h] [bp-54h]@4
char v38; // [sp+28h] [bp-50h]@1
char *src; // [sp+30h] [bp-48h]@28
char v40; // [sp+40h] [bp-38h]@29
int v41; // [sp+50h] [bp-28h]@1
memset(s, 0, 0x71Au);
std__string__string(&v41, a1 + 3808);
v3 = std__string__compare(&v41, &byte_81F5C80);
_EDX = -1;
v38 = v3 == 0;
_EAX = v41;
v2 = v41 - 12;
__asm { lock xadd [eax-4], edx }
if ( _EDX <= 0 )
std__string___Rep___M_destroy(v2, &v40);
if ( v38 )
{
v11 = CHARACTER__GetName(a1);
strncpy((char *)s + 4, (const char *)v11, 0x18u);
}
else
{
std__string__string(&src, a1 + 3808);
src[*((_DWORD *)src - 3)] = std__string___Rep___S_terminal;
strncpy((char *)s + 4, src, 0x18u);
_EAX = src;
_EDX = -1;
v27 = src - 12;
__asm { lock xadd [eax-4], edx }
if ( _EDX <= 0 )
std__string___Rep___M_destroy(v27, &v40);
}
*((_BYTE *)s + 28) = 0;
v12 = *(const char **)(*(_DWORD *)(a1 + 24) + 24);
v12[*((_DWORD *)v12 - 3)] = std__string___Rep___S_terminal;
strncpy((char *)s + 29, v12, 0xFu);
*((_BYTE *)s + 44) = 0;
*(_DWORD *)s = *(_DWORD *)(a1 + 240);
*((_BYTE *)s + 47) = CHARACTER__GetPoint(a1, 2u);
*((_BYTE *)s + 48) = *(_BYTE *)(a1 + 1282);
*((_BYTE *)s + 49) = CHARACTER__GetPoint(a1, 0x19u);
*(_DWORD *)((char *)s + 58) = *(_DWORD *)(a1 + 1284);
*(_DWORD *)((char *)s + 62) = *(_DWORD *)(a1 + 1288);
*(_WORD *)((char *)s + 45) = *(_BYTE *)(a1 + 1280);
*((_BYTE *)s + 1717) = *(_BYTE *)(a1 + 2993);
*((_BYTE *)s + 1728) = *(_BYTE *)(a1 + 1312);
v37 = get_dword_time() - *(_DWORD *)(a1 + 3008);
if ( v37 > 0xEA60 )
{
v13 = *(_DWORD *)(a1 + 52);
if ( v13 )
{
if ( !SECTREE__IsAttr(v13, *(_DWORD *)(a1 + 36), *(_DWORD *)(a1 + 40), 4) )
{
if ( CHARACTER__GetRealAlignment(a1) < 0 )
{
if ( CHARACTER__IsEquipUniqueItem(a1, 70050) )
v26 = 120 * v37 / 0xEA60;
else
v26 = 60 * v37 / 0xEA60;
v35 = v26;
}
else
{
v35 = 5 * v37 / 0xEA60;
}
CHARACTER__UpdateAlignment(a1, v35);
}
}
v14 = CHARACTER__GetRealPoint(a1, 0x1Fu);
CHARACTER__SetRealPoint(a1, 0x1Fu, v37 / 0xEA60 + v14);
CHARACTER__ResetPlayTime(a1, v37 % 0xEA60);
}
*(_DWORD *)((char *)s + 103) = CHARACTER__GetRealPoint(a1, 0x1Fu);
*(_DWORD *)((char *)s + 1729) = *(_DWORD *)(a1 + 3324);
v15 = *(_DWORD *)(a1 + 3064);
if ( v15 || *(_DWORD *)(a1 + 3068) )
{
*(_DWORD *)((char *)s + 67) = v15;
v17 = *(_DWORD *)(a1 + 3068);
*(_DWORD *)((char *)s + 75) = 0;
*(_DWORD *)((char *)s + 71) = v17;
v16 = *(_DWORD *)(a1 + 3076);
}
else
{
*(_DWORD *)((char *)s + 67) = *(_DWORD *)(a1 + 36);
*(_DWORD *)((char *)s + 71) = *(_DWORD *)(a1 + 40);
*(_DWORD *)((char *)s + 75) = *(_DWORD *)(a1 + 44);
v16 = *(_DWORD *)(a1 + 20);
}
*(_DWORD *)((char *)s + 79) = v16;
v18 = *(_DWORD *)(a1 + 3092);
if ( v18 )
{
*(_DWORD *)((char *)s + 91) = v18;
*(_DWORD *)((char *)s + 83) = *(_DWORD *)(a1 + 3080);
v19 = *(_DWORD *)(a1 + 3084);
}
else
{
*(_DWORD *)((char *)s + 91) = *(_DWORD *)((char *)s + 79);
*(_DWORD *)((char *)s + 83) = *(_DWORD *)((char *)s + 67);
v19 = *(_DWORD *)((char *)s + 71);
}
*(_DWORD *)((char *)s + 87) = v19;
v21 = CHARACTER__GetName(a1);
v36 = *(_DWORD *)((char *)s + 67);
sys_log(0, "SAVE: %s %dx%d", v21);
*((_WORD *)s + 25) = CHARACTER__GetRealPoint(a1, 0xCu);
*((_WORD *)s + 26) = CHARACTER__GetRealPoint(a1, 0xDu);
*((_WORD *)s + 27) = CHARACTER__GetRealPoint(a1, 0xEu);
*((_WORD *)s + 28) = CHARACTER__GetRealPoint(a1, 0xFu);
*(_WORD *)((char *)s + 107) = CHARACTER__GetPoint(a1, 0x1Au);
*(_WORD *)((char *)s + 109) = CHARACTER__GetPoint(a1, 0x1Cu);
*(_WORD *)((char *)s + 111) = CHARACTER__GetPoint(a1, 0x1Bu);
*(_WORD *)((char *)s + 113) = CHARACTER__GetPoint(a1, 0x71u);
*((_WORD *)s + 883) = CHARACTER__GetPoint(a1, 0x70u);
v20 = 0;
*(_WORD *)((char *)s + 95) = *(_DWORD *)(a1 + 1292);
*(_WORD *)((char *)s + 97) = *(_DWORD *)(a1 + 1296);
*((_WORD *)s + 863) = *(_DWORD *)(a1 + 1308);
*(_WORD *)((char *)s + 99) = *(_WORD *)(a1 + 1300);
*(_WORD *)((char *)s + 101) = *(_WORD *)(a1 + 1304);
do
{
*(_WORD *)(s + 2 * v20 + 1645) = *(_WORD *)(a1 + 2 * v20 + 3123);
++v20;
}
while ( v20 <= 35 );
v23 = *(_DWORD *)(a1 + 3016);
v22 = *(_DWORD *)(v23 - 12);
if ( v22 )
{
if ( !*(_BYTE *)(a1 + 3020) )
{
*(_BYTE *)(v22 + v23) = std__string___Rep___S_terminal;
strncpy((char *)s + 1733, *(const char **)(a1 + 3016), 0x20u);
*((_BYTE *)s + 1765) = 0;
}
}
thecore_memcpy((char *)s + 1718, a1 + 2368, 8, v36);
thecore_memcpy((char *)s + 115, *(_DWORD *)(a1 + 3420), 1530, v25);
*((_DWORD *)s + 442) = *(_DWORD *)(a1 + 104);
*((_DWORD *)s + 443) = *(_DWORD *)(a1 + 108);
result = *(_WORD *)(a1 + 112);
*((_WORD *)s + 888) = result;
return result;
}
// 804BD0C: using guessed type int __cdecl std__string__compare(_DWORD, _DWORD);
// 804BD1C: using guessed type int __cdecl std__string__string(_DWORD, _DWORD);
// 804CA2C: using guessed type int __cdecl std__string___Rep___M_destroy(_DWORD, _DWORD);
// 8240E58: using guessed type int (__cdecl *thecore_memcpy)(_DWORD, _DWORD, _DWORD, _DWORD);
// 8321718: using guessed type char std__string___Rep___S_terminal;
Ist das jetzt die richtige oder nur das dann gut etc. weg ist?Quote:
Das ist die Funktion im Sourcecode der Game Datei ...Code://----- (08128BB0) -------------------------------------------------------- int __cdecl CHARACTER__CreatePlayerProto(int a1, void *s) { int v2; // ecx@1 int v3; // eax@1 int v11; // eax@3 const char *v12; // eax@4 int v13; // ecx@5 int v14; // eax@7 int v15; // eax@8 int v16; // eax@10 int v17; // eax@10 int v18; // eax@11 int v19; // eax@12 signed int v20; // edx@13 int v21; // eax@13 int v22; // edx@15 int v23; // ecx@15 int result; // eax@17 int v25; // ST0C_4@17 unsigned int v26; // eax@25 char *v27; // ecx@28 int v35; // [sp+4h] [bp-74h]@22 int v36; // [sp+Ch] [bp-6Ch]@13 unsigned int v37; // [sp+24h] [bp-54h]@4 char v38; // [sp+28h] [bp-50h]@1 char *src; // [sp+30h] [bp-48h]@28 char v40; // [sp+40h] [bp-38h]@29 int v41; // [sp+50h] [bp-28h]@1 memset(s, 0, 0x71Au); std__string__string(&v41, a1 + 3808); v3 = std__string__compare(&v41, &byte_81F5C80); _EDX = -1; v38 = v3 == 0; _EAX = v41; v2 = v41 - 12; __asm { lock xadd [eax-4], edx } if ( _EDX <= 0 ) std__string___Rep___M_destroy(v2, &v40); if ( v38 ) { v11 = CHARACTER__GetName(a1); strncpy((char *)s + 4, (const char *)v11, 0x18u); } else { std__string__string(&src, a1 + 3808); src[*((_DWORD *)src - 3)] = std__string___Rep___S_terminal; strncpy((char *)s + 4, src, 0x18u); _EAX = src; _EDX = -1; v27 = src - 12; __asm { lock xadd [eax-4], edx } if ( _EDX <= 0 ) std__string___Rep___M_destroy(v27, &v40); } *((_BYTE *)s + 28) = 0; v12 = *(const char **)(*(_DWORD *)(a1 + 24) + 24); v12[*((_DWORD *)v12 - 3)] = std__string___Rep___S_terminal; strncpy((char *)s + 29, v12, 0xFu); *((_BYTE *)s + 44) = 0; *(_DWORD *)s = *(_DWORD *)(a1 + 240); *((_BYTE *)s + 47) = CHARACTER__GetPoint(a1, 2u); *((_BYTE *)s + 48) = *(_BYTE *)(a1 + 1282); *((_BYTE *)s + 49) = CHARACTER__GetPoint(a1, 0x19u); *(_DWORD *)((char *)s + 58) = *(_DWORD *)(a1 + 1284); *(_DWORD *)((char *)s + 62) = *(_DWORD *)(a1 + 1288); *(_WORD *)((char *)s + 45) = *(_BYTE *)(a1 + 1280); *((_BYTE *)s + 1717) = *(_BYTE *)(a1 + 2993); *((_BYTE *)s + 1728) = *(_BYTE *)(a1 + 1312); v37 = get_dword_time() - *(_DWORD *)(a1 + 3008); if ( v37 > 0xEA60 ) { v13 = *(_DWORD *)(a1 + 52); if ( v13 ) { if ( !SECTREE__IsAttr(v13, *(_DWORD *)(a1 + 36), *(_DWORD *)(a1 + 40), 4) ) { if ( CHARACTER__GetRealAlignment(a1) < 0 ) { if ( CHARACTER__IsEquipUniqueItem(a1, 70050) ) v26 = 120 * v37 / 0xEA60; else v26 = 60 * v37 / 0xEA60; v35 = v26; } else { v35 = 5 * v37 / 0xEA60; } CHARACTER__UpdateAlignment(a1, v35); } } v14 = CHARACTER__GetRealPoint(a1, 0x1Fu); CHARACTER__SetRealPoint(a1, 0x1Fu, v37 / 0xEA60 + v14); CHARACTER__ResetPlayTime(a1, v37 % 0xEA60); } *(_DWORD *)((char *)s + 103) = CHARACTER__GetRealPoint(a1, 0x1Fu); *(_DWORD *)((char *)s + 1729) = *(_DWORD *)(a1 + 3324); v15 = *(_DWORD *)(a1 + 3064); if ( v15 || *(_DWORD *)(a1 + 3068) ) { *(_DWORD *)((char *)s + 67) = v15; v17 = *(_DWORD *)(a1 + 3068); *(_DWORD *)((char *)s + 75) = 0; *(_DWORD *)((char *)s + 71) = v17; v16 = *(_DWORD *)(a1 + 3076); } else { *(_DWORD *)((char *)s + 67) = *(_DWORD *)(a1 + 36); *(_DWORD *)((char *)s + 71) = *(_DWORD *)(a1 + 40); *(_DWORD *)((char *)s + 75) = *(_DWORD *)(a1 + 44); v16 = *(_DWORD *)(a1 + 20); } *(_DWORD *)((char *)s + 79) = v16; v18 = *(_DWORD *)(a1 + 3092); if ( v18 ) { *(_DWORD *)((char *)s + 91) = v18; *(_DWORD *)((char *)s + 83) = *(_DWORD *)(a1 + 3080); v19 = *(_DWORD *)(a1 + 3084); } else { *(_DWORD *)((char *)s + 91) = *(_DWORD *)((char *)s + 79); *(_DWORD *)((char *)s + 83) = *(_DWORD *)((char *)s + 67); v19 = *(_DWORD *)((char *)s + 71); } *(_DWORD *)((char *)s + 87) = v19; v21 = CHARACTER__GetName(a1); v36 = *(_DWORD *)((char *)s + 67); sys_log(0, "SAVE: %s %dx%d", v21); *((_WORD *)s + 25) = CHARACTER__GetRealPoint(a1, 0xCu); *((_WORD *)s + 26) = CHARACTER__GetRealPoint(a1, 0xDu); *((_WORD *)s + 27) = CHARACTER__GetRealPoint(a1, 0xEu); *((_WORD *)s + 28) = CHARACTER__GetRealPoint(a1, 0xFu); *(_WORD *)((char *)s + 107) = CHARACTER__GetPoint(a1, 0x1Au); *(_WORD *)((char *)s + 109) = CHARACTER__GetPoint(a1, 0x1Cu); *(_WORD *)((char *)s + 111) = CHARACTER__GetPoint(a1, 0x1Bu); *(_WORD *)((char *)s + 113) = CHARACTER__GetPoint(a1, 0x71u); *((_WORD *)s + 883) = CHARACTER__GetPoint(a1, 0x70u); v20 = 0; *(_WORD *)((char *)s + 95) = *(_DWORD *)(a1 + 1292); *(_WORD *)((char *)s + 97) = *(_DWORD *)(a1 + 1296); *((_WORD *)s + 863) = *(_DWORD *)(a1 + 1308); *(_WORD *)((char *)s + 99) = *(_WORD *)(a1 + 1300); *(_WORD *)((char *)s + 101) = *(_WORD *)(a1 + 1304); do { *(_WORD *)(s + 2 * v20 + 1645) = *(_WORD *)(a1 + 2 * v20 + 3123); ++v20; } while ( v20 <= 35 ); v23 = *(_DWORD *)(a1 + 3016); v22 = *(_DWORD *)(v23 - 12); if ( v22 ) { if ( !*(_BYTE *)(a1 + 3020) ) { *(_BYTE *)(v22 + v23) = std__string___Rep___S_terminal; strncpy((char *)s + 1733, *(const char **)(a1 + 3016), 0x20u); *((_BYTE *)s + 1765) = 0; } } thecore_memcpy((char *)s + 1718, a1 + 2368, 8, v36); thecore_memcpy((char *)s + 115, *(_DWORD *)(a1 + 3420), 1530, v25); *((_DWORD *)s + 442) = *(_DWORD *)(a1 + 104); *((_DWORD *)s + 443) = *(_DWORD *)(a1 + 108); result = *(_WORD *)(a1 + 112); *((_WORD *)s + 888) = result; return result; } // 804BD0C: using guessed type int __cdecl std__string__compare(_DWORD, _DWORD); // 804BD1C: using guessed type int __cdecl std__string__string(_DWORD, _DWORD); // 804CA2C: using guessed type int __cdecl std__string___Rep___M_destroy(_DWORD, _DWORD); // 8240E58: using guessed type int (__cdecl *thecore_memcpy)(_DWORD, _DWORD, _DWORD, _DWORD); // 8321718: using guessed type char std__string___Rep___S_terminal;