  | 
	
		
	
	
		Реализация вертикального взлета - Общение разработчиков - Программирование для Perfect World, общение и обсуждене разработок | 
	 
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            08.11.2013, 23:26
            
            
         | 
        
             
            #1
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Разведчик  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 23.06.2012  
                
                
                
                 Сообщений: 43
                   
 Популярность: 427  
                  
	 Сказал(а) спасибо: 18  
	
		
			
				Поблагодарили 59 раз(а) в 35 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Реализация вертикального взлета
             
             
            
        
        
        
            
               
    Всем доброго времени суток. 
 
В данной теме, хотелось бы увидеть примеры функций вертикального взлета персонажа на определенную высоту. 
В идеале, хотел бы  сделать взлет так же, как в MegaBot 5.0. Скорее всего реализация в нем идет инжектами. Пробовал проводить трассировку, но сказывается недостаток опыта. Также пробовал использовать пакеты, но выше 1 метра вверх перс так и не поднялся. 
Так, что буду очень рад увидеть примеры как с использованием инжекта функций, так и отправкой пакетов. 
 
Заранее благодарю!
     
         
        
        
        
        
        
        
            
             ________________  
                 Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
  
 Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). 
             
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            11.11.2013, 11:21
            
            
         | 
        
             
            #2
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Старший сержант  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 21.09.2009  
                
                
                
                 Сообщений: 189
                   
 Популярность: 578  
                  
	 Сказал(а) спасибо: 27  
	
		
			
				Поблагодарили 145 раз(а) в 36 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: Реализация вертикального взлета
             
             
            
        
        
        
            
               
    Любой рабочий инжект движения. Перед ним читаешь координаты, к Z прибавляешь столько, на сколько перс должен подняться вертикально вверх. X и Y остаются без изменений. Если перс "стоит на земле", перед движением передача пакета на взлет или инжект взлета, контроль по WalkMode. Инжекты есть в "[Руоф] Код для инжекта в память".
     
         
        
        
        
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
	
		
			| 
				
					Пользователь сказал cпасибо:
				
				
				
			 | 
			 | 
		 
	 
  
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            12.11.2013, 17:32
            
            
         | 
        
             
            #3
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Разведчик  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 23.06.2012  
                
                
                
                 Сообщений: 43
                   
 Популярность: 427  
                  
	 Сказал(а) спасибо: 18  
	
		
			
				Поблагодарили 59 раз(а) в 35 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: Реализация вертикального взлета
             
             
            
        
        
        
        
        
        
        
        
        
            
             ________________  
                 Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
  
 Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). 
             
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            14.11.2013, 20:48
            
            
         | 
        
             
            #4
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Рыцарь-капитан  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 14.06.2012  
                
                
                
                 Сообщений: 511
                   
 Популярность: 7566  
                  
	 Сказал(а) спасибо: 4  
	
		
			
				Поблагодарили 181 раз(а) в 88 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: Реализация вертикального взлета
             
             
            
        
        
        
            
               
    а вы используйте инжект WalkTo где задаются точные параметры х,у,z
     
         
        
        
        
        
        
        
            
             ________________  
                Хотите как то отблагодарить за помощь? 
Не стесняйтесь нажимайте "Спасибо" Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
  
Делаю программы на заказ, по всем вопросам в скайп: Ginrey2
             
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            27.11.2013, 00:18
            
            
         | 
        
             
            #5
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Пехотинец  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 11.12.2009  
                
                
                
                 Сообщений: 83
                   
 Популярность: -270  
                  
	 Сказал(а) спасибо: 7  
	
		
			
				Поблагодарили 26 раз(а) в 9 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: Реализация вертикального взлета
             
             
            
        
        
        
            
               
    подсмотрев в ГЕОботе на АНК сначало переделал под AutoIT 
	Код: 
	Func MoveTo($X, $Y, $Z, $height, $pid )
	local $process_information = _MemoryOpen($pid)
	local $baseAddress = _MemoryRead ( $REAL_BASE_ADDRESS, $process_information)
	local $structurePointer = _MemoryRead ($baseAddress + $BASE_OFFSET, $process_information)
	local $playerPointer = _MemoryRead($structurePointer + $PLAYER_OFFSET, $process_information)
	local $actionStruct = _MemoryRead($playerPointer + $PLAYER_ACTION_STRUCT_OFFSET, $process_information)
	local $actionList = _MemoryRead($actionStruct+0x30,$process_information)
	local $MoveAction = _MemoryRead($actionList+0x4,$process_information)
	_MemoryWrite($MoveAction+0x8, $process_information, 0)				;Action finished = 0
	_MemoryWrite($MoveAction+0x14, $process_information, 1)				;Action Start = 1
	_MemoryWrite($MoveAction + 0x20, $process_information, $X)
	_MemoryWrite($MoveAction + 0x24, $process_information, $Y)
	_MemoryWrite($MoveAction + 0x28, $process_information, $Z)
	_MemoryWrite($MoveAction + 0x68, $process_information, $height)
	_MemoryWrite($MoveAction + 0x64, $process_information, 26625)
	_MemoryWrite($MoveAction + 0x6C, $process_information, 256)
	_MemoryWrite($MoveAction + 0x2C, $process_information, 0)		;Вот здесь если записать вместо 0, 1 то персонаж обязательно наберет высоту
	_MemoryWrite($actionStruct+0xC, $process_information, $MoveAction)
	_MemoryWrite($actionStruct+0x18, $process_information, 1)
	_MemoryWrite($actionStruct+0x14, $process_information, $MoveAction)
	Sleep (500)
EndFunc 
 потом это все допилил на C# т.к. перестал программить на AutoIT.  
Оффсеты в примере возможно неактуальны, лень проверять. Но на шарпе у меня вертикальный взлет организован благодаря выделенной красным строчке. Пример на C# выкладывать не буду т.к. он довольно большой и без пол литра в моем коде там сложно разобраться    к томуже код не  коментировал   
     
         
        
        
        
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            14.05.2014, 20:17
            
            
         | 
        
             
            #6
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Разведчик  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 13.07.2011  
                
                
                
                 Сообщений: 22
                   
 Популярность: 20  
                  
	 Сказал(а) спасибо: 16  
	
		
			
				Поблагодарили 7 раз(а) в 6 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: Реализация вертикального взлета
             
             
            
        
        
        
            
               
    Вертикальный взлет на шарпе. 
	Код: 
	/// <param name="IsFly">0 - пешком, 1 - в полете</param>
public void Walk(float x, float y, float z, int IsFly = 0)
{
    var CallAddress1 = 0x484690;
    var CallAddress2 = 0x4889B0;
    var CallAddress3 = 0x484B00;
    ASM asm = new ASM(memory);
    asm.Pushad();
    asm.Mov_EAX_DWORD_Ptr(GameOffsets.game_address);
    asm.Mov_ESI_DWORD_Ptr_EAX_Add(0x34);
    asm.Mov_ECX_DWORD_Ptr_ESI_Add(0x1290);
    asm.Push6A(1);
    asm.Mov_EDX(CallAddress1);
    asm.Call_EDX();
    asm.Mov_EDI_EAX();
    asm.Asmcode += "8d442418"; //asm.Lea_EAX_DWORD_Ptr_ESP_Add(0x18);
    asm.Push_EAX();
    asm.Push6A(IsFly); //flying
    asm.Mov_ECX_EDI();
    asm.Mov_EDX(CallAddress2);
    asm.Call_EDX();
    asm.Mov_ECX_DWORD_Ptr_ESI_Add(0x1290);
    asm.Push6A(0);
    asm.Push6A(1);
    asm.Push_EDI();
    asm.Push6A(1);
    asm.Mov_EDX(CallAddress3);
    asm.Call_EDX();
    asm.Mov_EAX_DWORD_Ptr(GameOffsets.game_address);
    asm.Mov_EAX_DWORD_Ptr_EAX_Add(0x34);
    asm.Mov_EAX_DWORD_Ptr_EAX_Add(0x1290);
    asm.Mov_EAX_DWORD_Ptr_EAX_Add(0x30);
    asm.Mov_ECX_DWORD_Ptr_EAX_Add(0x4);
    asm.Mov_EAX(x);
    asm.Asmcode += "894120"; //mov dword ptr[ecx+$20], eax
    asm.Mov_EAX(z);
    asm.Asmcode += "894124"; //mov dword ptr[ecx+$24], eax
    asm.Mov_EAX(y);
    asm.Asmcode += "894128"; //mov dword ptr[ecx+$28], eax
    asm.Mov_EAX(1);
    asm.Asmcode += "89412C"; //mov dword ptr[ecx+$2C], eax
    asm.Popad();
    asm.Ret();
    asm.RunAsm();
}
 
     
         
        
        
        
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
 
	
		
	
	
	
	
	
		
	
		 
		Ваши права в разделе
	 | 
 
	
		
		Вы не можете создавать новые темы 
		Вы не можете отвечать в темах 
		Вы не можете прикреплять вложения 
		Вы не можете редактировать свои сообщения 
		 
		
		
		
		
		HTML код Выкл. 
		 
		
	  | 
 
 
	 | 
	
		
	 | 
 
 
 
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 09:38. 
		 
	 
 
 | 
  |