Показать сообщение отдельно
Старый 08.01.2008, 15:28   #141
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию Re: ДА БУДЕТ БОТ!

Попробуй воспользоваться подпрограммами
Надо учесть, что пакет A7=PartyMemberPosition:d(membercount)d(objID)d(X)d (Y)d(Z)
1-й это командир пати, следующие патимемберы по порядку как перечислены в клиенте.

Код:
//***************************************************************
//04=Action:h(ObjectID)d(OriginX)d(OriginY)d(OriginZ)b(ShiftFlag)
procedure Target(AttackerObjID: Integer);
begin
    buf:=#$04;
    WriteD(AttackerObjID);
    WriteD(MyXpos);
    WriteD(MyYpos);
    WriteD(MyZpos);
    WriteC(00);
    SendToServerEx(Name);
end;

begin
  //****************************************************************************
  //не обрабатываем пустые пакеты
  if pck='' then exit;
  //****************************************************************************
  if (ConnectName=Name) and FromServer then begin
    case pck[1] of
      #$04: begin
          //пакет с инфой о моём чаре
          i:=2;
          MyXpos:=ReadD(i); //получаю координату х моего чара
          MyYpos:=ReadD(i); //получаю координату у моего чара
          MyZpos:=ReadD(i); //получаю координату z моего чара
          //Запоминаем ИД
          i:=18;
          MyObjID:=ReadD(i); //получаю ид моего чара
          //смещение переменное, зависит от имени (LenName*2+2)
          i:=i+(Length(Name)*2+2)+48; //44 для С4
          MaxHP:=ReadD(i);
          CurHP:=ReadD(i);
      end;
      //****************************************************************************
      //если от сервака принят пакет с ИД и Координатами членов пати то
      //A7=PartyMemberPosition:d(membercount)d(objID)d(X)d(Y)d(Z)
      #$A7: begin
         //запоминаем ИД командира
         MyObjID:=ReadD(6);
      end;
    end;
  end;

  if (ConnectName=Name) and FromClient then begin
    case pck[1] of
      //ValidatePosition пакет от клиента с моими кординатами
      #$48: begin
          //обновляем если мы сошли с места
          MyXpos:=ReadD(2); //получаю координату х моего чара
          MyYpos:=ReadD(6); //получаю координату у моего чара
          MyZpos:=ReadD(10); //получаю координату z моего чара
      end;
    end;
end.
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием