Показать сообщение отдельно
Старый 14.12.2007, 16:06   #11
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Re: Передвижение бота из пункта А в пункт В по вейпоинтам.

Дипломат - а у тебя какой вариант?
Без проблем! Могу даже рабочий пример написать: делов-то на 15 минут. Только создай нормальный корректный вопрос с описанием проблемы и ТЗ в соответствующем разделе.
Вот вопрос:

Есть 2 дома, между ними в плейне вырублена кривая зигзаговая дорога,
на дороге должно быть 2 ряда вейпоинтов (правая и левая стороны),
должны быть боты.
Как заставить ботов ездить от дома к дому через вейпоинты, выберая правильный путь?
То есть каким образом это можно сделать вместо моего какакода:
If a\d#=1 And a\PS#=0 And a\T#=23 And a\ZPPS#=2 Then
    PointEntity a\entity,PolevoyShpat
    a\v#=0.1
    End If
    
    If EntityDistance(a\entity,PolevoyShpat)<1 And a\PS#<23 Then
    a\v#=0.0
    a\PS#=a\PS#+0.1
    If a\PS#>23 Then a\PS#=23
    If a\PS#=23 Then a\T#=0
    End If
    
    
    If a\PS#=23 And a\UPPS#=0 Then
    PointEntity a\entity,UP_PolevoyShpat_ZavodPPS1
    a\v#=0.1
    End If    
        
    If EntityDistance(a\entity,UP_PolevoyShpat_ZavodPPS1)<1 And a\PS#=23 Then
    a\v#=0.0
    a\UPPS#=1
    End If
    
    If a\PS#=23 And a\UPPS#=1 Then
    PointEntity a\entity,UP_PolevoyShpat_ZavodPPS2
    a\v#=0.1
    End If    
    
    If EntityDistance(a\entity,UP_PolevoyShpat_ZavodPPS2)<1 And a\PS#=23 Then
    a\v#=0.0
    a\UPPS#=2
    End If
    
    If a\PS#=23 And a\UPPS#=2 Then
    PointEntity a\entity,UP_PolevoyShpat_ZavodPPS3
    a\v#=0.1
    End If
    
    If EntityDistance(a\entity,UP_PolevoyShpat_ZavodPPS3)<1 And a\PS#=23 Then
    a\v#=0.0
    a\UPPS#=3
    End If
    
    If a\PS#=23 And a\UPPS#=3 Then
    PointEntity a\entity,UP_PolevoyShpat_ZavodPPS4
    a\v#=0.1
    End If
    
    If EntityDistance(a\entity,UP_PolevoyShpat_ZavodPPS4)<1 And a\PS#=23 Then
    a\v#=0.0
    a\UPPS#=5
    End If
    
    If a\PS#=23 And a\UPPS#=5 Then
    PointEntity a\entity,UP_PolevoyShpat_ZavodPPS5
    a\v#=0.1
    End If        
    
    If EntityDistance(a\entity,UP_PolevoyShpat_ZavodPPS5)<1 And a\PS#=23 Then
    a\v#=0.0
    a\UPPS#=6
    End If
    
    If a\PS#=23 And a\UPPS#=6 Then
    PointEntity a\entity,UP_PolevoyShpat_ZavodPPS6
    a\v#=0.1
    End If
    
    If EntityDistance(a\entity,UP_PolevoyShpat_ZavodPPS6)<1 And a\PS#=23 Then
    a\v#=0.0
    a\UPPS#=7
    End If
    
    If a\PS#=23 And a\UPPS#=7 Then
    PointEntity a\entity,UP_PolevoyShpat_ZavodPPS7
    a\v#=0.1
    End If
    
    If EntityDistance(a\entity,UP_PolevoyShpat_ZavodPPS7)<1 And a\PS#=23 Then
    a\v#=0.0
    a\UPPS#=8
    End If
    
    If a\PS#=23 And a\UPPS#=8 Then
    PointEntity a\entity,UP_PolevoyShpat_ZavodPPS8
    a\v#=0.1
    End If
    
    If EntityDistance(a\entity,UP_PolevoyShpat_ZavodPPS8)<1 And a\PS#=23 Then
    a\v#=0.0
    a\UPPS#=9
    End If
    
    If a\PS#=23 And a\UPPS#=9 Then
    PointEntity a\entity,UP_PolevoyShpat_ZavodPPS9
    a\v#=0.1
    End If
    
    
    If EntityDistance(a\entity,UP_PolevoyShpat_ZavodPPS9)<1 And a\PS#=23 Then
    a\v#=0.0
    a\UPPS#=9
    End If
    
    If a\PS#=23 And a\UPPS#=9 Then
    PointEntity a\entity,ZavodPPS
    a\v#=0.1
    End If
            
    If EntityDistance(a\entity,ZavodPPS)<1 And a\PS#>0 Then
    a\v#=0.0
    a\PS#=0
    a\UPPS#=0
    a\ZPPS#=1
    End If
    
    If EntityDistance(a\entity,ZavodPPS)<1 And a\PS#=0 Then
    a\T#=a\T#+0.1
    If a\T#>23 Then
    a\T#=23
    a\r#=0
    End If
    End If
        
    
    
    
    
    If a\d#=1 And a\PS#=0 And a\T#=23 And a\ZPPS#=1 And a\UPPS#=0 Then
    PointEntity a\entity,UP2_PolevoyShpat_ZavodPPS1
    a\v#=0.1
    End If    
        
    If EntityDistance(a\entity,UP2_PolevoyShpat_ZavodPPS1)<1 And a\T#=23 Then
    a\v#=0.0
    a\UPPS#=1
    End If
    
    If a\T#=23 And a\UPPS#=1 Then
    PointEntity a\entity,UP2_PolevoyShpat_ZavodPPS2
    a\v#=0.1
    End If    
    
    If EntityDistance(a\entity,UP2_PolevoyShpat_ZavodPPS2)<1 And a\T#=23 Then
    a\v#=0.0
    a\UPPS#=2
    End If
    
    If a\T#=23 And a\UPPS#=2 Then
    PointEntity a\entity,UP2_PolevoyShpat_ZavodPPS3
    a\v#=0.1
    End If
    
    If EntityDistance(a\entity,UP2_PolevoyShpat_ZavodPPS3)<1 And a\T#=23 Then
    a\v#=0.0
    a\UPPS#=3
    End If
    
    If a\T#=23 And a\UPPS#=3 Then
    PointEntity a\entity,UP2_PolevoyShpat_ZavodPPS4
    a\v#=0.1
    End If
    
    If EntityDistance(a\entity,UP2_PolevoyShpat_ZavodPPS4)<1 And a\T#=23 Then
    a\v#=0.0
    a\UPPS#=5
    End If
    
    If a\T#=23 And a\UPPS#=5 Then
    PointEntity a\entity,UP2_PolevoyShpat_ZavodPPS5
    a\v#=0.1
    End If        
    
    If EntityDistance(a\entity,UP2_PolevoyShpat_ZavodPPS5)<1 And a\T#=23 Then
    a\v#=0.0
    a\UPPS#=6
    End If
    
    If a\T#=23 And a\UPPS#=6 Then
    PointEntity a\entity,UP2_PolevoyShpat_ZavodPPS6
    a\v#=0.1
    End If
    
    If EntityDistance(a\entity,UP2_PolevoyShpat_ZavodPPS6)<1 And a\T#=23 Then
    a\v#=0.0
    a\UPPS#=7
    End If
    
    If a\T#=23 And a\UPPS#=7 Then
    PointEntity a\entity,UP2_PolevoyShpat_ZavodPPS7
    a\v#=0.1
    End If
    
    If EntityDistance(a\entity,UP2_PolevoyShpat_ZavodPPS7)<1 And a\T#=23 Then
    a\v#=0.0
    a\UPPS#=8
    End If
    
    If a\T#=23 And a\UPPS#=8 Then
    PointEntity a\entity,UP2_PolevoyShpat_ZavodPPS8
    a\v#=0.1
    End If
    
    If EntityDistance(a\entity,UP2_PolevoyShpat_ZavodPPS8)<1 And a\T#=23 Then
    a\v#=0.0
    a\UPPS#=9
    End If
    
    If a\T#=23 And a\UPPS#=9 Then
    PointEntity a\entity,UP2_PolevoyShpat_ZavodPPS9
    a\v#=0.1
    End If
    
    
    If EntityDistance(a\entity,UP2_PolevoyShpat_ZavodPPS9)<1 And a\T#=23 Then
    a\v#=0.0
    a\UPPS#=9
    End If
    
    If a\T#=23 And a\UPPS#=9 Then
    PointEntity a\entity,PolevoyShpat
    a\v#=0.1
    End If
            
            
            
            
    If EntityDistance(a\entity,PolevoyShpat)<1 And a\PS#<23 Then
    a\v#=0.0
    a\PS#=a\PS#+0.1
    If a\PS#>23 Then a\PS#=23
    If a\PS#=23 Then a\T#=0
    a\UPPS#=0
    a\ZPPS#=0
    End If
    
    
    If a\PS#=23 And a\UPPS#=0 Then
    PointEntity a\entity,UP_PolevoyShpat_ZavodPPS1
    a\v#=0.1
    End If    
        
    If EntityDistance(a\entity,UP_PolevoyShpat_ZavodPPS1)<1 And a\PS#=23 Then
    a\v#=0.0
    a\UPPS#=1
    End If
    
    If a\PS#=23 And a\UPPS#=1 Then
    PointEntity a\entity,UP_PolevoyShpat_ZavodPPS2
    a\v#=0.1
    End If    
    
    If EntityDistance(a\entity,UP_PolevoyShpat_ZavodPPS2)<1 And a\PS#=23 Then
    a\v#=0.0
    a\UPPS#=2
    End If
    
    If a\PS#=23 And a\UPPS#=2 Then
    PointEntity a\entity,UP_PolevoyShpat_ZavodPPS3
    a\v#=0.1
    End If
    
    If EntityDistance(a\entity,UP_PolevoyShpat_ZavodPPS3)<1 And a\PS#=23 Then
    a\v#=0.0
    a\UPPS#=3
    End If
    
    If a\PS#=23 And a\UPPS#=3 Then
    PointEntity a\entity,UP_PolevoyShpat_ZavodPPS4
    a\v#=0.1
    End If
    
    If EntityDistance(a\entity,UP_PolevoyShpat_ZavodPPS4)<1 And a\PS#=23 Then
    a\v#=0.0
    a\UPPS#=5
    End If
    
    If a\PS#=23 And a\UPPS#=5 Then
    PointEntity a\entity,UP_PolevoyShpat_ZavodPPS5
    a\v#=0.1
    End If        
    
    If EntityDistance(a\entity,UP_PolevoyShpat_ZavodPPS5)<1 And a\PS#=23 Then
    a\v#=0.0
    a\UPPS#=6
    End If
    
    If a\PS#=23 And a\UPPS#=6 Then
    PointEntity a\entity,UP_PolevoyShpat_ZavodPPS6
    a\v#=0.1
    End If
    
    If EntityDistance(a\entity,UP_PolevoyShpat_ZavodPPS6)<1 And a\PS#=23 Then
    a\v#=0.0
    a\UPPS#=7
    End If
    
    If a\PS#=23 And a\UPPS#=7 Then
    PointEntity a\entity,UP_PolevoyShpat_ZavodPPS7
    a\v#=0.1
    End If
    
    If EntityDistance(a\entity,UP_PolevoyShpat_ZavodPPS7)<1 And a\PS#=23 Then
    a\v#=0.0
    a\UPPS#=8
    End If
    
    If a\PS#=23 And a\UPPS#=8 Then
    PointEntity a\entity,UP_PolevoyShpat_ZavodPPS8
    a\v#=0.1
    End If
    
    If EntityDistance(a\entity,UP_PolevoyShpat_ZavodPPS8)<1 And a\PS#=23 Then
    a\v#=0.0
    a\UPPS#=9
    End If
    
    If a\PS#=23 And a\UPPS#=9 Then
    PointEntity a\entity,UP_PolevoyShpat_ZavodPPS9
    a\v#=0.1
    End If
    
    
    If EntityDistance(a\entity,UP_PolevoyShpat_ZavodPPS9)<1 And a\PS#=23 Then
    a\v#=0.0
    a\UPPS#=9
    End If
    
    If a\PS#=23 And a\UPPS#=9 Then
    PointEntity a\entity,ZavodPPS
    a\v#=0.1
    End If
            
    If EntityDistance(a\entity,ZavodPPS)<1 And a\PS#>0 Then
    a\v#=0.0
    a\PS#=0
    a\UPPS#=0
    a\ZPPS#=1
    End If
    
    If EntityDistance(a\entity,ZavodPPS)<1 And a\PS#=0 Then
    a\T#=a\T#+0.1
    If a\T#>23 Then
    a\T#=23
    a\r#=0
    End If
    End If
(Offline)
 
Ответить с цитированием