Показать сообщение отдельно
Старый 30.01.2010, 22:51   #5
Новичок
 
Аватар для spiritofsands
 
Регистрация: 04.10.2009
Сообщений: 27
Сказал Спасибо: 14
Имеет 12 спасибок в 10 сообщенях
spiritofsands пока неопределено
По умолчанию

Так эта проверка есть, но иногда бот бьет мейна. Приведу скрипт тут:
Код:
//                  Управление вторым окном                                 
//                                         by spiritofsands                 
//                                                                          
const
        namemain='Lockhorn';        // ник главного чара
        nameslave='Ikhanna';       // ник второго окна
var
        ToX, ToY, ToZ, OrigX, OrigY, OrigZ, i, mid, q, p, tid, tx, ty, tz, tick,
        partyID1, pID1x, pID1y, pID1z, ctid, atk : integer;
        d:string;
procedure Init; //Вызывается при включении скрипта
 begin
 send2msg('target self');
 q:=2;
 end;
procedure Free; //Вызывается при выключении скрипта
 begin
 end;
procedure Send2Msg(Msg:string);
 begin
 buf:=#$4A;
 WriteD(0);
 WriteD(10);
 WriteS('');
 WriteS(Msg);
 SendToClientEx(namemain);
 end;
 begin 
 if (pck[1]=#$04) and (connectname=namemain) and (q=2) then
  begin
  i:=2;  
  mid:=readd(i);
  pck:='';
  send2msg('id');
  q:=0;
  end;
 if fromserver and (connectname=nameslave) then
  case pck[1] of
  #$39: // party
   begin
   i:=2;
   send2msg('party request');
   if (reads(i))=namemain then
    begin
    send2msg('join '+namemain+'s party');
    buf:=#$2A#$01#$00#$00#$00;
    SendToServerEX(Nameslave); 
    end;
   end;
  #$A7: // partymember 1 id and pos
   begin
   i:=2;
   p:=readd(i);
   partyID1:=readd(i);
   pID1x:=readd(i);
   pID1y:=readd(i);
   pID1z:=readd(i);
   buf:=#$04;
   writed(partyID1);
   writed(pID1x);
   writed(pID1y);
   writed(pID1z);
   buf:= buf + hstr('00');
   SendToServerEX(Nameslave);
   end;
  #$29:
   begin
   if atk=1 then          // atk if target<>main
    begin
    i:=2;
    p:=readd(i);
    ctid:=readd(i);
    if (ctid<>partyid1) then
     begin
     buf:=d;
     sendtoserverEx(nameslave);
     atk:=0;
     end;
    end;
   end;
  end;
 if fromclient and (connectname=namemain) then    // from main client
  case pck[1] of
  #$04:   // target
   begin
   i:=2;  
   tid:=readd(i);
   tx:=readd(i);
   ty:=readd(i);
   tz:=readd(i);
   buf:=#$04;
   writemask('ddddc', [Tid, Tx, Ty, tz, 0]);
   sendtoserverEx(nameslave); 
   //Send2Msg('on target');
   end;
  #$21:  // npc dialog
   begin
   buf:=pck;
   sendtoserverEx(nameslave); 
   //Send2Msg('dialog proceed');
   end;
  #$37:  // cancel target
   begin
   buf:=pck;
   sendtoserverEx(nameslave); 
   //Send2Msg('target canceled');
   end;
  #$2F:  // use skill
   begin 
   d:=pck;
   buf:=#$04;                                     //
   writemask('ddddc', [Tid, Tx, Ty, tz, 0]);      //   assist
   sendtoserverEx(nameslave);                     //
   atk:=1; 
   //Send2Msg('skill used');
   end;
  #$38:  // -u = /unstuck all
   begin
   i:=2;
   if reads(i)='-u' then 
    begin
    pck:='';
    buf:=#$AA#$34#$00#$00#$00;
    sendtoserverEx(namemain);
    sendtoserverEx(nameslave);
    end;
   end;
  #$A7:
   begin
   buf:=pck;
   sendtoserverEx(nameslave);
   end;
  end;
 end.
Нужный фрагмент подчеркнут.
spiritofsands вне форума   Ответить с цитированием