Svoboда 3 Опубликовано 23 Апреля 2009 Поделиться Опубликовано 23 Апреля 2009 Тема для обсуждения скриптов всего и всех в серии игр STALKER. Задавая вопрос (!): 1. Внимательно изучите суть вопроса. Вопрос должен соответствовать выбранной Вами темы. Это поможет сохранить порядок и читабельность темы, а также облегчит поиск и понимание сего; 2. Изучите то, что уже есть в теме (пролистайте "руками", воспользуйтесь поиском на форуме); 3. Изучите информацию которая может вам помочь: Stalkerin. Там есть много хороших статей касательно данной темы.Уроки по модостроению. Есть рабочие примеры готовых скриптов различного назначения. Справочное руководство по языку Lua 5.1https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/ruСправочник по функциям и классам. Собрано много информации по функциям и классам, не всем, но по основные сведения предоставлены. Логика со вступлением и четырьмя частями: ВступлениеЧасть перваяЧасть втораяЧасть третьяЧасть четвертая. Smart_terrain (в простонароде - гулаг)Интересный способ настроики логики для гулаговСкриптовая часть игровой логики 4. Дабы не превращать обсуждение в "кашу" разной информативной направленности, задавайте несколько вопросов по порядку (в разных постах) после того, как получите ответ на предыдущий вопрос; 5. "Спасибо" и тому подобное - будьте так любезны в ПМ. Если не любите писать в ПМ, в конце вопроса напишите фразу: "Заранее спасибо!" - или что-то в этом духе; 6. ПОЖАЛУЙСТА! Указывайте, для какой игры Вам необходима информация (ТЧ, ЧН, ЗП), если стоит мод - укажите название мода; 7. Если Вы что-то сделали и результат не такой, какой Вами задумывался, то, пожалуйста, приводите коды которые Вы изменяли/писали целиком! Это поможет другим правильно ответить на Ваш вопрос, а также оградит Вас от лишней писанины. 8. Оформляйте сообщение. Пользуйтесь тегами для того, чтобы отделить код от текста. Пишите грамотно - ПОЛЬЗУЙТЕСЬ ЗНАКАМИ ПРЕПИНАНИЯ. 9. И помните: «Правильно заданный вопрос – половина ответа». Какие вопросы следует задавать, а какие нет... Задавайте вопросы, которые касаются непосредственно скриптов и их работы, т.е. Вы что-то делаете, а у Вас что-то не получается, при этом у Вас на руках должен быть хотя бы какой-то код, свидетельствующий о Вашей причастности к вопросу. Вопросы которые будут удалятся, следовательно их задавать не нужно:-- Где находится та или иная функция? Для ответа используем поиск по словам среди файлов оригинальной игры или мода, если объект поиска относится к нему, при помощью программы, которая Вам наиболее симпатизирует;-- Как сделать что-то/то-то? С подобными вопросами, либо в "ковырялки", где Вам вероятнее всего так же не ответят, либо выдвигаем мысли, подкреплённые теорией, практикой (идеальный вариант) и здравым рассудком;-- Вопросы со смыслом: "сделайте", "совместите" и подобными глаголами повелительного наклонения.-- К тому же удалению будут подвергаться вопросы, в которых масштабно не используются теги, для отделения кода и цитат от основного текста, а также не вписан в спойлер код размером превышающие семь строк.Ответ на возможно возникший вопрос: В какую тему можно обратиться по поводу логики и спавна объектов? В тему "ковырялок" соответствующей версии игры, для которой Вы задаёте вопрос. И последнее: очень рекомендовано к прочтению Правила форума 1 2 Ссылка на комментарий
WinCap 316 Опубликовано 19 Августа 2020 Поделиться Опубликовано 19 Августа 2020 @DibokDibokin, попробуй так: Скрытый текст local is_box = { ["dynamics\\box\\box_wood_01"] = true, ["dynamics\\box\\box_metall_01"] = true, ["dynamics\\box\\box_paper"] = true, } function show_boxes() for i=1,65535 do local s_obj = alife():object(i) if s_obj ~= nil then local c_obj = level.object_by_id(s_obj.id) if (c_obj and is_box[c_obj:get_visual_name()]) then level.map_add_object_spot_ser(s_obj.id, "warfare_stalker_spot", "box") end end end end 1 2 S.T.A.L.K.E.R. CoP Objects (upd 15.11.24) Ссылка на комментарий
AndreySol 215 Опубликовано 19 Августа 2020 Поделиться Опубликовано 19 Августа 2020 @WinCap, @DibokDibokin, Если есть таблица, из которой мы выдергиваем признак того, что объект у нас инв.ящик, так может правильнее сделать таким признаком story_id? Т.е. вместо перебора 65тыщ объектов перебрать несколько объектов из таблицы, получая объект по его story_id? Просмотрел несколько страниц назад, не нашел изначальный вопрос @DibokDibokin. Из обсуждения понятно, что надо поставить метку на объект, но вот условия, когда ее надо ставить? Ссылка на комментарий
Zander_driver 10 343 Опубликовано 19 Августа 2020 Поделиться Опубликовано 19 Августа 2020 @WinCap, Среди объектов иногда бывают такие, у которых нету визуала. Смарты например. Попытка с колес использовать его "визуал" в качестве ключа таблицы, к нехорошим последствиям привести может @DibokDibokin, local is_box = { ["dynamics\\box\\box_wood_01"] = true, ["dynamics\\box\\box_metall_01"] = true, ["dynamics\\box\\box_paper"] = true, } function show_boxes() printf("show_boxes run") for i=1,65535 do local s_obj = alife():object(i) if s_obj ~= nil then local c_obj = level.object_by_id(s_obj.id) if (c_obj) then local visual = c_obj:get_visual_name() if (visual and visual ~= "" and is_box[visual]) then printf(string.format("box object [%s:%i] detected. visual=%s", c_obj:section(), s_obj.id, visual)) level.map_add_object_spot_ser(s_obj.id, "warfare_stalker_spot", "box") end end end end printf("show_boxes complete") end Готовый вариант, безопасный с точки зрения работы с таблицами, и снабженный выводами в лог, емнип, не требующими подключения сторонних библиотек к оригиналу. printf ведь работает в оригинале? кто помнит. 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
UriZzz 1 004 Опубликовано 19 Августа 2020 Поделиться Опубликовано 19 Августа 2020 @Zander_driver, вот и проверит, если будут вылет с руганью на эту строчку, значит не работает. Моя нычка, Нычка в арендованном у Опричника холодильнике Мы хорошие ребята, жаль патронов маловато:) Ссылка на комментарий
Zander_driver 10 343 Опубликовано 19 Августа 2020 Поделиться Опубликовано 19 Августа 2020 2 часа назад, AndreySol сказал: может правильнее сделать таким признаком story_id? Т.е. вместо перебора 65тыщ объектов Из вопросов @DibokDibokin, по-моему, никак не следует, что интересующие ящики вообще story_id имеют. А возникающие какие-либо задачи лучше решать без привлечения сторонних-дополнительных сущностей, если это возможно и удобно. имха. Только что, UriZzz сказал: если будут вылет Его-то точно не будет. Куча printf-ов есть в скриптах оригинала, не закомментированных. Другое дело, они там в лог пишут или молча игнорируются... я не помню. Помню что на заре моддинга зачем-то строились монструозные костыли для вывода инфы в логи через консоль. А зачем и почему это делалось, уже не помню, хоть убейте. 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
abramcumner 1 174 Опубликовано 19 Августа 2020 Поделиться Опубликовано 19 Августа 2020 56 минут назад, Zander_driver сказал: А зачем и почему это делалось, уже не помню, хоть убейте. Затем, что принтф не работает в оригиналах 1 1 Ссылка на комментарий
_Sk8_AsTeR_ 122 Опубликовано 19 Августа 2020 Поделиться Опубликовано 19 Августа 2020 Господа, чет я затупил Вот так можно вернуть комьюнити НПС: npc:community(), а как вернуть уровень, на котором находится npc? Ссылка на комментарий
dsh 3 824 Опубликовано 19 Августа 2020 Поделиться Опубликовано 19 Августа 2020 @_Sk8_AsTeR_, если движок OGSR, то sobj.level_name. Ты сразу уточняй, что за движок, что бы не гадать. 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
_Sk8_AsTeR_ 122 Опубликовано 19 Августа 2020 Поделиться Опубликовано 19 Августа 2020 @dsh, огср, да, извиняюсь. Ссылка на комментарий
Zander_driver 10 343 Опубликовано 19 Августа 2020 Поделиться Опубликовано 19 Августа 2020 2 часа назад, abramcumner сказал: принтф не работает в оригиналах Ужас. И всякие log_что-нибудь тоже. Давно там не ковырялся, успел позабыть, насколько все было плохо) А ведь пожалуй, OGSR движок вообще любому начинающему ковыряльщику рекомендовать можно, дружелюбнее он к разработчику. Особенно начинающему. @DibokDibokin, возьми на заметку) 1 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Kirgudu 1 255 Опубликовано 19 Августа 2020 Поделиться Опубликовано 19 Августа 2020 Начинающего ковыряльщика может интересовать вовсе даже не ТЧ, а, скажем, ЧН, как меня 9 лет назад, или ЗП. Инструмент Ссылка на комментарий
Expropriator 2 118 Опубликовано 19 Августа 2020 Поделиться Опубликовано 19 Августа 2020 (изменено) @Kirgudu, про ЧН это слишком. Там я и еще пара пасонов. Вот в ЗП - это возможно. И еще, зачем вы в ОГСМ ГГ убили? Вы на ГГ, еще одного ГГ навесили? Изменено 19 Августа 2020 пользователем Опричник Ссылка на комментарий
mdm64 586 Опубликовано 19 Августа 2020 Поделиться Опубликовано 19 Августа 2020 Никто не подскажет, что за интересное написание логики непися в поинте (ЗП) - ""wp00|a=sit_ass""? Первый раз встретил такое, это чей-то мод небольшой, старенький. Ссылка на комментарий
Expropriator 2 118 Опубликовано 19 Августа 2020 Поделиться Опубликовано 19 Августа 2020 @mdm64, первое вейпоинт. Второе - анимация или работа (сидеть). Ссылка на комментарий
mdm64 586 Опубликовано 19 Августа 2020 Поделиться Опубликовано 19 Августа 2020 (изменено) @Expropriator, я не об этом, это понятно, я про двойные скобки. ПыСы. Самое интересное, что этот мод работает. Изменено 19 Августа 2020 пользователем mdm64 1 Ссылка на комментарий
Expropriator 2 118 Опубликовано 19 Августа 2020 Поделиться Опубликовано 19 Августа 2020 (изменено) @mdm64, может потому, что там один вейпоинт вообще, а не цепь. Что то даже не знаю. Изменено 19 Августа 2020 пользователем Expropriator Ссылка на комментарий
mdm64 586 Опубликовано 19 Августа 2020 Поделиться Опубликовано 19 Августа 2020 (изменено) @Expropriator, Там плотно заселённые средних размеров две локации плюс полный ЗП. На каждой локе несколько смартов, в общей сложности десятка два отрядов плюс мутанты.... и на каждый отряд своя точка спавна, почти все неписи спавнятся через поинты, кроме уников. Да, такой вопрос - можно ли управлять в ЗП отрядом, используя цепочку поинтов, как для одно сталкера? Помнится, в ТЧ это было возможно, а в ЗП что-то не видел нигде. Если можно, то как? Изменено 19 Августа 2020 пользователем mdm64 Ссылка на комментарий
Expropriator 2 118 Опубликовано 19 Августа 2020 Поделиться Опубликовано 19 Августа 2020 (изменено) @mdm64, наверно можно. Твой теза mkdm в последних модах (Припять точка отсчета) такое вытворял Там группу нужно было сопровождать, что бы их не убили. Изменено 19 Августа 2020 пользователем Expropriator 1 Ссылка на комментарий
mdm64 586 Опубликовано 19 Августа 2020 Поделиться Опубликовано 19 Августа 2020 @Expropriator, Ага, вспомнил, вроде такое было в SGM, когда Дегтярёв сопровождал группу учёных на Юпитере от учёного бункера до вентиляционного комплекса. Только вот проблемка - не могу распаковать ни одну из локаций СГМ, декомпилятор валится стабильно с критическими ошибками. а так посмотрел бы, конечно... 1 Ссылка на комментарий
Expropriator 2 118 Опубликовано 19 Августа 2020 Поделиться Опубликовано 19 Августа 2020 @mdm64, да это в оригинале ЗП есть. Там группу монолита нужно было сопроводить. 1 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти