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

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

 
 

Привет всем

Подскажите в каком файле anomaly мод стандартные текстуры аномалий?

Играю в зборку хочу заменить кисель на стандарт

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


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

denis2000 я увеличил таймеры до 20 - всё равно не переключает. Пробовал даже избавиться от таймеров (заменил на простое on_info без условий) - всё равно не переключает дальше 1 сообщения. 

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

  логика рестриктора сейчас (Показать контент)

Логика НПС не менялась.


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

Всё, я нашёл у себя ошибку - логика останавливалась т.к. в send_tip передавался неверный story_id.
Тогда вопрос: а как в стриптах мне делать проверку на валидность story_id (story_id существует - true, иначе false)? Хочу дополнительный abort воткнуть в скрипт отправки сообщения.

И да, всё ещё хочу узнать: есть ли лимит на количество состояний в логике?


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

И ещё вопрос: а можно как-то реанимировать оригинальный printf? Я раскомментировал тело функции в _g.script, но функция всё-равно не работает. Видел способ логгирования через преобразование сообщения в команду консоли и попыткой её выполнения, но этот способ очень нестабилен (может вылететь при неправильных параметрах, да ещё и лога не будет).
Если это на уровне движка выключено - мб есть где правка на его включение?

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

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

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


Ссылка на сообщение
Поделиться на другие сайты
 
  В 20.06.2023 в 12:06, Prostomod сказал:

логика останавливалась т.к. в send_tip передавался неверный story_id

Бывает...

  В 20.06.2023 в 12:06, Prostomod сказал:

есть ли лимит на количество состояний в логике?

Нет. Логика может содержать очень большое число секций.

  В 20.06.2023 в 12:06, Prostomod сказал:

как в стриптах мне делать проверку на валидность story_id

if get_story_object_id(story_id) == nil then
        abort("There is no story object with id [%s]", story_id)
end 

 

  В 20.06.2023 в 12:06, Prostomod сказал:

можно как-то реанимировать оригинальный printf?

Зачем? Пишите лог в отдельный файл LUA методами - это решение лучше движкового метода.

Изменено пользователем denis2000
  • Спасибо 1

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

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


Ссылка на сообщение
Поделиться на другие сайты
 
  В 20.06.2023 в 12:45, denis2000 сказал:

пишите лог в отдельный файл LUA методами

Интересно... Можете подсказать мод, где подобное уже реализовано? Навскидку я не могу ни один такой вспомнить.

Могу, конечно, и сам с 0 попробовать сделать, но с ориентиром это будет попроще.

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

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

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


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

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


Prostomod Не претендуя на оригинальность, лично я делал примерно так:
 

----------------------------------------------------
--		Ведение отдельного лог-файла
----------------------------------------------------

--Инициализация лога
function init_log_file()
	local file=io.open("gamedata//log_file.log","w")
	file:write("Start loggong on "..os.date(),"\n")
	file:close()
end

--Запись строки в лог
function print_log(save_string,script_name)
	if script_name == nil then script_name = "_g.script" end
	local file=io.open("gamedata//log_file.log","a")
	file:write(os.date().."|"..script_name.."|"..save_string,"\n")
	file:close()
end

 

Изменено пользователем denis2000
  • Спасибо 1

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

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


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

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

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


Ссылка на сообщение
Поделиться на другие сайты
 
  В 19.06.2023 в 18:57, Gerbys сказал:

Причина может быть в том

Также возможно условие не поддерживает кондлист! Например,  пытаемся получить параметры из сырой строки

combat_ignore_keep_when_attacked = {=is_enemy} true,false ; Это как пример! Можете попробовать вывести в лог значение для отладки из функции xr_logic.pick_section_from_condlist. Но повис может не сразу проявиться.

vasyan54636 Через схему cover?

anim = sleep

sound_idle = sleep

Я не проверял, но по идее должно сработать! Хотя , я не помню в оригинале есть звук у неписей sleep с секцией? Если нет добавить по аналогии с другими type = npc

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


Ссылка на сообщение
Поделиться на другие сайты
 
  В 20.06.2023 в 14:38, Mass сказал:

Также возможно условие не поддерживает кондлист! Например,  пытаемся получить параметры из сырой строки

combat_ignore_keep_when_attacked = {=is_enemy} true,false ; Это как пример! Можете попробовать вывести в лог значение для отладки из функции xr_logic.pick_section_from_condlist. Но повис может не сразу проявиться.

vasyan54636 Через схему cover?

anim = sleep

sound_idle = sleep

Я не проверял, но по идее должно сработать! Хотя , я не помню в оригинале есть звук у неписей sleep с секцией? Если нет добавить по аналогии с другими type = npc

Прописал, но он все так же стесняется храпетьScreenshot_37.png.b492647efb866a72864df2e18c83f432.png

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


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

vasyan54636 А звук есть sleep в script_sound.ltx? Через анимпоинт он не будет издавать никакие звуки, кроме болтовни, звук гитар и гормошек

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

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


Ссылка на сообщение
Поделиться на другие сайты
 
  В 20.06.2023 в 15:07, Mass сказал:

vasyan54636 А звук есть sleep в script_sound.ltx?

Не-а.


Дополнено 11 минуты спустя
  В 20.06.2023 в 15:07, Mass сказал:

vasyan54636 А звук есть sleep в script_sound.ltx?

Добавил, все стабильно -- не храпит)Screenshot_38.png.026540dd562fa9440bdf4696ebb5f73a.png

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


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

vasyan54636 Тогда попробуйте в xr_animpoint.script после

state_mgr.set_state(self.object, self.st.animpoint:get_action(), nil, nil, {look_position = self.st.animpoint.look_position},{animation_position = self.st.animpoint.position, animation_direction = self.st.animpoint.smart_direction} )

добавить

    if self.st.sound_idle ~= nil then
        xr_sound.set_sound_play(self.object:id(), self.st.sound_idle)
    end

и в set_scheme

    

st.sound_idle= utils.cfg_get_string(ini, section, "sound_idle",npc, false, "")

 

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

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


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

@Mass Вылетает с таким логом: 

 

  Лог (Показать контент)

 

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


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

Здравствуйте, вылет с таким логом 

  лог (Показать контент)

Изменял АИ сетку , скомпилировал. 

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


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

Появилась такая неприятность: у НПС настроена логика, которая работает корректно за исключением одной детали: переключение по on_info у некоторых НПС стабильно происходит только после перезагрузки, причём переключение аналогичной логики у других НПС происходит корректно сразу же после получения инфопоршня. В чём может быть проблема и как с ней бороться?
Если что, все НПС сидят в анимации hide, прописанной в look вейпоинте:

|a=hide
  Пример логики, на всякий случай (Показать контент)

 


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

Mindallius Спавн после этого пересобрал? И проверь ещё, актуальные ли файлы спавна и сетки в папках с уровнем и spawns в самой игре.


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

vasyan54636 тут описан способ получения более подробной информации о вылете. Фактически, игра начинает придираться к некоторым деталям и вылетать из-за каждой ошибки, зато их исправлять намного легче + выявляются скрытые, благодаря чему мод становится стабильнее. http://sigerous.ru/forum/322-2824-37


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

Касательно моей проблемы заметил такое: багаются так НПС с Отбойниками, а нормально работают те, у кого другое оружие (Абаканы), причём, кстати, багаются и в других секциях так-же. Конечно, можно и перевооружить, но хотелось бы докопаться до причины проблемы.
Если что, оружейный пак полностью оригинальный.

Изменено пользователем Prostomod
  • Спасибо 1

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

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


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

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

  В 20.06.2023 в 15:54, Prostomod сказал:

[walker@dolg_guard_4_start]:walker@start

секция walker@start существует в данном файле?

  В 20.06.2023 в 15:54, Prostomod сказал:

Касательно моей проблемы заметил такое: багаются так НПС с Отбойниками

А если анимку поменять на hide_na?

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


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

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


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

vasyan54636   блок с

 if self.st.sound_idle ~= nil then         xr_sound.set_sound_play(self.object:id(), self.st.sound_idle)     end

переместите  верх( поставьте перeд end), чтобы оператор end мог закрыть функцию. 

 

  • Спасибо 1

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


Ссылка на сообщение
Поделиться на другие сайты
 
  В 20.06.2023 в 17:08, Mass сказал:

секция walker@start существует в данном файле?

Забыл добавить. Да, существует:

  Показать контент

 

  В 20.06.2023 в 17:08, Mass сказал:

А если анимку поменять на hide_na?

Вроде в списке (тут) анимаций она указывалась как анимация со стрельбой, но попробую. 


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

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


Ссылка на сообщение
Поделиться на другие сайты
 
  В 20.06.2023 в 15:54, Prostomod сказал:

В чём может быть проблема и как с ней бороться?

Анимация зацикленная. Движок тупит пока не проиграет её до конца.

Делается так:

В файл xr_effects.script добавляем функцию

function reset_npc( actor, npc )
    reset_animation( npc )
end

В логику пишем

on_info = {+yan_psi_oko_expedition_p2_start} walker@dolg_guard_4_phase_2 %=reset_npc%

Подпрыгнет как ужаленный. Тормозов не будет.

 

  • Спасибо 2

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

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


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

denis2000 Кстати назначение погоды от атмосфира помогло, теперь не вылетаетю

Mindallius [exclusive]
escape_focih_spawn - это id эксклюзивного нпс? Проверь всё, а то я помню как ты тогда нагородил)

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


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

Друзья! Подскажите пожалуйста, а как в ванильной ЗП по story_id узнать id нпс?

Что нужно: по скрипту выводить определенного конкретного нпс в оффлайн.

Пробовал делать вот так:

local sim = alife()
local npc = sim:story_object(npc_sid)
    if npc then
        sim:set_switch_offline (npc.id, true)
        sim:set_switch_online (npc.id, false)
    end

И пробовал так:

local sim = alife()
local obj
for a=1,65535 do
     obj = alife():object(a)
            if obj and obj:clsid() == npc_sid then
                sim:set_switch_offline (obj.id, true)
                sim:set_switch_online (obj.id, false)
            end
     end

npc_sid это в данном случае передаваемый параметр.

Проблема - в обоих случах npc или obj:clsid() выходят nil ВСЕГДА. То есть по факту set_switch вещи не активируются вообще. 

При этом я могу сказать, что story id на нпс висит, так как метка на нем появляется по квесту, где story id прописан в target.

И еще, сами методы set_switch явно работают, то есть если сделать

local sim = alife()
local obj
for a=1,65535 do
     obj = alife():object(a)
            if obj then
                sim:set_switch_offline (obj.id, true)
                sim:set_switch_online (obj.id, false)
            end
     end

То все объекты вокруг исчезают. Проблема в том, чтобы убрать конкретный.

Сам sid прописан через

[story_object]
story_id = 

в custom_data

Есть ощущение, что я делаю какую-то дурость, но я совсем запутался уже.


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

UPDATE:

Перепроверил, во втором варианту obj:clsid() не nil, но он регистрируется у всех объектов (даже у тех где его по идее нет) и он нигде не совпадает с тем, что указан в [story_object].

И да, на самом деле тут не совсем ваниль, а OpenXray, забыл уточнить. Но вроде он также работать должен как обычных в плане скриптов

Возможно я тупо путаю разные переменные...


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

так, оказалось, можно это сделать по имени нпс через string.find(obj:name(),"abc"), но все равно хотелось бы понять что я делал не так

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

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


Ссылка на сообщение
Поделиться на другие сайты
 
  В 20.06.2023 в 22:31, Mawrak сказал:

как в ванильной ЗП по story_id узнать id нпс?

Так это -же вот эта функция делает: get_story_object_id

 
  В 20.06.2023 в 22:31, Mawrak сказал:

Сам sid прописан через

Вы путаете sid и story_id - это разные идентификаторы, первый число, второй строка...
А obj:clsid() - это вообще получить идентификатор КЛАССА обекта...

Изменено пользователем denis2000
  • Спасибо 1

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

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


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

Подскажите, в чем может быть проблема. 

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


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

Здравствуйте. Для логики есть проверка actor_has_item, но как я понимаю она предназначена только для одного предмета. Есть ли аналогичная проверка для 2 и более одинаковых предметов?

Отбой. нашёл. actor_has_item_count

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

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


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

Vodka посмотри на actor_has_item_count().

Крим что-то с работами в смарте не то... Попробуй активировать функцию abort. Как это сделать, написано тут (спойлер "Получение более подробной информации о вылете").


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

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


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

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

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

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

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

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

Войти

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

Войти

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

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