PDA

Просмотр полной версии : Данные о скилах из клиента


Sherman
31.03.2009, 11:15
Предисловие. Работая над небольшим проектиком мне потребовалось иметь данные о скиллах. Перепробовав варианты с ini и ресурсами, и осозновая что мой проект работает в адресном пространстве клиента, был написан этот модуль.


unit UserData;
interface

uses
Windows, SysUtils, Classes;


type
TMSData = record
name : pWideChar;
b1 : integer;
b2 : integer;
description : pWideChar;
b3 : integer;
b4 : integer;
id : integer;
level : integer;
oper_type : integer;
mp_consume : integer;
hp_consume : integer;
cast_range : integer;
cast_style : integer;
hit_time : double;
is_magic : integer;
ani_char : integer;
desc : integer;
icon_name : integer;
extra_eff : integer;
desc_add1 : pWideChar;
b5 : integer;
b6 : integer;
desc_add2 : pWideChar;
b7 : integer;
b8 : integer;
is_ench : integer;
ench_skill_id : integer;
UNK_0 : integer;
UNK_1 : integer;
end;
pMSData = ^TMSData;


procedure EngineGetMSData;cdecl; external 'engine.dll' name '?GetMSData@FL2GameData@@QAEPAUFL2MagicSkillData@@ HH@Z';
procedure EngineDL2FName; cdecl; external 'engine.dll' name '??DL2FName@@QBEPBGXZ';

function DL2FName(Skill:pMSData):PWideChar; cdecl;
function GetMSData(SkillID,SkillLvl:integer):pMSData; cdecl;

var
Engine:cardinal;

implementation

function DL2FName(Skill:pMSData):PWideChar; cdecl;
asm
mov EAX, Skill
lea ECX,dword ptr DS:[EAX+$48]
call EngineDL2FName
mov Result, EAX
end;

function GetMSData(SkillID,SkillLvl:integer):pMSData; cdecl;
asm
mov EAX,[SkillLvl]
mov ECX,[SkillID]
push EAX
push ECX
mov ECX,[Engine]
add ECX,$6F31B8
call EngineGetMSData
mov Result, EAX
end;

initialization
Engine:=GetModuleHandle('engine.dll');

end.



функция GetMSData возвращает указатель на структуру описания скила в клиенте.

DL2FName возвращает имя текстуры иконки.

Engine - адрес ImageBase "Engine.dll"


mov ECX,[Engine]
add ECX,$6F31B8

Тут я упростил, смысл - добратся до адреса по которому начинаются данные о скилах в клиенте, в таблице экспорта оно обьявлено как :
=>6F31B8 .data Export ?GL2GameData@@3VFL2GameData@@A

ЗЫ. мой проект заточен для С4, для дальнейших хроник экспортируемые ф-ции могут лежать в других dll, но в любом случае в папке system клиента :)

Добавлено через 31 минуту
xor, тут говорят что ты умеешь из клиента программно иконки вытаскивать. Можно пример увидеть?

xkor
31.03.2009, 14:21
Sherman, почитай это http://coderx.ru/showthread.php?t=76
там я давал ссылки на модуль для дельфи для работы с utx файлами и в двух сообщениях приводил примеры его использования

Sherman
31.03.2009, 15:26
Читать utx это скучно и избыточно в моем случае. Мой инъект в процессе клиента, мне ф-ции получения текстуры нужны самого клиента. Зачем дублировать то что уже написано когда я работаю в клиенте. Буду искать. )

По первой ссылке кстати лежат сорсы для работы с utx UT3, включая Lineage II
Впринципе если не получится получить с помощью самого клиента это тоже вариант.

Xa4ik
31.03.2009, 15:36
Если важен результат а не процес, можно использывать аксесовскую базу с картинками от L2informer.

Sherman
31.03.2009, 15:42
Не... это совсем суровый вариант. Вариант использования utx еще куда не шло, но вот привлечение детища M$ это зло :)

FrankJScott
02.07.2025, 22:27
In response to the man inquiring about services provided by network security, security reseller, security management in cyber security, digital security basics, prerequisites for cyber security, cyber security support services, infrastructure and network security, secure cyber solutions, cyber security from scratch, data network security, I highly suggest this see about Dubai cyber security service forum (https://charlietgsd08642.blogscribble.com/36108746/30-top-suggestions-for-picking-a-cybersecurity-company-in-dubai) or ai information security, third party security company, network security analytics, cyber security tools, cyber security services in uae, cyber websites, network security consulting services, ai in network security, it security dubai, cyber defense ai, which is worth considering with this i was reading this on cybersecurity company in UAE blog (https://dominickcmvd07419.imblogs.net/85611004/30-great-reasons-for-deciding-on-a-dubai-cyber-security-service) alongside all protect against cyber threats, information technology with cyber security, about cyber security, the cyber security, cyber security free tools, cyber detection, cyber bezbednost, cybersecurity reading, data analytics for cyber security, cyber platforms, as well as this updated cybersecurity company in Dubai tips (https://johnathanbawq77766.izrablog.com/36484158/30-best-suggestions-for-picking-a-cybersecurity-company-in-dubai) which is also great. Also, have a look at this link for cybersecurity company in UAE details (https://martinmbhp02580.evawiki.com/9684081/30_good_tips_for_deciding_on_a_cybersecurity_compa ny_in_dubai) not forgetting sites such as it and security solutions, healthcare network security, significance of cyber security, information security report, service cyber, enterprise security operations, cloud technology and information security, fortify cyber, ai powered cyber security, it security analysis, on top of this my explanation about cybersecurity company in Dubai link (https://titusahih57889.mybloglicious.com/56093205/30-pro-suggestions-for-choosing-a-cybersecurity-company-in-dubai) which is worth considering with new network security technology, cyber security dubai, cyber security in future, security it solutions, it security by design, our website for (https://ricardoasgs64208.sasugawiki.com) not forgetting sites such as cyber security in tourism industry, development of cyber security, technical cyber security, ai cybersecurity systems, cyber security and it, for good measure. Check more @ Top Rated Asian2bet Login Website (https://forum.otomodel.com.tr/showthread.php?tid=62&pid=432#pid432) 130c9ac