Код:
// Прописываем имена ботов сюда
const
Lyk = 'Bot2';
Komandos = 'Kom';
Lyt = 'Bot1';
var
IDPartyMember: integer; //ИД командира
CoordLykX, CoordLykY, CoordLykZ :Integer; //координаты бота
CoordLytX, CoordLytY, CoordLytZ :integer; //координаты бота
CoordKomandX, CoordKomandY, CoordKomandZ :integer; // координаты командира
Mob, MobX, MobY, MobZ :integer; // координаты моба и его ид
procedure bRun;
begin
buf:=#$1F;
WriteD(IDPartyMember);
WriteD(CoordLykX);
WriteD(CoordLykY);
WriteD(CoordLykZ);
WriteC(0);
SendToServerEX(Lyk);
buf:=#$1F;
WriteD(IDPartyMember);
WriteD(CoordLykX);
WriteD(CoordLykY);
WriteD(CoordLykZ);
WriteC(0);
SendToServerEX(Lyk);
end;
procedure bRun1;
begin
buf:=#$1F;
WriteD(IDPartyMember);
WriteD(CoordLytX);
WriteD(CoordLytY);
WriteD(CoordLytZ);
WriteC(0);
SendToServerEX(Lyt);
buf:=#$1F;
WriteD(IDPartyMember);
WriteD(CoordLytX);
WriteD(CoordLytY);
WriteD(CoordLytZ);
WriteC(0);
SendToServerEX(Lyt);
end;
procedure Assist;
begin
buf:=hstr('1F');
WriteD(Mob);
WriteD(MobX);
WriteD(MobY);
WriteD(MobZ);
WriteC(0);
SendToServerEX(Lyk);
end;
procedure Assist1;
begin
buf:=hstr('1F');
WriteD(Mob);
WriteD(MobX);
WriteD(MobY);
WriteD(MobZ);
WriteC(0);
SendToServerEX(Lyt);
end;
begin
if pck='' then exit;
//если от сервака принят пакет с ИД и Координатами членов пати то
if FromServer and (ConnectName=Komandos) and (pck[1]=#$BA) then
begin
//запоминаем ИД командира
IDPartyMember:=ReadD(6);
end;
//если принят пакет от клиента со сменой таргета командиром
if FromServer and (ConnectName=Lyk) and (pck[1]=#$23) and (ReadD(2) = IDPartyMember) then
begin
Mob:=ReadD(6);
MobX:=ReadD(10);
MobY:=ReadD(14);
MobZ:=ReadD(18);
end;
//записываем координаты бота при приходе пакета о изменении позиции
if FromClient and (ConnectName=Lyk) and (pck[1]=#$59) then
begin
CoordLykX:=ReadD(2);
CoordLykY:=ReadD(6);
CoordLykZ:=ReadD(10);
end;
// для второго бота
if FromClient and (ConnectName=Lyt) and (pck[1]=#$59) then
begin
CoordLytX:=ReadD(2);
CoordLytY:=ReadD(6);
CoordLytZ:=ReadD(10);
end;
if FromClient and (ConnectName=Komandos) and (pck[1]=#$49) then
if (pck[2]=#$31) and (pck[3]=#$00) then
begin
//убиваем этот пакет, чтоб сервер его не получил
pck:='';
bRun;
bRun1;
exit;
end;
if FromClient and (ConnectName=Komandos)and (pck[1]=#$49) then
if (pck[2]=#$32) and (pck[3]=#$00) then
begin
//убиваем этот пакет, чтоб сервер его не получил
pck:='';
Assist;
Assist1;
exit;
end;
end.