structuras de algunos archivos SEASON18 y código de apertura en s6

Publicado por Dakosmu, Abr 14, 2023, 01:09 AM

Tema anterior - Siguiente tema

Dakosmu

INFORMACION
structuras de algunos archivos SEASON18 y código de apertura en s6
struct de algunos archivos s18:

IMAGENES
Los visitantes no pueden visualizar imágenes en los mensajes, por favor Regístrate o Inicia Sesión
Los visitantes no pueden visualizar imágenes en los mensajes, por favor Regístrate o Inicia Sesión
Los visitantes no pueden visualizar imágenes en los mensajes, por favor Regístrate o Inicia Sesión
Los visitantes no pueden visualizar imágenes en los mensajes, por favor Regístrate o Inicia Sesión



CHANGELOG
ItemTRSData.bmd:

typedef struct // (size:32)
{
/*+00*/ int index;
/*+04*/ float pos[3];
/*+16*/ float angle[3];
/*+28*/ float scale;
} ITEM_SCRIPT_SCREEN;


ExcellentCommonOption.bmd
ExcellentWingsOption.bmd

typedef struct //-- (size:120)
{
/*+000*/ BYTE Kind;
/*+001*/ BYTE Excellent;
/*+002*/ char Name[100];
/*+102*/ BYTE Operator;
/*+104*/ DWORD Value;
/*+108*/ DWORD TypeDamage;
/*+112*/ BYTE ExeOptionDefense;
/*+113*/ BYTE ExeOptionAttack;
/*+114*/ BYTE Wing2ExeOption;
/*+115*/ BYTE Wing3ExeOption;
/*+116*/ BYTE Wing25ExeOption;
/*+117*/ BYTE ExeOptionBloodDarkAngel;
/*+118*/ BYTE ExeOptionBlessedArchangel;
} EXCELLENT_SCRIPT_ITEM;



Item.bmd
typedef struct
{
/*+000*/ DWORD Type;
/*+004*/ WORD Index;
/*+006*/ WORD SubIndex;
/*+008*/ char Path[MAX_PATH];
/*+268*/ char ModelName[MAX_PATH];
/*+528*/ char ItemName[64];
/*+592*/ BYTE Kind1;
/*+593*/ BYTE Kind2;
/*+594*/ BYTE Kind3;
/*+595*/ BYTE TwoHand;
/*+596*/ WORD Level;
/*+598*/ BYTE m_byItemSlot;
/*+600*/ WORD m_wSkillIndex;
/*+602*/ BYTE Width;
/*+603*/ BYTE Height;
/*+604*/ WORD DamageMin;
/*+606*/ WORD DamageMax;
/*+608*/ BYTE SuccessfulBlocking;
/*+610*/ WORD Defense;
/*+612*/ WORD MagicDefense;
/*+614*/ BYTE WeaponSpeed;
/*+615*/ BYTE WalkSpeed;
/*+616*/ BYTE Durability;
/*+617*/ BYTE MagicDurability;
/*+620*/ DWORD MagicPower;
/*+624*/ WORD ReqStrength;
/*+626*/ WORD ReqDexterity;
/*+628*/ WORD ReqEnergy;
/*+630*/ WORD ReqVitality;
/*+632*/ WORD ReqCharisma;
/*+634*/ WORD ReqLevel;
/*+636*/ BYTE Value;
/*+640*/ DWORD iZen;
/*+644*/ BYTE SetOption;
/*+645*/ BYTE ReqClass[14];
/*+659*/ BYTE Atribute[7];
/*+667*/ BYTE arg_667;
/*+668*/ bool Trade;
/*+669*/ bool StorePersonal;
/*+670*/ bool WhareHouse;
/*+671*/ bool SellNpc;
/*+672*/ bool Expensive;
/*+673*/ bool Repair;
/*+676*/ WORD Overlap;
/*+678*/ WORD PcFlag;
/*+680*/ WORD MuunFlag;
/*+682*/ BYTE arg_682;
/*+683*/ BYTE arg_683;
/*+684*/ BYTE arg_684;
/*+686*/ WORD arg_686;
/*+688*/ WORD arg_688;
/*+690*/ WORD arg_690;
} ITEM_XML;

por si alguien quiere usarlo en versiones bajas como s6 aquí les dejo el código de ejemplo para abrir el archivo
#define g_hWnd *(HWND*)0xE8C578
#define BuxConvert ((int(__cdecl*)(BYTE * Buffer, int Size)) 0x004071A0)
#define GenerateCheckSum2 ((DWORD(__cdecl*)(BYTE *pbyBuffer, DWORD dwSize, WORD wKey)) 0x004B1A20)

void CItemScriptData::basicPos_OpenScript(char *filename)
{
m_ItemPos.clear();

FILE *fp = fopen(filename,"rb");

if(fp != NULL)
{
int Size = sizeof(ITEM_SCRIPT_SCREEN);

int CountBasic = 0;
fread(&CountBasic, 4u, 1u, fp);

if (CountBasic > 0)
{
BYTE *Buffer = new BYTE [Size*CountBasic];

fread(Buffer, Size*CountBasic, 1u, fp);

DWORD dwCheckSum;
fread(&dwCheckSum, sizeof(DWORD), 1u, fp);

fclose(fp);
//g_ConsoleDebug.Write("Lectura: %d | %d", dwCheckSum, CheckSum);

if ( dwCheckSum != GenerateCheckSum2( Buffer, Size*CountBasic, 0xE2F1))
{
char Text[256];
sprintf(Text,"%s - File corrupted.", filename);
MessageBox(g_hWnd, Text, "TxtConvertor",MB_OK);
SendMessage(g_hWnd, WM_DESTROY, 0, 0);
}
else
{
BYTE *pSeek = Buffer;

for(int i = 0; i < CountBasic; i++)
{
BuxConvert(pSeek, Size);
ITEM_SCRIPT_SCREEN *Temp = new ITEM_SCRIPT_SCREEN;

memcpy(Temp, pSeek, Size);
SetPosItemData(Temp->index, *(ITEM_SCRIPT_SCREEN*)Temp);

pSeek += Size;
delete Temp;
}
}
delete [] Buffer;
}
else
{
MessageBox(g_hWnd, "ItemTRSData Count 0", "TxtConvertor",MB_OK);
fclose(fp);
}
}
else
{
char Text[256];
sprintf(Text,"%s - File not exist.", filename);
MessageBox(g_hWnd, Text, "TxtConvertor", MB_OK);
SendMessage(g_hWnd, WM_DESTROY, 0, 0);
}
}

CONTRASEÑA
muserverfiles.com

CREDITOS
takumi12

Bon Dia

🡱 🡳