Newbie Spellweaver
- Joined
- May 3, 2013
- Messages
- 29
- Reaction score
- 10
float *Camera_Zoom = (float*) 0x006001E9;
float *Camera_RotY = (float*) 0x0088BC78;
float *Camera_RotZ = (float*) 0x0809F150;
float *Camera_PosZ = (float*) 0x0088ACFC;
float *Camera_ClipX = (float*) 0x0088BB18;
float *Camera_ClipY = (float*) 0x005AB4CD;
float *Camera_GlClip = (float*) 0x[COLOR=#ff0000]00600479[/COLOR];
float *Camera_Zoom = (float*) 0x00D27BFC; //FLOAT: 35.00000
float *Camera_RotY = (float*) 0x00D27B88; //FLOAT: -48.50000
float *Camera_RotZ = (float*) 0x087933D8; //FLOAT: -45.00000
double *Camera_PosZ = (double*) 0x00D255A0; //DOUBLE: 150.000000000
double *Camera_ClipU = (double*) 0x00D2C898; //DOUBLE: 580.0000000000000
double *Camera_ClipL = (double*) 0x00D2C888; //DOUBLE: 1250.00000000000
double *Camera_ClipM = (double*) 0x00D2C830; //DOUBLE: 660.0000000000000
double *Camera_ClipX = (double*) 0x00D2C848; //DOUBLE: 1190.00000000
float *Camera_ClipY = (float*) 0x00D2C894; //FLOAT: 2400.000
float *Camera_ClipZ = (float*) 0x00D27BC0; //FLOAT: 2300.000
double *Camera_ClipZ2 = (double*) 0x00D2C8D8; //DOUBLE: 3000.00000000000
float *Camera_ClipT = (float*) 0x00D2C91C; //FLOAT: -900.0000
i am working right now with the 3D Camera of 1.03.11 True offset that i share yesterday so check you offsetsstop posting styped things !
View attachment 129410
Main 1.03K Offsets here:
Camera_Zoom = 006001E9
Camera_RotY = 0088BC78
Camera_RotZ = 0809F150
Camera_PosZ = 0088ACFC
Camera_ClipX = 0088BB18
Camera_ClipY = 005AB4CD
Camera_GlClip = 0088BB4C
Oh, very strange.
In 1.04.04 i use 0x0D2570C and all work...
In 1.03.11 GLClip by belial change only one type (bcz value setuped by switch):
Everybody have own glclip :laugh:
double *Camera_ClipU = (double*) 0x00D2C898; //DOUBLE: 580.0000000000000
double *Camera_ClipL = (double*) 0x00D2C888; //DOUBLE: 1250.00000000000
double *Camera_ClipM = (double*) 0x00D2C830; //DOUBLE: 660.0000000000000
int WorldPreview(int Struct, bool Arg2) //5DB130 (1.04.04)
{
gObjUser.Refresh();
// ----
float v13 = 0.0;
float v12 = 0.0;
float v8 = 0.0;
float v20 = 0.0;
float v9 = 0.0;
float v11 = 0.0;
// ----
if( pMapNumber == 6 && !strcmp(gObjUser.lpViewPlayer->Name, "webzen")
|| !strcmp(gObjUser.lpViewPlayer->Name, "webzen2") )
{
v13 = (double)pGetSomeSize() / 640.0;
v12 = 8500.0;
v8 = (float)8500.0 * 0.05000000074505806;
v20 = (float)8500.0 * 0.4699999988079071;
v9 = v13 * 3000.0;
v11 = v13 * 540.0;
}
else if( pIsLorenDeep(pMapNumber) && pPlayerState == GameProcess )
{
v13 = (double)pGetSomeSize() / 640.0;
if( (unsigned __int8)pCheckSomeLimit(oUserPreviewStruct + 1028)
&& (*(float *)(oUserPreviewStruct + 1028) < 17100.0 || *(float *)(oUserPreviewStruct + 1028) > 18300.0) )
{
v12 = 5100.0;
v8 = (float)5100.0 * 0.1899999976158142;
v20 = (float)5100.0 * 0.4699999988079071;
v9 = v13 * 2250.0;
v11 = v13 * 540.0;
}
else
{
v12 = 3300.0;
v8 = (float)3300.0 * 0.1899999976158142;
v20 = (float)3300.0 * 0.4699999988079071;
v9 = v13 * 1300.0;
v11 = v13 * 580.0;
}
}
else if( pMapNumber == 62 ) //Santa Village
{
v13 = (double)pGetSomeSize() / 640.0 * 1.0;
v8 = (float)2400.0 * 0.1899999976158142;
v20 = (float)2400.0 * 0.4699999988079071;
v12 = 2650.0;
v9 = v13 * 1250.0;
v11 = v13 * 540.0;
}
else if( pInVulcanus() || (unsigned __int8)pInDoppel1() )
{
v13 = (double)pGetSomeSize() / 640.0;
v8 = 55.0;
v20 = 830.0;
v12 = 3300.0;
v9 = v13 * 1900.0;
v11 = v13 * 600.0;
}
else
{
TDEBUG("[Else]");
//check
switch(*(DWORD*)0x8787D40) //very like plaing state
{
case 0:
{
if( pPlayerState != SelectServer )
{
if ( pPlayerState == SwitchCharacter )
{
v13 = (double)pGetSomeSize() / 640.0 * 9.100000381469727 * 0.4049980044364929;
}
else
{
//int v3 = sub_4DB250();
//if ( (unsigned __int8)sub_4E44A0(v3 + 132) )
// v13 = (double)pGetSomeSize() / 640.0 * 10.0 * 0.1150000020861626;
//else
v13 = (double)pGetSomeSize() / 640.0;
}
}
// ----
if( pPlayerState != 2 )
{
if( pPlayerState == 4 )
{
v12 = 7370.9639;
}
else
{
if ( pMapNumber == 39 )
v12 = 2300.0;
else
v12 = 2400.0;
}
}
if( pPlayerState == 2 )
{
v13 = (double)pGetSomeSize() / 640.0;
v12 = 530400.0;
v8 = 20400.0;
v20 = 20400.0;
v9 = v13 * 5000.0;
v11 = v13 * 300.0;
}
else
{
v8 = v12 * 0.1899999976158142;
v20 = v12 * 0.4699999988079071;
v9 = v13 * 1190.0;
v11 = v13 * 540.0;
}
}
break;
// --
case 1:
{
v13 = (double)pGetSomeSize() / 640.0 + 0.1000000014901161;
v12 = 2700.0;
v8 = (float)2700.0 * 0.1899999976158142;
v20 = (float)2700.0 * 0.4699999988079071;
v9 = v13 * 1200.0;
v11 = v13 * 540.0;
}
break;
// --
case 2:
{
v13 = (double)pGetSomeSize() / 640.0 + 0.1000000014901161;
v12 = 3000.0;
v8 = (float)3000.0 * 0.1899999976158142;
v20 = (float)3000.0 * 0.4699999988079071;
v9 = v13 * 1300.0;
v11 = v13 * 540.0;
}
break;
// --
case 3:
{
v13 = (double)pGetSomeSize() / 640.0 + 0.1000000014901161;
v12 = 3300.0;
v8 = (float)3300.0 * 0.1899999976158142;
v20 = (float)3300.0 * 0.4699999988079071;
v9 = v13 * 1500.0;
v11 = v13 * 580.0;
}
break;
// --
case 4:
case 5:
{
v13 = (double)pGetSomeSize() / 640.0 + 0.1000000014901161;
v12 = 3400.0;
v8 = (float)3400.0 * 0.1899999976158142;
v20 = (float)3400.0 * 0.4699999988079071;
v9 = v13 * 1600.0;
v11 = v13 * 660.0;
}
break;
}
}
// ----
if( Arg2 )
{
v9 *= 1.509999990463257;
v11 *= 1.200000047683716;
}
// ----
float v21 = -v9;
float v22 = v12 - v20;
float v23 = 0.0;
float v24 = v9;
float v25 = v12 - v20;
float v26 = 0.0;
float v27 = v11;
float v28 = v8 - v20;
float v29 = 0.0;
float v30 = -v11;
float v31 = v8 - v20;
float v32 = 0.0;
// ----
float v14, v15, v16;
if( pMapNumber == 6 && !strcmp(gObjUser.lpViewPlayer->Name, "webzen")
|| !strcmp(gObjUser.lpViewPlayer->Name, "webzen2") )
{
v14 = 0.0;
v15 = 0.0;
v16 = -*(float*)0x87933D8; //??????????
}
else if( pMapNumber == 73 ) //?
{
//...
}
else
{
v14 = 0.0;
v15 = 0.0;
v16 = 45.0;
}
// ----
int v10;
float v17, v18;
float v19[10];
int result = pSomeFunc2((float*)&v14, (int)&v10);
for( int i = 0; i < 4; ++i )
{
pSomeFunc3(&v21 + 3 * i, &v10, (int*)&v17 + 3 * i);
*(&v17 + 3 * i) = *(&v17 + 3 * i) + *(float *)Struct;
*(&v18 + 3 * i) = *(&v18 + 3 * i) + *(float *)(Struct + 4);
v19[3 * i] = v19[3 * i] + *(float *)(Struct + 8);
result = i;
*(float*)(0x82C64B8 + i * 4) = *(&v17 + 3 * i) * 0.009999999776482582;
*(float*)(0x82C64A8 + i * 4) = *(&v17 + 3 * i) * 0.009999999776482582;
}
return result;
}
//Auto researcher script
//Main: 10203
#define Version 0x7A2838 //-> 22548
#define Serial 0x7A2840 //-> cf3p3B2E3G8fyQ7Y
#define MapNumber *(int*)0x558B0000
#define MainState *(int*)0x86E85550
#define UserObjectStruct 0x0
#define ObjectPreviewStruct 0x88BF0F07
#define MasterLevel *(short*)0x0
#define MasterPoints *(short*)0x0
#define CursorX *(int*)0x7E80704
#define CursorY *(int*)0x7E80700
#define MaxZenWidth1 *(BYTE*)0x1
#define MaxZenWidth2 *(BYTE*)0x1
#define MaxZenWidth3 *(BYTE*)0x1
#define MaxZenWidth4 *(BYTE*)0x1
#define MaxZenWidth5 *(BYTE*)0x1 //-> If 0x0 or 0x1 = not in use
#define WinWidth *(GLsizei*)0x7B55AC
#define WinHeight *(GLsizei*)0x7B55B0
#define CameraZoom *(float*)0x6B20D0
#define CameraRotY *(float*)0x0
#define CameraRotZ *(float*)0x7E80758
#define CameraPosZ *(float*)0x2F98300
#define CameraClipX *(float*)0x0 //-> if Season 6+ == *(double*)
#define CameraClipY *(float*)0xFFFFFFD6
#define CameraClipGL *(float*)0xFFFFFEF8
For now S1 / S2 / S3.0 not supportedAnd of course it not for all-all mains, but i try to make it for S3.2 -> S6.3.
//3d camera offsets
float *Camera_Zoom = (float*) 0x0101FC00;//ready!
float *Camera_RotY = (float*) 0x0101BB10;//ready!
float *Camera_RotZ = (float*) 0x08B2FB9C;//normal rotation z axis
float *Camera_RotZ2 = (float*) 0x08B2FB78;//inverse rotation z axis
double *Camera_PosZ = (double*) 0x01019A58;//ready!
double *Camera_ClipX = (double*) 0x01020CB8;//ready!
float *Camera_ClipY = (float*) 0x0101BAC8;//ready!
float *Camera_ClipZ = (float*) 0x011A8DB4;//ready! -> general case not tested
float *Camera_GlClip1 = (float*) 0x0101BB38;//santa village case
float *Camera_GlClip2 = (float*) 0x01019BCC;//a general case.. mean.. i don't know ^^
float *Camera_GlClip3 = (float*) 0x0101BB44;//a place of exile map case sure.
float *Camera_GlClip4 = (float*) 0x0101BB34;//i don't know..
float *Camera_GlClip5 = (float*) 0x0101BB30;//some ex700 map.. maybe
float *Camera_GlClip6 = (float*) 0x0101BB40;//castle siege map case i think.
float *Camera_GlClip7 = (float*) 0x0101BB3C;//unknown
float *Camera_GlClip8 = (float*) 0x0101BB48;//3000.0f -> max value allow by main.exe, i think
map offset: 0x011A7320
screen h,w offsets: 0x01017DF0 / 0x01017DE8
belial
- I view world preview function ~week ago but for analyze and make it work need more time
Code:int WorldPreview(int Struct, bool Arg2) //5DB130 (1.04.04) { gObjUser.Refresh(); // ---- float v13 = 0.0; float v12 = 0.0; float v8 = 0.0; float v20 = 0.0; float v9 = 0.0; float v11 = 0.0; // ---- if( pMapNumber == 6 && !strcmp(gObjUser.lpViewPlayer->Name, "webzen") || !strcmp(gObjUser.lpViewPlayer->Name, "webzen2") ) { v13 = (double)pGetSomeSize() / 640.0; v12 = 8500.0; v8 = (float)8500.0 * 0.05000000074505806; v20 = (float)8500.0 * 0.4699999988079071; v9 = v13 * 3000.0; v11 = v13 * 540.0; } else if( pIsLorenDeep(pMapNumber) && pPlayerState == GameProcess ) { v13 = (double)pGetSomeSize() / 640.0; if( (unsigned __int8)pCheckSomeLimit(oUserPreviewStruct + 1028) && (*(float *)(oUserPreviewStruct + 1028) < 17100.0 || *(float *)(oUserPreviewStruct + 1028) > 18300.0) ) { v12 = 5100.0; v8 = (float)5100.0 * 0.1899999976158142; v20 = (float)5100.0 * 0.4699999988079071; v9 = v13 * 2250.0; v11 = v13 * 540.0; } else { v12 = 3300.0; v8 = (float)3300.0 * 0.1899999976158142; v20 = (float)3300.0 * 0.4699999988079071; v9 = v13 * 1300.0; v11 = v13 * 580.0; } } else if( pMapNumber == 62 ) //Santa Village { v13 = (double)pGetSomeSize() / 640.0 * 1.0; v8 = (float)2400.0 * 0.1899999976158142; v20 = (float)2400.0 * 0.4699999988079071; v12 = 2650.0; v9 = v13 * 1250.0; v11 = v13 * 540.0; } else if( pInVulcanus() || (unsigned __int8)pInDoppel1() ) { v13 = (double)pGetSomeSize() / 640.0; v8 = 55.0; v20 = 830.0; v12 = 3300.0; v9 = v13 * 1900.0; v11 = v13 * 600.0; } else { TDEBUG("[Else]"); //check switch(*(DWORD*)0x8787D40) //very like plaing state { case 0: { if( pPlayerState != SelectServer ) { if ( pPlayerState == SwitchCharacter ) { v13 = (double)pGetSomeSize() / 640.0 * 9.100000381469727 * 0.4049980044364929; } else { //int v3 = sub_4DB250(); //if ( (unsigned __int8)sub_4E44A0(v3 + 132) ) // v13 = (double)pGetSomeSize() / 640.0 * 10.0 * 0.1150000020861626; //else v13 = (double)pGetSomeSize() / 640.0; } } // ---- if( pPlayerState != 2 ) { if( pPlayerState == 4 ) { v12 = 7370.9639; } else { if ( pMapNumber == 39 ) v12 = 2300.0; else v12 = 2400.0; } } if( pPlayerState == 2 ) { v13 = (double)pGetSomeSize() / 640.0; v12 = 530400.0; v8 = 20400.0; v20 = 20400.0; v9 = v13 * 5000.0; v11 = v13 * 300.0; } else { v8 = v12 * 0.1899999976158142; v20 = v12 * 0.4699999988079071; v9 = v13 * 1190.0; v11 = v13 * 540.0; } } break; // -- case 1: { v13 = (double)pGetSomeSize() / 640.0 + 0.1000000014901161; v12 = 2700.0; v8 = (float)2700.0 * 0.1899999976158142; v20 = (float)2700.0 * 0.4699999988079071; v9 = v13 * 1200.0; v11 = v13 * 540.0; } break; // -- case 2: { v13 = (double)pGetSomeSize() / 640.0 + 0.1000000014901161; v12 = 3000.0; v8 = (float)3000.0 * 0.1899999976158142; v20 = (float)3000.0 * 0.4699999988079071; v9 = v13 * 1300.0; v11 = v13 * 540.0; } break; // -- case 3: { v13 = (double)pGetSomeSize() / 640.0 + 0.1000000014901161; v12 = 3300.0; v8 = (float)3300.0 * 0.1899999976158142; v20 = (float)3300.0 * 0.4699999988079071; v9 = v13 * 1500.0; v11 = v13 * 580.0; } break; // -- case 4: case 5: { v13 = (double)pGetSomeSize() / 640.0 + 0.1000000014901161; v12 = 3400.0; v8 = (float)3400.0 * 0.1899999976158142; v20 = (float)3400.0 * 0.4699999988079071; v9 = v13 * 1600.0; v11 = v13 * 660.0; } break; } } // ---- if( Arg2 ) { v9 *= 1.509999990463257; v11 *= 1.200000047683716; } // ---- float v21 = -v9; float v22 = v12 - v20; float v23 = 0.0; float v24 = v9; float v25 = v12 - v20; float v26 = 0.0; float v27 = v11; float v28 = v8 - v20; float v29 = 0.0; float v30 = -v11; float v31 = v8 - v20; float v32 = 0.0; // ---- float v14, v15, v16; if( pMapNumber == 6 && !strcmp(gObjUser.lpViewPlayer->Name, "webzen") || !strcmp(gObjUser.lpViewPlayer->Name, "webzen2") ) { v14 = 0.0; v15 = 0.0; v16 = -*(float*)0x87933D8; //?????????? } else if( pMapNumber == 73 ) //? { //... } else { v14 = 0.0; v15 = 0.0; v16 = 45.0; } // ---- int v10; float v17, v18; float v19[10]; int result = pSomeFunc2((float*)&v14, (int)&v10); for( int i = 0; i < 4; ++i ) { pSomeFunc3(&v21 + 3 * i, &v10, (int*)&v17 + 3 * i); *(&v17 + 3 * i) = *(&v17 + 3 * i) + *(float *)Struct; *(&v18 + 3 * i) = *(&v18 + 3 * i) + *(float *)(Struct + 4); v19[3 * i] = v19[3 * i] + *(float *)(Struct + 8); result = i; *(float*)(0x82C64B8 + i * 4) = *(&v17 + 3 * i) * 0.009999999776482582; *(float*)(0x82C64A8 + i * 4) = *(&v17 + 3 * i) * 0.009999999776482582; } return result; }
Stifi
- You test widescreen on new mains?
void MUUpdateFustrum(MUFloat3 *vPosition, char bOpt)
{
float fUIPaneRate = 0.0f;
float fHeightA = 0.0f;
float fHeightM = 0.0f;
float fHeightB = 0.0f;
float fWidthTop = 0.0f;
float fWidthBottom = 0.0f;
if ( g_MapNumber == MAP_INDEX_SANTANTOWN )
{
fUIPaneRate = (float)MUGetGameViewportReal() / 640.0f * 1.0f;
fHeightA = 2400.0f * 0.19f;
fHeightM = 2400.0f * 0.47f;
fHeightB = 2650.0f;
fWidthTop = fUIPaneRate * 1250.0f;
fWidthBottom = fUIPaneRate * 540.0f;
}
else
{
if ( g_CameraZoomStateValueNext >= g_CameraZoomStateValueCurrent )
{
g_CameraZoomState2 = g_CameraZoomState;
}
switch ( g_CameraZoomState2 )
{
case 0:
{
if ( g_ClientState != 2 )
{
if ( g_ClientState == 4 )
{
fUIPaneRate = (float)MUGetGameViewportReal() / 640.0f * 9.1f * 0.405f;
}
else
{
if ( MUEventCamera::GetInstance()->m_kanturuInfo.IsActive() )
{
fUIPaneRate = (float)MUGetGameViewportReal() / 640.0f * 10.0f * 0.115f;
}
else
{
fUIPaneRate = (float)MUGetGameViewportReal() / 640.0f;
}
}
if ( g_ClientState == 4 )
{
fHeightB = 7370.9639f;
}
else
{
if ( g_MapNumber == MAP_INDEX_KANTURU_BOSS )
{
fHeightB = 2300.0f;
}
else
{
fHeightB = 2400.0f;
}
}
fHeightA = fHeightB * 0.19f;
fHeightM = fHeightB * 0.47f;
fWidthTop = fUIPaneRate * 1190.0f;
fWidthBottom = fUIPaneRate * 540.0f;
}
else
{
fUIPaneRate = (float)MUGetGameViewportReal() / 640.0f;
fHeightB = 530400.0f;
fHeightA = 20400.0f;
fHeightM = 20400.0f;
fWidthTop = fUIPaneRate * 5000.0f;
fWidthBottom = fUIPaneRate * 300.0f;
}
break;
}
case 1:
{
fUIPaneRate = (float)MUGetGameViewportReal() / 640.0f + 0.1f;
fHeightB = 2700.0f;
fHeightA = 2700.0f * 0.19f;
fHeightM = 2700.0f * 0.47f;
fWidthTop = fUIPaneRate * 1200.0f;
fWidthBottom = fUIPaneRate * 540.0f;
break;
}
case 2:
{
fUIPaneRate = (float)MUGetGameViewportReal() / 640.0f + 0.1f;
fHeightB = 3000.0f;
fHeightA = 3000.0f * 0.19f;
fHeightM = 3000.0f * 0.47f;
fWidthTop = fUIPaneRate * 1300.0f;
fWidthBottom = fUIPaneRate * 540.0f;
break;
}
case 3:
{
fUIPaneRate = (float)MUGetGameViewportReal() / 640.0f + 0.1f;
fHeightB = 3300.0f;
fHeightA = 3300.0f * 0.19f;
fHeightM = 3300.0f * 0.47f;
fWidthTop = fUIPaneRate * 1500.0f;
fWidthBottom = fUIPaneRate * 580.0f;
break;
}
case 4:
case 5:
{
fUIPaneRate = (float)MUGetGameViewportReal() / 640.0f + 0.1f;
fHeightB = 3400.0f;
fHeightA = 3400.0f * 0.19f;
fHeightM = 3400.0f * 0.47f;
fWidthTop = fUIPaneRate * 1600.0f;
fWidthBottom = fUIPaneRate * 660.0f;
break;
}
default:
break;
}
}
if ( bOpt )
{
fWidthTop = fWidthTop * 1.51f;
fWidthBottom = fWidthBottom * 1.2f;
}
MUFloat3 vTmpPosOrign[4];
MUFloat3 vRot;
MUFloat3 vOutTmp[4];
MUMatrix4x3 mtTemp;
vTmpPosOrign[0].x = -fWidthTop;
vTmpPosOrign[0].y = fHeightB - fHeightM;
vTmpPosOrign[0].z = 0.0;
vTmpPosOrign[1].x = fWidthTop;
vTmpPosOrign[1].y = fHeightB - fHeightM;
vTmpPosOrign[1].z = 0.0;
vTmpPosOrign[2].x = fWidthBottom;
vTmpPosOrign[2].y = fHeightA - fHeightM;
vTmpPosOrign[2].z = 0.0;
vTmpPosOrign[3].x = -fWidthBottom;
vTmpPosOrign[3].y = fHeightA - fHeightM;
vTmpPosOrign[3].z = 0.0;
if ( g_MapNumber == 73 )
{
vRot.x = g_MUCameraRot.x * -1.0f;
vRot.y = g_MUCameraRot.y * -1.0f;
vRot.z = g_MUCameraRot.z * -1.0f;
MUCameraAutoModeMng::GetInstance()->SetRotateX2( 89.5f );
vRot.x = vRot.x + MUCameraAutoModeMng::GetInstance()->GetRotateX2();
vRot.y = vRot.y + 0.0f;
vRot.z = vRot.z + 0.0f;
}
else
{
vRot.x = 0.0f;
vRot.y = 0.0f; // FustrumRot
vRot.z = 45.0f;
}
MUMatrixCreateRotate(&vRot, &mtTemp);
for (int i = 0; i < 4; ++i )
{
MUMatrixMultVecRot(&vTmpPosOrign[i], &mtTemp, &vOutTmp[i]);
vOutTmp[i].x = vOutTmp[i].x + vPosition->m[0];
vOutTmp[i].y = vOutTmp[i].y + vPosition->m[1];
vOutTmp[i].z = vOutTmp[i].z + vPosition->m[2];
g_FustrumX[i] = vOutTmp[i].x * 0.01f;
g_FustrumY[i] = vOutTmp[i].y * 0.01f;
}
laudaicat
- ahah, great, u finish main decompilition?