Перейти к содержанию

Рекомендуемые сообщения

 
 
15 минут назад, Drive сказал:

Размеры которые нужны, они даже не соприкасаются друг с другом) Прохожу в одном, а логика срабатывает от другого

Чудес не бывает, что проверяете то и срабатывает...


Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

@denis2000 я конечно могу что-то недопонимать, но уж я точно знаю где и как у меня расположены рестрикторы, поэтому я и попросил помощи в поиске ошибки в самой логике)

  • Пост еще тот... 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Drive А проверь, у тебя вообще тот спавн в игре стоит? Мб ты что-то двигал, или рестрикторы не так назвал, или что-то исправлял. А потом забыл закинуть исправленный спавн в игру.

Изменено пользователем Prostomod

Мод в разработке - X-7: Эпицентр

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
19 минут назад, Drive сказал:

но уж я точно знаю где и как у меня расположены рестрикторы, поэтому я и попросил помощи в поиске ошибки в самой логике)

В логике ошибки нет (кроме не фатального лишнего минуса перед 5000). Следующий вопрос.

Изменено пользователем denis2000

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Вот собственно и "внутренности"
 

Спойлер

Screenshot_25.png.1b4a119addcc8e46cdbf555cc40e2079.pngScreenshot_26.png.265085339e5dca88f142aac9983e10e8.png

Спойлер

[logic]
active = sr_idle@1

[sr_idle@1]
on_info = {=actor_in_zone(message_vstrechaet_sr) +actor_der_bas} sr_idle@end %=send_tip(podhodi_pogovorim) +actor_podoydi%

[sr_idle@end]

 

Изменено пользователем Drive

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Neptun Спасибо!


Дополнено 43 минуты спустя

Возможно ли написать скриптовую функцию в диалоге, которая чинит все оружие и броню у игрока? Мне куда рыть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Крим 

Спойлер

function repair_actor_items_in_slots()
    local actor = db.actor
    local slot_tab = {2,3,7,12}
    for i = 1, #slot_tab do
        local item_in_slot = actor:item_in_slot(slot_tab)
        if item_in_slot ~= nil then
            item_in_slot:set_condition(1)
        end
    end
end

 

  • Спасибо 1

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Появилась проблема: есть у меня смарт, где по задумке все НПС должны находиться в нём безвылазно, и воевать только в случае, если их атакуют. В онлайне всё нормально, но когда они оказались в оффлайне, то все дружно ушли в сторону вражеского смарта, а так как он располагается в изолированном участке АИ сетки (разделёны IN default рестриктором, сама сетка цельная), то если их перевести в онлайн, то они будут просто кучкой стоять в одном месте. Как такое поведение можно пофиксить? Хотелось бы без создания особой логики в смарте т.к. её почти нет, и все НПС просто ходят/стоят по вейпоинтам или сидят в смарткаверах.

Спойлер

[smart_terrain]
squad_id = 2
max_population = 14
arrive_dist = 15

[exclusive]
yan_vasilchuk_logic = yantar\npc\yan_vasilchuk_logic.ltx ;только для одного НПС есть особая работа, у остальных её нет

Спойлер

[logic@yan_vasilchuk_logic]
suitable = {=check_npc_name(vasilchuk)} true
active = walker@walker_1
prior = 200

[walker@walker_1]
def_state_standing = wait_na
corpse_detection_enabled = false
gather_items_enabled = false
combat_ignore_cond = true
сombat_ignore = combat_ignore
combat_ignore_keep_when_attacked = true
invulnerable = true
path_walk = vasilchuk_walk
path_look = vasilchuk_look
meet = meet

[meet]
no_move = false
abuse = false
allow_break = false
meet_on_talking = false
trade_enable = false
close_snd_distance = 0
close_distance = 0
close_anim = wait_na
close_victim = actor
use = true
 

UPD: я пофиксил это: сквад уникальный, поэтому в squad_descr_локация.ltx к нему я приписал параметр targer_smart = мой смарт.


Дополнено 7 минуты спустя

Другой вопрос: помню в ТЧ видел анимацию зомбированного: стоит у костра, иногда суёт руку туда, после чего отдёргивает и дальше стоит. В ЗП эта анимация сохранилась? И если да, то как она называется?

Изменено пользователем Prostomod

Мод в разработке - X-7: Эпицентр

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

И сверху накину ещё вопрос: я пытаюсь сделать "зомби-стелс" как в Копачах в оригинале. Сделал логику для зомби, расставил вейпоинты и разные рескрикторы (NONE default) на территории. Однако, когда сквад зомби спавниться, то происходит безлоговый вылет (метод активации abort'ов отсюда (тык) я использую). Я смог определить, что вылет происходит немедленно после спавна сквада, и похоже, что проблема связана с логикой работ в смарте т.к. если их закомментировать, то вылета нет. Где я допустил ошибку?

Спойлер

[smart_terrain] ;имя смарта - yan_zavod_zombied_stealth_1_smart
squad_id = 15
max_population = 1
arrive_dist = 100000

[exclusive]
guard_1 = yantar\npc\yan_zavod_zombied_stealth_1_logic.ltx
guard_2 = yantar\npc\yan_zavod_zombied_stealth_1_logic.ltx
guard_3 = yantar\npc\yan_zavod_zombied_stealth_1_logic.ltx
guard_4 = yantar\npc\yan_zavod_zombied_stealth_1_logic.ltx
walker_1 = yantar\npc\yan_zavod_zombied_stealth_1_logic.ltx
walker_2 = yantar\npc\yan_zavod_zombied_stealth_1_logic.ltx

Спойлер

[walker@walker_universal_check]
out_restr = yan_zavod_stealth_out_restrictor
on_actor_dist_le_nvis = 5 | {-yan_zavod_stealth_failed} %+yan_zavod_stealth_failed%
on_sound = actor|WPN_shoot|10000|0.3| {=dist_to_actor_le(15) -yan_zavod_stealth_failed} %+yan_zavod_stealth_failed%
on_sound2 = actor|MST_step|10|0.1| {-yan_zavod_stealth_failed} %+yan_zavod_stealth_failed%
on_sound3 = actor|WPN_empty|15|0.3| {-yan_zavod_stealth_failed} %+yan_zavod_stealth_failed%
on_sound4 = actor|WPN_reload|15|0.3| {-yan_zavod_stealth_failed} %+yan_zavod_stealth_failed%
sound_idle = state
combat_ignore_cond = {!is_enemy_actor -yan_zavod_stealth_failed} true, false
corpse_detection_enabled = false
danger = danger
wounded = wounded
on_hit = hit

[danger]
ignore_distance = 0

[wounded]
hp_state = 0|wounded_heavy@help_heavy
hp_state_see = 0|wounded_heavy@help_heavy
hp_victim = 0|nil
hp_fight = 0|false
hp_cover = 0|false

[hit]
on_info = {is_alive() -yan_zavod_stealth_failed} %+yan_zavod_stealth_failed%

[logic@guard_1]
active = walker@guard_1
suitable = {=npc_community(zombied)} true

[walker@guard_1]:walker@walker_universal_check
path_walk = guard_1_walk
path_look = guard_1_look

[logic@guard_2]
active = walker@guard_2
suitable = {=npc_community(zombied)} true

[walker@guard_2]:walker@walker_universal_check
path_walk = guard_2_walk
path_look = guard_2_look

[logic@guard_3]
active = walker@guard_3
suitable = {=npc_community(zombied)} true

[walker@guard_3]:walker@walker_universal_check
path_walk = guard_3_walk
path_look = guard_3_look

[logic@guard_4]
active = walker@guard_4
suitable = {=npc_community(zombied)} true

[walker@guard_4]:walker@walker_universal_check
path_walk = guard_4_walk
path_look = guard_4_look

[logic@walker_1]
active = walker@walker_1
suitable = {=npc_community(zombied)} true

[walker@walker_1]:walker@walker_universal_check
path_walk = walker_1_walk
path_look = walker_1_look

[logic@walker_2]
active = walker@walker_2
suitable = {=npc_community(zombied)} true

[walker@walker_2]:walker@walker_universal_check
path_walk = walker_2_walk
path_look = walker_2_look

Вейпоинты проверены: все они совпадают по шаблону с "имя_смарта"_"имя_пути_в_логике".


Дополнено 6 минуты спустя

Про безлоговый вылет сам нашёл ответ: он может быть в случае, если в секции path_look (а мб и path_walk) указан путь, которого вообще не существует. Я копировал логику волкеров с гардов, и у волкеров нет пути look, хоть он и прописан в логике.

Короче, банальная невнимательность.

Вопрос про анимацию зомби у костра ещё в силе.

Изменено пользователем Prostomod

Мод в разработке - X-7: Эпицентр

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
2 часа назад, Prostomod сказал:

Вопрос про анимацию зомби у костра ещё в силе.

 

14 часов назад, Prostomod сказал:

Другой вопрос: помню в ТЧ видел анимацию зомбированного: стоит у костра, иногда суёт руку туда, после чего отдёргивает и дальше стоит. В ЗП эта анимация сохранилась? И если да, то как она называется?

Вообще не знаю, но попробуй: trans_zombied

Название анимации отыскал в скриптах. Просмотреть пока не могу. Попробуй может это она.

  • Спасибо 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
2 часа назад, Крим сказал:

может это она.

Да, это она, работает нормально. Спасибо.

  • Спасибо 1

Мод в разработке - X-7: Эпицентр

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Подскажите пожалуйста, в чём ошибка в логике?

[logic]
active = mob_home
on_death = death

[mob_home]
path_home = way_mod_insanity_home
home_min_radius = 15
home_max_radius = 20
aggressive = true

[death]
on_info = %+aaa_mob_insanity_3% %=on_mob_3_kill% 

Работает всё (включая скрипт on_mob_3_kill) кроме выдачи инфопоршня +aaa_mob_insanity_3. Как я понимаю, строчка в [death] неправильно прописана. Но я не могу найти, как правильно ее написать, чтобы обе функции сработали.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Mawrak on_info = %+aaa_mob_insanity_3% %=on_mob_3_kill% - в одни проценты! Вот так:
%+aaa_mob_insanity_3 =on_mob_3_kill%

  • Спасибо 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Здравствуйте! Мы все знаем, что в оригинальной игре мы можем добавлять аксессуары, такие как прицелы или глушители, непосредственно к оружию, но как я могу добавить такие аксессуары, как расширяющий магазин (как в OGSE) или рукоятка? Что мне делать? Это касается двигателя?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
7 минут назад, AC6 сказал:

Это касается двигателя?

Ну да... явно не карбюратора..))


Группа мода в VK
Мод делался и тестировался на железе
i5-11400, 32Гб ОЗУ, Radeon RX580  Разрешение 2560 х 1440.  ВСЕ на максималке

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
6 минут назад, Policai сказал:

Ну да... явно не карбюратора..))

Извините, я не понимаю русский язык, поэтому я использую механический перевод, я имею в виду, такие вещи, как XRAY, которые мы здесь называем двигателями, извините, что принесли вам недоразумение

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

AC6  Да, это движковые правки...


Группа мода в VK
Мод делался и тестировался на железе
i5-11400, 32Гб ОЗУ, Radeon RX580  Разрешение 2560 х 1440.  ВСЕ на максималке

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
4 минуты назад, Policai сказал:

Да, это движковые правки...

Хорошо, скажите пожалуйста, трудно ли редактировать движок? Где я могу этому научиться?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

AC6 гайдов нет. Рекомендуется приступать к правкам движка хотя бы с минимальным знанием C++. Могу посоветовать скачать оригинальное репо сталкера и репо каких-либо других проектов вроде StCOP или OpenX-ray, чтобы посомтреть вообще, как это делать. 

По поводу первого твоего вопроса. Если такое оружие планируется в единичных экземплярах, то можно просто переделать модель (в случае с рукояткой и новые анимации сделать) и отредактировать конфиг. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
5 минут назад, AfterGlow сказал:

Рекомендуется приступать к правкам движка хотя бы с минимальным знанием C++.

Хорошо... Я попробую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Mутант не хочет видеть мою логику. С обычными нпс всё всегда нормально, а мутанта делаю аналогично, но логику он не видит. 

Спойлер

[smart_terrain];agr_kontrik_terrain
squad_id = 13
max_population = 1

[exclusive]
agr_controller_2part_normal = agroprom\quest_mutants_logic\agr_controller_2part_normal.ltx

Спойлер

[logic@agr_controller_2part_normal]
active = mob_walker@stay
suitable = {=check_npc_name(agr_controller_2part_normal)} true
monster_job = true

[mob_walker@stay]
path_walk = kontrik_tonnel_stay
path_look = kontrik_tonnel_look
actor_friendly = true
invulnerable = true
aggressive = false

Спойлер

[agr_controller_2part_normal]:m_controller_normal
$spawn                     = "respawn\agr_controller_2part_normal"
story_id = agr_controller_2part_normal

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Boomer Что-то не вижу чтобы он был в скваде. Также стоит указать prior = . По умолчанию приоритет равен 45 для эксклюзивов. Лучше его сделать больше!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

 

6 минут назад, Mass сказал:

Что-то не вижу чтобы он был в скваде. 

Спойлер

[agr_kontrik_terrain_kontroler_2part_squad]:online_offline_group
faction = monster
npc = agr_controller_2part_normal
target_smart = agr_kontrik_terrain
spawn_point = agr_kontrik_terrain_kontrik_tonnel_stay

Он в скваде.

Изменено пользователем Boomer

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
В 23.06.2023 в 00:25, SoDizzari сказал:

Как сделать чтобы НПС после появления лежал раненным на земле?

Лучше сделать ему сразу здоровье на 0.2! Можете сделать через схему remark и через диалог по инфопоршню поменять нпс'у анимацию


Дополнено 9 минуты спустя
В 22.06.2023 в 23:42, Prostomod сказал:

victim = 30 | yan_expedition_dolg_1_copy ;стори_ид персонажа, на которого должен смотреть собеседник
victim_wpn = 30 | yan_expedition_dolg_1_copy

Формат настроек изменился в ЗП! Смотрите логику.Там появились параметры close_victim и far_victim вместо victim


Дополнено 13 минуты спустя
13 минут назад, Boomer сказал:

Он в скваде.

Тогда последний вариант, опечатка при назначении файла с логикой. Проверьте правильность пути к папке и самого файла


Дополнено 19 минуты спустя
В 23.06.2023 в 21:14, Drive сказал:

on_game_timer

Сработает через определенный интервал в 60 сек игрового времени. Если вы уже пересекли рестриктор тогда и время  пришло тогда по идее покажется снова не только в другом рестрикторе. при on_game_timer 10 == 1 сек

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Boomer

Проще спавнить контролера сквадом через симуляцию или через функцию =create_squad(имя_сквада:имя_смарта), вызываемую через рестриктор.

И в логике написать так:
suitable = {=target_squad_name(имя сквада)} true

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу