WinCap 324 Опубликовано 1 Мая 2021 (изменено) 16 минут назад, naxac сказал(а): эти функции вызываются в биндерах неписей и монстров. Да... это понятно... Это был наводящий вопрос. 16 минут назад, naxac сказал(а): В скрипте используются заполняемые этими функциями таблицы. Я на это и хотел обратить внимание вопрошающего. Кроме monster_stock ни одна таблица не используется. И вообще... Функция update_friends_and_target тот ещё "шедевр". Изменено 1 Мая 2021 пользователем WinCap S.T.A.L.K.E.R. CoP Objects >200 шт (upd 21.05.26) - Скачать (Яндекс-диск) Поделиться этим сообщением Ссылка на сообщение
WinCap 324 Опубликовано 4 Мая 2021 3 часа назад, Prophet2002 сказал(а): Помогите со скриптом. Скрытый текст self.name = "actor_ID" local file = ini_file(getFS():update_path("$app_data_root$", "launcher.ltx")) if file and file:section_exist("logins") then self.name = file:r_string("logins", "display_name") end S.T.A.L.K.E.R. CoP Objects >200 шт (upd 21.05.26) - Скачать (Яндекс-диск) Поделиться этим сообщением Ссылка на сообщение
WinCap 324 Опубликовано 6 Мая 2021 (изменено) 2 часа назад, Graff46 сказал(а): Абсолютные пути в ini_file работают? Нет, конечно, не работают! Совсем про это забыл. Спасибо, что напомнили. @Prophet2002 Если нужно прочитать ini-файл НЕ из папки config, придется прибегнуть к хитрости: Скрытый текст -- Открытие файла из стандартных папок игры: local fs = getFS():r_open("$app_data_root$", "launcher.ltx") -- Создание "виртуального" ini-файла из строки: local file = create_ini_file(fs:r_stringZ()) if file and file:section_exist("logins") then self.name = file:r_string("logins", "display_name") end Напомню, что в файле fsgame.ltx можно добавить своё описание пути никак не связанное с игрой. Например: $c_games$ = false| false| c:\Games\ Изменено 6 Мая 2021 пользователем WinCap 3 S.T.A.L.K.E.R. CoP Objects >200 шт (upd 21.05.26) - Скачать (Яндекс-диск) Поделиться этим сообщением Ссылка на сообщение
WinCap 324 Опубликовано 23 Мая 2021 @_Sk8_AsTeR_, например так: [walker1@truba1] on_signal = test | {-inf_vizov_test_odin_raz} %+inf_vizov_test_odin_raz =test% on_info = {+povod_pereiti_v_druguyu_sekciyu} walker@next %-inf_vizov_test_odin_raz% 2 1 S.T.A.L.K.E.R. CoP Objects >200 шт (upd 21.05.26) - Скачать (Яндекс-диск) Поделиться этим сообщением Ссылка на сообщение
WinCap 324 Опубликовано 8 Июня 2021 07.06.2021 в 17:47, _Sk8_AsTeR_ сказал(а): Все НПС, проигрывая анимацию о барной стойки, стоят чуть дальше чем нужно и опираются о пустоту. Если их напугать, то они возвращаются на место и проигрывают анимацию уже как положено. Есть какие-нибудь мысли, как это пофиксить? Скорее всего, проблема в скриптах. Попробуй откатить к начальной версии все скрипты связанные с движением и положением НПС, те которые сам правил или адаптировал/переносил из других модов. S.T.A.L.K.E.R. CoP Objects >200 шт (upd 21.05.26) - Скачать (Яндекс-диск) Поделиться этим сообщением Ссылка на сообщение
WinCap 324 Опубликовано 11 Июня 2021 (изменено) @_Sk8_AsTeR_, а функции save_obj/load_obj из xr_gulag используются где-нибудь? В них какой-то "непорядок" - сохраняются 3 переменные, а загружаются только 2. Изменено 11 Июня 2021 пользователем WinCap S.T.A.L.K.E.R. CoP Objects >200 шт (upd 21.05.26) - Скачать (Яндекс-диск) Поделиться этим сообщением Ссылка на сообщение
WinCap 324 Опубликовано 12 Июня 2021 @Colder, в вашем скрипте: 1. Функция BodyAllclose - что это за переменная id? 2. Функция get_items_from_box - переменная box откуда? 1 S.T.A.L.K.E.R. CoP Objects >200 шт (upd 21.05.26) - Скачать (Яндекс-диск) Поделиться этим сообщением Ссылка на сообщение
WinCap 324 Опубликовано 25 Июня 2021 (изменено) 7 часов назад, naxac сказал(а): И, да - ремарк в качестве основной схемы - это моветон. Много раз встречал подобное утверждение и до сих пор не знаю, что значит "основная/активная схема"? Объясните, пожалуйста. Изменено 25 Июня 2021 пользователем WinCap S.T.A.L.K.E.R. CoP Objects >200 шт (upd 21.05.26) - Скачать (Яндекс-диск) Поделиться этим сообщением Ссылка на сообщение
WinCap 324 Опубликовано 26 Июля 2021 (изменено) @phalcor, может так: local kn_ini = ini_file("weapons\\upgrade.ltx") P.S. Ищи примеры кода в папке "scripts", там всё есть. Изменено 26 Июля 2021 пользователем WinCap S.T.A.L.K.E.R. CoP Objects >200 шт (upd 21.05.26) - Скачать (Яндекс-диск) Поделиться этим сообщением Ссылка на сообщение
WinCap 324 Опубликовано 26 Июля 2021 (изменено) @phalcor, нужно выбрать "вышестоящий" файл, тот в котором подключен upgrade.ltx. Рискну предположить, что это: local kn_ini = ini_file("weapons.ltx") Изменено 26 Июля 2021 пользователем WinCap S.T.A.L.K.E.R. CoP Objects >200 шт (upd 21.05.26) - Скачать (Яндекс-диск) Поделиться этим сообщением Ссылка на сообщение
WinCap 324 Опубликовано 26 Июля 2021 (изменено) 7 минут назад, phalcor сказал: вот только функция всегда выдаёт "true" Это естественно. После прочтения ini-файла, наследуемые параметры копируются в конечную секцию, и присутствую в ней в полном составе. 7 минут назад, phalcor сказал: нет у нас методов ... по определению, оригинален или наследуем параметр. Здесь возможен только "костыль". Если точно знать имя конечной секции, а также имя наследуемой, то можно прочитать параметр дважды - из одной и из другой секции. Если параметр различается, значит, он был переопределен. По другому никак. Изменено 26 Июля 2021 пользователем WinCap 2 1 S.T.A.L.K.E.R. CoP Objects >200 шт (upd 21.05.26) - Скачать (Яндекс-диск) Поделиться этим сообщением Ссылка на сообщение
WinCap 324 Опубликовано 26 Июля 2021 (изменено) 4 минуты назад, phalcor сказал: есть ли способ прочитать в переменную parent-секцию Нет. Если это действительно необходимо для реализации какой-то мега крутой идеи, то можно вручную составить таблицу наследований секций: local tbl = { ["wpn_ak74_m1"] = "wpn_ak74", и т.д. } Изменено 26 Июля 2021 пользователем WinCap 1 S.T.A.L.K.E.R. CoP Objects >200 шт (upd 21.05.26) - Скачать (Яндекс-диск) Поделиться этим сообщением Ссылка на сообщение
WinCap 324 Опубликовано 26 Июля 2021 @Jekyll, как-то так: local gvid = определенный_m_game_vertex_id local level_name = alife():level_name(game_graph():vertex(gvid):level_id()) if level_name == level.name() then 1 S.T.A.L.K.E.R. CoP Objects >200 шт (upd 21.05.26) - Скачать (Яндекс-диск) Поделиться этим сообщением Ссылка на сообщение
WinCap 324 Опубликовано 28 Июля 2021 9 часов назад, phalcor сказал: досрочный выход из цикла iterate предусмотрен? В стандартном методе "iterate_inventory" точно нет, а в неизвестном "iterate_inventory_simple" - всё может быть. Попробуй вернуть что-нибудь из функции, например "true". Скрытый текст local i=0 db.actor:iterate_inventory_simple(function(item) i=i+1 if item then return true end end) log("iter="..i) 1 S.T.A.L.K.E.R. CoP Objects >200 шт (upd 21.05.26) - Скачать (Яндекс-диск) Поделиться этим сообщением Ссылка на сообщение
WinCap 324 Опубликовано 13 Августа 2021 @Norman Eisenherz, попробуй добавить в trade_manager.script такую функцию: function get_trade_ini(id) if trade_manager[id] then return trade_manager[id].config end return end и потом используй в своем коде: local npc = level_object_by_sid(3) local trade_ini = trade_manager.get_trade_ini(npc:id()) if trade_ini then local str = trade_ini:r_string("supplies_start", "wpn_groza_m1") end 1 S.T.A.L.K.E.R. CoP Objects >200 шт (upd 21.05.26) - Скачать (Яндекс-диск) Поделиться этим сообщением Ссылка на сообщение
WinCap 324 Опубликовано 11 Ноября 2021 (изменено) @Labadal, а зачем в функциях actor_binder:save/load использовать pstor? У них же есть свой net_paket? В функции function actor_binder:save(packet): packet:w_float(en.energy) В функции function actor_binder:load(reader): en.energy = reader:r_float() Разместить в конце функций, начать новую игру. Изменено 11 Ноября 2021 пользователем WinCap 1 1 2 S.T.A.L.K.E.R. CoP Objects >200 шт (upd 21.05.26) - Скачать (Яндекс-диск) Поделиться этим сообщением Ссылка на сообщение
WinCap 324 Опубликовано 12 Ноября 2021 @Labadal, замени sim на alife(). 1 S.T.A.L.K.E.R. CoP Objects >200 шт (upd 21.05.26) - Скачать (Яндекс-диск) Поделиться этим сообщением Ссылка на сообщение
WinCap 324 Опубликовано 2 Февраля 2022 3 часа назад, Colder сказал: возникла такая проблема Дело в том, что таблица item_table не очищается после добавления оружия в List. Скрипт вообще написан не правильно. Внутри db.actor:iterate_inventory() нужно только заполнять таблицу item_table, а выводить её содержимое в List нужно после неё. 1 1 1 S.T.A.L.K.E.R. CoP Objects >200 шт (upd 21.05.26) - Скачать (Яндекс-диск) Поделиться этим сообщением Ссылка на сообщение
WinCap 324 Опубликовано 21 Мая 2022 @ARTLantist, может ты про set_nonscript_usable забыл? S.T.A.L.K.E.R. CoP Objects >200 шт (upd 21.05.26) - Скачать (Яндекс-диск) Поделиться этим сообщением Ссылка на сообщение
WinCap 324 Опубликовано 29 Июня 2022 @Colder, прочитанную из конфигов строку можно разбить на отдельные части функцией parse_nums, например так: local fm = sys_ini:r_string(wpn:section(), "fire_modes") local fm_t = parse_nums(fm) После этого в fm_t будет находиться таблица с отдельными режимами стрельбы. P.S. Только это будут просто считанные из конфигов доступные режимы, а не текущий режим стрельбы. 1 S.T.A.L.K.E.R. CoP Objects >200 шт (upd 21.05.26) - Скачать (Яндекс-диск) Поделиться этим сообщением Ссылка на сообщение