PartyManager.h
#pragma once
#include <iostream>
#define MAX_PARTYS 7
#define MAX_ID_SIZE 10
typedef unsigned char BYTE;
typedef unsigned long DWORD;
typedef struct {
BYTE ID[MAX_ID_SIZE];
BYTE Number;
BYTE Map;
BYTE x;
BYTE y;
int currHP;
int maxHP;
} PRECEIVE_PARTY_LIST, *LPPRECEIVE_PARTY_LIST;
typedef struct {
BYTE stepLife;
BYTE stepMana;
char ID[MAX_ID_SIZE + 1];
} PRECEIVE_PARTY_INFO, *LPPRECEIVE_PARTY_INFO;
typedef struct {
BYTE Header[3];
BYTE Result;
BYTE Count;
} PRECEIVE_PARTY_LISTS, *LPPRECEIVE_PARTY_LISTS;
typedef struct {
BYTE Header[3];
BYTE Count;
} PRECEIVE_PARTY_INFOS, *LPPRECEIVE_PARTY_INFOS;
typedef struct
{
#pragma pack(1)
BYTE Effect;
DWORD count;
#pragma pack()
} PRECEIVE_PARTY_EFFECT_LIST, *LPPRECEIVE_PARTY_EFFECT_LIST;
typedef struct {
BYTE Header[3];
char ID[11];
BYTE Count;
} PRECEIVE_PARTY_EFFECT_INFOS, *LPPRECEIVE_PARTY_EFFECT_INFOS;
typedef struct //-- (size: 32)
{
char Name[11];
int Count;
BYTE Effect[16];
DWORD count[16];
} PARTY_BUFFS_DATA;
typedef struct //-- (size: 32)
{
char Name[11];
BYTE Number;
BYTE Map;
BYTE x;
BYTE y;
int currHP;
int maxHP;
BYTE stepHP;
int index;
} PARTY_D;
class CPartyManager
{
private:
enum PARTY_BG_COLOR
{
PARTY_LIST_BGCOLOR_DEFAULT = 0,
PARTY_LIST_BGCOLOR_RED,
PARTY_LIST_BGCOLOR_GREEN
};
public:
CPartyManager(void);
virtual ~CPartyManager(void);
void Init();
static void __thiscall SetListBGColor(DWORD* This);
static bool __thiscall BtnProcess(DWORD This);
static void LoadImages();
void ReceivePartyBuff(BYTE* ReceiveBuffer);
static void __thiscall RenderMemberStatue(DWORD* This, int iIndex, int pMember, bool bExitBtnRender);
int pbyPagekey;
BYTE BtnPartyExit[MAX_PARTYS][172];
int iPartyListBGColor[MAX_PARTYS];
bool bPartyMemberoutofSight[MAX_PARTYS];
};
extern BYTE PartyArray[32 * MAX_PARTYS];
extern CPartyManager g_pPartyManager;
#define PartyNumber *(DWORD*)0x81F6B6C
#define LeaveParty ((bool(__thiscall*)(DWORD thisa, int iIndex)) 0x0084B0B0)
#define PartyListWindow_Create ((bool(__thiscall*)(DWORD* pNewUIMng, int x, int y)) 0x0084B790)
#define PartyInfoWindow_BtnProcess ((bool(__thiscall*)(DWORD This)) 0x0084A270)
#define RenderMember_Statue ((void(__thiscall*)(DWORD* This, int iIndex, int pMember, bool bExitBtnRender)) 0x0084AD10)
#define UpdateBtnMouseEvent ((bool(__thiscall*)(BYTE* thisa)) 0x00779860)
#define ChangeBtnInfo ((void(__thiscall*)(BYTE* thisa, int x, int y, int sx, int sy)) 0x00779410)
#define ChangeBtnImgState ((void(__thiscall*)(BYTE* thisa, bool imgregister, int imgindex, bool overflg, bool isimgwidth, bool bClickEffect)) 0x00779350)