Pergunta sincera:
O cliente possui diversos bugs graves. Um deles é erro na textura após alguns minutos.
Ex:
// No .h: IDirect3DTexture9* m_ppUITexture[512];
// No .cpp: Acessa até índice 999 (MAX_UI_TEXTURE = 1000)
IDirect3DTexture9* TextureManager::GetUITexture(int nIndex, DWORD showTime)
{
if (nIndex < 0 || nIndex > MAX_UI_TEXTURE) // MAX_UI_TEXTURE = 1000
return nullptr;
if (m_ppUITexture[nIndex] != nullptr) // SE nIndex > 511: BUFFER OVERFLOW!
Resultado:
Índices 512-999 acessam memória fora do array m_ppUITexture[512]
Pode sobrescrever outros dados (outros arrays, variáveis, código),
Texturas brancas porque retorna L1xo da memória (Isso ocorre após uns minutos),
Crash aleatório quando corrompe memória crítica (ocorre em menos de 2 minutos após as texturas brancas).
A pergunta é: Como praticamente todos os códigos "desse programador" cujo nome aparece ao abrir o TMSrv possuem falhas graves, isso é proposital ou é inexperiência crônica e desleixo por parte dele?
fread(m_stUITextureList, sizeof(m_stUITextureList), 1, fpBin);
// m_stUITextureList tem 1000 elementos
// Mas no .h: stTextureListInfo m_stUITextureList[MAX_UI_TEXTURE]; // 1000 ✓
// No .cpp: stTextureListInfo m_stUITextureList[512]; // SÓ 512!
Se o arquivo .bin tem 1000 entradas:
Lê 1000 registros × sizeof(stTextureListInfo)
Mas array só tem espaço para 512
Buffer overflow corrompe memória adjacente
Informações de textura ficam corrompidas
Texturas carregam com formato/alfa errado ( brancas)
O Código de Debug no .cpp Confirma
for (int i = 0; i < 1000; ++i) // Itera até 1000!
{
// Modifica m_stUITextureList
// Para i > 511: CORROMPE MEMÓRIA!
if (i == 396) // Índice 396 ainda é válido (dentro de 512)
{
sprintf(m_stUITextureList.szFileName, "UI\\select06.wyt");
m_stUITextureList.cAlpha = 65;
}
}
Ele sabia do problema e tentou corrigir alguns índices?
Olá amiges, segue um cheat free para o AbyssalPK, funções simples, apenas para diversão.
Site do AbyssalPK
Scan:
[Hidden Content]
Download:
[Hidden Content]
Como utilizar? apenas faça o download da DLL, coloque ela dentro da pasta do jogo, e abra o game normalmente.
eu estava quebrando a cabeça toda hora procurando mob por mob pra ver o que cada um dropava, e nao achava na pasta um arquivo com todos os drops.
entao decidi criar um, foi rapido ate criar um, salve pro chatgpt.
pra usar: colocar o exe na pasta onde tem a pasta npc e o arquivo itemlist.csv e abrir o executavel, ele vai criar um drops.txt com os drops de todos os mobs, vai ter os item dos npc no meio tbm.
se editar o drop de algum mob, so rodar o exe dnv.
download: [Hidden Content]
coloquei o arquivo .py que usei pra criar o exe caso algm queira ver
Não compensa seguir um projeto que outra pessoa pode barrar com facilidade :)
Fazendo outros projetos para gerar os recursos necessários para o reboot/remake.
Apesar do financiamento coletivo ser uma possibilidade, estou na linha de bancar tudo sozinho.
Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.