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

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

 

1491319448148138184.png

Тема посвящена моддингу на платформе Зов Чернобыля.

 

Правила темы:

  • Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть.
  • Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
  • Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
  • Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться.
  • Так же, если вы модифицируете готовый мод, обязательно указывайте какой. Некоторые модификации очень сильно отличаются от Call of Chernobyl. 
  • Лайк 4
  • Хабар 1

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


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

baraholschik игра просто сканирует все привязанные к данным рукам омф и воспроизводит найденную анимацию.

В остальном всё верно.

  • Лайк 1

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


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

У меня два вопроса касаемо мутантов и A life

Первый: как добавить новых мутантов в симуляцию (есть и те, что добавлены в конфиги стандартных мутантов, и те, что добавлены отдельными файлами)? Достаточно ли просто вписать секции с этими мутантами в смарттеррейны (по адресу  configs/script/ имя локации/имя смарта) по аналогии со стандартными мутантами? Или нужно  allspawn  расковыривать? 

Второй: я установил trx a life revamp 

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

Это если что  COM.  Помнится, в чистом coc  владельцы смартов менялись довольно непредсказуемо, а в com   одни и те же группировки/мутанты контролируют одни и те же точки. Это стало как то раздражать

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


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

Добрый день. Решил уменьшить радиус обнаружения НПС убийств игроком членов их фракции. После многих экспериментов выяснилось, что уровень потери отношений задается через параметры goodwill в game_relations.ltx. А вот сам код, отвечающий за изменение, судя по всему, прячется в движке, так как в скриптах я ничего подобного не нашел.

Поэтому я решил перевести данную функцию в вид скрипта. Я изменил все параметры goodwill на нули, а в xr_danger.script в функции local function npc_on_hit_callback(npc,amount,local_direction,who,bone_index) прописал следующее:

    if (who:id() == db.actor:id()) then
        npc:set_relation(game_object.enemy,who)
    end

Этот код делает любого НПС, по которому выстрелит игрок, врагом для игрока. Но дальше встает вопрос - как сделать так, чтобы НПС той же фракции, что и убитый (edit: или атакованный) игроком персонаж, находящиеся на определенном расстоянии от игрока (скажем, 10 метров), тоже становились врагами. 

Я к сожалению не то, чтобы очень хорошо разбираюсь в скриптах, так что в данном случае даже не знаю, с чего начать. Буду благодарен любой помощи.

Платформа Call of Misery.

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

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


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

Mawrak таблицу db.OnlineStalkers перебирать и проверять расстояние и группировку (не знаю, задействована ли она в коме, если нет - смотри другую таблицу со сталкерами)

  • Спасибо 1

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


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

С добавлением мутантов в симуляцию я вроде разобрался
Но появился попутный вопрос
Я добавил много новых мутантов в игру, и среди них есть человекоподобные мутанты, которые каким то образом привязаны например к тушканам. Звуки не проблема - если у мутанта нет своих звуков, я могу прописать звуки любых других мутантов. А вот с лутом сложнее, так как с этих монстров соответственно падает лут тот же, что и с тушканов. Ни у одного нового мутанта, да и у стандартных монстров тоже, я секций с лутом не нашёл. Например, с пси-собак дропается мозг контроллёра, а ни одной строчки, отсылающей к контроллёру в конфиге собак нет.  Я пытался заменить все упоминания тушканов в конфиге новых монстров на отсылки к конфигу зомби. Но пошли вылеты по отсутствию необходимых анимаций. В общем, мне нужно найти ту конкретную строчку, что отвечает за тип лута с мутантов. Есть мысли?
Call of misery

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


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

baraholschik список выпадающего лута в configs\plugins\itms_manager.ltx. Но список у конкретного мутанта сопоставляется с его clsid (таблица clsid_to_section в itms_manager.script ). Или под секции эту таблицу придется переделать или новые clsid регать

  • Мастер! 1

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


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

M31 А новые clsid как зарегистрировать? Просто вписать в ту же таблицу в скрипте по аналогии? 

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


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

baraholschik в class_registrator.script, тут и ниже можно почитать, что там прописано https://www.amk-team.ru/forum/topic/6185-skriptovanie/?do=findComment&comment=1124952

НО сначала надо проверить, не прописаны ли где-то в скриптах clsid сразу как числа, а не по-нормальному clsid.что-то (например, if obj:clsid() == 53, а не if obj:clsid() == clsid.bloodsucker_s ) (обычно так не делают, но в модах такая упоротость попадалась). Не знаю как в коке, но в оригиналах если добавить новый clsid - числа все собьются, и прописанные в скриптах числа перестанут соответствовать полученному через clsid.что-то. Поэтому, на всякий случай надо смотреть все скрипты и при необходимости переделывать или все-таки переделать части тела на секции (это, как по мне, лучше, особенно если много разновидностей мутантов и больше нигде их clsidы не будут использоваться)

  • Мастер! 1

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


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

M31 походу рановато мне в это соваться))
Что имеется в виду под "переделать части тела на секции" ? Коль проблема только с лутом тушканчиков, может просто запретить игроку лутать непосредственно тушканов? А в секцию, где лут тушканчиков прописан, вписать тот лут, который будет выглядеть к месту  - лут с зомбаков например. Должно проканать, только как запретить лутать самих тушканов?

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


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

Что имеется в виду под "переделать части тела на секции" ?

Чтобы было не [clsid.bloodsucker_s]     = "bloodsucker",, а [секция_мутанта]     = "bloodsucker", но там дальше надо функцию переделывать, не только таблицу

54 минуты назад, baraholschik сказал:

Должно проканать, только как запретить лутать самих тушканов?

Если только с одним мутантом так, то можно и так. Для нескольких лучше переделывать. Можно попробовать в itms_manager.script в функции monster_on_actor_use_callback(obj,who) в самое начало добавить

if obj:section() == "секция " then return end

Или если секция не одна и есть общее слово во всех секциях тушканчиков (и его нету у других)

if string.find(obj:section(), "общее_слово") then return end

Изменено пользователем M31
  • Мастер! 1

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


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

M31 ну проще будет да, ограничить лутание одного мутанта. В скриптах я еще не ковырялся, но попробую, спасибо!

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


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

baraholschik не забудь с заданий тушканячьи части убрать

  • Лайк 1

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


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

M31 Вести с полей
То, что вы предложили, работает, но не так, как  я планировал. Ваш кусочек скрипта блокирует возможность обыскивать всех мутантов, у которых лут тушканчиков, а не только самих тушканчиков.
Надо действовать иначе  - надо отвязать новых мутантов от тушканчиков, и привязать например к зомби. Проблема в том, что я не вижу вообще  параллелей между конфигами новых монстров.
Например, есть два новых монстра
В конфиге первого базовая секция отсылает к тушканчикам, community - tushkano
В конфиге второго базовая секция отсылает к monster_base, community - zombie
И оба этих монстра считаются тушканчиками почему то
Какой еще параметр может отвечать за классификацию монстра?
Можно ли вообще менять эту привязку, если она изначально задумана создателем мутанта? 
 

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


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

baraholschik как называются секции у нетушканчиков и что за секции/общее слово в отсекающем коде?

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


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

M31 m_muskul_base и m_jugger_e
а что такое отсекающий код, я не знаю даже

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


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

baraholschik что в if obj:section() == "секция " then return end или if string.find(obj:section(), "общее_слово") then return end

  • Мастер! 1

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


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

M31 [clsid.tushkano_s]
Поиск по второй фразе ничего не дал. Видимо, нет таких трочек
Ладно, товарищ, отбой. Я просто придумаю универсальный трофей для тушканов и двух этих монстров. Это будет проще всего
Спасибо за помощь!

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

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


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

baraholschik не clsid надо, а, например  if string.find(obj:section(), "tushkano") then return end. И не искать надо, а вписать в начало функции monster_on_actor_use_callback(obj,who)

  • Мастер! 1

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


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

M31 Ошибку понял, исправил. Но теперь тушканы и связанные с ними монстры снова лутаются. Правильно вписал? 
function monster_on_actor_use_callback(obj,who)
    if obj:section() == "tushkano" then 
                return 
        end

Исправил еще раз, теперь так:
function monster_on_actor_use_callback(obj,who)
    if string.find(obj:section(), "tushkano") then
                return 
        end
Тушканы не лутаются, но новые монстры лутаются! Урааааа! Я то уже сдаться решил. Спасибо, вы мне очень помогли

Изменено пользователем baraholschik
Проблема решена

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


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

baraholschik  if obj:section() == "tushkano" тут должна быть точная секция, например, "tushkano_normal". Это подходит если у мутанта только одна секция (либо плодить if obj:section() == .. на кучу секций, но это не очень). string.find используется если надо найти какое-то определенное слово/часть слова в строке. Без разницы, tushkano_normal, m_tushkano_e и т.д, везде где есть tushkano отсеется. Но если у какого-то тушкана в секции не будет tushkano - он будет лутаться, поэтому у всех в секции должно быть одно слово, по которому можно так отсеять

Изменено пользователем M31
  • Мастер! 1

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


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

M31 вот это очень полезная инфа. Я сам бы не разобрался с этим, пока составление скриптов бы не изучил

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


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

Какой еще параметр может отвечать за классификацию монстра?
Можно ли вообще менять эту привязку, если она изначально задумана создателем мутанта? 

самый главный параметр отвечающий за классификацию монстра это его класс, он говорит движку как работать с этим объектом, какое АИ использовать, у каждого класса свои требования к параметрам, анимациям и пр., тот кто делал монстров он это учитывал и просто так класс монстра не поменять, также как создать по настоящему нового монстра без правки движка тоже невозможно, но можно попробовать создать фейковый класс, зарегистрировать в class_registrator.script:

cs_register	(object_factory, "CTushkano",  "se_monster.se_monster",	"SM_TUSHK", "tushkano_s")

где вместо "SM_TUSHK",  "tushkano_s" написать свои значения нового класса, по сути это тот же тушкан для игры, но тогда можно будет их разделить в скриптах, добавить новый класс в таблицу по аналогии, и разделить их таким образом, один останется тушкан со своим лутом, вторым будут новые монстры, но тогда всем новым монстрам надо править конфиги, то есть править их секции, всё как у тушканов, но прописать им новый созданный класс.

  • Мастер! 1

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


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

CiberZold понял, это будет очень непросто. Пока обойдусь обходными путями. Но инфу сохраню, спасибо

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


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

Тут еще вопрос возник
В Call of misery, находясь в режиме demo_record, нажал F11
На экране на несколько секунд появилась "спутниковая" карта текущей локации, затем резко изменилась погода - стало темно, небо стало очень пасмурным и мрачным, а на фоне заиграли звуки из лабораторий. Тучи свинцовые, прям как в тч, я такого неба в Atmosfear не видел. Через несколько минут всё вернулось к исходному виду. Подтянув цветокор, играть очень даже можно . Кто знает, что это за фича такая?

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


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

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

  • Мастер! 1

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


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

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

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

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

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

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

Войти

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

Войти

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

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