Показать сообщение отдельно
Старый 31.07.2009, 01:18   #9
FrankH
Разработчик
 
Регистрация: 09.12.2007
Сообщений: 376
Написано 83 полезных сообщений
(для 122 пользователей)
Ответ: Старая песня о главном: Collision

если одновременно в одного врага попадают 2 пули, выбивает ошибку, что не может удалить enemy\ent, поскольку его уже нет
    obi=(EntityCollided(all\mesh,2))
        If obi Then
            If obi<>all\parent Then

                If all\typ=1 LP#=GP1_power# Else If all\typ=2 LP#=GP2_power# Else If all\typ=3 LP#=GP3_power# Else If all\typ=4 LP#=GP4_power# Else If all\typ=5 LP#=GP5_power#
                u.Unit=Object.Unit(EntityName(obi))
                If u\pivot<>0 Then
                    tmpuron=(LP#*.01*(100-u\shield))
                    u\health#=u\health#-tmpuron;If u\plr=0
                    u\speed#=u\speed#*.6
                    If all\plr Then player_score=player_score+tmpuron
                    CrtPShotSpark(all\mesh,EntityYaw(all\mesh),EntityPitch(all\mesh),200,all\typ)
                     obx=1
                EndIf
            Else
                ResetEntity all\mesh
            EndIf
        EndIf
Я сделал так, помимо того необходимо обрабатывать пули и врагов отдельно друг от друга, и удалять бота не в снарядах а в обработке ботов. Так и быстрее и бот не будет исчезать посреди обработки снарядов.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
FLashMP (07.08.2009)