Kirgudu 1 207 Опубликовано 25 Ноября 2022 Поделиться Опубликовано 25 Ноября 2022 (изменено) @dsh было, было и в основной ветке, видимо, дополнение признали полезным и затянули. https://github.com/OGSR/OGSR-Engine/commit/544daa9962efb142b6e2b058e045846f96dc5608 Легко найти по истории, уже второй коммит с конца:https://github.com/OGSR/OGSR-Engine/commits/main/ogsr_engine/xrGame/alife_spawn_registry.cpp Офф: я впервые в ваши правки движка заглянул так-то; даже при взгляде наискосок попадаются любопытные вещи. Если б ещё было время заниматься модостроем, да по-прежнему сохранялся высокий интерес... но нет. Хватит того, что периодически могу дать ответ по легаси скриптам. Изменено 25 Ноября 2022 пользователем Kirgudu 1 1 Инструмент Ссылка на комментарий
Norman Eisenherz 309 Опубликовано 26 Ноября 2022 Поделиться Опубликовано 26 Ноября 2022 Вот теперь картинка сложилась. Это, конечно, бинго: найти одновременно нечитаемый параметр с совпадающим названием и пример кода, который не должен работать на чистой игре. Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 19 Декабря 2022 Поделиться Опубликовано 19 Декабря 2022 Мужики, спасайте Имеем следующий набор работ: Скрытый текст --4 работы доп охраны for i = 6, 9 do t = { section = "logic@fox_ohrana_" .. i, idle = 0, prior = 8, state = { 0 }, in_rest = "", out_rest = "", } table.insert(sj, t) end --Кулинар идёт сюда t = { section = "logic@artem", idle = 0, prior = 11, state = { 0 }, in_rest = "", out_rest = "", position_threshold = 5, predicate = function(obj_info) return obj_info.story_id == 9509 end } table.insert(sj, t) Проблема в том, что искомый нпс с СИДом 9509 занимает одну из работ сверху (с низшим приоритетом). Почему он отказвыается брать работу с высоким приоритетом? Она ведь точно свободная, ибо предикейт для него сделан с проверкой по СИДу? Ссылка на комментарий
Norman Eisenherz 309 Опубликовано 26 Декабря 2022 Поделиться Опубликовано 26 Декабря 2022 [ЧН 1.5.10] При скриптовом вводе габаритов список CUIListWnd() создается только пустым, а при попытке наполнения не создается вовсе – не выводится даже его родительское окно. При XML-выводе список создается и наполняется успешно. В чем может быть причина? Spoiler local x, y, w, h = 55, 50, 680, 420 local eh = 70 -- так работает local xml = CScriptXmlInit() xml:ParseFile(…) local list = xml:InitList("list", bk) -- ссылка на описание <list width=680 height=420 /> list:SetWndPos( vector2():set(x, y) ) -- так нет -- local list = CUIListWnd() -- bk:AttachChild(list) -- list:SetWndRect( Frect():set(x, y, x+w, y+h) ) list:SetItemHeight(eh) for i = 1, 8 do local e = CUIListItemEx() e:SetWndRect( Frect():set(0, 0, w, eh) ) e:SetText("test_" .. i) list:AddItem(e) end Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
phalcor 60 Опубликовано 20 Января 2023 Поделиться Опубликовано 20 Января 2023 Всем привет! Есть вроде бы простой вопрос: как снять биндер с объекта? Чуть подробнее: сделал свой биндер для объекта, запускаю: function init(obj) local new_binder = bolt_binder(obj) obj:bind_object(new_binder) end При нужных мне обстоятельствах я хочу "отменить" биндер для данного конкретного объекта, делаю это так: function bolt_binder:net_spawn(data) --тут разная обработка объекта self.object:bind_object(nil) --удаляем биндер --ВСЁ ЧТО ДАЛЕЕ, УЖЕ НЕ ИСПОЛНЯЕТСЯ ПО ПРИЧИНЕ АННИГИЛЯЦИИ :) if not object_binder.net_spawn(self, data) then return false end return true end Но есть основания полагать, что снимать биндер с объекта так: self.object:bind_object(nil) - это не корректно. Как же правильно? Ссылка на комментарий
Colder 12 Опубликовано 28 Января 2023 Поделиться Опубликовано 28 Января 2023 Всем привет. Не получается спрятать и показать статику когда на ГГ определённая броня. Скрытый текст local outfit = db.actor:item_in_slot(6) if outfit and get_string(outfit:section(), "backpack_avaliable") ~= false then local error = xml:InitStatic("slots_cover", self) error:Show(true) else error:Show(false) Ссылка на комментарий
Norman Eisenherz 309 Опубликовано 29 Января 2023 Поделиться Опубликовано 29 Января 2023 Как минимум, переменная error локальна для первого блока и после else не существует 1 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Colder 12 Опубликовано 7 Февраля 2023 Поделиться Опубликовано 7 Февраля 2023 Хочу вывести на экран режим стрельбы с оружия. Скрытый текст function actor_on_fire_mode() local slot = {1,2,4} for n = 1,table.getn(slot) do local item = db.actor:item_in_slot(slot[n]) local wpn = db.actor:active_item() if item ~= nil and wpn then local fm = sys_ini:r_string(wpn:section(), "fire_modes") local fm_t = parse_nums(fm) fm_t = 1 local StatCS = hud:GetCustomStatic("fire_modes_static") if StatCS == nil then hud:AddCustomStatic("fire_modes_static", true) StatCS = hud:GetCustomStatic("fire_modes_static") StatCS:wnd():SetText(fm_t) end end end end Подскажите как правильно написать функцию. Ссылка на комментарий
Norman Eisenherz 309 Опубликовано 8 Февраля 2023 Поделиться Опубликовано 8 Февраля 2023 • В чем замысел процитированных строк? Распарсить список, а потом просто присвоить значение 1? Может, имелось в виду fm_t[1]?local fm_t = parse_nums(fm) fm_t = 1 • Статик "fire_modes_static" прописан в [config\ui\ui_custom_msgs.xml]? Вообще, какой-то результат при выполнении кода есть? • Для получения действующего режима стрельбы надо читать нетпакет. Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Colder 12 Опубликовано 8 Февраля 2023 Поделиться Опубликовано 8 Февраля 2023 (изменено) Да все прописанно, на худ высвечивается число 1 Изменено 8 Февраля 2023 пользователем Colder 1 Ссылка на комментарий
Jekyll 92 Опубликовано 9 Февраля 2023 Поделиться Опубликовано 9 Февраля 2023 Здравствуйте! Как итерировать инвентарь НПС во время диалога с ним? Способ, подсмотренный в скрипте оригинала ЗП, типа local npc = dialogs.who_is_npc(first_speaker,second_speaker) local function itr_inv(temp,item) ..... end npc:iterate_inventory(itr_inv,nil) не помог. New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор Русификатор для игры Vendetta: Curse of Raven's Cry Ссылка на комментарий
Norman Eisenherz 309 Опубликовано 10 Февраля 2023 Поделиться Опубликовано 10 Февраля 2023 Проверить построчно: определяется ли NPC, запускается ли итератор, обнаруживаются ли какие-то объекты. На странице [594] этой же темы было обсуждение с примерами итераторов. 1 1 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Jekyll 92 Опубликовано 12 Февраля 2023 Поделиться Опубликовано 12 Февраля 2023 Как заставить math.max обратиться к таблице? math.max(1,2,3,4,5) - работает, но таблица предполагается динамичной, способ не подходит local table = {1,2,3,4,5} (условно) math.max(table) - не работает (вылет - number expected, got table) Искал ответ в справочниках по луа и здесь на форуме - не нашел. Полагаю, нужно использовать какой-то метод, но какой - не знаю. table.concat выдает строку, следовательно - вылет (number expected, got string). New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор Русификатор для игры Vendetta: Curse of Raven's Cry Ссылка на комментарий
WinCap 316 Опубликовано 12 Февраля 2023 Поделиться Опубликовано 12 Февраля 2023 @Jekyll, а количество элементов в таблице меняется? S.T.A.L.K.E.R. CoP Objects (upd 15.11.24) Ссылка на комментарий
Jekyll 92 Опубликовано 12 Февраля 2023 Поделиться Опубликовано 12 Февраля 2023 @WinCap Да. New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор Русификатор для игры Vendetta: Curse of Raven's Cry Ссылка на комментарий
WinCap 316 Опубликовано 12 Февраля 2023 Поделиться Опубликовано 12 Февраля 2023 @Jekyll, ну... тогда, наверное, только перебором через pairs или ipairs, в зависимости от индексов таблицы. 1 S.T.A.L.K.E.R. CoP Objects (upd 15.11.24) Ссылка на комментарий
Kirgudu 1 207 Опубликовано 12 Февраля 2023 Поделиться Опубликовано 12 Февраля 2023 1 час назад, Jekyll сказал: local table = {1,2,3,4,5} (условно) math.max(table) - не работает (вылет - number expected, got table) local t = {1,2,3,4,5} local m = math.max(unpack(t)) 4 Инструмент Ссылка на комментарий
dsh 3 824 Опубликовано 12 Февраля 2023 Поделиться Опубликовано 12 Февраля 2023 (изменено) @Jekyll unpack может помочь, если я не путаю: math.max(unpack(table)) Могу в имени напутать. О, да уже тут ответили. Изменено 12 Февраля 2023 пользователем dsh 1 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Colder 12 Опубликовано 14 Февраля 2023 Поделиться Опубликовано 14 Февраля 2023 Как проветрить предметы в слоте? Скрытый текст local list_dev = { ["detector_simple"] = true, ["detector_advances"] = true, ["detector_elite"] = true, ["detector_svarog"] = true } function init_slot() if db.actor:item_in_slot(DETECTOR_SLOT) and list_dev[db.actor:item_in_slot(DETECTOR_SLOT):section()] then return true else return false end end Не работает Ссылка на комментарий
Norman Eisenherz 309 Опубликовано 14 Февраля 2023 Поделиться Опубликовано 14 Февраля 2023 Лучше рюкзак постирать Код с виду правильный, хотя и несколько перемудреный. Номер слота указан верно? Значение секции детектора читается? 1 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти