Добавлен  koreec49 
                            
                            
                            
                            
                            
                            
                        
                        
                    function ReturnToMammy takes unit ua, unit ub returns nothing
 local location loca = GetUnitLoc( ua )
 local location locb = GetUnitLoc( ub )
 local unit unitb = ub
 local real r
 set r = DistanceBetweenPoints( loca, locb )
 if ( r >= 1000 ) then
 
  call IssuePointOrderLocBJ( unitb, "move", loca )
 //else 
  //call KillUnit( unitb )
  
 endif
 
 call RemoveLocation( loca )
 call RemoveLocation( locb )
 
 set loca = null
 set locb = null
 set unitb = null
 
endfunctionЕсли расстояние между "мамой" и юнитом больше 1000, юнит должен идти обратно к "маме". Только вот юниты сваливают на другой конец карты и не думают возвращаться.
Функция вызывается другим триггером. Если убрать "//", юниты исправно мрут находясь возле "мамы".
Принятый ответ
bj убери для начала
[code]
function ret takes unit m,unit u returns nothing
local location lm=GetUnitLoc(m)
local location lu=GetUnitLoc(u)
local real dx=GetLocationX(lm) - GetLocationX(lu)
local real dy=GetLocationY(lm) - GetLocationY(lu)
local real r=SquareRoot(dx*dx+dy*dy)
if r>=1000 then
call IssuePointOrderLoc( u, "move", lm )
endif
call RemoveLocation(lm)
call RemoveLocation(lu)
endfunction
local location lm=GetUnitLoc(m)
local location lu=GetUnitLoc(u)
local real dx=GetLocationX(lm) - GetLocationX(lu)
local real dy=GetLocationY(lm) - GetLocationY(lu)
local real r=SquareRoot(dx*dx+dy*dy)
if r>=1000 then
call IssuePointOrderLoc( u, "move", lm )
endif
call RemoveLocation(lm)
call RemoveLocation(lu)
endfunction
[/code]
m-мама 
u-юнит
u-юнит
    
        
            
                `
            
            
                
        
    
    ОЖИДАНИЕ РЕКЛАМЫ...
            
                    
                        Чтобы оставить комментарий, пожалуйста, войдите на сайт.
                    
                
             
                        
                        
                    
 WC3
                                WC3
                            



Ред. Sergant1000
local location lm=GetUnitLoc(m)
local location lu=GetUnitLoc(u)
local real dx=GetLocationX(lm) - GetLocationX(lu)
local real dy=GetLocationY(lm) - GetLocationY(lu)
local real r=SquareRoot(dx*dx+dy*dy)
if r>=1000 then
call IssuePointOrderLoc( u, "move", lm )
endif
call RemoveLocation(lm)
call RemoveLocation(lu)
endfunction
u-юнит
Ред. koreec49
вызов функции через кастом скрипт
call ReturnToMammy( gg_unit_Ucrl_0005, GetEnumUnit() )
то есть я сначала пикаю юнитов
Извиняюсь за тревогу, перезапустил редактор - все нормально