13.05.2009, 04:23
|
#4
|
Рыцарь
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
|
В changelog.txt
Цитата:
Revision: 84
Author: alexteam
Date: 19:51:44, 3 Апреля 2009 г.
Message:
[!] Альфа версия, переписано большинство кода, для совместимости требует небольшие изменения скриптов и существенные изменения в ваших плагинах.
Скрипты: UserTab заменен на UserForm, showtab на ShowForm, hidetab на HideForm. подробности касательно плагинов ищите на форуме.
|
Внес коррективы в скрипт, на предмет открытия формы:
с пользовательской формой
delphi Код:
var
i, p: integer;
Items: integer;
x, y, z: integer;
ObjectID, ItemID, Count: array [1..120] of integer;
m:TMemo;
First: boolean;
procedure Init; //Вызывается при включении скрипта
begin
m:=TMemo.Create(UserForm);
m.parent:=UserForm;
m.align:=alClient;
m.ReadOnly:=false;
m.ScrollBars:=ssBoth;
ShowForm;
end;
procedure Free; //Вызывается при выключении скрипта
begin
HideForm;
end;
//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if FromClient and (pck[1]=#$03) then
begin
First:=True;
buf:=#$0F;
SendToServer;
end;
if FromServer and (pck[1]=#$1B) then
begin
p:=4;
Items:=(ReadC(p));
ReadC(p);
ReadC(p);
ReadC(p);
m.Lines.Add('Количество вещей в инвентаре: '+IntToStr(Items));
for i:=1 to Items do
begin
ObjectID[i]:=ReadD(p);
ItemID[i]:=ReadD(p);
Count[i]:=ReadD(p);
ReadD(p);
ReadD(p);
ReadD(p);
ReadD(p);
m.Lines.Add('OId: '+IntToStr(ObjectID[i])+' IId: '+IntToStr(ItemID[i])+' к-во: '+IntToStr(Count[i]));
end;
end;
if FromServer and (pck[1]=#$04) and (First) then
begin
if Items <> 0 then First:=false;
p:=2;
x:=ReadD(p);
y:=ReadD(p);
z:=ReadD(p);
m.Lines.Add('Ваши координаты: x='+IntToStr(x)+' y='+IntToStr(y)+' z='+IntToStr(z));
for i := 1 to Items do
begin
if ItemID[i]>0 then // - Дропнуть все вещи
// if ItemID[i] = 1463 then // - Дропнуть только вещь с заданным ItemID
begin
buf:=#$12;
WriteD(ObjectID[i]);
// Count[i]:=1; // - Дропнуть только одну вещь с заданным ItemID (речь о количестве... SS/SpS, например)
WriteD(Count[i]);
WriteD(x);
WriteD(y);
WriteD(z);
SendToServer;
m.Lines.Add('Дропнулось IId: '+IntToStr(Count[i])+' в количестве: '+IntToStr(ItemID[i]));
end;
end;
end;
end.
с обычной формой
delphi Код:
var
i, p: integer;
Items: integer;
x, y, z: integer;
ObjectID, ItemID, Count: array [1..120] of integer;
FormMain : TForm; //Создаваемая форма
m:TMemo;
First: boolean;
procedure Init; //Вызывается при включении скрипта
begin
FormMain:=TForm.Create(nil);
FormMain.Caption := 'Item Dropper';
FormMain.Left := 0;
FormMain.Top := 0;
FormMain.Width := 200;
FormMain.Height := 300;
FormMain.FormStyle := fsNormal;
FormMain.BorderStyle := bsSizeable;
FormMain.BorderWidth := 0;
FormMain.WindowState := wsNormal;
FormMain.Color := clBtnFace;
FormMain.Font.Name := 'Tahoma';
FormMain.Font.Size := 8;
FormMain.Font.Color := clWindowText;
FormMain.Font.CharSet:= 1;
m:=TMemo.Create(FormMain);
m.parent:=FormMain;
m.align:=alClient;
m.ReadOnly:=false;
m.ScrollBars:=ssBoth;
FormMain.Show;
end;
procedure Free; //Вызывается при выключении скрипта
begin
FormMain.Free;
end;
//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if FromClient and (pck[1]=#$03) then
begin
First:=True;
buf:=#$0F;
SendToServer;
end;
if FromServer and (pck[1]=#$1B) then
begin
p:=4;
Items:=(ReadC(p));
ReadC(p);
ReadC(p);
ReadC(p);
m.Lines.Add('Количество вещей в инвентаре: '+IntToStr(Items));
for i:=1 to Items do
begin
ObjectID[i]:=ReadD(p);
ItemID[i]:=ReadD(p);
Count[i]:=ReadD(p);
ReadD(p);
ReadD(p);
ReadD(p);
ReadD(p);
m.Lines.Add('OId: '+IntToStr(ObjectID[i])+' IId: '+IntToStr(ItemID[i])+' к-во: '+IntToStr(Count[i]));
end;
end;
if FromServer and (pck[1]=#$04) and (First) then
begin
if Items <> 0 then First:=false;
p:=2;
x:=ReadD(p);
y:=ReadD(p);
z:=ReadD(p);
m.Lines.Add('Ваши координаты: x='+IntToStr(x)+' y='+IntToStr(y)+' z='+IntToStr(z));
for i := 1 to Items do
begin
if ItemID[i]>0 then // - Дропнуть все вещи
// if ItemID[i] = 1463 then // - Дропнуть только вещь с заданным ItemID
begin
buf:=#$12;
WriteD(ObjectID[i]);
// Count[i]:=1; // - Дропнуть только одну вещь с заданным ItemID (речь о количестве... SS/SpS, например)
WriteD(Count[i]);
WriteD(x);
WriteD(y);
WriteD(z);
SendToServer;
m.Lines.Add('Дропнулось IId: '+IntToStr(Count[i])+' в количестве: '+IntToStr(ItemID[i]));
end;
end;
end;
end.
PS: работу не проверял.
Последний раз редактировалось NLObP, 13.05.2009 в 04:30.
|
|
|