Русскоязычный форум поклонников игры «Они» от Bungie
Мih@ написал(а):
Smith, скриптом... смотря по ситуации... самое простое - периодическое обновление рекурсивной функцией... всё те же
ai2_attack
между нужными чарами,ai2_movetoflag
для сбора народа в кучку, и т.п.
С флагами не получается, я прописываю:
func void arbalet(void)
{
chr_wait_health Griffin 0
chr_location 1 -395.204987 1445.000000 -2941.419941
chr_set_class 5 TCTF_swat_blackops_1
chr_changeteam C_Sr19 TCTF
chr_set_health C_Sr19 210
chr_giveweapon C_Sr19 w3_phr
ai2_movetoflag C_Sr19 516
ai2_setmovementmode C_Sr19 run
}
бробовал и так: ai2_movetoflag 516 C_Sr19
а бот идти к нему не хочет (
Оффлайн
Smith написал(а):
С флагами не получается
"не получается"... ну во-первых, что эта функция творит? почему в chr_location номер 1, а в chr_set_class номер 5? почему сначала устанавливается chr_location, а потом всё остальное (то бишь, уже "в поле зрения")?
с движением к флагу проблема очень простая. ты просто не даёшь ему очухаться. =) нужно хотя бы:
... chr_giveweapon C_Sr19 w3_phr
ai2_setmovementmode C_Sr19 run
sleep 15
ai2_movetoflag C_Sr19 516
}
Smith написал(а):
ai2_movetoflag 516 C_Sr19
пыщъ.
Оффлайн
Получилось! Но вот например в 2 уровне написал функцию:
func void three(void)
{
chr_wait_health ambush_striker_1 0
chr_wait_health ambush_striker_2 0
chr_wait_health ambush_striker_3 0
sleep 60
ai2_movetoflag patrol_striker_3 0029
ai2_setmovementmode patrol_striker_3 run
}
Включил её (fork three) всё сделал как обычно!
Бот Не побежал Мне нужно чтобы после смерти 3 страйкеров он побежал к флагу... (Препятствий к флагу нет)
Оффлайн
Smith, дебугай... консоль ведь есть, всё есть... dprint
/dmsg
в каждом сомнительном и не очень месте, проверка с 1 страйкером, проверка зависимости от порядка убивания (когда 3 умирает первым и становится хладным трупом, и chr_wait_health уже проходит мимо)...
Оффлайн
Вот функция:
func void three(void)
{
sleep 60
ai2_movetoflag patrol_striker_3 0029
ai2_setmovementmode patrol_striker_3 run
}
эту функцию я запускаю в тот момент когда умирают все троя синдиката:
unc void all_music_counters(void)
{
dprint ELVIS_HAS_LEFT_THE_BUILDING
fork three
sound_music_stop mus_ambgrv1b
sound_music_stop mus_fiteb_hd
sound_music_stop atm_low_perc1
sound_music_stop atm_cl12
sound_music_stop atm_cl11
sound_music_stop mus_sv
dprint ELVIS_HAS_LEFT_THE_BUILDING - является началом новой программы после смерти 3 чаров, так почему ничё не работает??
Оффлайн
Smith написал(а):
НЕт стоит как истукан!)
значит, или ему явно не хватает сабжа, или у него какие-то проблемы с моветофлагом. если напрямую вбитое в консоль ai2_movetoflag patrol_striker_3 29
, значит, что-то ему всё-таки мешает...
Оффлайн
Мih@ написал(а):
Smith написал(а):
НЕт стоит как истукан!)
значит, или ему явно не хватает сабжа, или у него какие-то проблемы с моветофлагом. если напрямую вбитое в консоль
ai2_movetoflag patrol_striker_3 29
, значит, что-то ему всё-таки мешает...
Я раз 10 позапускал 1 сохран., из 10 раз он все 2 раза бегал к флагу... НЕпонимаю от чего зависит... Странно
Иногда он ещё подбигает к тому месту где был телепортирован!
Отредактировал(а) Smith (15-07-2009 15:51:12)
Оффлайн
Мih@ написал(а):
dprint
после каждогоchr_wait_health
в помощь... смотри, какие из них дожидаются... в зависимости от порядка и скорости смерти тех троих...
А этот способ?? Почему он не прокатил? Всё логично же сделано Может дело в персонаже??
Оффлайн
Smith написал(а):
Мih@ написал(а):
dprint
после каждогоchr_wait_health
в помощь... смотри, какие из них дожидаются... в зависимости от порядка и скорости смерти тех троих...А этот способ?? Почему он не прокатил? Всё логично же сделано Может дело в персонаже??
НЕ чё не выходит Наверное что-то не то делаю((
Оффлайн
Smith, не знаю, как Михе, а мне влом гадать на кофейной гуще. У меня есть подозрения, но я не вижу смысла о них распостраняться, не имея представления о том, что собственно происходит. Если хочешь, чтобы я разобрался - выложи скрипт целиком, но при этом попробуй урезать его до минимальной версии, где проблема налицо.
Оффлайн
geyser написал(а):
Smith, не знаю, как Михе, а мне влом гадать на кофейной гуще. У меня есть подозрения, но я не вижу смысла о них распостраняться, не имея представления о том, что собственно происходит. Если хочешь, чтобы я разобрался - выложи скрипт целиком, но при этом попробуй урезать его до минимальной версии, где проблема налицо.
Я же уже расписал... Создал функцию и поставил её сюда:
unc void all_music_counters(void)
{
dprint ELVIS_HAS_LEFT_THE_BUILDING
fork three
sound_music_stop mus_ambgrv1b
sound_music_stop mus_fiteb_hd
sound_music_stop atm_low_perc1
sound_music_stop atm_cl12
sound_music_stop atm_cl11
sound_music_stop mus_sv
}
Сама функция:
func void three(void)
{
sleep 60
ai2_movetoflag patrol_striker_3 7009
ai2_setmovementmode patrol_striker_3 run
}
Должна была сработать((
В другие места писал и не помогло.
Оффлайн
Я сказал Выложи Скрипт Целиком, могу ещё раз повторить.
Убрать из скрипта всё лишнее я тебя уже не прошу - шли так.
Главное - поподробнее опиши, что ты ожидаешь от скрипта...
Оффлайн
geyser написал(а):
Я сказал Выложи Скрипт Целиком, могу ещё раз повторить.
Убрать из скрипта всё лишнее я тебя уже не прошу - шли так.
Главное - поподробнее опиши, что ты ожидаешь от скрипта...
Я ожидаю, только того, чтобы бот пошёл на флаг после смерти троих страйкеров, и всё)
Оффлайн
Smith
http://translate.google.com/translate?j ... ry_state0=
Вот раскопал по теме!
Оффлайн
Мih@ написал(а):
manplant_level_logic.bsl написал(а):
dprint fork three
мдя...
Notepad написал(а):
Cannot find "three"
мдя...
dprint fork three
не это я удалил "bprint". Всё равно не работает, это я написал от отчаяния
vitya спасибо) Интересно)
Оффлайн