Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Анимация попадания пули в юнита
Форумы Боевого Народа > Игры > Форумы игр серии "В тылу врага" > Мастерская Maps&Mods
SullenMan
меня очень заинтересовал файл \resource\set\interaction_entity\human.inc

он отвечает за поведение бота при ранении и смерти. кто знает, как внедрить в поведение при попадании пули в тело анимацию

step_back_after_body-hit_1

так чтобы при ранении она проигрывалась и боец пятился назад как при ударе кулаком в рукопашном бою???
vora_bat
SullenMan
в {on bullet_hit добавляешь {ani_play "step_back_after_body-hit_1"}
вот только таким способом можно посылать своих юнитов сквозь стены
могу предложить stand_after_body-hit. Хотя и тут проблема - анимация проигрывается во время бега что выглядит убого. Нужно как-то останавливать солдата при попадании пули, пока не нашёл как.


в общем потестировал. Сделал анимацию когда юнит стоит и лежит.
в {on "process_bullet_hit" добавляешь
Код
        {if not linked "vehicle"
            {if not dead
                {if not lying
                    {ani_play "stand_after_body-hit"}
                        {if not volume "head"
                            {delay 0.5
                                {ani_play "stand_after_body-hit" -1}
                            }
                        }
                    }
                }
            }

и в {if volume "head"
Код
            {if not linked "vehicle"
                {if not dead
                    {if not lying
                        {ani_stop "stand_after_body-hit"}
                        {ani_play "stand_after_straight_hit"}
                    }
                }
            }


и в {on "die"
Код
    {ani_stop "stand_after_body-hit"}
    {ani_stop "stand_after_straight_hit"}

но юниты всё равно будет проигрывать эти анимации при беге. Так что нужно как то его остановить при попадании пули в него. Если кто знает как - отпишитесь
То же самое при если юнит сидит, не знаю как определить это скриптом.
SullenMan
дружище, ты гений! я вот вчера до 5-ти утра думал че делать, а ты вот так вот взял и придумал)))
SullenMan
Тут вот еще возникла проблемка - я добавил анимацию
{if not dead
{if not lying
{ani_stop "step_back_after_body-hit"}
{ani_play "step_back_after_body-hit"}
}
}
}

в момент смерти некоторые солдаты остаются стоять на ногах... есть идеи как это поправить?
SullenMan
вроде бы исправил сам... просто дописал в смерть (on die) {ani_stop "step_back_after_body-hit"} и вродебы число истуканов сократилось.... теперь меня обуревает ещё более интересный вопрос:
{if volume "head" - голова....
а как называется волюм от НОГИ??? есть шикарная анимация "ранения в ногу"
stand_throw_grenade_1_end
Если бы ее прописать при ударе пули в волюм ноги солдата было бы супер!
представьте себе - Sintera mod... стоит пулеметчик с ростовым щитом - его не прострелить никак... и тут КЛАЦ! пуля в ногу и он размыкает защиту аж на 1,5 секунды ловя пули в грудь...
vora_bat
Цитата
вроде бы исправил сам... просто дописал в смерть (on die) {ani_stop "step_back_after_body-hit"} и вродебы число истуканов сократилось....

я ж это и написал в своём посте :D
Цитата
а как называется волюм от НОГИ??? есть шикарная анимация "ранения в ногу"
stand_throw_grenade_1_end
Если бы ее прописать при ударе пули в волюм ноги солдата было бы супер!

посмотрю.
Но опять же, эта анимация будет глючная, с отходом назад. Во время бега она будет проигрываться, да и можно с помощью неё посылать своих солдат сквозь стены. Лучше используй анимации без перемещения юнита в плоскости.

Вобщем смотри: сделал чтобы при попадании в правую ногу проигрывалась та анимация, и так же добавил анимацию при попадании в спину:
Код
    {on "process_bullet_hit"
        {if hit_side front
            {kill_flags front}
            {if not linked "vehicle"
                {if not dead
                    {if not lying
                        {if volume "body"
                            {ani_play "stand_after_body-hit"}
                            {if not volume "head"
                                {delay 0.5
                                    {ani_play "stand_after_body-hit" -1}
                                }
                            }
                        else volume "foot1r"
                            {ani_play "stand_throw_grenade_1_end"}
                        else volume "foot2r"
                            {ani_play "stand_throw_grenade_1_end"}    
                        }
                    }
                }
            }
        else hit_side back
            {kill_flags back}
            {if not linked "vehicle"
                {if not dead
                    {if not lying
                        {ani_play "stand_throw_grenade_2_end"}
                    }
                }
            }


Код
        {if volume "head"
            {if not linked "vehicle"
                {if not dead
                    {if not lying
                        {if hit_side front
                            {ani_stop "stand_after_body-hit"}
                            {ani_play "stand_after_straight_hit"}
                        }
                    }
                }
            }


и отключение анимаций подобавляй в die и прочие:
Код
        {ani_stop "stand_after_body-hit"}
        {ani_stop "stand_after_straight_hit"}
        {ani_stop "stand_throw_grenade_2_end"}
        {ani_stop "stand_throw_grenade_1_end"}
SullenMan
это для Читеров) а вот игроку без этого - финального босса ни за что не затолкать в огонь турбины от "Химеры"...
CatZ
SullenMan а скрпитовый ролик не катит?
vora_bat
SullenMan
ну можешь сделать такую анимацию только одному юниту, например проверкой тэга. Сейчас проверю

Вот, если юниту добавить тэг Boss, то у него будет другая анимация, с отходом назад:
Код
    {on "process_bullet_hit"
        {if hit_side front
            {kill_flags front}
            {if not linked "vehicle"
                {if not dead
                    {if not lying
                        {if volume "body"
                            {if not tagged "boss"
                                {ani_play "stand_after_body-hit"}
                                {if not volume "head"
                                    {delay 0.5
                                        {ani_play "stand_after_body-hit" -1}
                                    }
                                }
                            else
                                {ani_play "step_back_after_body-hit"}
                            }
                        else volume "foot1r"
                            {ani_play "stand_throw_grenade_1_end"}
                        else volume "foot2r"
                            {ani_play "stand_throw_grenade_1_end"}    
                        }
                    }
                }
            }


Вообще идея интересная, внедрил себе в Modern Pack. Ещё б разобраться с бегом и положением сидя...


CatZ
ну чего, как геймплейная фича будет. Например сделать босса бессмертным, и единственным способо его убить будет, как уже сказали, затолкать его таким способом в определённую зону. Как в старых играх smile.gif
SullenMan
выдает ошибку... ругается на строчки которые идут ниже но я их не трогал....
234^ {on< blast_hit overload

а можно УБРАТЬ условие босса, но оставить ногу? (притом для левой тоже есть анимация!

stand_throw_grenade_1_end удар в ногу правую

stand_throw_grenade_2_end ударв в ногу левую...



{on "process_bullet_hit"
{if not linked "vehicle"
{if not dead
{if not lying
{if volume "body"
{if not tagged "boss"
{ani_play "stand_after_body-hit"}
{if not volume "head"
{delay 0.5
{ani_play "stand_after_body-hit" -1}
}
}
else
{ani_play "step_back_after_body-hit"}
}
else volume "foot2l"
{ani_play "stand_throw_grenade_2_end"}
else volume "foot2r"
{ani_play "stand_throw_grenade_1_end"}
}
}
}
}

ВОТ примерно так... ОН ТАНЦУЕТ !!! но как убрать тег босса? или шут с ним?...

черт!! меня аж разрывает творческий порыв!!! можно сделать так чтобы ранение в бедро foot1l и foot1r вызывало анимацию "поскальзывания" stand_throw_grenade_1_end и stand_throw_grenade_2_end ////////// а В голень foot2l и foot2r уже падение тела на живот)))) ЩАС буду искать названия)))
SullenMan
итак. вот что я добавил... получилось здорово.
Раскрывающийся текст
{on "process_bullet_hit"
{if not linked "vehicle"
{if not dead
{if not lying
{if volume "body"
{if not tagged "boss"
{ani_play "stand_after_body-hit"}
{if not volume "head"
{delay 0.2
{ani_play "stand_after_body-hit" -1}
}
}
else
{ani_play "step_back_after_body-hit"}
}
else volume "foot1l"
{ani_play "stand_throw_grenade_2_end"}
else volume "foot2l"
{set "die_sound" 1}
{talk "death_cry"}
{ani_play "squat_die_front"}
else volume "foot1r"
{ani_play "stand_throw_grenade_1_end"}
else volume "foot2r"
{set "die_sound" 1}
{talk "death_cry"}
{ani_play "squat_die_front"}
}
}
}
}

теперь меня обуервает следующая идея. сделать так, чтобы при опредленном поведении у юнита с тегом "mod-4" загорались ноги... или спина... безумие? нет. импульсный двигатель брони MOD-4

или ещё более дерзкая ЗАТЕЯ
босс получил альтернативную анимацию? так? а если сделать тег "monster" и при ранении заставить обладателя тега делать так: "getover_middle" - это прыжок в перед а теперь прдставьте себе мутанта вооруженного когтями и мечом который при каждом ранении приблизится на 4 шага к стрелку... ЭТО ИДЕЯ ДНЯ!

т.е. чтобы осуществлялся прыжок должно быть два словия:
1) тег monster как условие
2) {ani_play "getover_middle"}
{delay 1
{ani_play "getover_middle" -1}
тока как это вставить и куда??? (чтобы оснавная ветка анимаций не сломалась и осталась прежней?) т.е. чтобы люди дергались, а монстры прыгали на обидчика....
vora_bat
SullenMan
попробуй это
Код
    {on "process_bullet_hit"
        {if hit_side front
            {kill_flags front}
            {if not linked "vehicle"
                {if not dead
                    {if not lying
                        {if volume "body"
                            {if tagged "monster"
                                {if not volume "head"
                                  {ani_play "getover_middle"}
                                 }
                            }                          
                            {ani_play "step_back_after_body-hit"}
                        else volume "foot1r"
                            {ani_play "stand_throw_grenade_1_end"}
                        else volume "foot2r"
                            {ani_play "stand_throw_grenade_1_end"}    
                        }
                    }
                }
            }
SullenMan
вродебы работает НО! пропала анимация от попадания пули в торс...

и я создал бреед для монстра
{breed
{behaviour soldier}
{skin "mut_mad_0"}
{portrait "mut_mad_0"}
{icon "mut_mad_1"}
{icon_priority 4}
{tags "monster"} <<<<<<<<<<<<<<<<<<<<<
{nationality s_mutant}
{perks
Однако, при установке монстра на карту этот тег ему не добавляется... кто-нибудь знает, как сделать так чтобы добавлялся автоматически?

и ещё вопрос(чисто риторическией) - за всю сторию модов ВТВ кто-либо смог написать новую анимацию?
vora_bat
SullenMan
тэги прописываются в def файле

анимацию новую делали WIW команда, и в моде Первая Мировая
SullenMan
что-то не выходит добавить тег(((
{tags "monster"}
{props "monster"}
как именно должно быть вписанно? есть примеры где это показанно?

во мой деф файл "монстра"
{game_entity
{Extension "mut_mad_0.mdl"}
}

КСТАТИ. у меня возник вопрос по тем настройкам с анимацией. а как нужно дописать чтобы соранилась настрйока с прыжками "monster" а вот обладатель тега "hero" ВООБЩЕ не дергался от попадания пули ни водну из частей тела???
EndwaR
Не tags, а tag
SullenMan
{game_entity
{Extension "mut_mad_0.mdl"}
{tag "monster"}
}

эфекта - НОЛЬ... что не так?
vora_bat
SullenMan
судя по всему тэги можно предпрописывать только обьектам антуража
vora_bat
И так, Timosh помог оптимизировать код и сделать запреты на анимацию во время передвижения и положения сидя, за что ему большое спасибо:
(;базовый код не влияет на вызов анимации, но его удаление может привести к проблемам в игре)
Раскрывающийся текст
Код
    {on "process_bullet_hit"
        {spawn "box_vlm" "basis"};спавн хелпера, который пересекается с вольюмом head и проверяет сидит ли юнит
        {if hit_side front;при попадании спереди
            {kill_flags front}
            {if not "hit_anm_forbidden";если в hit_anm_forbidden стоит 0
                {if "standing";при условии что юнит стоит
                    {if not linked "vehicle";при условии что юнит не в машине\технике и т.д.
                        {if not dead;если юнит не мёртв
                            {if not lying;при условии что юнит не лежит
                                {if not swimming;при условии что юнит не плавает
                                    {if volume "body";при условии что попадание в вольюм body
                                        {set "hit_in_front" 1};включение блока с анимацией в разделе hit_sequence    
                                        {delay 0.1 {call "hit_sequence"}};вызов скрипта hit_sequence                                    
                                    else volume "foot1r";если попадание в вольюм foot1r
                                        {set "hit_in_leg" 1};включение блока с анимацией в разделе hit_sequence
                                        {delay 0.1 {call "hit_sequence"}};вызов скрипта hit_sequence            
                                    else volume "foot2r";если попадание в вольюм foot2r
                                        {set "hit_in_leg" 1};включение блока с анимацией в разделе hit_sequence
                                        {delay 0.1 {call "hit_sequence"}};вызов скрипта hit_sequence
                                    }    
                                }
                            }    
                        }
                    }
                }
            }
        else hit_side back;если попадание в заднюю част модели
            {kill_flags back}
            {if not "hit_anm_forbidden";если в hit_anm_forbidden стоит 0
                {if "standing";если юнит не сидит
                    {if not linked "vehicle";если юнит не в технике
                        {if not dead;если юнит живой
                            {if not lying;если юнит не лежит
                                {if not swimming;если юнит не плавает
                                    {set "hit_in_back" 1};включение блока с анимацией в разделе hit_sequence
                                    {delay 0.1 {call "hit_sequence"}};вызов скрипта hit_sequence
                                }
                            }
                        }
                    }
                }
            }
        else                                ;базовый код
            {kill_flags front back}                 ;базовый код
        }
        {if velocity 7        {kill_flags run}                ;базовый код
        else velocity 0.1    {kill_flags go}                    ;базовый код
        }
        {kill_flags piercing}                        ;базовый код
        {if    stuff "rifle"    {kill_flags rifle}}                ;базовый код
        {if    stuff "mgun"    {kill_flags mgun}}    ;базовый код
        {if    stuff "smg"    {kill_flags smg}}                ;базовый код
        {if    stuff "pistol"    {kill_flags pistol}}             ;базовый код

        {health_damage_pierce                     ;базовый код
            {effects    "hit-scream"                    ;базовый код
                        "hit-light" "hit-heavy"        ;базовый код
                        "die" "hit-explosion"        ;базовый код
                        "throw-off" "throw-off-and-die"    ;базовый код
            }
            {explosive_treshold 70}                    ;базовый код
            {table {30 1} {200 2.5} {500 3} {5000 5}}            ;базовый код
        }
        {if volume "head"        ;если попадание в вольюм head
            {if not "hit_anm_forbidden";если в hit_anm_forbidden стоит 0
                {if not linked "vehicle";если не в технике
                    {if "standing";если не сидит
                        {if not dead;если живой
                            {if not lying;если не лежит
                                {if not swimming;если не плавает
                                    {if hit_side front;если попадание в вольюм было спереди
                                        {set "hit_in_head" 1};включение блока с анимацией в разделе hit_sequence
                                        {delay 0.1 {call "hit_sequence"}};вызов скрипта hit_sequence
                                    }
                                }
                            }
                        }
                    }
                }
            }
            {if not volume_armored                    ;базовый код
                {if    stuff "sniper" {die}}            ;базовый код
                {if    stuff "mgun" {die}}            ;базовый код
                {if    stuff "pistol" {die}}                ;базовый код
                {if    stuff "rifle" {die}}                ;базовый код
            else volume_armored                    ;базовый код
                {if    stuff "sniper" {call "throw-off"}}        ;базовый код
                {if    stuff "mgun" {call "throw-off"}}        ;базовый код
                {if    stuff "pistol" {call "throw-off"}}        ;базовый код
                {if    stuff "rifle" {call "throw-off"}}        ;базовый код
            }
            {if rand 0.0    ;эта часть кода запрещает шлемам слетать, можете использовать при желании его
                {take_off "head"
                    {impulse up 5 2 dir 7 3}          
                }
            }
        }
        (mod "mp"                                                    ;базовый код
            {if volume "body"                                                ;базовый код
                {if not volume_armored                                        ;базовый код
                    {if    stuff "pistol"    {if rand 0.08 {call "die"} ("health_damage" c(500))}}            ;базовый код
                    {if    stuff "mgun" {if rand 0.1 {call "die"} ("health_damage" c(500))}}                ;базовый код
                    {if    stuff "rifle" {if rand 0.2 ("health_damage" c(60))}}                    ;базовый код
                }
            }
        )
    }
    {on "hit_sequence"
        {if "hit_in_head"            ;если активирован скрипт {set "hit_in_head" 1}
            {ani_play "stand_after_straight_hit"};анимация удара в голову                
        else "hit_in_front"            ;если активирован скрипт {set "hit_in_front" 1}                
            {ani_play "stand_after_body-hit"};анимация удара в body спереди            
            {delay 0.8 {ani_play "stand_after_body-hit" -1}};проигрывание анимации в обратном порядке                
        else "hit_in_leg"            ;если активирован скрипт {set "hit_in_leg" 1}                
            {ani_play "stand_throw_grenade_1_end"};анимация удара в правую ногу            
        else "hit_in_back"            ;если активирован скрипт {set "hit_in_back" 1}                
            {ani_play "stand_throw_grenade_2_end"};анимация удара в body сзади        
        }
        {set "standing" 0};выключение скрипта
        {set "hit_in_leg" 0}; --II--
        {set "hit_in_head" 0}; --II--    
        {set "hit_in_body" 0}; --II--
        {set "hit_in_front" 0}; --II--
    }


Так же обязательным является прописать в dummy.inc:
Раскрывающийся текст
Код
{"box_vlm"
    {on spawn
        {impulse up 0.02 com}
        {gravity 0.01}
        {delay 0.1
            {delete}
        }
    }
    {on overlap begin
        {with_effector
            {set "standing" 1)
        }
    }
}}


и положить данную папку куда-нибудь в раздел entity
Нажмите для просмотра прикрепленного файла
SullenMan
столь гениально сколь возмутительно ;)
во-первых нет анимаций на левую ногу, а попадание в голову приводит к остановке деятельности головного мозга ИИ, что несовместимо с текущей компанией...

ГГ и босс умирают с одной пули... жуть.

Короче я добавил свою анимацию на попадание в голень и бедра НОГ...
а теперь скажите ПЛИЗЗЗЗЗ, как мне убрать смерть от пули в голову.
иначе компания становится непроходимой)))

кстати я охотно поделюсь своей версией (впрочем vora_bat и сам мог добавить поражения левой ноги и голеней с падением на живот как результат удара по "сухой кости")

в любом случае я затая дыхание жду подсказки. пожалейте моих Глав Героев и их врагов )
vora_bat
SullenMan
ну так я ж и написал, там где "базовый код" - не обязательно использовать. Просто замените на код из human.inc из ресурсов игры. Эти я использую у себя.
Ну а для левой ноги я не нашёл анимации подходящей. Если что-то захотите изменить - я прокомментировал почти все строки кода, разбирайтесь smile.gif
SullenMan
анимация есть. но я не понял как изменить (вот такой вот я тугой на восприятие)))
Раскрывающийся текст
{on "hit_sequence"
{if "hit_in_head"
{set "die_sound" 1}
{talk "death_cry"}
{ani_play "step_back_after_body-hit"};анимация удара в голову
else "hit_in_front"
{ani_play "stand_after_body-hit"};анимация удара в body спереди
{delay 0.3 {ani_play "stand_after_body-hit" -1}}
else "hit_in_leg_r_1"
{ani_play "stand_throw_grenade_1_end"};анимация удара в правую ногу бедро
else "hit_in_leg_r_2"
{set "die_sound" 1}
{talk "death_cry"}
{ani_play "squat_die_front"};анимация удара в правую ногу голень = падение
else "hit_in_leg_l_1"
{ani_play "stand_throw_grenade_2_end"};анимация удара в левую ногу бедро
else "hit_in_leg_l_2"
{set "die_sound" 1}
{talk "death_cry"}
{ani_play "squat_die_front"};анимация удара в левую ногу голень = падение


а теперь подскажи мне ради ИИ несчастного - какую строчку изменить))) для уборки смерти от отстрела головы)
SullenMan
итак. чтобы избежать смерти от удара в голову я заменил call die на call "die_scream"

Раскрывающийся текст
{if not volume_armored
{if stuff "sniper" {call "die_scream"}}
{if stuff "mgun" {call "die_scream"}}
{if stuff "pistol" {call "die_scream"}}
{if stuff "rifle" {call "die_scream"}}
else volume_armored
{if stuff "sniper" {call "throw-off"}}
{if stuff "mgun" {call "throw-off"}}
{if stuff "pistol" {call "throw-off"}}
{if stuff "rifle" {call "throw-off"}}
}
{if rand 0.0
{take_off "head"
{impulse up 5 2 dir 7 3}
}
}
}

смерть стала не столь неизбежной... но затем я обнаружил, что только те виды оружия которые не считаются
{if stuff "sniper"
{if stuff "mgun"
{if stuff "pistol"
{if stuff "rifle"
активируют старт анимации... а от родные игровые - НЕТ ... а ещё похоже, что дистанция до цели влияет на старт и характер анимации например очень часто толькоstand_throw_grenade_1_end проигрывается при выстреле в обе ноги... короче очень много ошибок получается (все таки хотелось бы обсудить все это по Skype) я бы также хотел побеседовать с Timosh - если можешь - отзовись пожалуста.

p.s. я вернул die и все заработало но смерть от пули в голову - вернулась... ОСТРО НУЖДАЮСЬ В ПОМОЩИ так как дейстую на абум. (((
vora_bat
SullenMan
вот, заменил на скрипты штурма:
Раскрывающийся текст
Код
    {on "process_bullet_hit"
        {spawn "box_vlm" "basis"}
        {if hit_side front
            {kill_flags front}
            {if not "hit_anm_forbidden"        ;блок вызова анимации при попадании в торс спереди и правую ногу
                {if "standing"
                    {if not linked "vehicle"
                        {if not dead
                            {if not lying
                                {if not swimming
                                    {if volume "body"
                                        {set "hit_in_front" 1}    
                                        {call "hit_sequence"}                                    
                                    else volume "foot1r"
                                        {set "hit_in_leg_r_1" 1}    
                                        {delay 0.01 {call "hit_sequence"}}
                                    else volume "foot2r"
                                        {set "hit_in_leg_r_2" 1}    
                                        {delay 0.01 {call "hit_sequence"}}
                                    else volume "foot1l"
                                        {set "hit_in_leg_l_1" 1}    
                                        {delay 0.01 {call "hit_sequence"}}
                                    else volume "foot2l"
                                        {set "hit_in_leg_l_2" 1}    
                                        {delay 0.01 {call "hit_sequence"}}
                                    else volume "head"
                                        {set "hit_in_head" 1}
                                        {delay 0.01 {call "hit_sequence"}}            
                                    }    
                                }
                            }    
                        }
                    }
                }
            }
        else hit_side back
            {kill_flags back}
            {if not "hit_anm_forbidden"        ;блок вызова анимации при попадании в спину
                {if "standing"
                    {if not linked "vehicle"
                        {if not dead
                            {if not lying
                                {if not swimming
                                    {set "hit_in_back" 1}
                                    {delay 0.01 {call "hit_sequence"}}
                                }
                            }
                        }
                    }
                }
            }
        else
            {kill_flags front back}
        }
        {if velocity 7        {kill_flags run}
        else velocity 0.1    {kill_flags go}
        }
        {kill_flags piercing}
        {if    stuff "rifle"    {kill_flags rifle}}
        {if    stuff "mgun"    {kill_flags mgun}}
        {if    stuff "smg"    {kill_flags smg}}
        {if    stuff "pistol"    {kill_flags pistol}}

        {health_damage_pierce
            {effects    "hit-scream"
                        "hit-light" "hit-heavy"
                        "die" "hit-explosion"
                        "throw-off" "throw-off-and-die"
            }
            {explosive_treshold 70}
            {table {30 1} {200 2.5} {500 3} {5000 5}}
        }
        {if volume "head"
            {if rand 0.4
                {take_off "head"
                    {impulse up 5 2 dir 7 3}
                }
            }
        }
    }
    {on "hit_sequence"
        {if "hit_in_head"
            {set "die_sound" 1}
            {talk "death_cry"}
            {ani_play "step_back_after_body-hit"}    ;анимация удара в голову
        else "hit_in_front"
            {ani_play "stand_after_body-hit"}    ;анимация удара в body спереди
            {delay 0.3 {ani_play "stand_after_body-hit" -1}}
        else "hit_in_leg_r_1"
            {ani_play "stand_throw_grenade_1_end"}    ;анимация удара в правую ногу бедро
        else "hit_in_leg_r_2"
            {set "die_sound" 1}
            {talk "death_cry"}
            {ani_play "squat_die_front"}        ;анимация удара в правую ногу голень = падение
        else "hit_in_leg_l_1"
            {ani_play "stand_throw_grenade_2_end"}    ;анимация удара в левую ногу бедро
        else "hit_in_leg_l_2"
            {set "die_sound" 1}
            {talk "death_cry"}
            {ani_play "squat_die_front"}        ;анимация удара в левую ногу голень = падение
        else "hit_in_back"
            {ani_play "stand_throw_grenade_2_end"}    ;анимация удара в body спереди сзади    
        }
        {delay 0.001
        {set "standing" 0}
        {set "hit_in_leg_l_1" 0}
        {set "hit_in_leg_l_2" 0}
        {set "hit_in_leg_r_1" 0}
        {set "hit_in_leg_r_2" 0}
        {set "hit_in_head" 0}
        {set "hit_in_body" 0}
        {set "hit_in_front" 0}
        }
    }


с головой и правда какая-то ерунда, юнита то ли клинит, то ли ещё что-то. Контузия, одним словом. Реалистично :D
Может в этом коде будет нормально работать, ещё не проверил

Перемещу ка я все эти сообщения про анимацию в отдельную тему.
SullenMan
благодарю. попробую потестить...
вроде все нормально.

{on "hit_sequence"
{if "hit_in_head"
{set "die_sound" 1}
{talk "death_cry"}
{ani_stop "step_back_after_body-hit"} <======================
{ani_play "step_back_after_body-hit"};анимация удара в голову
добавил строчку и оно вроде перестало контузиться....

попробую ещё добавить новых анимаций для удара в спину... например эту "cover_from_snipe_gun" - реалистично до ужаса...

а если сначала сделать проигрыш анимации "ой-больно" -- "stand_throw_grenade_2_end"
а затем задержку на 1 секунду - и активацию "cover_from_snipe_gun"... получится живая реакция

т.е. солдата ранили. солдат обиделся)))

а ещё мне кажется, что забыты были упоминания об отключении анимаций всех этих при {on die
vora_bat
SullenMan
ах да, если захочешь убрать анимации в движении, то добавь
{set "hit_anm_forbidden" 1}
в {on move on
и
{set "hit_anm_forbidden" 0}
в {on move off
Shlomik
Ребята, нужна помощь. Где прописано, что при попадании пули\взрыва выскакивала полоска жизни? Я бы хотел убрать её. Интересно, что она выскакивает только если юнит находится под управлением игрока. Пытался в human.inc изменять параметры if not user_control, но безрезультатно - полоски жизни всё равно появляются. CF_shakehead_v2.gif Помогите!
vora_bat
Друзья, кто разбирается в inc'ах, давайте покопаемся вместе. Нужно найти и исправить косяк - юниты при попадании "зависают". В прямом смысле, проигрывается анимация попадания, и они попадают в ступор.
Вот сам human.inc
[attachmentid=63656]
Код в блоке {on bullet_hit и в {on "hit_sequence"

з.ы. данный human.inc несёт в себе другие изменения, так что для использования в своих модах лучше просто скопируйте блоки с кодом вызова анимации.
Dudkoff
Разбираюсь в инках средне, но как могу, так и помогу. 1: инк подключился и работает. 2: не исполняются анимации при попадании. 3:условие (on bullet_hit) работает. 4: у меня не исполняется условие иф стэндинг, т.к. оно нигде не прописано нигде. Видимо, оно связано с box_vlm, к-рого у меня также нет. Т.е., нужно еще дать ссыль на него. Кроме того, он должен где-нибудь в box_vlm-инк или дамми-инк связывать свой спавн с условием стэндинг. Таким образом, желательно указать еще эту часть кода. Без данных составляющих ничем помочь не смогу. Хотя быстрый просмотр human.inc вроде ничего не дал.
vora_bat
Вот box_vol, и код из dummy.inc:
Код
{"box_vlm"
    {on spawn
        {impulse up 0.02 com}
        {gravity 0.01}
        {delay 0.1
            {delete}
        }
    }
    {on overlap begin
        {with_effector
            {set "standing" 1)
        }
    }
}}
Dudkoff
У меня они зависают в пространстве в двух случаях: при обмороке (knock_down) и смерти, и то, не каждый раз. При этом иногда (где-то 1 из 30) юниты не выходят из состояния обморока, но остаются способны выделяться, произносить фразы и т.д., как в моде «Искра», Причину этого выявить не удалось. Что касается первых двух случаев, то для них у меня есть довольно расплывчатое обьяснение - видимо, в момент «отключки» или смерти юнит блокируется, в т.ч. и в отношении воспроизведения анимации. Т.е, юнит остается в той позе, которая предусмотрена (пред- или)последним кадром проигрываемой в данный момент анимации. А тут - как выйдет: этой анимацией будет или анимация попадания (около 30% случаев), или анимация смерти/обморока . В иных случаях я не выявил отклонений от нормы. Орфографию подправлю позже, ибо сейчас пишу с телефона.
vora_bat
путём проб и ошибок баг исправился таким кодом:
Код
    {on "hit_sequence"
        {if not dead
        {if "hit_in_head"
            {ani_play "stand_after_straight_hit"}    ;анимация удара в голову
            {call "hit-scream"}
        else "hit_in_front"
            {ani_play "stand_after_body-hit"}    ;анимация удара в body спереди
            {call "hit-scream"}
        else "hit_in_leg"
            {ani_play "stand_throw_grenade_1_end"}    ;анимация удара в правую ногу
            {call "hit-scream"}
        else "hit_in_back"
            {ani_play "stand_throw_grenade_2_end"}    ;анимация удара в body сзади
            {call "hit-scream"}    
        }
        }
        {set "standing" 0}
        {set "hit_in_leg" 0}
        {set "hit_in_head" 0}
        {set "hit_in_body" 0}
        {set "hit_in_front" 0}
        {if not dead
        {delay 1
        {ani_play "stand_idle_1hand"}
        }
        }
    }
Dudkoff
А для избавления от зависания юнита во время обморока достаточно протаггить его на этот период и добавить исключающий блок с этим тэгом аналогично искл. блоку с условием смерти. Ну это тоже не сложно.
vora_bat
Dudkoff
Я вроде везде прописывал отключение блока. Посмотрю.
Dudkoff
Конкретно вот о чём речь (который завис, находится в knock_down. Пока не очнулся, держался именно так):
Изображение
vora_bat
Dudkoff
хм, у меня нормально отключаются. Возможно это связано с тем, что я делал для Штурма в первую очередь, и менял анимации смерти...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.