Показать сообщение отдельно
Старый 11.11.2007, 19:45   #67
Новичок
 
Регистрация: 07.11.2007
Сообщений: 14
Сказал Спасибо: 1
Имеет 1 спасибку в 1 сообщении
PunkRediska
По умолчанию Re: Re:

Цитата:
Сообщение от NLObP
Цитата:
Сообщение от PunkRediska
Я шас папробывал написать скриптик каторый сразу падымал бы дроп упавший с моба,но сталкнулся с такой праблемай что он падымает тока 1'ну вешь из всех дропнувшыхся.Умные люди падскажите как ето можно исправить?:)Скриптик мой выгледит так :
var
begin
if FromServer and (pck[1]=#$0C)
then begin
buf:=#$04+pck[6]+pck[7]+pck[8]+pck[9]+pck[14]+pck[15]+pck[16]+pck[17]+pck[18]+pck[19]+pck[20]+pck[21]+pck[22]+pck[23]+pck[24]+pck[25]+#$00;
SendToServer;
end;
end.

^этот^ cкрипт прост до безабразия но вобшемто сложнее и не надо:).Кста если гдето струтура пакета отлечяется от вашей,то ето бырее всего патамушто скрипт под явавскую интерлюдию.
Как я сделал в ботике, выше по теме. В основном цикле создаем базу по выпавшим вещам:
Код:
 //****************************************************************************
  //DropItem - выпала вещь
  if FromServer and (ConnectName=Name) and (pck[1]=#$0C) then begin
    //чужие вещи не берем
    if (Attacker=ReadD(2)) then begin
      timer1.enabled:=false; //выключаем бота
      //перебираем базу, ищем свободную ячейку в ней и добавляем
      for i:=1 to max do begin
        if (ItemBase[1,i]=0) then begin
          //запоминаем в свободную ячейку
          ItemBase[1,i]:=ReadD(6); //ObjectID
          ItemBase[2,i]:=ReadD(14); //x
          ItemBase[3,i]:=ReadD(18); //y
          ItemBase[4,i]:=ReadD(22); //z
          inc(itm);
          NeedBackup:=true;
          say('Добавили данные по предмету');
          break;
        end;
      end;
    end;
    say('ColvoItm='+inttostr(itm));
  end;
Подпрограмма сбора вещей. Здесь только просим поднять, на практике вещь может не взяться, недоступна к примеру и т.д.:
Код:
//******************************************************************************
procedure ReqGetItem;
begin
  if itm=0 then begin
    timer1.enabled:=true; //включаем отсчет времени
    needbackup:=false;
    exit;
  end;
  timer1.enabled:=false; //выключаем отсчет времени
  //перебираем базу
  for i:=1 to max do begin
    //если нашли, то обнуляем
    if (ItemBase[1,i]<>0) then begin  //ObjectID
      say('ReqGetItem');
      //даем команду подобрать вещь
      buf:=#$04;
      WriteD(ItemBase[1,i]);
      WriteD(ItemBase[2,i]);
      WriteD(ItemBase[3,i]);
      WriteD(ItemBase[4,i]);
      WriteH(00);
      SendToServerEx(Name);
    end;
  end;
end;
В основном цикле проверяем, что вещи реально подняты:
Код:
  //****************************************************************************
  //определяем реальность поднятия вещи, пакет GetItem
  if FromServer and (ConnectName=Name) and (pck[1]=#$0D) then begin
    //перебираем базу
    for i:=1 to max do begin
      //если нашли, то обнуляем
      if (ItemBase[1,i]=ReadD(6)) then begin  //ObjectID
        ItemBase[1,i]:=0; //x
        ItemBase[2,i]:=0; //x
        ItemBase[3,i]:=0; //y
        ItemBase[4,i]:=0; //z
        dec(itm);
        say('Удаляем данные по предмету');
      end;
    end;
    if itm=0 then begin
      needbackup:=false;
      timer1.enabled:=true;
    end;
    say('ColvoItm='+inttostr(itm));
  end;

спс что выложил ,тока ты не вылажил первую чясть где аписуются переменные и я чёто непайму Attacker-это PlayerID?:)

Добавлено спустя 29 минут 53 секунды:
всё нашол часть с переменными:) чюток подправил под себя и всё пашет СПС тебе NLObP !!

Добавлено спустя 4 часа 21 минуту 2 секунды:
Чёто у меня сёдня день какойто неудачный,скрипты не пашут ваше....Пришол от друга накалякал такой скрипточег ->
\\суть скрипта:если паявился чест то юзать анлок
var i:string;
begin
if FromServer and (pck[1]=#$16) and (pck[6]+pck[7]+pck[8]+pck[9]=#$9f+#$89+#$0f+#$00) then begin \\условия ,pck-npcinfo
buf:=#$04+hstr('(readd(2))+(readd(14))+(readd(18)) +(readd(24))') + #$00; \\таргет
SendToServer;
buf:=hstr('2F 1B 00 00 00 00 00 00 00 00 '); \\юзать анлок
SendToServer;
end;
end.
Вроде просто да безабразия а сёравно не пашет:( может ктонибудь абьеснить пачему?:)
__________________
http://www.magnum-shoes.ru/
PunkRediska вне форума   Ответить с цитированием