I am Dead 894 Опубликовано 25 Июля 2021 Поделиться Опубликовано 25 Июля 2021 4 минуты назад, Шипэтя сказал: Извиняюсь за не знание, не судите я начинаю осваивать скрипты и по это много ошибаюсь, а может есть статейка где что то подобное рассказывается ? Не видел я такой статьи, могу только скинуть пример как это сделано Подарки 2 Ссылка на комментарий
Шипэтя 0 Опубликовано 25 Июля 2021 Поделиться Опубликовано 25 Июля 2021 4 минуты назад, I am Dead сказал: скинуть пример Мне это подходит Подарки Ссылка на комментарий
Rod_K 1 Опубликовано 25 Июля 2021 Поделиться Опубликовано 25 Июля 2021 (изменено) Подскажите, пожалуйста, как прописать логику враждебному нпс так, чтобы он не атаковал актора при приближении к нему, не сходил с точки спавна и постоянно проигрывал анимацию состояния транса (trans_0_idle_0)? Короче, примерно тоже самое, что и в тч, когда монолитовцы сидят вокруг кучи мусора и вращают головами. Изменено 25 Июля 2021 пользователем Rod_K Ссылка на комментарий
Labadal 20 Опубликовано 25 Июля 2021 Поделиться Опубликовано 25 Июля 2021 Подскажите, как добавить новую кнопку в пда? Делаю по аналогии с кнопкой "центр на меченом", но кнопки не появляется. Пробовал удалить секцию кнопки "центр на меченом", но вылета не было, просто кнопка не появилась. Значит - её нигде не требуют. Но моя кнопка даже с готовой секцией не появляется. Неужели это тоже движковая тема? Всем спасибо God save Hatsune Miku! Подарки Ссылка на комментарий
naxac 2 372 Опубликовано 26 Июля 2021 Поделиться Опубликовано 26 Июля 2021 3 часа назад, Labadal сказал: Неужели это тоже движковая тема? Да. 1 1 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Подарки Ссылка на комментарий
Zander_driver 10 166 Опубликовано 26 Июля 2021 Поделиться Опубликовано 26 Июля 2021 (изменено) 6 часов назад, Labadal сказал: Пробовал удалить секцию кнопки "центр на меченом", но вылета не было, просто кнопка не появилась. Значит - её нигде не требуют. Часть элементов движковых интерфейсов строится по принципу if (uiXml.NavigateToNode("какая-то нода xml", 0)) { Т.е. если их удалить из xml-конфига, элемент исчезает без вылета. Вернуть на место - появляется. Другие элементы требуются без проверок и их удаление из конфигов вызовет вылет. Но в любом случае, и те и другие спрашивает движок. Чтобы эта "какая-то нода" была прочитана, движок должен ее запросить. В дефолтном ТЧ, емнип, чтением xml-конфигов любых в принципе, только движок и занимается. Изменено 26 Июля 2021 пользователем Zander_driver 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
phalcor 56 Опубликовано 26 Июля 2021 Поделиться Опубликовано 26 Июля 2021 Подскажите, почему получается вылет при определении переменной ini-файла: local ltx="weapons\\upgrade.ltx" local ini=ini_reader.iniReader(ltx) --вылет local ini=ini_file(ltx) --тоже вылет Скрытый текст [error]Expression : fatal error [error]Function : CInifile::r_section [error]File : Xr_ini.cpp [error]Line : 397 [error]Description : Can't open section '%s' [error]Arguments : wpn_ak74 ... Скрытый текст [wpn_ak74_kalibr]:wpn_ak74 ammo_class = ammo_5.56x45_ss190, ammo_5.56x45_ap, ammo_5.56x45_gd inv_name = wpn-ak74_kalibr description = enc_kalibr_wpn_ak74 inv_grid_x = 41 inv_grid_y = 9 cost = 3200 silencer_name = wpn_addon_sil_556_ar silencer_x = 225 silencer_y = 15 cheat_item = true Думается, из-за ":wpn_ak74" после имени секции. Но как тогда явно указать такой файл для чтения из него? Ссылка на комментарий
Zander_driver 10 166 Опубликовано 26 Июля 2021 Поделиться Опубликовано 26 Июля 2021 Только что, phalcor сказал: Подскажите, почему получается вылет при определении переменной ini-файла: Потому, что это надо делать как-то так: local kn_ini = ini_file([[weapons\\upgrade.ltx]]) Только что, phalcor сказал: Думается А думается неправильно. Наследовать секции в файлах, подключаемых таким образом, можно так же как и в обычных конфигах. 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
phalcor 56 Опубликовано 26 Июля 2021 Поделиться Опубликовано 26 Июля 2021 @Zander_driver Всё тоже самое - тот же вылет! Пробовал так: local kn_ini = ini_file([[weapons\\upgrade.ltx]]) --так вылета нет, но в log пишет: WARNING: CLocatorAPI::check_for_file file not found file z:\op21-repack\gamedata\config\weapons\\upgrade.ltx in files list (size = 83322) соответственно, так как файл не найден, то и чтения из него не будет... Пробуем убрать один слэш: local kn_ini = ini_file([[weapons\upgrade.ltx]]) --так вылет. Как же сделать присвоение переменной ini?! Ссылка на комментарий
WinCap 292 Опубликовано 26 Июля 2021 Поделиться Опубликовано 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 (upd 10.04.24) Подарки Ссылка на комментарий
phalcor 56 Опубликовано 26 Июля 2021 Поделиться Опубликовано 26 Июля 2021 Ситуация немного проясняется. Дело всё-таки в наследуемой секции. Вот у меня в файле upgrade.ltx такая запись: [wpn_ak74_kalibr]:wpn_ak74 Если добавить наследуемую секцию [wpn_ak74] в ЭТОТ ЖЕ файл, всё работает! Если она в другом файле - вылет, расписанный мною выше. Получается, подключить такой файл через переменную ini = ini_file(имя) невозможно? Ссылка на комментарий
WinCap 292 Опубликовано 26 Июля 2021 Поделиться Опубликовано 26 Июля 2021 (изменено) @phalcor, нужно выбрать "вышестоящий" файл, тот в котором подключен upgrade.ltx. Рискну предположить, что это: local kn_ini = ini_file("weapons.ltx") Изменено 26 Июля 2021 пользователем WinCap S.T.A.L.K.E.R. CoP Objects (upd 10.04.24) Подарки Ссылка на комментарий
phalcor 56 Опубликовано 26 Июля 2021 Поделиться Опубликовано 26 Июля 2021 @WinCap, попробовал weapons.ltx - там тоже вылет. В общем, у меня задача стояла такая - определить, является ли запрашиваемый параметр оружия "родным" (прописанным непосредственно под секцией это оружия), или же он наследуемый. Пока решения не вижу. Ссылка на комментарий
Zander_driver 10 166 Опубликовано 26 Июля 2021 Поделиться Опубликовано 26 Июля 2021 Только что, phalcor сказал: Если добавить наследуемую секцию [wpn_ak74] в ЭТОТ ЖЕ файл, всё работает! Естественно, родитель для наследования должен быть виден там, где ты его наследуешь. Если ты хочешь, чтобы все выше-объявленные секции конфига были видны для твоей, то и подключай его к system.ltx, и доступ получай через system_ini(). Файлы, доступ к которым получается через ini_file(), подключаются как отдельная система конфига, независимая и несвязанная с system_ini. К ним может быть тоже что-то подключено через #include, но это все равно будет обособленная система. Только что, phalcor сказал: В общем, у меня задача стояла такая - определить, является ли запрашиваемый параметр оружия "родным" (прописанным непосредственно под секцией это оружия), или же он наследуемый. Есть такая идея... local ltx = system_ini() function found_line(section, line) local lc = ltx:line_count(section) local a = 1 while a < lc do local key = '' local value = '' local r = ltx:r_line(section, a, key, value) if r and key == line then return true end a = a + 1 end return false end Методы line_count и r_line точно есть в OGSR (Это не я добавил). Есть ли они в оригинальном ТЧ, честно говоря не помню. Если есть, то должно сработать. Если же нету, то боюсь, не существует способа узнать то что тебе нужно из скриптов. 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
phalcor 56 Опубликовано 26 Июля 2021 Поделиться Опубликовано 26 Июля 2021 @Zander_driver , спасибо за идею, методы у меня работают (ОП 2.1), вот только функция всегда выдаёт "true", т.е. какой параметр ей в line не укажи, она его всегда найдёт в system_ini() - оно и правильно, ведь это обобщённое, так сказать хранилище всех параметров данной секции. Ну что жеж, констатируем - нет у нас методов против Кости Сапрыкина для решения моей задачи по определению, оригинален или наследуем параметр. Ссылка на комментарий
WinCap 292 Опубликовано 26 Июля 2021 Поделиться Опубликовано 26 Июля 2021 (изменено) 7 минут назад, phalcor сказал: вот только функция всегда выдаёт "true" Это естественно. После прочтения ini-файла, наследуемые параметры копируются в конечную секцию, и присутствую в ней в полном составе. 7 минут назад, phalcor сказал: нет у нас методов ... по определению, оригинален или наследуем параметр. Здесь возможен только "костыль". Если точно знать имя конечной секции, а также имя наследуемой, то можно прочитать параметр дважды - из одной и из другой секции. Если параметр различается, значит, он был переопределен. По другому никак. Изменено 26 Июля 2021 пользователем WinCap 2 1 S.T.A.L.K.E.R. CoP Objects (upd 10.04.24) Подарки Ссылка на комментарий
phalcor 56 Опубликовано 26 Июля 2021 Поделиться Опубликовано 26 Июля 2021 8 минут назад, WinCap сказал: Если точно знать имя конечной секции, а также имя наследуемой, то можно прочитать параметр дважды - из одной и из другой секции. А вот это идея. Остаётся узнать, а есть ли способ прочитать в переменную parent-секцию (то, что после двоеточия) - [wpn_ak74_m1]:wpn_ak74 ? Ссылка на комментарий
WinCap 292 Опубликовано 26 Июля 2021 Поделиться Опубликовано 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 (upd 10.04.24) Подарки Ссылка на комментарий
Zander_driver 10 166 Опубликовано 26 Июля 2021 Поделиться Опубликовано 26 Июля 2021 Только что, WinCap сказал: можно вручную составить таблицу наследований секций: Или написать некий алгоритм парсера, который просканирует конфиги и составит такую таблицу автоматически. Реализацию можно подсмотреть во всяческих редакторах конфигов сталкера, которых уже множество расплодилось. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Jekyll 91 Опубликовано 26 Июля 2021 Поделиться Опубликовано 26 Июля 2021 Здравствуйте. Как определить, принадлежит ли определенный гейм-вертекс текущей локации? ЗП. New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор Русификатор для игры Vendetta: Curse of Raven's Cry Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти