Добавлен  Pavell 
                            
                            
                            
                            
                            
                            
                        
                        
                    В общем, суть следующая: я сделал способность "Рывок": Герой бежит к указанному противнику, слегка отталкивая всех войнов по пути (включая своих). Остальное не важно. Сама проблема заключается в том, что в некоторых случаях отталкивание идет не в ту сторону, которую нужно (в зависимости от того, где расположен попадающийся объект, справа или слева, он отталкивается с разницей в 90 градусов от текущего поворота героя). Я уже перепробовал множество глупых способов, но максимум я смог сделать, чтобы лишь в большинстве случаев отталкивание шло правильно.
Принятый ответ
function GetDirection takes unit u, unit targ returns int
         local real alpha = GetUnitFacing(u)
         local real gamma = bj_RADTODEG * Atan2(GetUnitY(targ)-GetUnitY(u), GetUnitX(targ)-GetUnitX(u))
          if gamma < 0 then
            set gamma = 360. + gamma
          endif
          if (alpha < 180. and not(gamma > alpha and gamma < alpha + 180.)) or (alpha > 180. and gamma > alpha - 180. and gamma < alpha) then
            return 2
          else
            return 1
          endif
    endfunction
1 право, 2 лево, вроде бы
и обнулять реал это мощно... и хеш таблица не корректно используется...
    
        
            
                `
            
            
                
        
    
    ОЖИДАНИЕ РЕКЛАМЫ...
            
                    
                        Чтобы оставить комментарий, пожалуйста, войдите на сайт.
                    
                
            
                                WC3
                            



лень открывать карту
Ред. Pavell
период 0,02
в общем омг
я напишу сегодня как я бы делал это
потом глянешь
что и где у тебя не правильно
Ред. Hate