Zander_driver 5 993 Опубликовано 25 Августа 2020 Поделиться Опубликовано 25 Августа 2020 В движке порядок чтения конфигов и так есть, почитайте xr_ini.cpp Цитата 08.01.2012 в 03:30, xStream сказал(а): Те, у кого свои руки есть, копипастить это не будут, проще свое написать, которое тоже велосипедное, но более понятное автору. Мод, где не бывает одинаковых путей - Судьба Зоны. Подхалимов и льстецов не терплю. Не нравится, что я сделал? Сделай сам, как тебе нравится. Не умеешь - твои проблемы, я тоже когда-то не умел. Да и сейчас, не умею, не знаю, но делаю что хочу. Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
WinCap 176 Опубликовано 25 Августа 2020 Поделиться Опубликовано 25 Августа 2020 (изменено) @Norman Eisenherz, в LUA-функции table.sort есть необязательный второй аргумент - функция сортировки: function functor_sort(a,b) return (a < b) end В ней можно реализовать любые условия сортировки. В самом "тупом" случае - сделать таблицу с ключами: Скрытый текст key_table = { ["st_tech_pistols_ussr"] = 1, ["st_wpn_hpsa"] = 2, ["st_tech_shotguns"] = 3, ["st_tech_assault_all"] = 4, ["st_wpn_fn2000"] = 5, ["st_wpn_groz"] = 6, ["st_wpn_rp tech_outfit_jackets"] = 7, ["stalker_outfit_name"] = 8, ["tech_outfit_csky"] = 9 } function functor_sort(a,b) return (key_table[a] < key_table[b]) end table.sort(main, functor_sort) Изменено 25 Августа 2020 пользователем WinCap 1 1 Цитата S.T.A.L.K.E.R. Tools Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
AndreySol 148 Опубликовано 25 Августа 2020 Поделиться Опубликовано 25 Августа 2020 @WinCap Это не совсем то, что нужно вопрошавшему, точнее не до конца то.. @Norman Eisenherz Если уж так приперло, то вводить дополнительный ключ идентификации, типа "st_1", "_outfit_1", "st_2", "_outfit_2", ну и затем строить список в соответствии с номерами строк. А вообще это по нашему: поставить себе сомнительной полезности задачу, а затем героически ее решать. Лично мне кажется, что игрокам будет совсем наплевать в каком порядке будут перечисляться объекты в пределах группы. 1 Цитата Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
Zander_driver 5 993 Опубликовано 25 Августа 2020 Поделиться Опубликовано 25 Августа 2020 Только что, AndreySol сказал: Это не совсем то, что нужно вопрошавшему, Если я таки верно понял вопрошавшего, ему хотелось "в правильном порядке" вывести определенные текстовые элементы. И во первых да, сложно придумать ситуацию где это было бы действительно важно, но допустим они бывают. А во вторых, для организации такого, существует 1001 способ на любой вкус, и метод предложенный @WinCap, ничем не хуже любого другого. Добиваться же выяснения номера строки в конфиге, для этой цели так же "нужно" как собаке пятая нога. Не говоря уж о том, что привязка вывода к номеру строки, если таки ее реализовать тем или иным способом, чревата проблемами в будущем при необходимости правки конфигов. Добавится потом какая-то новая строка в эту секцию - и вся "верстка" "поедет". 1 Цитата 08.01.2012 в 03:30, xStream сказал(а): Те, у кого свои руки есть, копипастить это не будут, проще свое написать, которое тоже велосипедное, но более понятное автору. Мод, где не бывает одинаковых путей - Судьба Зоны. Подхалимов и льстецов не терплю. Не нравится, что я сделал? Сделай сам, как тебе нравится. Не умеешь - твои проблемы, я тоже когда-то не умел. Да и сейчас, не умею, не знаю, но делаю что хочу. Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
_Sk8_AsTeR_ 45 Опубликовано 25 Августа 2020 Поделиться Опубликовано 25 Августа 2020 Господа, а есть в двигле огср способ рандомизировать в диалоге НПС с ГГ скриптовые фразы? Именно скриптовые. В ванильке фразы меняются только после сейв/лоада Цитата Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
Firestarter 1 Опубликовано 25 Августа 2020 Поделиться Опубликовано 25 Августа 2020 @Zander_driver, Большое спасибо!!! После такого количества времени, всё же - получилось. Скрытый текст Я вначале не особо понял, про какую табличку шла речь. Однако поиском local outfit_classes = {} в данном же файле как нашёл данную место, где должна была быть данная табличка, так и допёр, о чём шла речь. monster_classes = { [clsid.bloodsucker_s] = true, [clsid.boar_s] = true, [clsid.dog_s] = true, [clsid.flesh_s] = true, [clsid.pseudodog_s] = true, [clsid.burer_s] = true, -- [clsid.cat_s] = true, [clsid.chimera_s] = true, [clsid.controller_s] = true, -- [clsid.fracture_s] = true, [clsid.poltergeist_s] = true, [clsid.gigant_s] = true, -- [clsid.zombie_s] = true, [clsid.snork_s] = true, [clsid.tushkano_s] = true, [clsid.psy_dog_s] = true, [clsid.psy_dog_phantom_s] = true} stalker_classes = { [clsid.script_actor] = true, [clsid.script_stalker] = true} weapon_classes = { [clsid.wpn_vintorez_s] = true, [clsid.wpn_ak74_s] = true, [clsid.wpn_lr300_s] = true, [clsid.wpn_hpsa_s] = true, [clsid.wpn_pm_s] = true, [clsid.wpn_shotgun_s] = true, [clsid.wpn_auto_shotgun_s] = true, [clsid.wpn_bm16_s] = true, [clsid.wpn_svd_s] = true, [clsid.wpn_svu_s] = true, [clsid.wpn_rg6_s] = true, [clsid.wpn_rpg7_s] = true, [clsid.wpn_val_s] = true, [clsid.wpn_walther_s] = true, [clsid.wpn_usp45_s] = true, [clsid.wpn_groza_s] = true, [clsid.wpn_knife_s] = true, [clsid.wpn_grenade_f1_s] = true, [clsid.wpn_grenade_rgd5_s] = true, [clsid.wpn_grenade_launcher] = true, [clsid.wpn_grenade_fake] = true} artefact_classes = { [clsid.art_bast_artefact] = true, [clsid.art_black_drops] = true, [clsid.art_dummy] = true, [clsid.art_electric_ball] = true, [clsid.art_faded_ball] = true, [clsid.art_galantine] = true, [clsid.art_gravi] = true, [clsid.art_gravi_black] = true, [clsid.art_mercury_ball] = true, [clsid.art_needles] = true, [clsid.art_rusty_hair] = true, [clsid.art_thorn] = true, [clsid.art_zuda] = true, [clsid.artefact] = true, [clsid.artefact_s] = true} outfit_classes = { [clsid.equ_stalker_s] = true} Я с дуру просто добавил название брони, и получил вылет - я не глянул, что нужен именно класс. В файле outfit.ltx у всех броников единый класс - E_STLK, однако, и это добавление вызывало вылет. Поискав это слово Тотал Коммандером (Слава Тотал Коммандеру), откликнулся единственный файл - class_registrator.script, который как бы даёт расшифровку классам. Что интересно, броня почему-то названа... equ_stalker_s, "сталкер". Главное, строчкой ниже шлемы и названы шлемами. ну чёрт знает, "я разработчик, я так вижу". Вот его добавление и проба игрой наконец-то позволила реализовать разброс прочности брони... Оооооох. Ещё раз спасибо. Я так подробно расписываю, дабы себе сохранить + мб кому это пригодится (хотя, если мне уже посоветовали...значит, и так знают). Добавлено Опричник, 25 Августа 2020 Для "Спасибо" в каждом сообщении справа-внизу есть кнопки. (п.2.1.1. правил форума) 1 Цитата Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
Norman Eisenherz 35 Опубликовано 25 Августа 2020 Поделиться Опубликовано 25 Августа 2020 6 hours ago, Zander_driver said: привязка вывода к номеру строки, если таки ее реализовать тем или иным способом, чревата проблемами в будущем Не к номеру – к порядку. Пять строк, десять – главное, чтобы они были выведены в подсказку в том же порядке, в котором перечислены. Про вариант со списком и я сам упоминал. Что касается задач сомнительной полезности, то именно из решения таких задач я получаю больше всего информации. Цитата Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
AndreySol 148 Опубликовано 27 Августа 2020 Поделиться Опубликовано 27 Августа 2020 25.08.2020 в 23:39, Norman Eisenherz сказал: я получаю больше всего информации. Не вопрос, всем понятно, что чем сложнее задачу ты решил, тем больше опыта\удовлетворения поимел с этого. Но Вы попробуйте мне, как потенциальному игроку в Ваш мод, объяснить, в чем разница для меня, если я буду видеть список доступных улучшений у техника в "правильном порядке"? А вдруг у меня иное понимание важности\правильности этих улучшений? 3 3 2 Цитата Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
mdm64 191 Опубликовано 27 Августа 2020 Поделиться Опубликовано 27 Августа 2020 (изменено) Доброго времени! Вопрос - в ТЧ за ограничения по количеству одновременного спавна "живности" на локации отвечает файл se_respawn.script, а что отвечает за то же самое в ЗП? В некоторых модах на ЗП есть файл mod_params.ltx, в котором можно прописать много чего полезного. Но какие ещё файлы отвечают за количество и ограничения спавна? Изменено 27 Августа 2020 пользователем mdm64 Цитата Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
Это популярное сообщение. Jurok 2 173 Опубликовано 27 Августа 2020 Это популярное сообщение. Поделиться Опубликовано 27 Августа 2020 (изменено) @mdm64, В ЗП респавн сталкеров/мутантов настраивается для каждого смарта по отдельности. Необходимые файлы расположены здесь: gamedata/configs/scripts/zaton/smart/ gamedata/configs/scripts/jupiter/smart/ gamedata/configs/scripts/pripyat/smart/ Основные параметры: max_population - максимальное количество сквадов, которое может принять данный смарт. Определяет для скольких симуляционных сквадов в смарте найдётся работа. spawn_squads - наименования сквадов, которые будут респавниться. spawn_num - количество сквадов, которое будет респавниться в данном смарте. Время респавна задаётся в файле smart_terrain.script параметром RESPAWN_IDLE. Изменено 27 Августа 2020 пользователем Jurok 1 4 Цитата Портфолио Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
mdm64 191 Опубликовано 27 Августа 2020 Поделиться Опубликовано 27 Августа 2020 (изменено) @Jurok, Благодарю, очень полезная информация! Правда, меня интересовало немного другое. Ведь судя по содержимому файла mod_params.ltx, информацию он берёт не из смартов локаций, а откуда-то ещё. Может быть, это движковые функции, которыми управляет данный файл? Ведь по сути я могу (в разумных пределах) задать в каждом смарте какое-то конкретное количество сквадов, также я могу в каждом скваде задать, кажется, до 20 неписей без проблем. А мне требуется, к примеру, задать вполне определённое максимальное количество всех видов "живности" на локации, не больше не меньше. Как это делается в ТЧ, я написал выше, а вот в ЗП есть что-то аналогичное или нет? Только через смарты? Но тогда повторю вопрос - откуда берёт данные mod_params.ltx? Сомнительно, что сканирует все смарты в игре... Или я что-то упускаю из виду... И небольшой подвопрос - есть ли смысл создавать симуляционные сквады, если для всех существующих сквадов группировки (например) уже заданы все необходимые их действия и логика? И сюда же - есть ли принципиальные различия между [simulation_stalker]:online_offline_group и [stalker_sim_squad_novice]:online_offline_group (к примеру) - структура этих секций практически одинакова? Изменено 27 Августа 2020 пользователем mdm64 Цитата Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
Jurok 2 173 Опубликовано 27 Августа 2020 Поделиться Опубликовано 27 Августа 2020 @mdm64, Цитата в ЗП есть что-то аналогичное или нет? В оригинальном ЗП подобное не предусмотрено. Цитата mod_params.ltx Речь о SGM? Могу ошибаться, но вроде бы в их sim_squad_scripted.script добавлен подсчёт сквадов, если больше того количества, что указано в mod_params.ltx - запускается принудительное удаление лишних. 1 Цитата Портфолио Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
mdm64 191 Опубликовано 27 Августа 2020 Поделиться Опубликовано 27 Августа 2020 @Jurok, Благодарю, именно это меня и интересовало! Жаль, конечно, что не предусмотрено. И да, этот файл в основном из модов на SGM и из самого этого мода. Но я видел его и в других модах на ЗП, потому и спросил. Цитата Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
Это популярное сообщение. Jurok 2 173 Опубликовано 27 Августа 2020 Это популярное сообщение. Поделиться Опубликовано 27 Августа 2020 Цитата И сюда же - есть ли принципиальные различия между [simulation_stalker]:online_offline_group и [stalker_sim_squad_novice]:online_offline_group (к примеру) - структура этих секций практически одинакова? В оригинальном ЗП сквад simulation_stalker, насколько помню, вообще нигде не используется. Скрытый текст simulation_stalker_1 simulation_stalker_2 simulation_stalker_3 simulation_bandit simulation_bandit_1 simulation_bandit_2 simulation_bandit_3 simulation_killer simulation_duty simulation_duty_1 simulation_duty_2 simulation_duty_3 simulation_freedom simulation_freedom_1 simulation_freedom_2 simulation_freedom_3 simulation_monolith_squad simulation_zombied_1 simulation_zombied_2 simulation_zombied_3 5 Цитата Портфолио Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
Norman Eisenherz 35 Опубликовано 29 Августа 2020 Поделиться Опубликовано 29 Августа 2020 (изменено) @AndreySol Объяснить как моддер моддеру, почему у каждого свой набор доработок и изменений относительно оригинальной версии игры? Изменено 29 Августа 2020 пользователем Norman Eisenherz 3 Цитата Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
Санька 0 Опубликовано 29 Августа 2020 Поделиться Опубликовано 29 Августа 2020 (изменено) Как заскриптовать враждебного нпс, чтобы с ним можно было разговаривать? Изменено 29 Августа 2020 пользователем Опричник правописание Добавлено Опричник, 29 Августа 2020 Перемещено. Цитата Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
AndreySol 148 Опубликовано 29 Августа 2020 Поделиться Опубликовано 29 Августа 2020 @Санька combat_ignore и combat_ignore_cond в логике. 1 Цитата Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
Norman Eisenherz 35 Опубликовано 30 Августа 2020 Поделиться Опубликовано 30 Августа 2020 @aromatizer Судя по количеству вопросов, оставшихся без ответа, сделано далеко не все. Например, во время адаптации мода "Медикаменты на худе" под ТЧ 1.0006 я спрашивал, как правильно скрывать счетчик при отображении диалоговых окон, при запуске катсцен и снов – хоть бы кто сказал, что можно сделать один пустой статик на худе и всю начинку добавить к нему, а не мудрить с инфо-поршнями для каждого типа окна отдельно. Кроме того, даже мод с ремкомплектами можно создать по-разному: где-то условно расходовать сам РМК, где-то разбирать на запчасти похожие предметы, а где-то требовать для ремонта точно такой же предмет и этим ломать квесты из-за стыренного и побитого неписями редкого оружия. 1 Цитата Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
Norman Eisenherz 35 Опубликовано 6 Сентября 2020 Поделиться Опубликовано 6 Сентября 2020 (изменено) Здрасьте. Беру количество денег у ГГ (с виду целое – ни одной цены с копейками нет), делю на 10: исходное число 18'639, после деления 1'863.9000244141. Читаю радиацию из конфига через system_ini():r_float(sect, "radiation_restore_speed"): в конфиге 0.002, в результате 0.002000000949949. Округляю координату до одного знака через math.floor(x*10 + 0.5) / 10: исходное число 269.583…, после округления 269.6000610352. Такие странности с вычислениями наблюдаются, как минимум, в ТЧ и ЧН. Откуда берутся эти дробные части и как с этим бороться? Изменено 6 Сентября 2020 пользователем Norman Eisenherz 1 1 Цитата Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
WinCap 176 Опубликовано 6 Сентября 2020 Поделиться Опубликовано 6 Сентября 2020 (изменено) @Norman Eisenherz, цитата из "Программирование на языке Lua", п.2.3 Числа (стр. 28): "Тип number представляет значения с плавающей точкой, заданные с двойной точностью. В Lua нет встроенного целочисленного типа". Изменено 6 Сентября 2020 пользователем WinCap 1 3 Цитата S.T.A.L.K.E.R. Tools Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.