Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate

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

0 Miembros and 1 Guest are viewing this topic.

Offline NasLy #60 Posteado: May 03, 2020, 08:44:21 PM

  • 0 puntos por ventas
  • *
  • *
  • Rank: Puto amo
  • Posts: 441
  • Gracias recibida: 13864
  • ar
Can you share how to show defense, damage, magic damage ... at item.bmd when passing 255 at item.txt for me, thanks!



@allhoy

@binhchivn
 

Yes, Iam waiting for someone share the New movments pets.
Like dinorant and like horse.
I appreciate share of Glows Monsters, Right Click to Chaos Machine and others.
Thanks

Si te referis a la montura, etc. La podes sacar de la Source Ex-Team

Nunca es tarde para ser lo que podias haber sido.

Gracias:


Offline Denis Alves #61 Posteado: May 06, 2020, 03:58:24 AM

  • C++ Coder
  • +2 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 268
  • Gracias recibida: 7315
  • br

Gracias:


Offline lDrakol #62 Posteado: May 10, 2020, 07:29:27 AM

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 7
  • Gracias recibida: 1
  • pe
No es posible poner opciones +255. nisiquiera editar bien, porque el nombre se pone con yyyyyyyyyyyyyyyyyyyyyyyy, Y si, estoy usando el archivo bmd de s8 que compartio emerson
Me pasa lo mismo

Edit: solucionado. Verifica tu archivo ItemSetOption S8 este en las sub carpetas de la carpeta local y dependiendo cual uses agregale ItemSetOption_spn y esas terminaciones.

No comprendi la verdad jaja,
jaja fijate que lenguaje usas en el cliente y cambiale el itemsetoption por el del s8

Siempre uso el de Ingles (ENG), y estoy editando el archivo de S8 que el mismo emerson dejo y igual no me deja poner ni items +255, y cuando intento cambiarle nombre, me sale yyyyyyyyyyyyyyyyyyyyyyy, Te hable al imbox xd
Bueno buscate el ItemSetOption S8 que postearon por aca y renombralo como ItemSetOption_eng.bmd .... editalo con el editor magic hand que tiene el foro, para agregar nuevas opciones

consulta al main.cpp  se le agrega esto tambien? gCustomacc.Load();
Si y agrega el archivo .H igual con include.

bro yo lo hice con el editor de magic hand y tambien me salen opciones distintas los nombre si pero opciones como -106 me salen


Offline comelon666 #63 Posteado: May 19, 2020, 08:50:46 PM

  • 0 puntos por ventas
  • *
  • Rank: Avanzado
  • Posts: 122
  • Gracias recibida: 346
  • pe
Algun editor con soporte para el archivo s8 de setitemoption_eng.bmd?


Offline Cheke #64 Posteado: May 20, 2020, 02:06:25 AM

  • Colaborador
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 459
  • Gracias recibida: 3208
  • ar
No es posible poner opciones +255. nisiquiera editar bien, porque el nombre se pone con yyyyyyyyyyyyyyyyyyyyyyyy, Y si, estoy usando el archivo bmd de s8 que compartio emerson
Me pasa lo mismo

Edit: solucionado. Verifica tu archivo ItemSetOption S8 este en las sub carpetas de la carpeta local y dependiendo cual uses agregale ItemSetOption_spn y esas terminaciones.

No comprendi la verdad jaja,
jaja fijate que lenguaje usas en el cliente y cambiale el itemsetoption por el del s8

Siempre uso el de Ingles (ENG), y estoy editando el archivo de S8 que el mismo emerson dejo y igual no me deja poner ni items +255, y cuando intento cambiarle nombre, me sale yyyyyyyyyyyyyyyyyyyyyyy, Te hable al imbox xd
Bueno buscate el ItemSetOption S8 que postearon por aca y renombralo como ItemSetOption_eng.bmd .... editalo con el editor magic hand que tiene el foro, para agregar nuevas opciones

consulta al main.cpp  se le agrega esto tambien? gCustomacc.Load();
Si y agrega el archivo .H igual con include.

bro yo lo hice con el editor de magic hand y tambien me salen opciones distintas los nombre si pero opciones como -106 me salen

Si eso pasa en Files como por ejemplo MuEmu Louis Emulador, te aparece un -56 en vez de un +200. Nose que es lo que modifican que se jode eso :(


Offline seedmaker #65 Posteado: May 27, 2020, 10:05:08 AM

  • 0 puntos por ventas
  • *
  • Rank: Avanzado
  • Posts: 138
  • Gracias recibida: 701
  • ph

Offline louis #66 Posteado: May 27, 2020, 02:15:52 PM

  • MAESTRO

  • US. DE HONOR

  • LEYENDA

  • C++ Coder
  • +12 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 903
  • Gracias recibida: 41764
  • br
No es posible poner opciones +255. nisiquiera editar bien, porque el nombre se pone con yyyyyyyyyyyyyyyyyyyyyyyy, Y si, estoy usando el archivo bmd de s8 que compartio emerson
Me pasa lo mismo

Edit: solucionado. Verifica tu archivo ItemSetOption S8 este en las sub carpetas de la carpeta local y dependiendo cual uses agregale ItemSetOption_spn y esas terminaciones.

No comprendi la verdad jaja,
jaja fijate que lenguaje usas en el cliente y cambiale el itemsetoption por el del s8

Siempre uso el de Ingles (ENG), y estoy editando el archivo de S8 que el mismo emerson dejo y igual no me deja poner ni items +255, y cuando intento cambiarle nombre, me sale yyyyyyyyyyyyyyyyyyyyyyy, Te hable al imbox xd
Bueno buscate el ItemSetOption S8 que postearon por aca y renombralo como ItemSetOption_eng.bmd .... editalo con el editor magic hand que tiene el foro, para agregar nuevas opciones

consulta al main.cpp  se le agrega esto tambien? gCustomacc.Load();
Si y agrega el archivo .H igual con include.

bro yo lo hice con el editor de magic hand y tambien me salen opciones distintas los nombre si pero opciones como -106 me salen

Si eso pasa en Files como por ejemplo MuEmu Louis Emulador, te aparece un -56 en vez de un +200. Nose que es lo que modifican que se jode eso :(

Fix for +-56


change in the full value too

Update 41 is ready!!!
Discord: louisemulator

Gracias:


Offline Cheke #67 Posteado: May 27, 2020, 07:40:35 PM

  • Colaborador
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 459
  • Gracias recibida: 3208
  • ar
No es posible poner opciones +255. nisiquiera editar bien, porque el nombre se pone con yyyyyyyyyyyyyyyyyyyyyyyy, Y si, estoy usando el archivo bmd de s8 que compartio emerson
Me pasa lo mismo

Edit: solucionado. Verifica tu archivo ItemSetOption S8 este en las sub carpetas de la carpeta local y dependiendo cual uses agregale ItemSetOption_spn y esas terminaciones.

No comprendi la verdad jaja,
jaja fijate que lenguaje usas en el cliente y cambiale el itemsetoption por el del s8

Siempre uso el de Ingles (ENG), y estoy editando el archivo de S8 que el mismo emerson dejo y igual no me deja poner ni items +255, y cuando intento cambiarle nombre, me sale yyyyyyyyyyyyyyyyyyyyyyy, Te hable al imbox xd
Bueno buscate el ItemSetOption S8 que postearon por aca y renombralo como ItemSetOption_eng.bmd .... editalo con el editor magic hand que tiene el foro, para agregar nuevas opciones

consulta al main.cpp  se le agrega esto tambien? gCustomacc.Load();
Si y agrega el archivo .H igual con include.

bro yo lo hice con el editor de magic hand y tambien me salen opciones distintas los nombre si pero opciones como -106 me salen

Si eso pasa en Files como por ejemplo MuEmu Louis Emulador, te aparece un -56 en vez de un +200. Nose que es lo que modifican que se jode eso :(

Fix for +-56
change in the full value too

Esta fixeado en update 22?


Offline louis #68 Posteado: May 27, 2020, 10:07:22 PM

  • MAESTRO

  • US. DE HONOR

  • LEYENDA

  • C++ Coder
  • +12 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 903
  • Gracias recibida: 41764
  • br
No es posible poner opciones +255. nisiquiera editar bien, porque el nombre se pone con yyyyyyyyyyyyyyyyyyyyyyyy, Y si, estoy usando el archivo bmd de s8 que compartio emerson
Me pasa lo mismo

Edit: solucionado. Verifica tu archivo ItemSetOption S8 este en las sub carpetas de la carpeta local y dependiendo cual uses agregale ItemSetOption_spn y esas terminaciones.

No comprendi la verdad jaja,
jaja fijate que lenguaje usas en el cliente y cambiale el itemsetoption por el del s8

Siempre uso el de Ingles (ENG), y estoy editando el archivo de S8 que el mismo emerson dejo y igual no me deja poner ni items +255, y cuando intento cambiarle nombre, me sale yyyyyyyyyyyyyyyyyyyyyyy, Te hable al imbox xd
Bueno buscate el ItemSetOption S8 que postearon por aca y renombralo como ItemSetOption_eng.bmd .... editalo con el editor magic hand que tiene el foro, para agregar nuevas opciones

consulta al main.cpp  se le agrega esto tambien? gCustomacc.Load();
Si y agrega el archivo .H igual con include.

bro yo lo hice con el editor de magic hand y tambien me salen opciones distintas los nombre si pero opciones como -106 me salen

Si eso pasa en Files como por ejemplo MuEmu Louis Emulador, te aparece un -56 en vez de un +200. Nose que es lo que modifican que se jode eso :(

Fix for +-56
change in the full value too

Esta fixeado en update 22?

si amigo, solo bajar en su panel

Update 41 is ready!!!
Discord: louisemulator

Offline binhchivn #69 Posteado: May 27, 2020, 10:19:40 PM

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 40
  • Gracias recibida: 276
  • vn

Offline axeman192 #70 Posteado: May 27, 2020, 10:33:03 PM

  • 3D Maker
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 276
  • Gracias recibida: 12487
  • vn

Gracias:


Offline J2Team #71 Posteado: June 13, 2020, 10:03:03 AM

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 23
  • Gracias recibida: 7
  • br
Recibo un error cuando agrego la Source, ¿alguien puede sugerir una solución?


Offline dhaomao #72 Posteado: June 13, 2020, 11:25:00 PM

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 41
  • Gracias recibida: 11
  • dz
falta :

gCustomMessage.GetMessageB(159))

GetMessageB
xD

no encontré las offset

Saludos amigo.
Di no a monopolio.  cool2

Please help me with error


what different sir?
I am missing a GetMessageB in winuser.h and pTextLineThis please share it

char*GetMessageB(int index);

#define pGetTextLine         ((LPCSTR(__thiscall*)(LPVOID This, int LineNumber)) 0x402320)

#define pTextLineThis         ((LPVOID(*)()) 0x8128ADC)
#define pGetTextLine         ((char*(__thiscall*)(LPVOID This, int LineNumber)) 0x402320)

Where can i add this ???


Offline erickmalfoy #73 Posteado: June 23, 2020, 07:57:11 PM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 684
  • Gracias recibida: 776
  • ar
 magia2 tengo una consulta para agregar los setacc custom
Tengo que hacer un getinfo o solo lo agrego de la manera norma
Osea del muserver ?


Offline comelon666 #74 Posteado: June 25, 2020, 07:15:31 PM

  • 0 puntos por ventas
  • *
  • Rank: Avanzado
  • Posts: 122
  • Gracias recibida: 346
  • pe

Gracias:


Offline takumi12 #75 Posteado: June 25, 2020, 07:23:49 PM

  • MAESTRO

  • US. DE HONOR

  • LEYENDA

  • Php Coder
  • +11 puntos por ventas
  • *
  • *
  • Rank: Puto amo
  • Posts: 1.055
  • Gracias recibida: 46451
  • mx

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

Gracias:


Offline axeman192 #76 Posteado: June 25, 2020, 08:59:59 PM

  • 3D Maker
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 276
  • Gracias recibida: 12487
  • vn

Offline Nexus #77 Posteado: August 09, 2020, 01:57:58 PM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 356
  • Gracias recibida: 1269
  • ve
Errores encontrados

1.    / + Enter




2.   Al ponerle opciones exe a cualquier ancient, cualquiera no solo custom, el color ancient del titulo se torna normal



alguien tuvo algún fix? 



Offline thunwa1 #78 Posteado: August 17, 2020, 07:46:23 AM

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 41
  • Gracias recibida: 18
  • af

Offline Higgs #79 Posteado: August 17, 2020, 08:03:10 AM

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 50
  • Gracias recibida: 10
  • us

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

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 41
  • Gracias recibida: 18
  • af

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

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 41
  • Gracias recibida: 18
  • 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: 41
  • Gracias recibida: 18
  • 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: 543
  • Gracias recibida: 39188
  • br

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

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 41
  • Gracias recibida: 18
  • 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: 543
  • Gracias recibida: 39188
  • 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.


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.055
  • Gracias recibida: 46451
  • 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: 68
  • 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: 2324
  • 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: 68
  • 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.


Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate


 

Related Topics

  Subject / Started by Replies Last post
0 Replies
934 Views
Last post March 12, 2020, 03:41:07 AM
by Crowley
3 Replies
1865 Views
Last post March 28, 2020, 11:44:20 AM
by GenkiDama
44 Replies
14154 Views
Last post January 28, 2023, 12:52:51 AM
by erickmalfoy
0 Replies
648 Views
Last post January 14, 2021, 03:11:07 PM
by spider
5 Replies
1018 Views
Last post June 20, 2025, 10:27:47 PM
by ace17