Показать сообщение отдельно
Старый 25.06.2012, 15:41   #12
Пользователь
 
Регистрация: 18.09.2011
Сообщений: 88
Сказал Спасибо: 59
Имеет 2 спасибок в 2 сообщенях
Roman32 пока неопределено
По умолчанию

PHP код:
//                  Управление вторым окном                                  
//                                         by spiritofsands                  
//                                                          Hellbound version
// © http://coderx.ru/showthread.php?t=3603       - развитие проекта         

const
        
namemain='Zlo11';     // ник главного чара         
        
nameslave='Opasniy11';       // ник второго окна          
        
logmsg=False;               // писать лог в приват главе 
        
Команды управления начинаются префиксом "-" и оканчиваются статусом "y" или "n" (у-вклn-выкл)
  
Например:
  -
buy y
  Все команды
:
  -
buy y/n    вкл./выклсинхронная продажа (нпц)
  -
sell y/n   вкл./выклсинхронная покупка (у нпц)
  -
dialog y/вкл./выклсинхронній диалог (с нпц)
  -
skill y/n  вкл./выклсинхронное использование скиллов
  
-go y/n     вкл./выклходьба рядом
  
-u y/n      синхронный /unstuck
  
-gorod y/n  уменьшение/увеличение дистанции между чарами
  Если написать в пм второму окну
оно напишет в общий чат ваше сообщение                                                                                               }
var
        
ToX,ToY,ToZ,OrigX,OrigY,OrigZ,i,mid,tid,tx,ty,tz,rand,lenmodif integer;
        
com,usedskill:string;
        
going,skilling:TTimer;
        
buy,sell,dialog,skill,go:boolean
procedure sendPM(Msg:string);
 
begin
 buf
:=#$4A;
 
writed(0);
 
writed(2);
 
writes('Assist-script');   // ник в чате
 
writes(' '+msg);
 
sendtoclientex(namemain);
 
end;
procedure Init;
 
begin
 sendPM
('Вас приветствует скрипт Assist');
 
sendPM('Возьмите себя в цель');
 
lenmodif:=100;   // расстояние между чарами (лучше оставить как есть)
 
buy:=true;
 
sell:=true;
 
dialog:=true;
 
skill:=true;
 
go:=true;
 
going:=TTimer.Create(nil);
 
going.OnTimer:=@ongoing;
 
going.enabled:=false;
 
skilling:=TTimer.Create(nil);
 
skilling.OnTimer:=@onskilling;
 
skilling.enabled:=false;
 
end;
procedure sendbuf(bufer,name:string);
 
begin
 buf
:=bufer;
 
sendtoserverex(name);
 
end
function 
randlen:integer;
 
begin
 randomize
;
 case 
round(randomof
 1
:
  
begin
  randomize
;
  
result:=round(random*lenmodif);
  
end;
 
0:
  
begin
  randomize
;
  
result:=-(round(random*lenmodif));
  
end;
 
end;
 
end
procedure ongoing(SenderTObject);
 
begin
 randomize
;
 
going.interval:=1000+round(random()*1000);             // спасибо SeregaZ
 
buf:=#$01;   {#$0F}
 
writemask('ddddddd',[tox+randlen,toy+randlen,toz,origx,origy,origz,1]);
 {
randlen;
 
writed(tox+rand);
 
randlen;
 
writed(toy+rand);
 
writed(toz);                     old method
 writed
(origx);
 
writed(origy);
 
writed(origz);
 
writed(1);}
 
sendtoserverEx(nameslave);    
 
going.enabled:=false;
 
end;
procedure onskilling(SenderTObject);
 
begin
 randomize
;
 
skilling.interval:=1000+round(random()*1000);
 
sendbuf(usedskill,nameslave); 
 
skilling.enabled:=false;
 
end;
procedure Free;
 
begin
  going
.Free;
 
end;
//                                          Начало                                                              
 
begin 
 
if pck='' then exit;
 if (
pck[1]=#$04)   {#$1f} and (connectname=namemain) and (mid=0) then   // узнаем ид главного чара
  
begin                       
  mid
:=readd(2);
  
pck:='';
  If 
logmsg=true then sendPM('Ваш ИД запомнен');
  
end;
  
 if 
fromserver and (connectname=nameslavethen
  
case pck[1of
  
#$29:   {#$39}                                                         // пати
   
begin
   
If logmsg=true then sendPM('Принят запрос на группу');
   if (
reads(2))=namemain then
    begin
    
If logmsg=true then sendPM('Вхожу в группу '+namemain+'а');
    
sendbuf(hstr('2A01000000'),nameslave);   {#$43}   // подтверждение пати
    
end;
   
end;
  
end;
 if 
fromclient and (connectname=namemainthen
  
case pck[1of
  
#$04:   {#$1f}   // главный чар выделил кого-то
   
begin
   i
:=2;  
   
tid:=readd(i);
   
tx:=readd(i);
   
ty:=readd(i);
   
tz:=readd(i);
   
buf:=#$04;   {#$1f}   // передача данных второму окну                                                                                                                  
   
writemask('ddddc', [TidTxTytz0]);
   
sendtoserverEx(nameslave); 
   If 
logmsg=true then sendPM('В цели');
   
end;
  
#$21:   {#$23}   // разговор с npc
   
begin
   
if dialog=true then
    begin
    sendbuf
(pck,nameslave);
    If 
logmsg=true then sendPM('Paзговор с нпц');
    
end;
   
end;
  
#$37:   {#$48}   // отмена цели
   
begin
   sendbuf
(pck,nameslave);
   If 
logmsg=true then sendPM('Цель отменена');
   
end;
  
#$2F:   {#$39}   // использование скиллов
   
begin
    usedskill
:=pck;
    If 
logmsg=true then sendPM('Скилл использован');
    if 
skill=true then skilling.enabled:=true;   // исп. скилл через интервал  
   
end;
  
#$38:   {#$49}   // сообщение
   
begin
   i
:=2;
   
com:=reads(i);
   if (
readd(i)=2) and (reads(i)=nameslavethen
    begin
    pck
:='';
    
buf:=#$38;   {#$49}
    
writes(com);
    
writed(0);   // в какой чат пишет бот (0=общий)
    
sendtoserverex(nameslave);
    
end;
   if 
com[1]='-' then   // команда
    
begin
     pck
:='';
     if 
com[2]='u' then
      begin
      sendbuf
(hstr('AA34000000'),nameslave);   {#$B3}
      
sendbuf(hstr('AA34000000'),namemain);   {#$B3}
      
end;
     if 
com[2]+com[3]+com[4]+com[5] = 'buy ' then
      begin
      
if com[6] = 'y' then 
       begin
       sendPM
('Синхронная покупка разрешена');
       
buy:=true;
       
end;
      if 
com[6] = 'n' then 
       begin
       sendPM
('Синхронная покупка запрещена');
       
buy:=false;
       
end;
      
end;
     if 
com[2]+com[3]+com[4]+com[5]+com[6] = 'sell ' then
      begin
      
if com[7] = 'y' then 
       begin
       sendPM
('Синхронная продажа разрешена');
       
sell:=true;
       
end;
      if 
com[7] = 'n' then 
       begin
       sendPM
('Синхронная продажа запрещена');
       
sell:=false;
       
end;
      
end;
     if 
com[2]+com[3]+com[4]+com[5]+com[6]+com[7]+com[8] = 'dialog ' then
      begin
      
if com[9] = 'y' then 
       begin
       sendPM
('Синхронный диалог с нпц разрешен');
       
dialog:=true;
       
end;
      if 
com[9] = 'n' then 
       begin
       sendPM
('Синхронный диалог с нпц запрещен');
       
dialog:=false;
       
end;
      
end;
     if 
com[2]+com[3]+com[4]+com[5]+com[6]+com[7] = 'skill ' then
      begin
      
if com[8] = 'y' then 
       begin
       sendPM
('Синхронное использование скиллов разрешено');
       
skill:=true;
       
end;
      if 
com[8] = 'n' then 
       begin
       sendPM
('Синхронное использование скиллов запрещено');
       
skill:=false;
       
end;
      
end;
     if 
com[2]+com[3]+com[4] = 'go ' then
      begin
      
if com[5] = 'y' then 
       begin
       sendPM
('Следование за главным персонажем разрешено');
       
go:=true;
       
end;
      if 
com[5] = 'n' then 
       begin
       sendPM
('Следование за главным персонажем запрещено');
       
go:=false;
       
end;
      
end
     if 
com[2]+com[3]+com[4]+com[5]+com[6]+com[7] = 'gorod ' then
      begin
      
if com[8]='y' then lenmodif:=40;   // уменьшение расстояния между чарами
      
if com[8]='n' then lenmodif:=100;   // восстановление расстояния между чарами
      
end;
    
end;
   
end;
  
#$01:   {#$0F}   //  обновляем координаты гл. чара
  
begin
  i
:=2;
  
tox:=readd(i);
  
toy:=readd(i);
  
toz:=readd(i);
  
origx:=readd(i);
  
origy:=readd(i);
  
origz:=readd(i);
  if 
go=true then going.enabled:=true;   // идем через интервал  
  
end;
  
#$1F:   {#$40}   // покупка вещей у нпц
   
begin
   
if buy=true then
    begin
    sendbuf
(pck,nameslave);
    If 
logmsg=true then sendPM('Покупаю');
    
end;
   
end;
  
#$1E:   {#$37}   // продажа вещей нпц
   
begin
   
if sell=true then
    begin
    sendbuf
(pck,nameslave);
    If 
logmsg=true then sendPM('Продаю');
    
end;
   
end;
  
#$D0:   // xz что о_О
   
begin
   sendbuf
(pck,nameslave);
   
end
  
end;
 
end
/////////////////////////////скрипт что бегал за тобой/////////////////////
2F 34 05 00 00 00 00 00 00 00 - вызов коня
45 F2 03 00 00 00 00 00 00 00 - БАФ С КОНЯ а это поставь в посылку с задержкой сколько надо)
Roman32 вне форума   Ответить с цитированием