У меня клиент финала сторил пакет так, что в конце было 8 нулей и без них он отказывался аугументить... Вот исправил. Включаем скрипт, аугументим первый раз руками, потом первое социальное действие - вставить, второе - удалить.
Код:
const
nik='v0ltag3';
var
WeaponID, LsID, GemID, GemCount, zero: integer;
procedure Init; //Вызывается при включении скрипта
begin
end;
procedure OnTimer01(Sender: TObject);
begin
end;
procedure Free; //Вызывается при выключении скрипта
begin
end;
procedure OnConnect(WithClient: Boolean); //Вызывается при установке соединения
begin
end;
procedure OnDisonnect(WithClient: Boolean); //Вызывается при потере соединения
begin
end;
//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if FromClient and (pck[1]=#$D0) then
begin
WeaponID:=ReadD(4);
LsID:=ReadD(8);
GemID:=ReadD(12);
GemCount:=ReadD(16);
zero:=ReadD(20);
end;
//Cancel Augment
if FromClient and (pck = HStr('56 0D 00 00 00 00 00 00 00 00 ')) then //56 0D 00 00 00 00 00 00 00 00 (Social No)
begin
buf:=hstr('FE 52 00 ');//окно удаления арГ
SendToClient;
delay(300);
pck:='';
Buf:=#$D0#$42#$00;
WriteD(WeaponID);
SendToServerEx(nik);
Buf:=#$D0#$43#$00;
WriteD(WeaponID);
SendToServerEx(nik);
end;
//Augment
if FromClient and (pck = HStr('56 0C 00 00 00 00 00 00 00 00 ')) then //56 0C 00 00 00 00 00 00 00 00 (Social Yes)
begin
buf:=hstr('FE 51 00 ');//окно Арг
SendToClient;
delay(300);
pck:='';
Buf:=#$D0#$26#$00;
WriteD(WeaponID);
SendToServerEx(nik);
delay(50);
Buf:=#$D0#$27#$00;
WriteD(WeaponID);
WriteD(LsID);
SendToServerEx(nik);
delay(50);
Buf:=#$D0#$28#$00;
WriteD(WeaponID);
WriteD(LsID);
WriteD(GemID);
WriteD(GemCount);
WriteD(zero);
SendToServerEx(nik);
delay(50);
Buf:=#$D0#$41#$00;
WriteD(WeaponID);
WriteD(LsID);
WriteD(GemID);
WriteD(GemCount);
WriteD(zero);
SendToServerEx(nik);
end;
end.