Скриптинг  Форум посвещенный созданию скриптов для L2PacketHack  
	
	
	
	
		
		 
	
	
	
	
	 
 	
	 
 
	
	
		
	
		
	
				
			
			 
		
			 
			#61  
	
 
	
			
            
			
			Рыцарь
			
			
		
			
				
			
			
			
				 
				Регистрация: 28.09.2007
				
				
				
					Сообщений: 1,558
				
				 
	Сказал Спасибо: 71
	
		
			
				Имеет 351 спасибок в 244 сообщенях
			
		
	
				
				
				
				    
			 					
		
	 
	
	
	
		
		
			
			
			-=[B1@©k}{ac]{e®]=-™ , если скрипт грамотно написан и заточен на то, чтоб работать даже без клиента - то да.
		
	
		
		
		
		
		
		
			
		
		
		
		
		
		
	
	 
 
	
		 
	
	
	
		
		
		
		
		
			 
 
 
	 
	
		 	
	 
 
	
	
		
	
		
	
				
			
			 
		
			 
			#62  
	
 
	
			
            
			
			Новичок
			
			
		
			
			
			
				 
				Регистрация: 17.12.2008
				
				
				
					Сообщений: 12
				
				 
	Сказал Спасибо: 1
	
		
			
				Имеет 0 спасибок в 0 сообщенях
			
		
	
				
				
				
				    
			 					
		
	 
	
	
	
		
		
			
			
				 
			QaK , пытался править скрипт бота-бафера...
Оффтоп 
	delphi Код:
	//by vimin 
//Скрипт для SE, чтобы бегал, лечил и бафал по команде от командира. 
const  //баффы 
b1='2F 10 04 00 00 00 00 00 00 00' ;    // Shield 
b2='2F 0B 04 00 00 00 00 00 00 00' ;    // Mental Shield 
b3='2F 23 04 00 00 00 00 00 00 00' ;    // Empower 
b4='2F B4 04 00 00 00 00 00 00 00' ;    // Wind Walk 
b5='2F 36 04 00 00 00 00 00 00 00' ;    // Concentration 
var 
IDPartyMember, IDAssistTarget: String ; //ИД командира и ИД его таргета и Собственный ИД 
CoordBufX, CoordBufY, CoordBufZ :String ; //координаты бота 
NameBuffer, NameKomandos : String ; // Имена 
x: integer ;
timer1: TTimer;
procedure  OnTimer( Sender: TObject ) ;
begin 
 case  x of 
 1 : begin 
    //выделяем командира, эмулируя щелчек мыши 
    buf:=hstr( '04' )  + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr( '00' ) ;
    SendToServerEX( NameBuffer) ;
    buf:=hstr( b1) ;
    SendToServerEx( NameBuffer) ;
    x:=x+1 ;
    end ;
 2 : begin 
    buf:=hstr( b2) ;
    SendToServerEx( NameBuffer) ;
    x:=x+1 ;
    end ;
 3 : begin 
    buf:=hstr( b3) ;
    SendToServerEx( NameBuffer) ;
    x:=x+1 ;
    end ;
 4 : begin 
    buf:=hstr( b4) ;
    SendToServerEx( NameBuffer) ;
    x:=x+1 ;
    end ;
5 : begin 
    buf:=hstr( b5) ;
    SendToServerEx( NameBuffer) ;
    x:=0 ;
    timer1.enabled :=false ;
    end ;
 end ;
end ;
procedure  bRun;
begin 
     if  ( CoordBufX <> '' )  and  ( IDPartyMember <> '' )  then 
     begin 
          //выделяем командира, эмулируя щелчек мыши 
          buf:=hstr( '04' )  + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr( '00' ) ;
          SendToServerEX( NameBuffer) ;
          //бежим за командиром эмулируя повторный щелчек мыши по таргету 
          buf:=hstr( '04' )  + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr( '00' ) ;
          SendToServerEX( NameBuffer) ;
     end ;
end ;
procedure  bHeal;
begin 
     if  ( CoordBufX <> '' )  and  ( IDPartyMember <> '' )  then 
     //if (IDPartyMember <> '') then 
     begin 
          //выделяем командира, эмулируя щелчек мыши 
          buf:=hstr( '04' )  + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr( '00' ) ;
          SendToServerEx( NameBuffer) ;
          // хил 
          buf:=hstr( '2F C1 04 00 00 00 00 00 00 00' ) ; // Greater Heal 
          //отправляем пакет серваку 
          SendToServerEx( NameBuffer) ;
     end ;
end ;
procedure  bRecharge;
begin 
     // таргет командира 
     buf:=hstr( '04' )  + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr( '00' ) ;
     SendToServerEx( NameBuffer) ;
     // речарж 
     buf:=hstr( '2F F5 03 00 00 00 00 00 00 00' ) ; // Recharge 
     //отправляем пакет серваку 
     SendToServerEx( NameBuffer) ;
     //Say('Make recharge'); 
end ;
procedure  Init; //Вызывается при включении скрипта 
begin 
     NameBuffer:='Buffer' ;
     NameKomandos:='Komandos' ;
     timer1:=TTimer.Create ( nil ) ;
     timer1.OnTimer :=@OnTimer;
     timer1.enabled :=false ;
     timer1.interval :=5000 ;
     x:=0 ;
end ;
procedure  Free; //Вызывается при выключении скрипта 
begin 
    timer1.Free ;
end ;
//основная часть скрипта 
//вызывается при приходе каждого пакета если скрипт включен 
begin 
     if  pck=''  then  exit ;
     //если от сервака принят пакет с ИД и Координатами членов пати то 
     if  FromServer and  ( pck[1 ]=#$a7)  then 
     begin 
          //запоминаем ИД командира 
          IDPartyMember:=pck[6 ] + pck[7 ] + pck[8 ] + pck[9 ];
     end ;
   //если принят пакет от клиента с кординатами бафера то 
   if  FromClient and  ( ConnectName=NameBuffer)  and  ( pck[1 ]=#$48 )  then 
   begin 
        //запоминаем координаты 
        CoordBufX:= pck[6 ] + pck[7 ] + pck[8 ] + pck[9 ];
        CoordBufY:= pck[10 ] + pck[11 ] + pck[12 ] + pck[13 ];
        CoordBufZ:= pck[14 ] + pck[15 ] + pck[16 ] + pck[17 ];
   end ;
   //далее идут управляющие команды 
   //если КОМАНДИР пишет в любой чат цифру "1" (код "#$31 #$00" в юникоде (в юникоде под 1 символ используются 2 байта) я так понял) то 
   if  FromClient and  ( ConnectName=NameKomandos) and  ( pck[1 ]=#$38 )  then 
      if  ( pck[2 ]=#$31 )  and  ( pck[3 ]=#$00 )  then 
      begin 
           //убиваем этот пакет, чтоб сервер его не получил 
           pck:='' ;
           //Бафер БЕЖИТ за КОМАНДИРОМ 
           bRun;
           //выйти из рабочей части скрипта чтобы другие услови не проверяли убитый пакет нулевой длинны 
           exit ;
      end ;
   // если КОМАНДИР пишет в любой чат цифру "2" 
   if  FromClient and  ( ConnectName=NameKomandos) and  ( pck[1 ]=#$38 )  then 
       if  ( pck[2 ]=#$32 )  and  ( pck[3 ]=#$00 )  then 
       begin 
            //убиваем этот пакет, чтоб сервер его не получил 
            pck:='' ;
            bHeal;
            exit ;
       end ;
   // если КОМАНДИР пишет в любой чат цифру "3" (речардж) 
   if  FromClient and  ( ConnectName=NameKomandos) and  ( pck[1 ]=#$38 )  then 
       if  ( pck[2 ]=#$33 )  and  ( pck[3 ]=#$00 )  then 
       begin 
            //убиваем этот пакет, чтоб сервер его не получил 
            pck:='' ;
            bRecharge;
            exit ;
       end ;
   // если КОМАНДИР пишет в любой чат цифру "4" (ребаф) 
   if  FromClient and  ( ConnectName=NameKomandos) and  ( pck[1 ]=#$38 )  then 
       if  ( pck[2 ]=#$34 )  and  ( pck[3 ]=#$00 )  then 
       begin 
            //убиваем этот пакет, чтоб сервер его не получил 
            pck:='' ;
            // бафы 
            timer1.enabled :=true ;
            x:=1 ;
            exit ;
       end ;
end .
  
нужно было, что бы чар кидал Seed of fire... поправил на
Оффтоп 
	delphi Код:
	const  //баффы 
b1='2F 05 05 00 00 00 00 00 00 00' ;    // Seed of fire 
var 
IDPartyMember, IDAssistTarget: String ; //ИД командира и ИД его таргета и Собственный ИД 
CoordBufX, CoordBufY, CoordBufZ :String ; //координаты бота 
NameBuffer, NameKomandos : String ; // Имена 
x: integer ;
timer1: TTimer;
procedure  OnTimer( Sender: TObject ) ;
begin 
if  x=1  then  
begin 
    //выделяем командира, эмулируя щелчек мыши 
    buf:=hstr( '04' )  + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr( '00' ) ;
    SendToServerEX( NameBuffer) ;
    x:=2 ;
end 
else  if  x=2  then  
begin 
    buf:=hstr( b1) ;
    SendToServerEx( NameBuffer) ;
    x:=0 ;
end ;
end ;
procedure  bRun;
begin 
     if  ( CoordBufX <> '' )  and  ( IDPartyMember <> '' )  then 
     begin 
          //выделяем командира, эмулируя щелчек мыши 
          buf:=hstr( '04' )  + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr( '00' ) ;
          SendToServerEX( NameBuffer) ;
          //бежим за командиром эмулируя повторный щелчек мыши по таргету 
          buf:=hstr( '04' )  + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr( '00' ) ;
          SendToServerEX( NameBuffer) ;
     end ;
end ;
procedure  bHeal;
begin 
     if  ( CoordBufX <> '' )  and  ( IDPartyMember <> '' )  then 
     //if (IDPartyMember <> '') then 
     begin 
          //выделяем командира, эмулируя щелчек мыши 
          buf:=hstr( '04' )  + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr( '00' ) ;
          SendToServerEx( NameBuffer) ;
          // хил 
          buf:=hstr( '2F C1 04 00 00 00 00 00 00 00' ) ; // Greater Heal 
          //отправляем пакет серваку 
          SendToServerEx( NameBuffer) ;
     end ;
end ;
procedure  bRecharge;
begin 
     // таргет командира 
     buf:=hstr( '04' )  + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr( '00' ) ;
     SendToServerEx( NameBuffer) ;
     // речарж 
     buf:=hstr( '2F F5 03 00 00 00 00 00 00 00' ) ; // Recharge 
     //отправляем пакет серваку 
     SendToServerEx( NameBuffer) ;
     //Say('Make recharge'); 
end ;
procedure  Init; //Вызывается при включении скрипта 
begin 
     NameBuffer:='BlackStyle' ;
     NameKomandos:='GamellOver' ;
     timer1:=TTimer.Create ( nil ) ;
     timer1.OnTimer :=@OnTimer;
     timer1.enabled :=false ;
     timer1.interval :=5000 ;
     x:=0 ;
end ;
procedure  Free; //Вызывается при выключении скрипта 
begin 
    timer1.Free ;
end ;
//основная часть скрипта 
//вызывается при приходе каждого пакета если скрипт включен 
begin 
     if  pck=''  then  exit ;
     //если от сервака принят пакет с ИД и Координатами членов пати то 
     if  FromServer and  ( pck[1 ]=#$a7)  then 
     begin 
          //запоминаем ИД командира 
          IDPartyMember:=pck[6 ] + pck[7 ] + pck[8 ] + pck[9 ];
     end ;
   //если принят пакет от клиента с кординатами бафера то 
   if  FromClient and  ( ConnectName=NameBuffer)  and  ( pck[1 ]=#$48 )  then 
   begin 
        //запоминаем координаты 
        CoordBufX:= pck[6 ] + pck[7 ] + pck[8 ] + pck[9 ];
        CoordBufY:= pck[10 ] + pck[11 ] + pck[12 ] + pck[13 ];
        CoordBufZ:= pck[14 ] + pck[15 ] + pck[16 ] + pck[17 ];
   end ;
   //далее идут управляющие команды 
   //если КОМАНДИР пишет в любой чат цифру "1" (код "#$31 #$00" в юникоде (в юникоде под 1 символ используются 2 байта) я так понял) то 
   if  FromClient and  ( ConnectName=NameKomandos) and  ( pck[1 ]=#$38 )  then 
      if  ( pck[2 ]=#$31 )  and  ( pck[3 ]=#$00 )  then 
      begin 
           //убиваем этот пакет, чтоб сервер его не получил 
           pck:='' ;
           //Бафер БЕЖИТ за КОМАНДИРОМ 
           bRun;
            // бафы 
            timer1.enabled :=true ;
            x:=1 ;
            exit ;
           //выйти из рабочей части скрипта чтобы другие услови не проверяли убитый пакет нулевой длинны 
           exit ;
      end ;
end .
  
но неработает... все ли я правильно сделал ?.. если нет, поправьте плз..
			
				Последний раз редактировалось QaK, 16.01.2009 в 13:33 .
				
				 
			
		
		
	
	 
 
	
		 
	
	
	
		
		
		
		
		
			 
 
 
	 
	
		 	
	 
 
	
	
		
	
		
	
				
			
			 
		
			 
			#63  
	
 
	
			
            
			
			Рыцарь
			
			
		
			
				
			
			
			
				 
				Регистрация: 28.09.2007
				
				
				
					Сообщений: 1,558
				
				 
	Сказал Спасибо: 71
	
		
			
				Имеет 351 спасибок в 244 сообщенях
			
		
	
				
				
				
				    
			 					
		
	 
	
	
	
		
		
			
			
			Поправил второй твой скрипт, проверь.
		
	
		
		
		
		
		
		
			
		
		
		
		
		
		
	
	 
 
	
		 
	
	
	
		
		
		
		
		
			 
 
 
	
		
			
				
					За это сообщение QaK нажился спасибкой от: 
				
				
				
			 
			 
	
  
	
		 	
	 
 
	
	
		
	
		
	
				
			
			 
		
			 
			#64  
	
 
	
			
            
			
			Новичок
			
			
		
			
			
			
				 
				Регистрация: 17.12.2008
				
				
				
					Сообщений: 12
				
				 
	Сказал Спасибо: 1
	
		
			
				Имеет 0 спасибок в 0 сообщенях
			
		
	
				
				
				
				    
			 					
		
	 
	
	
	
		
		
			
			
			не работает... не происходит выделение основного чара... если через бота выделить, то норм.... а так неработает..
		
	
		
		
		
		
		
		
		
		
		
		
						
				Последний раз редактировалось -=[B1@©k}{ac]{e®]=-™, 20.01.2009 в 05:53 .
				
				 
			
		
		
	
	 
 
	
		 
	
	
	
		
		
		
		
		
			 
 
 
	 
	
		 	
	 
 
	
	
		
	
		
	
				
			
			 
		
			 
			#65  
	
 
	
			
            
			
			Новичок
			
			
		
			
			
			
				 
				Регистрация: 13.12.2008
				
				
				
					Сообщений: 4
				
				 
	Сказал Спасибо: 3
	
		
			
				Имеет 0 спасибок в 0 сообщенях
			
		
	
				
				
				
				    
			 					
		
	 
	
	
	
		
		
			
			
			
	Код:
	if ((FromClient) and (pck[1]=#$1F) and (ConnectName='Nick') and (NSetup=0)) then
              begin
                   MyID:=ReadD(2);
                   NSetup:=1;
                   pck:='';
              end; 
 phx выдает ошибку и пакет не блокируется. Подскажите почему.
 
 
	
		 
	
	
	
		
		
		
		
		
			 
 
 
	 
	
		 	
	 
 
	
	
		
	
		
	
				
			
			 
		
			 
			#66  
	
 
	
			
            
			
			Пользователь
			
			
		
			
			
			
				 
				Регистрация: 05.02.2009
				
				
				
					Сообщений: 62
				
				 
	Сказал Спасибо: 1
	
		
			
				Имеет 18 спасибок в 9 сообщенях
			
		
	
				
				
				
				    
			 					
		
	 
	
	
	
		
		
			
			
			Snat4 , Вроде нормально все. Попробуй перед этим кодом добавить:
	Код:
	if pck = '' then exit; 
 Да, и написал бы еще какая ошибка хоть.
 
 
	
		 
	
	
	
		
		
		
		
		
			 
 
 
	 
	
		 	
	 
 
	
	
		
	
		
	
				
			
			 
		
			 
			#67  
	
 
	
			
            
			
			Рыцарь
			
			
		
			
				
			
			
			
				 
				Регистрация: 29.02.2008
				
				
				
					Сообщений: 928
				
				 
	Сказал Спасибо: 127
	
		
			
				Имеет 130 спасибок в 93 сообщенях
			
		
	
				
				
				
				    
			 					
		
	 
	
	
	
		
		
			
			
			Snat4 , а выложи полностью пакет. и что это за пакет хотя б какие хроники.
		
	
		
		
		
		
		
		
			
		
		
		
		
		
		
	
	 
 
	
		 
	
	
	
		
		
		
		
		
			 
 
 
	 
	
		 	
	 
 
	
	
		
	
		
	
				
			
			 
		
			 
			#68  
	
 
	
			
            
			
			Новичок
			
			
		
			
			
			
				 
				Регистрация: 13.12.2008
				
				
				
					Сообщений: 4
				
				 
	Сказал Спасибо: 3
	
		
			
				Имеет 0 спасибок в 0 сообщенях
			
		
	
				
				
				
				    
			 					
		
	 
	
	
	
		
		
			
			
			Такая ошибка:
	Код:
	Access violation at address 00550C21 in module 'l2pbx.exe'. Read of address 00000000. 
 #$1F - пакет от клиента "Action" (в основном выбор таргета).
К примеру такой:
	Код:
	1F BD D8 00 4B C2 6D 00 00 C8 2A 00 00 77 EF FF FF 00 
 Основная прелесть в том, что даже если я пишу вот такое, то та же ошибка:
	Код:
	if ((FromClient) and (pck[1]=#$19) and (NSetup=1)) then
              begin
                   ItemWindStrike:=ReadD(2);
                   pck:='';
                   NSetup:=2;
                   Mess('Blah-Blah-Blah');
              end; 
 Где #$19 - от клиента UseItem пакет.
ItemWindStrike, MyID: integer;
Хроники - камаэль Хэллбаунд. В настройках пнх у меня стоит галочка на Kamael и снята с Gracia. Версия пнх - L2phx 3.4.1.61.
ЗЫ: прошу прощения что сразу не все написал подробно.
			
				Последний раз редактировалось Snat4, 19.02.2009 в 01:31 .
				
				 
			
		
		
	
	 
 
	
		 
	
	
	
		
		
		
		
		
			 
 
 
	 
	
		 	
	 
 
	
	
		
	
		
	
				
			
			 
		
			 
			#69  
	
 
	
			
            
			
			Пользователь
			
			
		
			
			
			
				 
				Регистрация: 05.02.2009
				
				
				
					Сообщений: 62
				
				 
	Сказал Спасибо: 1
	
		
			
				Имеет 18 спасибок в 9 сообщенях
			
		
	
				
				
				
				    
			 					
		
	 
	
	
	
		
		
			
			
			Snat4 , Тут уже похоже дело не в скрипте а пакетхаке. У меня бывает слетает так же, рестарт PHX помогает.
		
	
		
		
		
		
		
		
		
		
		
	
	 
 
	
		 
	
	
	
		
		
		
		
		
			 
 
 
	 
	
		 	
	 
 
	
	
		
	
		
	
				
			
			 
		
			 
			#70  
	
 
	
			
            
			
			Новичок
			
			
		
			
			
			
				 
				Регистрация: 13.12.2008
				
				
				
					Сообщений: 4
				
				 
	Сказал Спасибо: 3
	
		
			
				Имеет 0 спасибок в 0 сообщенях
			
		
	
				
				
				
				    
			 					
		
	 
	
	
	
		
		
			
			
			
	Цитата:
	
	
		
			
				
					Сообщение от 
lexayar 
					Snat4 , Тут уже похоже дело не в скрипте а пакетхаке. У меня бывает слетает так же, рестарт PHX помогает.
			
		 
	 
	
 Если убрать строчку 
, тогда все нормально работает. Но мне желательно бы блокировать эти пакеты 
Есть нъюанс: Если нажать на кнопочку "Ок" когда вылетает эта ошибка в РНХ, то скрипт продолжает нормально работать, при этом пакет, которых я хотел блокировать, все-таки проходит. Что-то похоже на Delay но только пока не нажму на кнопку "Ок"))
Еще нъюансик: когда вылетает эта ошибка - клиент полностью зависает и ни на что не реагирует. После нажатия на кнопочке "Ок" все продолжает нормально работать.
			
				Последний раз редактировалось Snat4, 19.02.2009 в 15:16 .
				
				 
			
		
		
	
	 
 
	
		 
	
	
	
		
		
		
		
		
			 
 
 
	 
	
		 	
	 
 
		
 
	
		
 
  
	Опции темы 
	
 
	
	
	
	
	
	
	 
	
 
	Опции просмотра 
	
 
	
	
	
	
	
	
		Линейный вид  
	
	
	
	 
	
	
 
	
		
	
		 
 
 
	
		
		Вы не можете  создавать темы
		Вы не можете  отвечать на сообщения
		Вы не можете  прикреплять файлы
		Вы не можете  редактировать сообщения
		HTML код Выкл. 
	  
 
	 
	
		
	 
 
Часовой пояс GMT +4, время: 00:59 .
		 	
	 
 
	
	
	
	vBulletin style designed by 
MSC Team .
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: 
zCarot 
	
 
 
 
 
Вы хотите чувствовать себя в безопасности? чоп  Белган обеспечит её!