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

Цитата:
Сообщение от SeregaZ Посмотреть сообщение
не... чото у тебя не так. у меня четкое равно, а утебя больше-меньше. исправь по моей задумке и попробуй.
Больше-меньше это неравно. Т.Е. юзать если таргет не главный чар. Ctrl убирать не буду. Прийдется изменить систему движения за главным чаром, чтоб бот его не брал в таргет.

Добавлено через 5 часов 58 минут
Подправил систему следования за главным персонажем, добавлена константа растояния. Теперь бот не выделяет его => нет глюка с атакой мастера.
Код:
//                  Управление вторым окном                                 
//                                         by spiritofsands                 
//                                                                          
const
        namemain='Lockhorn';        // ник главного чара
        nameslave='Ikhanna';       // ник второго окна
        len=50;                        // расстояние между персонажами
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;}
  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 
   buf:=pck;
   sendtoserverEx(nameslave); 
   //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;
  #$01: //go to
  begin
  i:=2;
  tox:=readd(i);
  toy:=readd(i);
  toz:=readd(i);
  origx:=readd(i);
  origy:=readd(i);
  origz:=readd(i);
  buf:=#$01;
  writed(tox-len);
  writed(toy-((len*toy) div (tox)));
  writed(toz-((len*toz) div (tox)));
  writed(origx);
  writed(origy);
  writed(origz);
  writed(1);
  sendtoserverEx(nameslave); 
  end;
  #$A7:
   begin
   buf:=pck;
   sendtoserverEx(nameslave);
   end; 
  end;
 end.
Добавлено через 51 минуту
Появилась новая проблема - бот ходит только с одной координатной стороны главного чара. Как можно усовершенствовать скрипт, чтобы бот ходил сзади/сбоку чара?

Последний раз редактировалось spiritofsands, 03.02.2010 в 02:11. Причина: Добавлено сообщение
spiritofsands вне форума   Ответить с цитированием
За это сообщение spiritofsands нажился спасибкой от: