Overf1rst 1 503 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Тень Чернобыля. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 6 4 1 3 1 3 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
I am dead 1 192 Опубликовано 23 сентября, 2021 ian98 Какой вылет? Я про вылет ни слова не сказал... 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 298 Опубликовано 23 сентября, 2021 I am dead Сайт не оч удобный с телефона. Чтоб егр Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 23 сентября, 2021 (изменено) 6 часов назад, ian98 сказал: чтобы гг не умирал при 2+ убийствах одновременно уменьшать количество отнимаемого здоровья. Или запоминать time_global() последнего убийства и делать проверку на time_global() + ... . А почему этот скрипт в статистике, а не в коллбеке смерти нпс (и монстров)? Дополнено 9 минуты спустя 11 часов назад, Manool сказал: В одном моде как-то нашёл итерацию инвентаря на апдейте это еще ладно, мне как-то попался мод с двумя подряд циклами на апдейте for i = 1, 65тыс do (и без прерывания)) Изменено 23 сентября, 2021 пользователем vader_33 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 298 Опубликовано 23 сентября, 2021 vader_33 а разве статистика не вызывается в калбеке на смерть нпс и монстров? Еще интересно, как это вообще, калбек на смерть нпс только от рук гг или вообще калбек на смерть нпс, даже если они друг друга будут стрелять? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 24 сентября, 2021 ian98 просто очень непривычно. Если кто-то решит поковырять мод (или вы сами забросите, забудете, где что добавлялось), зайдет в коллбек смерти - там сразу не прописано, и придется выполнять очень интересный квест - пройдись по скриптам, прописанным в коллбеке, а в тех скриптах еще по другим вызывающимся скриптам пройдись, очень интересно. Не говорю, что это неправильно, просто неудобно) И в функции в файле статистики идет return в самом начале, то есть, при добавлении группировок и монстров надо еще смотреть, чтобы нормально условия выполнялись, больше телодвижений. В коллбеке на смерть от любых рук, но нет проблемы добавить проверку на актора (проще, чем смотреть выполнение условий, чтобы не срабатывал return). Это так, ворчание на ночь глядя, не обращайте внимания) 1 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 298 Опубликовано 24 сентября, 2021 (изменено) vader_33 это тот который в xr_motivator death(who,victim)? Вот тут я вижу такое if rx_ai then rx_ai.npc_death(self.object,who) end -- тут смерть любого нпс? if who:id() == db.actor:id() then xr_statistic.addKillCount(self.object) -- вот сюда можно вставить вместо статистики скрипт? end Изменено 24 сентября, 2021 пользователем ian98 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 24 сентября, 2021 (изменено) ian98 ai additions? Да, любого Изменено 24 сентября, 2021 пользователем vader_33 1 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 298 Опубликовано 24 сентября, 2021 (изменено) В общем, я это, не могу вывести счетчик смертей в пда, в раздел статистика... На место счетчика артефактов, ну вместо него. Как и что делал, наверное, не буду расписывать. Уверен, там полная глупость) Есть такой скрипт. Спойлер -- Счетчик смертей function on_actor_death(who) set_death_count("death", get_death_count("death")+1) end -- универсальный независимый от сейвов счетчик, реализованный на файлах -- - считает количество смертей гг а также время прохождения function get_death_count( what ) local f = getFS() local flist = f:file_list_open_ex( "$game_saves$", bit_or( FS.FS_ListFiles, FS.FS_RootOnly ), "*." .. what ) if flist:Size() > 0 then return tonumber( string.match( flist:GetAt( 0 ):NameFull(), "(.+)[.]" ) ) else local f1 = f:update_path( "$game_saves$", "game_setup.ltx" ) local f2 = f:update_path( "$game_saves$", "0." .. what ) f:file_copy( f1, f2 ) return 0 end end function set_death_count( what, value ) local f = getFS() local flist = f:file_list_open_ex( "$game_saves$", bit_or( FS.FS_ListFiles, FS.FS_RootOnly ), "*." .. what ) local fileName = flist:GetAt( 0 ):NameFull() local fileNameNew = tostring( value ) .. "." .. what if fileNameNew ~= fileName then local f1 = f:update_path( "$game_saves$", fileName ) local f2 = f:update_path( "$game_saves$", fileNameNew ) f:file_rename( f1, f2, true ) end end function on_new_game() get_death_count( "death" ) set_death_count( "death", 0 ) end Вот как его можно повесить, это ж не должно быть очень сложно? 100% что-нибудь простое, но гайдов не найти. Момент с анлоком счетчика, его переименование в принципе понятен, но это первый шаг. А дальше как? Изменено 24 сентября, 2021 пользователем ian98 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hunter 2 524 Опубликовано 24 сентября, 2021 Снова я с аналогичным вопросом. В оригинале есть переход Радар-Припять, а в моде-отсутствует, хотя сама Припять имеется. Вопрос, где в файлах хранятся переходы и как вернуть его? Думаю, что где-то стерли пару строчек или закомментировали. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 298 Опубликовано 25 сентября, 2021 Hunter Если в моде спавн, то переходы могли там просто не добавить? Помнится когда-то очень давно без спавна перелететь с локации на локацию, не помню может там даже будет полноценный переход, мне помогла эта статья Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 25 сентября, 2021 (изменено) ian98 чтобы счетчик работал, нужно добавить "on_actor_death(who)" в коллбек смерти актора. Он в движке есть, но в оригинальном биндере не прописан, надо добавить. В "actor_binder:net_destroy()" это: self.object:set_callback(callback.death, nil) В "actor_binder:reinit()" это: self.object:set_callback(callback.death, self.death_callback, self) И куда-нибудь саму функцию: function actor_binder:death_callback(victim, who) end И в нее уже добавлять. А вот это "function on_new_game()" видимо добавляется куда-то, что вызывается один раз при новой игре, но в оригинале готового такого места нету. Лучше посмотреть в моде, с которого этот код взят (если там не моддвижок с каким-нибудь новым коллбеком). И, наверно, лучше поменять путь создаваемого файла, а то обычно старые сохранки удаляют кучей даже не посмотрев, что именно удаляют. Удалят - и счетчик сбросится Дополнено 11 минуты спустя Hunter обычно переходы в all.spawn "section_name = level_changer" (по строчке "dest_level_name =" можно понять, куда переход). Если его вообще удалили с оллспауна - два варианта: или редактировать оллспаун и добавлять его (новая игра потребуется) или спавнить скриптом, ссылку выше скинул ian98 (без новой игры, но если мод на измененном движке, в котором меняли нетпакеты - надо его подгонять под эти изменения). Лучше через оллспаун делать, если это не для одного прохождения в середине мода. Если переход не удалили с оллспауна - можно заспавнить так: alife():create(spawn_id) Изменено 25 сентября, 2021 пользователем vader_33 1 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
I am dead 1 192 Опубликовано 25 сентября, 2021 Hunter В all.spawn добавлять точку перехода, ну или скриптами спавнить ее. Дополнено 1 минуту спустя 1 час назад, vader_33 сказал: если там не моддвижок с каким-нибудь новым коллбеком Именно от туда, а момента старта новой игры можно и по поршню проверить Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 25 сентября, 2021 I am dead уже после своего комментария нашел этот код в оп-2, там он вызывается в "ui_main_menu.script" в "function main_menu:StartGame()". Да, можно и поршнем, если мод не тяжелый В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
I am dead 1 192 Опубликовано 25 сентября, 2021 vader_33 Вообще пример кода взял dsh мода. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 298 Опубликовано 25 сентября, 2021 Повесил, наверное, только он если и считает, то не показывает. В bind_stalker калбеки добавил, не буду их показывать, но там точно не накосячил. Спойлер Спойлер main menu Спойлер Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 25 сентября, 2021 (изменено) ian98 ian98 ну ешкин кот, что с телефона обращение не удаляется. Скрины неудобно смотреть, выкладывайте текстом. Не знаю, куда actor_stats сохраняет данные, не в сохранку случайно? Если в сохранку-при откате не сохранится количество. Наверно не просто так в оп сделали счётчик отдельным файлом в папке с сохранками. Этот код создаёт в папке с сохранками файл с количеством смертей (название файла=количество), наверно надо читать это название. Проверю когда до дома доберусь. Там ещё в коде используется файл game setup (в коде правильное название посмотрите), его создали в папке с сохранками? Изменено 25 сентября, 2021 пользователем vader_33 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 298 Опубликовано 25 сентября, 2021 (изменено) vader_33 все, что могу сказать по actor.stats, это какая-то связь с конфигом actor_statistic из папки ui. Game_setup создал и закинул в папку с сейвами никак не заполняя. Если это необходимо, то даже не представляю как. Изменено 25 сентября, 2021 пользователем ian98 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 25 сентября, 2021 ian98 я его пустым оставлял, файл с количеством смертей нормально создавался В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 298 Опубликовано 25 сентября, 2021 (изменено) vader_33 два раза начинал новую игру, бегал там, умирал, перезагружался. Ничего. И файл пустой. Скрипт к нему даже не обращался судя по дате изменения Изменено 25 сентября, 2021 пользователем ian98 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 25 сентября, 2021 ian98 сам файл не должен меняться, рядом должен быть файл число.death В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 298 Опубликовано 25 сентября, 2021 vader_33 только сейвы ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 25 сентября, 2021 ian98 киньте все правленные файлы, вечером гляну. Сегодня проверял-у меня работало В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hunter 2 524 Опубликовано 25 сентября, 2021 ian98 vader_33 I am dead чем можно распаковать all.spawn? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
I am dead 1 192 Опубликовано 25 сентября, 2021 Hunter ACDC Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hunter 2 524 Опубликовано 25 сентября, 2021 I am dead а запаковать обратно тем же? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты