please guides me
sorry I bad Eng
Printable View
apple3194,
Please, search in forum... Here there are guides and sources...
aecrimch,
I dont know how to extend the wings limit, because the wings are on miscellanous group.... I think you need "remake" all offsets of originals wings...
chris05,
i know wings are in miscellaneous group, but jewels are in that category too... so, by analogy, i thought is possible to use jewels custom models for wings too... anyway, thanks... i think i need more research for this.
I 1.04d main change was in Hangul
Cry do not reason at all
Please give me 1.04d Korean main source
Google translate
ayh5401@naver.com
Please reupload all links. I would like to try this client.
http://i297.photobucket.com/albums/m...20_55-0000.jpg
you can share chatwnd.cpp ? thank you very much !
here it is:
ChatWnd.h:Quote:
#include "StdAfx.h"
#include "ChatWnd.h"
#include "ToolKit.h"
DWORD dwMsgType;
DWORD dwYpos;
DWORD dwHeight;
DWORD dwMsgCnt;
DWORD dwScrollPos;
int SystChatSepar = GetPrivateProfileIntA("Custom", "CoordY", 150, "./addons.ini");
__declspec(naked) void ShowSysMsgs()
{
__asm {
MOV EDI, GetDisplayMsgType
call EDI
MOV dwMsgType,EAX
MOV ECX, DWORD PTR SS:[EBP-4]
MOV EAX, DWORD PTR DS:[ECX+0x128]
MOV dwYpos, EAX
MOV EAX, DWORD PTR DS:[ECX+0x138]
MOV dwHeight, EAX
// ----
MOV EDX, SystChatSepar // y position
MOV DWORD PTR DS:[ECX+0x128], EDX
MOV DWORD PTR DS:[ECX+0x138], 0x64
MOV EAX, DWORD PTR DS:[ECX+0x13C]
MOV dwMsgCnt, EAX
MOV DWORD PTR DS:[ECX+0x13C], 6
MOV EAX, DWORD PTR DS:[ECX+0x148]
MOV dwScrollPos, EAX
PUSH 3
MOV ECX, DWORD PTR SS:[EBP-4]
MOV EDI,SetDisplayMsgType
CALL EDI
MOV ECX, DWORD PTR SS:[EBP-4]
MOV EDI,ShowChatMsgs
CALL EDI
MOV ECX, DWORD PTR SS:[EBP-4]
PUSH dwMsgType
MOV EDI,SetDisplayMsgType
CALL EDI
MOV ECX, DWORD PTR SS:[EBP-4]
MOV EAX, dwYpos
MOV DWORD PTR DS:[ECX+0x128], EAX
MOV EAX, dwHeight
MOV DWORD PTR DS:[ECX+0x138], EAX
MOV EAX, dwMsgCnt
MOV DWORD PTR DS:[ECX+0x13C], EAX
MOV EAX, dwScrollPos
MOV DWORD PTR DS:[ECX+0x148], EAX
MOV ECX, DWORD PTR SS:[EBP-4]
MOV EDI,ShowChatMsgs
CALL EDI
retn
}
}
__declspec(naked) void FixSysMsg1()
{
__asm {
cmp dword ptr ss:[ebp+0x10], 3
je _true
call NewCall
jmp FixSysMsg1_FALSE
_true:
pop eax
jmp FixSysMsg1_TRUE
}
}
__declspec(naked) void FixSysMsg2()
{
__asm {
cmp dword ptr ss:[ebp+0x10], 3
je _true
call NewCall
jmp FixSysMsg2_FALSE
_true:
pop eax
jmp FixSysMsg2_TRUE
}
}
__declspec(naked) void FixSysMsg3()
{
__asm {
cmp dword ptr ss:[ebp+0x10], 3
je _true
call NewCall
jmp FixSysMsg3_FALSE
_true:
pop eax
jmp FixSysMsg3_TRUE
}
}
void ChatWndHooks()
{
ToolKit.HookThis((DWORD)ShowSysMsgs, ShowChatMsgsCall_Hook);
ToolKit.WriteJmp(FixSysMsg1_Hook, (DWORD)FixSysMsg1);
ToolKit.WriteJmp(FixSysMsg2_Hook, (DWORD)FixSysMsg2);
ToolKit.WriteJmp(FixSysMsg3_Hook, (DWORD)FixSysMsg3);
}
ToolKit.h (Brain):Quote:
#pragma once
const int GetDisplayMsgType = 0x78B770; //0x6F7FE0;
const int SetDisplayMsgType = 0x78B720; //0x6F7F95;
const int ShowChatMsgs = 0x788930; //0x6F5584;
const int ShowChatMsgsCall_Hook = 0x78AF6C; //0x6F7927;
const int NewCall = 0x9CFF45; //0x9CFF45; //0x8510BA;
const int FixSysMsg1_Hook = 0x789617; //0x6F60AC;
const int FixSysMsg1_FALSE = FixSysMsg1_Hook+5;
const int FixSysMsg1_TRUE = 0x7896D4; //0x6F6165;
const int FixSysMsg2_Hook = 0x789913; //0x6F63B3;
const int FixSysMsg2_FALSE = FixSysMsg2_Hook+5;
const int FixSysMsg2_TRUE = 0x789A0A; //0x6F64B6;
const int FixSysMsg3_Hook = 0x789C5C; //0x6F6715;
const int FixSysMsg3_FALSE = FixSysMsg3_Hook+5;
const int FixSysMsg3_TRUE = 0x789D1F; //0x6F67DA;
void ChatWndHooks();
Quote:
#pragma once
#include "StdAfx.h"
class ToolKitEx
{
public:
ToolKitEx();
virtual ~ToolKitEx();
void SetNop(DWORD dwSrcOffset, int Size);
void SetByte(DWORD dwSrcOffset, BYTE bOpCode);
void WriteJmp(DWORD dwSrcOffset, DWORD dwDstOffset);
void HookThis(DWORD dwDstOffset, DWORD dwSrcOffset);
void HookOffset(DWORD my, DWORD tohook, BYTE type);
void Protect(DWORD dwSrcOffset, int Size, DWORD dwNewProtect);
DWORD UnProtect(DWORD dwSrcOffset, int Size);
private:
protected:
};
extern ToolKitEx ToolKit;
aecrimch.
please build dll for me.
I can not build it in vs 2006
help me
I want the main topic bmd thai and thai.
Please do not ask how
hi please share with me about a client or adjustment for all subjects, or at least the wing. Thank you many times
How do you find this offset 00E611B2 using HxD?
Thanks for this great release, I'm trying to use my own source for 3D / Sky, etc. But using your offsets i have not sucess. Only I can do is rotate the camera arround the player, but no zoom, no X no Y, only rotate... I can see too fog & Sky, but I can't do the camera work well..
here My Offsets: (Source code Mauro07 modified)
Code://Camera Offsets
float *Camera_Zoom = (float*) 0x00D27BFC;
float *Camera_RotY = (float*) 0x00D27B88;
float *Camera_RotZ = (float*) 0x0087933D8;
float *Camera_PosZ = (float*) 0x00D255AC;
double *Camera_ClipX = (double*) 0x00D2C848;
float *Camera_ClipY = (float*) 0x00D2C894;
float *Camera_GlClip = (float*) 0x00D2570C;
Code://Sky
typedef int(*TSkyHook)();
TSkyHook SkyHook = (TSkyHook) 0x005B9260;
typedef int(*TBlend) (int);
TBlend Blend = (TBlend) 0x00635FD0;
typedef int(*TUnBlend) ();
TUnBlend UnBlend = (TUnBlend) 0x00635F50;
int *MainState = (int*)0x00E609E8;
int *Map = (int*)0x00E61E18;
My Result:Code://fog
int *MAP_CHECK = (int*)0x00E61E18;
int *MAP_ADD_EFFECT = (int*)0x00E61E18;
int *MAIN_STATE = (int*)0x00E609E8;
http://img690.imageshack.us/img690/4...2722340000.jpg
I dont know what can I do...
all offsets are ok...
http://www.youtube.com/watch?v=49S_O...ature=youtu.be
Thanks aecrimch, in the public release for that camera, I'm using the version for 1.03K whit some modifications, If tou know, there are two versions, One 1.00.12 and other 1.00.13 The first have too Camera_ClipAUX1, AUX2, & AUX3, Should I use that Camera Source? or the second?
i'm using some mauro07 modified sources, these is aux used by me:
anyway, some ppl report that OS Windows 7 x86 have some problems with 3d camera, do not know why...Quote:
float *Camera_ClipAUX1 = (float*) 0x00D2C898; //FLOAT: 580.0000
float *Camera_ClipAUX2 = (float*) 0x00D2C888; //FLOAT: 1250.000
float *Camera_ClipAUX3 = (float*) 0x00D2C830; //FLOAT: 660.0000
*Camera_ClipX_Map30 is offset of camera clip x on Valley of Loren. Sr about my englishCode:float *Camera_Zoom = (float*) 0x00D27BFC;
float *Camera_RotY = (float*) 0x00D27B88;
float *Camera_RotZ = (float*) 0x087933D8;
float *Camera_PosZ = (float*) 0x00D255AC;
double *Camera_ClipX = (double*) 0x00D2C848;
double *Camera_ClipX_Map30 = (double*) 0x00D2C8A0;
float *Camera_ClipY = (float*) 0x00D2C894;
float *Camera_GlClip = (float*) 0x00D2570C;
yes, it is better...
Attachment 118480
Can you try to enter castle on Valley of Loren and see what happens ?
All I have is one black screen, like opengl32 texture render not working. Tell me if you too, maybe we can help together.
Clipx Valley of Loren: Fixed 19/11/2012 - 07h03' GMT+7
Castle Black Screen: Fixed: 02/12/2012 - 10h33' GMT+7
seems to be ok for me:
Attachment 118727
here it is:
camera.h
camera.cppQuote:
#pragma once
#include "stdafx.h"
#pragma data_seg(".SHAREDDATA")
static HHOOK KeyboardHook = NULL;
static HHOOK MouseHook = NULL;
#pragma data_seg()
#pragma comment(linker, "/SECTION:.SHAREDDATA,RWS")
static HINSTANCE hInstance;
bool MoveCamera = false;
bool InitCamera = true;
int MouseX, MouseY;
//1.04D
float *Camera_Zoom = (float*) 0x00D27BFC;
float *Camera_RotY = (float*) 0x00D27B88;
float *Camera_RotZ = (float*) 0x087933D8;
float *Camera_PosZ = (float*) 0x00D255AC;
double *Camera_ClipX = (double*) 0x00D2C848;
double *Camera_ClipX_Map30 = (double*) 0x00D2C8A0;
float *Camera_ClipY = (float*) 0x00D2C894;
float *Camera_GlClip = (float*) 0x00D2570C;
struct CameraStruct {
float Zoom;
float RotY;
float RotZ;
float PosZ;
double ClipX;
double Camera_ClipX_Map30;
float ClipY;
float GlClip;
} Camera;
LRESULT CALLBACK KeyboardProc(int, WPARAM, LPARAM);
LRESULT CALLBACK MouseProc(int, WPARAM, LPARAM);
BOOL MouseSetHook(BOOL);
BOOL KeyboardSetHook(BOOL);
Quote:
#include "stdafx.h"
#include "camera.h"
BOOL KeyboardSetHook(BOOL set_or_remove){
if(set_or_remove == TRUE){
if(KeyboardHook == NULL){
KeyboardHook = SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)KeyboardProc, hInstance, GetCurrentThreadId());
if(!KeyboardHook){ return FALSE; }
}
} else {
return UnhookWindowsHookEx(KeyboardHook);
KeyboardHook = NULL;
}
return TRUE;
}
BOOL MouseSetHook(BOOL set_or_remove){
if(set_or_remove == TRUE){
if(MouseHook == NULL){
MouseHook = SetWindowsHookEx(WH_MOUSE, MouseProc, hInstance, GetCurrentThreadId());
if(!MouseHook){ return FALSE; }
}
} else { return UnhookWindowsHookEx(MouseHook); }
return TRUE;
}
LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam){
if(((lParam>>31)&1) && (nCode == HC_ACTION)){
if(wParam == VK_F10){
*Camera_RotY = Camera.RotY;
*Camera_RotZ = -45;
*Camera_PosZ = Camera.PosZ;
*Camera_ClipX = Camera.ClipX;
*Camera_ClipY = Camera.ClipY;
*Camera_GlClip = Camera.GlClip;
*Camera_ClipX_Map30 = Camera.Camera_ClipX_Map30;
*Camera_Zoom = Camera.Zoom;
}
}
return CallNextHookEx(KeyboardHook, nCode, wParam, lParam);
}
LRESULT CALLBACK MouseProc(int code, WPARAM wParam, LPARAM lParam){
MOUSEHOOKSTRUCTEX* mhs = (MOUSEHOOKSTRUCTEX*)lParam;
HWND MuWnd = FindWindow("MU", NULL);
if(GetForegroundWindow() == MuWnd){
if(InitCamera){
Camera.ClipX = *Camera_ClipX;
Camera.ClipY = *Camera_ClipY;
Camera.GlClip = *Camera_GlClip;
Camera.Camera_ClipX_Map30 = *Camera_ClipX_Map30;
Camera.PosZ = *Camera_PosZ;
Camera.RotY = *Camera_RotY;
Camera.RotZ = *Camera_RotZ;
Camera.Zoom = *Camera_Zoom;
InitCamera = false;
}
if(wParam == WM_MOUSEWHEEL){
int direction = mhs->mouseData;
if(direction > 0){
if(*Camera_Zoom < 60){ *Camera_Zoom += 2; }
}
else if(direction < 0){
if(*Camera_Zoom > 12){ *Camera_Zoom -= 2; }
}
*Camera_ClipX = 1190 + (abs(*Camera_PosZ - 150) * 3) + 3000;
*Camera_ClipY = 2400 + (abs(*Camera_PosZ - 150) * 3) + 3000;
*Camera_GlClip = 3000 + (abs(*Camera_PosZ - 150) * 3) + 1500;
*Camera_ClipX_Map30 = 1190 + (abs(*Camera_PosZ - 150) * 3) + 3000;
}
else if(wParam == WM_MBUTTONDOWN){
MouseX = mhs->pt.x;
MouseY = mhs->pt.y;
MoveCamera = true;
}
else if(wParam == WM_MBUTTONUP){
MoveCamera = false;
}
else if(wParam == WM_MOUSEMOVE){
if(MoveCamera){
if(MouseX < mhs->pt.x){
*Camera_RotZ += 8;
if (*Camera_RotZ > 315) *Camera_RotZ = -45;
}
else if(MouseX > mhs->pt.x){
*Camera_RotZ -= 8;
if (*Camera_RotZ < -405) *Camera_RotZ = -45;
}
if(MouseY < mhs->pt.y){
if(*Camera_RotY < -45){
*Camera_PosZ -= 44;
*Camera_RotY += (float)2.42;
}
}
else if(MouseY > mhs->pt.y){
if(*Camera_RotY > -90){
*Camera_PosZ += 44;
*Camera_RotY -= (float)2.42;
}
}
MouseX = mhs->pt.x;
MouseY = mhs->pt.y;
*Camera_ClipX = 1190 + (abs(*Camera_PosZ - 150) * 3) + 3000;
*Camera_ClipY = 2400 + (abs(*Camera_PosZ - 150) * 3) + 3000;
*Camera_GlClip = 3000 + (abs(*Camera_PosZ - 150) * 3) + 1500;
*Camera_ClipX_Map30 = 1190 + (abs(*Camera_PosZ - 150) * 3) + 3000;
}
}
}
return CallNextHookEx(MouseHook, code, wParam, lParam);
}