Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate

Autor Topic: Custom Ancient - Increase Limit of ItemSetOption.bmd (Season 6 - 1.04e)  (Visto 16005 veces)

0 Miembros and 1 Guest are viewing this topic.

Offline thunwa1 #80 Posteado: August 17, 2020, 08:05:16 AM

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 40
  • Gracias recibida: 13
  • af

Offline thunwa1 #81 Posteado: August 17, 2020, 08:06:50 AM

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 40
  • Gracias recibida: 13
  • af
Citar
#include "StdAfx.h"
#include "ItemSetOption.h"
#include "CustomMessage.h"
#include "Offset.h"
#include "Util.h"
#include "Defines.h"

ITEM_SETOPTION_INFO gItemSetOption[MAX_ITEM_SETOPTION];
CSItemOption gCustomacc;

CSItemOption::CSItemOption()
{

}

CSItemOption::~CSItemOption()
{

}

void WzXor(BYTE *Buffer, int Size)
{
BYTE Key[3] = { 0xFC, 0xCF, 0xAB };

for (int i = 0; i < Size; ++i)
{
Buffer ^= Key[i % 3];
}
}

void CSItemOption::Load()
{
SetCompleteHook(0xE9, 0x004E8990, &CSItemOption::LoadSetType);
SetCompleteHook(0xE9, 0x004E8B80, &CSItemOption::LoadSetOption);
SetCompleteHook(0xE9, 0x004E9210, &CSItemOption::InitSetOptionName);
SetCompleteHook(0xE9, 0x004EC410, &CSItemOption::InitSetOptionsTooltip);
SetCompleteHook(0xE9, 0x004EB910, &CSItemOption::InitInfoTooltip);
}

bool CSItemOption::LoadSetType(char * path)
{
char ErrorBuff[255] = { 0 };

FILE * hFile = fopen(path, "rb");

if (hFile)
{
DWORD Checksum = 0;

BYTE * Buffer = new BYTE[sizeof(this->m_ItemSetType)];

fread(Buffer, sizeof(this->m_ItemSetType), 1, hFile);

fread(&Checksum, 4, 1, hFile);

fclose(hFile);

BYTE * FixBuffer = Buffer;

int BlockSize = sizeof(ITEM_SETTYPE_INFO);

for (int i = 0; i < MAX_ITEM; ++i)
{
WzXor(FixBuffer, BlockSize);
memcpy(&this->m_ItemSetType, FixBuffer, BlockSize);
FixBuffer += BlockSize;
}

delete[] Buffer;
}
else
{
sprintf(ErrorBuff, "%s - File not exist.", path);
MessageBox(0, ErrorBuff, "Error", MB_OK | MB_ICONERROR);
ExitProcess(0);
}

return 1;
}

bool CSItemOption::LoadSetOption(char * path)
{
char ErrorBuff[255] = { 0 };

FILE * hFile = fopen(path, "rb");

memset(gItemSetOption, 0, sizeof(gItemSetOption));

if (hFile)
{
DWORD Checksum = 0;

BYTE * Buffer = new BYTE[sizeof(gItemSetOption)];

fread(Buffer, sizeof(gItemSetOption), 1, hFile);

fread(&Checksum, 4, 1, hFile);

fclose(hFile);

BYTE * FixBuffer = Buffer;

int BlockSize = sizeof(ITEM_SETOPTION_INFO);

for (int i = 0; i < MAX_ITEM_SETOPTION; ++i)
{
WzXor(FixBuffer, BlockSize);
memcpy(&gItemSetOption, FixBuffer, BlockSize);
FixBuffer += BlockSize;
}

delete[] Buffer;
}
else
{
sprintf(ErrorBuff, "%s - File not exist.", path);
MessageBox(0, ErrorBuff, "Error", MB_OK | MB_ICONERROR);
ExitProcess(0);
}
return 1;
}

bool CSItemOption::InitSetOptionName(char * Buffer, int ItemID, int AncientOption)
{
int SetType = AncientOption % 4;

if (SetType <= 0)
return 0;

BYTE SetIndex = this->GetSetIndexbyItem(ItemID, SetType);

if (SetIndex >= 255 || SetIndex <= 0)
{
return 0;
}

memcpy(Buffer, this->GetSetOptionInfo(SetIndex)->name, 32);

Buffer[strlen(Buffer)] = 32;
Buffer[strlen(Buffer) + 1] = 0;

return 1;
}

int CSItemOption::InitSetOptionsTooltip(ObjectItem * lpItem, int CurrentLine, char a4)
{
tooltiparray * TooltipLine = (tooltiparray*)NewAddressData3;
int * LineColor = (int*)NewAddressData1;
int * LineWeight = (int*)NewAddressData2;
int NextLine = CurrentLine;
int UsedPath = 0;
bool Checked = 0;

if ((lpItem->AncientOption % 4) != 1 && (lpItem->AncientOption % 4) != 2)
{
return CurrentLine;
}

BYTE SetIndex = this->GetSetIndexbyItem(lpItem->ItemID, lpItem->AncientOption % 4);

ITEM_SETOPTION_INFO* lpInfo = this->GetSetOptionInfo(SetIndex);

lpCharObj lpObj = &*(ObjectCharacter*)(*(DWORD*)MAIN_CHARACTER_STRUCT);

if (lpInfo == 0 || lpObj == 0)
{
return CurrentLine;
}

char SaveName[128] = { 0 };

memcpy(SaveName, TooltipLine[0], 100);

int SetCount = this->GetCountSetPath(lpItem->ItemID, lpItem->AncientOption % 4);

int CheckItemTable[INVENTORY_WEAR_SIZE] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 };

for (int n = 0; n < INVENTORY_WEAR_SIZE; n++)
{
lpItemObj lpEquipment = &lpObj->pEquipment[n];

Checked = 0;

for (int i = 0; i < INVENTORY_WEAR_SIZE; i++)
{
if (lpEquipment->ItemID == CheckItemTable)
{
Checked = 1;
break;
}
}

if (Checked != 1)
{
if (this->GetSetIndexbyItem(lpEquipment->ItemID, lpEquipment->AncientOption % 4) == SetIndex)
{
CheckItemTable[n] = lpEquipment->ItemID;
UsedPath++;
}
}
}
wsprintf(TooltipLine[NextLine], "Set Item Equipment Information");
LineColor[NextLine] = TEXT_GOLD;//dorado
LineWeight[NextLine++] = 1;

wsprintf(TooltipLine[NextLine++], "\n");

wsprintf(TooltipLine[NextLine], "Set %s", lpInfo->name);
LineColor[NextLine] = TEXT_GOLD;//dorado
LineWeight[NextLine++] = 1;

wsprintf(TooltipLine[NextLine++], "\n");

for (int n = 0; n <= INVENTORY_WEAR_SIZE; n++)
{
if (lpInfo->option[n] != -1 && lpInfo->value[n] != -1)
{
wsprintf(TooltipLine[NextLine], gCustomMessage.GetMessageB(this->GetAncientTextIndex(lpInfo->option[n])), lpInfo->value[n]);

if ((UsedPath > n || UsedPath >= SetCount) && UsedPath > 1)
LineColor[NextLine] = TEXT_GREN;
else
LineColor[NextLine] = TEXT_GRAY;

LineWeight[NextLine++] = 0;
}
}

for (int n = 0; n < 5; n++)
{
if (lpInfo->fulloption[n] != -1 && lpInfo->fullvalue[n] != -1)
{
wsprintf(TooltipLine[NextLine], gCustomMessage.GetMessageB(this->GetAncientTextIndex(lpInfo->fulloption[n])), lpInfo->fullvalue[n]);

if (UsedPath >= n && UsedPath >= SetCount)
LineColor[NextLine] = TEXT_GREN;//color azul
else
LineColor[NextLine] = TEXT_GRAY;//color gray

LineWeight[NextLine++] = 0;
}
}

if (NextLine > 28)
{
memcpy(TooltipLine[0], SaveName, 100);
LineColor[0] = TEXT_BLUE;
}

return NextLine;
}

void CSItemOption::RemoveDuplicatesUnsorted(int arr[][3], int Length)
{
for (int i = 0; i < Length; i++)
{
for (int j = i + 1; j < Length;)
{
if (arr[1] == arr[j][1])
{
for (int k = j; k < Length; k++)
{
arr[k][0] = arr[k + 1][0];
arr[k][1] = arr[k + 1][1];
arr[k][2] = arr[k + 1][2];
}
Length--;
}
else
{
j++;
}
}
}
}

void CSItemOption::InitInfoTooltip(int PosX, int PosY)
{
if (this->unknow39812 && (this->unknow39816[144] > 0 || this->unknow39816[145] > 0))
{
tooltiparray * TooltipLine = (tooltiparray*)NewAddressData3;
int * LineColor = (int*)NewAddressData1;
int * LineWeight = (int*)NewAddressData2;

int Line = 1;

lpCharObj lpObj = &*(ObjectCharacter*)(*(DWORD*)MAIN_CHARACTER_STRUCT);

int CheckItemTable[INVENTORY_WEAR_SIZE][3] = { { -1, -1, -1 }, { -1, -1, -1 }, { -1, -1, -1 }, { -1, -1, -1 }, { -1, -1, -1 }, { -1, -1, -1 }, { -1, -1, -1 }, { -1, -1, -1 }, { -1, -1, -1 }, { -1, -1, -1 }, { -1, -1, -1 }, { -1, -1, -1 } };
int UsedPath[INVENTORY_WEAR_SIZE] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };

for (int n = 0; n < INVENTORY_WEAR_SIZE; n++)
{
lpItemObj lpEquipment = &lpObj->pEquipment[n];

if ((lpEquipment->AncientOption % 4) == 1 || (lpEquipment->AncientOption % 4) == 2)
{
BYTE SetIndex = this->GetSetIndexbyItem(lpEquipment->ItemID, lpEquipment->AncientOption % 4);

if (SetIndex != CheckItemTable[n][1])
{
CheckItemTable[n][0] = lpEquipment->ItemID;
CheckItemTable[n][1] = SetIndex;
CheckItemTable[n][2] = (lpEquipment->AncientOption % 4);
}
}
}

this->RemoveDuplicatesUnsorted(CheckItemTable, INVENTORY_WEAR_SIZE);

for (int o = 0; o < 3; o++)
{
int TempChecked[INVENTORY_WEAR_SIZE] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 };

for (int n = 0; n < INVENTORY_WEAR_SIZE; n++)
{
lpItemObj lpEquipment = &lpObj->pEquipment[n];

bool Checked = false;

for (int i = 0; i < INVENTORY_WEAR_SIZE; i++)
{
if (lpEquipment->ItemID == TempChecked)
{
Checked = true;
break;
}
}

if (Checked != true)
{
if (this->GetSetIndexbyItem(lpEquipment->ItemID, lpEquipment->AncientOption % 4) == CheckItemTable
  • [1])

{
TempChecked[n] = lpEquipment->ItemID;
UsedPath
  • ++;

}
}
}
}

for (int o = 0; o < 3; o++)
{
if (CheckItemTable
  • [1] <= 0 || CheckItemTable
  • [1] >= 255)

{
continue;
}

ITEM_SETOPTION_INFO* lpInfo = this->GetSetOptionInfo(CheckItemTable
  • [1]);


lpCharObj lpObj = &*(ObjectCharacter*)(*(DWORD*)MAIN_CHARACTER_STRUCT);

if (lpInfo == 0)
{
continue;
}

int SetCount = this->GetCountSetPath(CheckItemTable
  • [0], CheckItemTable
  • [2]);


if (UsedPath
  • < 2)

{
continue;
}


wsprintf(TooltipLine[0], "\n");

wsprintf(TooltipLine[Line], "Set %s Item Equipment Information", lpInfo->name);
LineColor[Line] = TEXT_GOLD;//dorado
LineWeight[Line++] = 1;

wsprintf(TooltipLine[Line++], "\n");

for (int n = 0; n < INVENTORY_WEAR_SIZE; n++)
{
if (lpInfo->option[n] != -1 && lpInfo->value[n] != -1)
{
if ((UsedPath
  • > n || UsedPath
  • >= SetCount) && UsedPath
  • > 1)

{
wsprintf(TooltipLine[Line], gCustomMessage.GetMessageB(this->GetAncientTextIndex(lpInfo->option[n])), lpInfo->value[n]);
LineColor[Line] = TEXT_GREN;
LineWeight[Line++] = 1;
}
}
}

for (int n = 0; n < 5; n++)
{
if (lpInfo->fulloption[n] != -1 && lpInfo->fullvalue[n] != -1)
{
if (UsedPath
  • >= n && UsedPath
  • >= SetCount)

{
wsprintf(TooltipLine[Line], gCustomMessage.GetMessageB(this->GetAncientTextIndex(lpInfo->fulloption[n])), lpInfo->fullvalue[n]);
LineColor[Line] = TEXT_GREN;
LineWeight[Line++] = 1;
}
}
}

wsprintf(TooltipLine[Line++], "\n");
}

pMultiLineTooltip(PosX + 95, PosY + 40, Line, 120, 3, 0, 1);
}
}

BYTE CSItemOption::GetSetIndexbyItem(int itemindex, int type)
{
if (itemindex < 0 || itemindex >= MAX_ITEM)
{
return 0;
}

int origin = (type - 1);

if (origin < 0 || origin >= 2)
{
return 0;
}

return this->m_ItemSetType[itemindex].set[origin];
}

int CSItemOption::GetCountSetPath(int itemindex, int type)
{
if (itemindex < 0 || itemindex >= MAX_ITEM)
{
return 0;
}

int origin = (type - 1);

if (origin < 0 || origin >= 2)
{
return 0;
}

int Count = 0;

int Type1 = this->GetSetIndexbyItem(itemindex, type);

for (int n = 0; n < MAX_ITEM; n++)
{
if (this->m_ItemSetType[n].set[origin] == Type1)
{
Count++;
}
}

return Count;
}

ITEM_SETOPTION_INFO* CSItemOption::GetSetOptionInfo(int index)
{
if (index < 1 || index > MAX_ITEM_SETOPTION)
{
return 0;
}

return &gItemSetOption[index];
}

int CSItemOption::GetAncientTextIndex(BYTE OptionIndex)
{
int Index = OptionIndex + 168;

switch (OptionIndex)
{
case SET_ITEM_OPTION_ADD_STRENGTH:
case SET_ITEM_OPTION_ADD_DEXTERITY:
case SET_ITEM_OPTION_ADD_ENERGY:
case SET_ITEM_OPTION_ADD_VITALITY:
case SET_ITEM_OPTION_ADD_LEADERSHIP:
case SET_ITEM_OPTION_ADD_MIN_PHYSI_DAMAGE:
case SET_ITEM_OPTION_ADD_MAX_PHYSI_DAMAGE:
Index = OptionIndex + 950;
break;
case SET_ITEM_OPTION_MUL_MAGIC_DAMAGE:
Index = 632;
break;
case SET_ITEM_OPTION_ADD_PHYSI_DAMAGE:
case SET_ITEM_OPTION_MUL_ATTACK_SUCCESS_RATE:
case SET_ITEM_OPTION_ADD_DEFENSE:
case SET_ITEM_OPTION_ADD_MAX_LIFE:
case SET_ITEM_OPTION_ADD_MAX_MANA:
case SET_ITEM_OPTION_ADD_MAX_BP:
case SET_ITEM_OPTION_ADD_BP_RECOVERY:
case SET_ITEM_OPTION_ADD_CRITICAL_DAMAGE_RATE:
case SET_ITEM_OPTION_ADD_CRITICAL_DAMAGE:
case SET_ITEM_OPTION_ADD_EXCELLENT_DAMAGE_RATE:
case SET_ITEM_OPTION_ADD_EXCELLENT_DAMAGE:
case SET_ITEM_OPTION_ADD_SKILL_DAMAGE:
case SET_ITEM_OPTION_ADD_DOUBLE_DAMAGE_RATE:
Index = OptionIndex + 949;
break;
case SET_ITEM_OPTION_ADD_IGNORE_DEFENSE_RATE:
Index = 970;
break;
case SET_ITEM_OPTION_MUL_SHIELD_DEFENSE:
Index = 984;
break;
case SET_ITEM_OPTION_MUL_TWO_HAND_PHYSI_DAMAGE:
Index = 983;
break;
case SET_ITEM_OPTION_ADD_PHYSI_DAMAGE_BY_STRENGTH:
case SET_ITEM_OPTION_ADD_PHYSI_DAMAGE_BY_DEXTERITY:
case SET_ITEM_OPTION_ADD_DEFENSE_BY_DEXTERITY:
case SET_ITEM_OPTION_ADD_DEFENSE_BY_VITALITY:
case SET_ITEM_OPTION_ADD_MAGIC_DAMAGE_BY_ENERGY:
case SET_ITEM_OPTION_ADD_ICE_DAMAGE:
case SET_ITEM_OPTION_ADD_POISON_DAMAGE:
case SET_ITEM_OPTION_ADD_LIGHTNING_DAMAGE:
case SET_ITEM_OPTION_ADD_FIRE_DAMAGE:
case SET_ITEM_OPTION_ADD_EARTH_DAMAGE:
case SET_ITEM_OPTION_ADD_WIND_DAMAGE:
case SET_ITEM_OPTION_ADD_WATER_DAMAGE:
Index = OptionIndex + 947;
break;
default:
return Index;
}

return Index;
}

Citar
#pragma once

#include "Defines.h"
#include "Object.h"
#include "Item.h"

enum eSetItemColor
{
TEXT_BLUE = 1,
TEXT_RED = 2,
TEXT_GOLD = 3,
TEXT_GREN = 4,
TEXT_WHITE_RED = 5,
TEXT_PINK = 6,
TEXT_WHITE_BLUE = 7,
TEXT_WHITE_YELLOW = 8,
TEXT_GREN_BLUE = 9,
TEXT_GRAY = 10,
TEXT_PINK2 = 11,
TEXT_PURPLE = 12,
TEXT_ORANGE = 13,
TEXT_WHITE = 14,
};

enum eSetItemOption
{
SET_ITEM_OPTION_ADD_STRENGTH = 0,
SET_ITEM_OPTION_ADD_DEXTERITY = 1,
SET_ITEM_OPTION_ADD_ENERGY = 2,
SET_ITEM_OPTION_ADD_VITALITY = 3,
SET_ITEM_OPTION_ADD_LEADERSHIP = 4,
SET_ITEM_OPTION_ADD_MIN_PHYSI_DAMAGE = 5,
SET_ITEM_OPTION_ADD_MAX_PHYSI_DAMAGE = 6,
SET_ITEM_OPTION_MUL_MAGIC_DAMAGE = 7,
SET_ITEM_OPTION_ADD_PHYSI_DAMAGE = 8,
SET_ITEM_OPTION_MUL_ATTACK_SUCCESS_RATE = 9,
SET_ITEM_OPTION_ADD_DEFENSE = 10,
SET_ITEM_OPTION_ADD_MAX_LIFE = 11,
SET_ITEM_OPTION_ADD_MAX_MANA = 12,
SET_ITEM_OPTION_ADD_MAX_BP = 13,
SET_ITEM_OPTION_ADD_BP_RECOVERY = 14,
SET_ITEM_OPTION_ADD_CRITICAL_DAMAGE_RATE = 15,
SET_ITEM_OPTION_ADD_CRITICAL_DAMAGE = 16,
SET_ITEM_OPTION_ADD_EXCELLENT_DAMAGE_RATE = 17,
SET_ITEM_OPTION_ADD_EXCELLENT_DAMAGE = 18,
SET_ITEM_OPTION_ADD_SKILL_DAMAGE = 19,
SET_ITEM_OPTION_ADD_DOUBLE_DAMAGE_RATE = 20,
SET_ITEM_OPTION_ADD_IGNORE_DEFENSE_RATE = 21,
SET_ITEM_OPTION_MUL_SHIELD_DEFENSE = 22,
SET_ITEM_OPTION_MUL_TWO_HAND_PHYSI_DAMAGE = 23,
SET_ITEM_OPTION_ADD_PHYSI_DAMAGE_BY_STRENGTH = 24,
SET_ITEM_OPTION_ADD_PHYSI_DAMAGE_BY_DEXTERITY = 25,
SET_ITEM_OPTION_ADD_DEFENSE_BY_DEXTERITY = 26,
SET_ITEM_OPTION_ADD_DEFENSE_BY_VITALITY = 27,
SET_ITEM_OPTION_ADD_MAGIC_DAMAGE_BY_ENERGY = 28,
SET_ITEM_OPTION_ADD_ICE_DAMAGE = 29,
SET_ITEM_OPTION_ADD_POISON_DAMAGE = 30,
SET_ITEM_OPTION_ADD_LIGHTNING_DAMAGE = 31,
SET_ITEM_OPTION_ADD_FIRE_DAMAGE = 32,
SET_ITEM_OPTION_ADD_EARTH_DAMAGE = 33,
SET_ITEM_OPTION_ADD_WIND_DAMAGE = 34,
SET_ITEM_OPTION_ADD_WATER_DAMAGE = 35,
};

#define MAX_ITEM_SETOPTION 254
#define INVENTORY_WEAR_SIZE 12
#define pMultiLineTooltip      ((void(__cdecl*)(int x, int y, int nCount, int witd, int height,int type, int Align)) 0x005BF700)

typedef char tooltiparray[100];

#pragma pack(push, 1)
struct ITEM_SETTYPE_INFO //4
{
BYTE set[2];
BYTE mix[2];
};
#pragma pack(pop)

#pragma pack(push, 1)
struct ITEM_SETOPTION_INFO //(size: 110 x 64)
{
/*+0*/ char name[64];
/*+64*/ char option[12];
/*+76*/ char value[12];
/*+88*/ char unknown88;
/*+89*/ char unknown89;
/*+90*/ char unknown90;
/*+91*/ char unknown91;
/*+92*/ char unknown92;
/*+93*/ char fulloption[5];
/*+98*/ char fullvalue[5];
/*+103*/ char Class[7];
};
#pragma pack(pop)

#pragma pack(push,1)
class CSItemOption
{
public:
CSItemOption();
virtual ~CSItemOption();

private:
ITEM_SETTYPE_INFO m_ItemSetType[MAX_ITEM];  //?
//BYTE gap[4];  //?
ITEM_SETOPTION_INFO m_ItemSetOption[64];//32772 Not Enough Memory
BYTE unknow39812;
BYTE unknow39813;
BYTE ViewSet;
BYTE unknow39815;
BYTE unknow39816[220];

public:
bool InitSetOptionName(char * Buffer, int ItemID, int AncientOption);
int InitSetOptionsTooltip(ObjectItem * lpItem, int CurrentLine, char a4);
void InitInfoTooltip(int PosX, int PosY);
BYTE GetSetIndexbyItem(int itemindex, int type);
int GetCountSetPath(int itemindex, int type);
ITEM_SETOPTION_INFO* GetSetOptionInfo(int index);
int GetAncientTextIndex(BYTE OptionIndex);
bool LoadSetType(char * path);
bool LoadSetOption(char * path);
void RemoveDuplicatesUnsorted(int arr[][3], int Length);
static void Load();
};
#pragma pack(pop)

extern ITEM_SETOPTION_INFO gItemSetOption[MAX_ITEM_SETOPTION];
extern CSItemOption gCustomacc;
//int s = sizeof(CSItemOption);


Gracias:


Offline thunwa1 #82 Posteado: August 21, 2020, 12:25:34 PM

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 40
  • Gracias recibida: 13
  • af

Offline emersonx13 #83 Posteado: August 21, 2020, 01:38:36 PM

  • MAESTRO

  • US. DE HONOR

  • LEYENDA

  • 3D Maker
  • 0 puntos por ventas
  • *
  • *
  • Rank: Puto amo
  • Posts: 523
  • Gracias recibida: 33297
  • br
Donate for my Work

BTC: 1HnXqN1wAh3EUC2Gi4WVH5Cj8fmihgeQze

Offline thunwa1 #84 Posteado: August 21, 2020, 08:08:17 PM

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 40
  • Gracias recibida: 13
  • af

Offline emersonx13 #85 Posteado: August 22, 2020, 12:46:56 PM

  • MAESTRO

  • US. DE HONOR

  • LEYENDA

  • 3D Maker
  • 0 puntos por ventas
  • *
  • *
  • Rank: Puto amo
  • Posts: 523
  • Gracias recibida: 33297
  • br
:'(:'( Help !

I think is lacking object sctruct
Everything is working fine But I can't see the option.

Yes, becouse is lacking something in objectstruct
I see the same error when I make in Client.dll of X-Team users.

Donate for my Work

BTC: 1HnXqN1wAh3EUC2Gi4WVH5Cj8fmihgeQze

Offline takumi12 #86 Posteado: September 01, 2020, 12:39:37 PM | Modificado: September 01, 2020, 11:00:31 PM by takumi12

  • MAESTRO

  • US. DE HONOR

  • LEYENDA

  • Php Coder
  • +11 puntos por ventas
  • *
  • *
  • Rank: Puto amo
  • Posts: 1.310
  • Gracias recibida: 40186
  • mx
bueno vengo a revisar esta fuente que alguna vez copie, y repito tiene bug, he reparado el problema, pronto compartiré una nueva forma, por ahora les comparto la imgaen y para aquel que quiera colocar el color original de la s8 en adelante, el texto el siguiente sería así




para los que me preguntan por MP cual es el bug, pues en la misma imagen se muestra, el bug, aparece las opciones activas sin estar en uso solo por tener el set activo en el equipamiento, si esta en el inventario o postitem debe de estar inactivo aunque tengas el set actviado en tu equipamiento, saludos!

así es como se debe de ver sin equipar y en post item
asi es como queda sin el bug:


bug:


Las offset no se crea, ni se destruye, solo se transforma

Offline RyukZ #87 Posteado: October 06, 2020, 07:49:14 AM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 260
  • Gracias recibida: 55
  • ve
Usando el file de la season 8 me dice que el archivo es corrupto.


Offline MsotoC #88 Posteado: October 06, 2020, 09:57:15 AM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 282
  • Gracias recibida: 1930
  • pe
Usando el file de la season 8 me dice que el archivo es corrupto.
Llama la función desde Main.cpp


Offline RyukZ #89 Posteado: October 06, 2020, 01:16:15 PM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 260
  • Gracias recibida: 55
  • ve
Usando el file de la season 8 me dice que el archivo es corrupto.
Llama la función desde Main.cpp

Estoy usando la up22 de Louis, no sé si ya tengo esto añadido.


Offline MsotoC #90 Posteado: October 06, 2020, 01:33:53 PM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 282
  • Gracias recibida: 1930
  • pe
Usando el file de la season 8 me dice que el archivo es corrupto.
Llama la función desde Main.cpp

Estoy usando la up22 de Louis, no sé si ya tengo esto añadido.

Desde hace mucho q yo sepa. revisa el changelog de su foro. ahi ves.


Offline RyukZ #91 Posteado: October 06, 2020, 02:52:17 PM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 260
  • Gracias recibida: 55
  • ve
Usando el file de la season 8 me dice que el archivo es corrupto.
Llama la función desde Main.cpp

Estoy usando la up22 de Louis, no sé si ya tengo esto añadido.

Desde hace mucho q yo sepa. revisa el changelog de su foro. ahi ves.

Si ya revisé y lo tiene añadido desde la Up16 que dice SEt Item to 255 (S6) pero me faltar es el ItemSetOption que soporte más de 65 porque uso el del season 8 que comentario anteriormente y el cliente no me lo sabe leer, dice que está corrupto el archivo.


Offline liron003 #92 Posteado: March 04, 2023, 05:19:48 PM

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 5
  • Gracias recibida: 3
  • gb
:'(:'( Help !

I think is lacking object sctruct

same problem someone know how to fix it ? i check struct and offsets everything correct
Help please


Offline hspecz #93 Posteado: October 21, 2023, 04:14:59 PM

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 13
  • Gracias recibida: 4
  • ph
Perdón por tocar el mensaje anterior. ¿Tiene algún editor para setitemoption bmd? Quiero poner un nuevo conjunto antiguo personalizado. pero no tengo bmdec que pueda editarlo


Offline hspecz #94 Posteado: October 21, 2023, 10:57:37 PM

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 13
  • Gracias recibida: 4
  • ph
¿Alguien sabe cómo leer esto?

esto si para itemsettype.bmd


//ItemCat   ItemIndex   Tier1   Tier2   Tier3   Tier4   Unk1   Unk2
0   1   25651   13122   22372   25651   87   51   
0   2   13143   22372   25651   13143   100   87   
0   4   25651   13143   22372   25651   87   51   
0   5   13143   22372   25651   13143   100   87   
0   7   25651   13143   22372   25651   87   51   
0   8   13143   22372   25656   13143   100   87   
0   10   25651   13166   22372   25651   87   51   
0   11   13143   22372   25651   13143   100   87   
0   13   25651   13143   22372   25651   87   51   
0   14   13143   22372   25651   13143   100   87   


Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate


 

Related Topics

  Subject / Started by Replies Last post
0 Replies
672 Views
Last post March 12, 2020, 03:41:07 AM
by Crowley
3 Replies
1116 Views
Last post March 28, 2020, 11:44:20 AM
by GenkiDama
44 Replies
8673 Views
Last post January 28, 2023, 12:52:51 AM
by erickmalfoy
1 Replies
622 Views
Last post August 09, 2020, 01:59:40 PM
by Ifreat
0 Replies
405 Views
Last post January 14, 2021, 03:11:07 PM
by spider