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

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

 
 
11 часов назад, ТониМойша сказал:

Проблема к сожалению в том, что пока нпс идут в патруле на них периодически нападают.

Проблема в том, что ваши НПС не под этой логикой! А под дефолтной (см. gulag_general.script).

Я вижу сразу три проблемы с этой логикой:
1. suitable не вернет true (проверяете имя НПС, а подставляете для проверки имя сквада)
2. Некорректный параметр path_walk в секции patrol (имя пути path_walk не должно начинаться с имени смарта - это подставляется автоматом скриптом).
3. Зарезервированное имя пути для дефолтной логики.


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

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


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

FalkineIsaku Что-то не находит он

 

 

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

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


Ссылка на сообщение
Поделиться на другие сайты
 
14 часов назад, ТониМойша сказал:

нпс идут в патруле на них периодически нападают. И они выходят из патруля, воюют, потом лутают трупы, а потом снова входят в логику патруля, где у меня gather_items_enabled и остальное прописано. Что можно придумать, чтобы они после перестрелки опять просто на патруль уходили, минуя логику "жмякать жмуров свежих".

ТониМойша Создать свой новый скрипт в gamesata\scripts или внедрить в уже существующий свой же скрипт. Там:

eva_alife_forbid = {
  section1 = true,
  ...
  story_id1 = true,
  ...
}
eva_native_loot = xr_corpse_detection.evaluator_corpse.evaluate
xr_corpse_detection.evaluator_corpse.evaluate = function(self, ...)
  local secta = self.object:section()
  if eva_alife_forbid[secta] then
    return false
  end
  secta = get_object_story_id(self.object)
  if eva_alife_forbid[secta] then
    return false
  end
  return eva_native_loot(self, ...)
end
; повторить трюк с инжекцией эвалуатора для xr_gather_items
; повторить трюк с инжекцией эвалуатора для xr_help_wounded
; повторить трюк с инжекцией эвалуатора для ...

В словарь eva_alife_forbid вбиваете уникальные секции своих неписей и/или их story_id. Опционально для прочих поведенческих схем: смотрите комментарий.

Disclaimer: не тестировано, просто так примерно делают нынче в модах.

  • Жму руку 1

Я логи в баню удалил, а вот за за рейдеры – не помню!

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


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

А как можно вызвать функцию через логику?


Добавлено: разобрался

Изменено пользователем ТониМойша

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


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

ТониМойша В xr_effects пишите нужную вам функцию. После этого в логике пишите: %=имя_функции%

  • Жму руку 1

𝐒𝐭𝐨𝐩 𝐡𝐢𝐭𝐭𝐢𝐧𝐠 𝐲𝐨𝐮𝐫𝐬𝐞𝐥𝐟, 𝐬𝐭𝐨𝐩 𝐡𝐢𝐭𝐭𝐢𝐧𝐠 𝐲𝐨𝐮𝐫…𝐬𝐭𝐨𝐩 𝐡𝐢𝐭𝐭𝐢𝐧𝐠 𝐲𝐨𝐮𝐫𝐬𝐞𝐥𝐟

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


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

ТониМойша В xr_effects пишите нужную вам функцию. После этого в логике пишите: %=имя_функции%

Спойлер

[logic]
active = sr_idle@wait
[sr_idle@wait]
on_info = sr_idle@tip {+kill_monolith_start_quest_end}
[sr_idle@tip]
on_game_timer = 50|sr_idle@end  %=stancia_2_kill_monolith_start_pda%
[sr_idle@end]


function stancia_2_kill_monolith_start_pda()                     
                        news_manager.send_tip(db.actor, "stancia_2_kill_monolith_start_pda_text", nil, "csky", 20000, nil)
end

 

Подскажите, а почему может не работать?

kill_monolith_start_quest_end = это инфопоршень, который даётся по окончанию задания. Задание кончается по этому инфопоршню, но вот сообщение на экране, что вызывается через функцию - не появляется.

 

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


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

ТониМойша Попробуйте написать так:

[logic]
active = sr_idle@tip

[sr_idle@tip]
on_game_timer = 50 | {+kill_monolith_start_quest_end} %=stancia_2_kill_monolith_start_pda% sr_idle@end 

[sr_idle@end]

 

  • Жму руку 1

𝐒𝐭𝐨𝐩 𝐡𝐢𝐭𝐭𝐢𝐧𝐠 𝐲𝐨𝐮𝐫𝐬𝐞𝐥𝐟, 𝐬𝐭𝐨𝐩 𝐡𝐢𝐭𝐭𝐢𝐧𝐠 𝐲𝐨𝐮𝐫…𝐬𝐭𝐨𝐩 𝐡𝐢𝐭𝐭𝐢𝐧𝐠 𝐲𝐨𝐮𝐫𝐬𝐞𝐥𝐟

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


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

FalkineIsaku Почему-то всё равно не работает, хмм. Я пытался логику подключить через рестриктор, может где то в этом собака зарыта? Надо ли рестриктор прописывать где-то? Или он автоматом работает при начале новой игры?

Добавлено: не логику, а функцию

 

Спойлер

34.thumb.PNG.f24848a83d561b455f1727dd0bf33ed2.PNG

 

Изменено пользователем ТониМойша

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


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

FalkineIsaku В предложенной схеме таймер смысла не имеет!


ТониМойша Одно из множества: или рестриктора нет, или логика неверно назначена, или инфопорция не выдана.

И да зачем  городить новую функцию stancia_2_kill_monolith_start_pda() если есть send_tip()!?

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

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

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


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

denis2000 переписал под send_tip - и так не работает. Рестриктор есть, инфопорция выдается, так как я использую инфопорцию из окончания квеста, который работает, а логика теперь такая:

Спойлер

[logic]
active = sr_idle@wait

[sr_idle@wait]
on_game_timer = 50|{+kill_monolith_start_quest_end} sr_idle@end %=send_tip (stancia_2_kill_monolith_start_pda_text)%

[sr_idle@end]

Ума не приложу, что ещё может быть не так

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


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

Добрый вечер, я думаю это достаточно глупый вопрос, но как сделать так, чтобы после выполнения одного квеста выдавался другой?

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


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

Ума не приложу

stancia_2_kill_monolith_start_pda_text существует такой id? Возможно опечатка

D37a8b По кондлисту

on_complete - действия, которые выполняются, если задание выполнено
on_reversed - действия, которые выполняются, если задание провалено

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


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

Ума не приложу, что ещё может быть не так

Логика рестриктора не активна. Путь к логике неверно прописан. В кастом дата рестриктора после CFG должен быть знак равенства.

 

Изменено пользователем makdm
  • Жму руку 1

Терпение... И все получится.

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


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

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

Блин, а как я равно увидел, нужно к окулисту...

  • Смех 1

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

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


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

Безлоговый вылет при переходе на другую локацию. Куда рыть, чтобы понять, в чем проблема?

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


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

Крим вылет присутствует на всех рендерах? У конкретной локи, или просто всегда при переходе? Стабильный (т. е. на локацию вообще невозможно перейти)? Или грузит с автосейва? Откуда взята локация, из Dollchan 8?

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

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


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

Откуда взята локация, из Dollchan 8?

Да.

1 минуту назад, Mawrak сказал:

вылет присутствует на всех рендерах?

Проверял на динамике и на статике - на обеих вылет происходит.

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


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

Крим попробуй запустить уровень без спавна.

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


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

Стабильный (т. е. на локацию вообще невозможно перейти)?

50\50. Переход на другую локацию срабатывает , но вот переход обратно, на изначальную локацию вылетает без лога.

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


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

Крим может что-то с переходом не так, что-то не правильно настроено?

Если кините эти две локи мне (желательно с актуальными level.spawn-ами), я могу попробовать поискать причину.

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


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

Народ! Чем отличается логика пси собаки от других мутов?????
Вторые сутки бьюсь, работают все кроме пси собак, вылет без лога.
И вылет именно на переходе с секции mob_walker на секцию mob_home
Если делаю активной сразу  mob_home, вылет так же без лога сразу при загрузке игры....

Если в squad_descr_локация, меняю пси собаку на обычную, то работает без проблем...

Спойлер

[logic@mil_vivc2_psy_dog_1]
suitable = {=is_monster_psy_dog} true  
active = mob_walker@mil_vivc2_psy_dog_1
monster_job = true
prior = 100

[mob_walker@mil_vivc2_psy_dog_1]
path_walk = psy_dog_1_walk
path_look = psy_dog_1_look
npc_friendly = true
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
on_info = {+viv_door_kletka2_open} mob_home@mil_vivc2_psy_dog_1

[mob_home@mil_vivc2_psy_dog_1]
path_home = psy_dog_1_home
home_min_radius = 30
home_max_radius = 60
aggressive = false
combat_ignore_cond = {!dist_to_actor_le(70)} true, false


 

 

Сама моделька или конфиги пси собаки отпадают, их нет в геймдате, они цепляются из ресурсов оригинала. На других локах, без проблем работают с обычгной логикой, но на поверхности.

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

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

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


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

Policai возможно дело именно в пси-собаках, потому что это другой класс монстров по сравнения с обычными собаками и даже псевдами, например у них есть аура как у контроллера, а раз другой класс, то и движок при работе с этим классом монстров может как то иначе обрабатывать логику и например в mob_home ,как вариант, должны быть ещё какие-то обязательные параметры указаны, именно для этого класса монстров, вылет то движковый.

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


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

CiberZold  так понятно что движковый, поэтому и спросил про разницу в логиках. Простые задачи я обычно решаю сам,  с мучениями, пробой всевозможных вариантов, но решаю... А тут для меня возникла непреодолимая сложность, перепробовал мильён всевозможных вариантов за двое суток... Но!!!  на других локациях, пси собаки работают на стандартной логике  mob_home, как у других неписей, разница только в том, что там это НА террейне, а тут подземелье... Понимаю что что то с аурой, но что именно????
Может под землёй её надо спавнить как НПС, прописывать ещё в куче файлов??? Поэтому и спросил..((

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

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

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


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

Может под землёй её надо спавнить как НПС, прописывать ещё в куче файлов???

это вряд ли, я на видео заметил, что используется не оригинальный ЗП, а движок Мортана, спроси у него может он там чего нахимичил с пси-собаками и подземками.

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


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

CiberZold  Кириллу я написал, появится ответит наверно. Пока просто сам пытаюсь понять суть проблемы... Дело в том, что правленые движки работают шустрее, имено из за изменений некоторых параметров. К примеру вылет  на правленом, а на оригинале запускается и работает, но тот косяк из за которого не запускался правленый вылезет потом на оригинале, в том месте где он непосредственно имеется. 
Для примера, меняю название вейпоинта спавна, правленый вылетает сразу при запуске. а оригинал запускается и работает, НО!  вылетает когда непосредственно подходишь к неверному вейпоинту. А вот в данном случае, не могу понять проблему...((( На оригинале работает это место без проблем.
На другом ярусе у меня в колбах есть контролёр, он работает нормально, а у него ведь тоже аура...


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

Народ! А может кто нибудь разьяснить строку suitable = Мне почему то кажется что оно как то завязано с моей проблемой...

[logic@мутант]
suitable = 
active = mob_walker@мутант
monster_job = true
prior = 100

Просто  у меня почему то некоторые мутанты читают логику в зависисмоти от строки suitable = 
К примеру снорк, если закоментировать строку 
;--suitable = {=is_monster_snork} true 
То логика не работает, снорк бегает сразу сам по себе... А с этой строкой строго по логике.
А кровосос наоборот, если есть строка
suitable = {=is_monster_bloodsucker} true 
То он бегает сразу сам по себе,  но если закоментировать эту строку, то он строго по логике работает...
Как я понял эту строку, это то что данную работу может занять только этот мутант. Но к слову в скрипте 
xr_conditions,  где прописаны эти функции, нет функций для  химеры и псевдыша. Для кровососа есть, но не работает, он просто тупо перестаёт читать логику...

 

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

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

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


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

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

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

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

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

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

Войти

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

Войти

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