А че клиент ковырять. Там трафик перехватить да сендпакет. Ну ввод вывод на уровне апи.. Остальное это надстройка
Добавлено через 2 часа 54 минуты
Цитата:
Сообщение от Aries
ты не хвастайся, а лучше расскажи как это работает)))
Я смотрю, ты больше ДХ любишь ковырять чем клиенты ла2?))))
|
кусок кода рисующего альтернативное окно таргета =)
delphi Код:
idest.DrawVertLine(1,window.h-1,window.w-2,framecolor2);
idest.DrawVertLine(2,window.h-2,window.w-3,framecolor1);
if not assigned(TL2C)then exit;
if not assigned(TL2C.nhandler.mychar)then exit;
if TL2C.nhandler.mychar.targetID=0 then exit;
chr:=TL2C.nhandler.findlockchar(TL2C.nhandler.mychar.targetID,false);
try
if chr<>nil then begin
sname:=chr.nick;
ncolor:=$FFCCCCCC;
if chr.NpcID=0 then begin
if chr.clanID<>0 then sname:=sname+' * '+TL2C.nhandler.clandata.GetClanName(chr.clanID);
end else begin
sname:=sname+' = '+TL2C.DPK.FindNpc(chr.NpcID);
end;
if TL2C.nhandler.clandata.IsWar(chr.clanID)then ncolor:=$FFFF3333;
if chr.NpcID<>0 then ncolor:=$FF55FF44;
IDirect3DDevice9H(idev_).MFONTIPC.SetFontColor(ncolor);
IDirect3DDevice9H(idev_).MFONTIPC.setregetmode(false);
IDirect3DDevice9H(idev_).MFONTIPC.DrawStrTo(4,4,pchar(sname),window.w,@pn,psdesc);
sname:=inttostr(chr.maxHP)+' / '+inttostr(chr.HP);
if chr.targetID<>0 then begin
chr2:=TL2C.nhandler.findlockchar(chr.targetID,false);
if chr2<>nil then begin
s:=chr2.nick;
TL2C.nhandler.unlock;
sname:=sname+' ['+s+']';
end;
end;
IDirect3DDevice9H(idev_).MFONTIPC.SetFontColor($FFCCCCCC);
IDirect3DDevice9H(idev_).MFONTIPC.DrawStrTo(20,4,pchar(sname),window.w,@pn,psdesc);
setrect(rct,16,38,window.w-16,38+5);
idest.FillRect(@rct,$FF330000);
if chr.maxHP<>0 then begin
pn:=trunc((chr.HP/chr.maxHP)*(window.w-32));
setrect(rct,16,38,pn+16,38+5);
idest.FillRect(@rct,$FF990000);
end;
setrect(rct,16,44,window.w-16,44+3);
idest.FillRect(@rct,$FF000044);
if chr.maxMP<>0 then begin
pn:=trunc((chr.MP/chr.maxMP)*(window.w-32));
setrect(rct,16,44,pn+16,44+3);
idest.FillRect(@rct,$FF003399);
end;
TL2C.nhandler.GetObjectPos(pos1,TL2C.nhandler.GetMyID);
TL2C.nhandler.GetObjectPos(pos2,TL2C.nhandler.mychar.targetID);
pn:=trunc(L2VectorDist(pos1,pos2));
sname:='dist-'+inttostr(pn)+' h='+inttostr(trunc(pos2.z-pos1.z));
if chr.NpcID=0 then begin
sname:=TL2C.DPK.FindClass(chr.classID)+' '+sname;
end else begin
sname:='unknown class '+sname;
end;
IDirect3DDevice9H(idev_).MFONTIPC.DrawStrTo(44,4,pchar(sname),window.w,@pn,psdesc);