все пздц) пробелов понатыкали
готовый скрипт)
delphi Код:
const
Name='1';
var
id,i,iditem:integer;
text : string;
ItemsName:TStringList;
itemsid:array [0..80] of integer;
itemsobjid:array [0..80] of integer;
procedure Init; //Вызывается при включении скрипта
begin
ItemsName:=TStringList.Create;
ItemsName.LoadFromFile('settings\itemsid.ini');
for i:=0 to 80 do
itemsobjid[i]:=0;
for i:=0 to 80 do
itemsid[i]:=0;
end;
procedure Free; //Вызывается при выключении скрипта
begin
end;
procedure InventoryCreate;
var
i,offset,CurrentInvRazmer : integer;
begin
offset:= 64;
CurrentInvRazmer:=ReadH(4);
for i:=0 to CurrentInvRazmer do
begin
itemsid[i]:=ReadD(i*offset+12);
itemsobjid[i]:=ReadD(i*offset+8);
end;
end;
//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if fromClient and (ConnectName=Name) and (pck[1]=#$19) then
begin
id:=ReadD(2);
for i:=0 to 80 do
if id=itemsobjid[i] then
begin
iditem:=itemsid[i];
end;
text := 'Type=1 ID='+inttostr(id)+' Color=0 Underline=0 Title=';
buf := #$49; // id
writed($90008); //[08] [00 09 00
writes(text); //[08] [00 09 00+uText+00 00
writec($1B, length(buf)-1); //[08] [00 09 00+uText+1B 00
writes(ItemsName.Values(vartostr(iditem))); //[08] [00 09 00+uText+1B 00+uItemName+00 00
writec($1B, length(buf)-1); //[08] [00 09 00+uText+1B 00+uItemName+1B 00
writed($90008); //[08] [00 09 00+uText+1B 00+uItemName+1B 00 + 08 00 09 00
writeh(0); //[08] [00 09 00+uText+1B 00+uItemName+1B 00 + 08 00 09 00 + 00 00] //text
writed(0); //[08] [00 09 00+uText+1B 00+uItemName+1B 00 + 08 00 09 00 + 00 00] [00 00 00 00] //type
SendToServerEx(Name);
pck:='';
end;
if fromServer and (ConnectName=Name) and (pck[1]=#$11) then InventoryCreate;
end.