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 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/
_g.script 3 670 Опубликовано 9 Февраля 2021 Поделиться Опубликовано 9 Февраля 2021 @h0N0r Может, поможет такая проверка? if (obj.parent_id and obj.parent_id == 65535) 1 Здесь могла быть ваша реклама. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/546/#findComment-1369141
Kirgudu 1 370 Опубликовано 9 Февраля 2021 Поделиться Опубликовано 9 Февраля 2021 @h0N0r все перечисленные методы действительно клиентские, а в переменной obj у тебя серверный объект. Если хочешь получить клиентский, следует действовать например так: local cobj = level.object_by_id(obj.id) if cobj then ... end и далее по написанному. Однако зачем делать это после удаления, если я правильно тебя понял? Ты уж определись, что необходимо - удалить объект или придать ему ускорение. 1 1 1 Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/546/#findComment-1369145
h0N0r 415 Опубликовано 10 Февраля 2021 Поделиться Опубликовано 10 Февраля 2021 @Kirgudu пример с удалением - это, то что работает. В общем, запуск арта в атмосферу успешен: -- вызовы из главного меню if dik == DIK_keys.DIK_F4 then if (level.present() and db.actor ~= nil and db.actor:alive()) then -- ########################################## local fail_objects_tbl = { "esc_af_medusa12345", } for k, v in pairs(fail_objects_tbl) do local s_obj = alife():object(v) if s_obj then local c_obj = level.object_by_id(s_obj.id) local ph = c_obj:get_physics_shell() if (ph) then -- >100 метров по у ph:apply_force(0,500000,0) end end end -- ########################################## end end 1 2 https://sites.google.com/view/xray-sdk-0-4-smg Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/546/#findComment-1369204
DibokDibokin 1 Опубликовано 10 Февраля 2021 Поделиться Опубликовано 10 Февраля 2021 Здравствуйте. Подскажите, как можно "телепортировать" определенные вещи, например, под ноги ГГ? Речь про артефакты, не хочется их удалять. Есть ли способы? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/546/#findComment-1369439
AndrewMor 535 Опубликовано 11 Февраля 2021 Поделиться Опубликовано 11 Февраля 2021 @DibokDibokin Удалить и заспавнить аналогичный предмет около ГГ. Ну или сразу в рюкзак 1 Сталкер - наше всё! Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/546/#findComment-1369449
WinCap 324 Опубликовано 11 Февраля 2021 Поделиться Опубликовано 11 Февраля 2021 16 часов назад, DibokDibokin сказал(а): как можно "телепортировать" определенные вещи, например, под ноги ГГ? Если имеется ввиду из инвентаря то: db.actor:drop_item(item) db.actor:drop_item_and_teleport(item, vector) S.T.A.L.K.E.R. CoP Objects >200 шт (upd 21.05.26) - Скачать (Яндекс-диск) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/546/#findComment-1369516
AndrewMor 535 Опубликовано 13 Февраля 2021 Поделиться Опубликовано 13 Февраля 2021 А в какой ситуации нужно перемещать ближе к ГГ? Если как в оригинале на Агро, где за воротами арты лежали, но не взять их... А вообще забавно: если на апдейт повесить функцию, которая проверяет, нет ли в радиусе 3 метров (5, 50 и т.д.) артов, и если есть, их удаляет, а аналогичные спавнит в рюкзак. Прямо дистанционное собирательство. 1 Сталкер - наше всё! Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/546/#findComment-1369865
AndreySol 215 Опубликовано 13 Февраля 2021 Поделиться Опубликовано 13 Февраля 2021 5 часов назад, AndrewMor сказал(а): Прямо дистанционное собирательство. А в чем смысл ? Может тогда и играть за игрока, типа в мультик превратить игру... Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/546/#findComment-1369883
Chypakabra 987 Опубликовано 13 Февраля 2021 Поделиться Опубликовано 13 Февраля 2021 7 часов назад, AndrewMor сказал(а): Прямо дистанционное собирательство. Таки давно уже есть, Гравиган v2.0, удобнейшая вещь скажу я вам, для извлечения артов и трупов нпс - из труднодоступных мест пользуйтесь 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/546/#findComment-1369912
AndrewMor 535 Опубликовано 13 Февраля 2021 Поделиться Опубликовано 13 Февраля 2021 @AndreySol Смысла никакого, просто мысль вслух. Хотя бывает обидно: лежит труп, а подобраться никак - переход мешает. Сталкер - наше всё! Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/546/#findComment-1369915
UriZzz 1 004 Опубликовано 13 Февраля 2021 Поделиться Опубликовано 13 Февраля 2021 10 часов назад, AndrewMor сказал(а): Прямо дистанционное собирательство Да, та ночная звезда на Агро уже давно будоражит умы сталкеров. Отсюда и такие идеи рождаются. Я её зверски удалил в СДК, шоб глаза не мазолила. 1 час назад, AndrewMor сказал(а): Хотя бывает обидно: лежит труп Согласен но, с патронами, шамовкой, медикаментами, стволами всё таки по проще. Моя нычка, Нычка в арендованном у Опричника холодильнике Мы хорошие ребята, жаль патронов маловато:) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/546/#findComment-1369925
AndrewMor 535 Опубликовано 13 Февраля 2021 Поделиться Опубликовано 13 Февраля 2021 17 минут назад, UriZzz сказал(а): Я её зверски удалил в СДК Скриптовый рандомный спавн артов - самое оно. Никогда не знаешь, где чего найдешь. Равно как с динамическими аномалиями: заранее неизвестно, где в Карусель влетишь 19 минут назад, UriZzz сказал(а): с патронами, шамовкой, медикаментами, стволами всё таки по проще. Это да. 2 Сталкер - наше всё! Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/546/#findComment-1369928
phalcor 60 Опубликовано 13 Февраля 2021 Поделиться Опубликовано 13 Февраля 2021 3 часа назад, AndrewMor сказал(а): бывает обидно: лежит труп, а подобраться никак - переход мешает. Я решил эту проблему временным отключением перехода (привожу пример для перехода Бар-АС): (Можно подвесить на кнопочки и пользоваться) local lev_ch --level-changer id - брать в allspawn (те, что есть изначально) или в sak.script (те, что даются по ходу игры) local dir --направление синей стрелочки (для переходов из sak.script) local levchm --наименование (для переходов из sak.script) --ПРИМЕР: Параметры для перехода Бар-АС (взято в sak.script) lev_ch=592 --если надо заспавнить lev_ch=-1 * lev_ch --если надо удалить (выбери что-то одно, другое закомментарь) dir=1 --направление стрелочки levchm="to_military" if lev_ch<0 then --удаляем левел-чейнджер lev_ch=-1 * lev_ch local lc = alife():story_object(lev_ch) alife():release(lc, true) else --создаём local spawn_id = alife():spawn_id(lev_ch) alife():create(spawn_id) --создаём указатель (синюю стрелочку для переходов полученных во время игры (в отличие от тех, которые взяты из allspawn - там стрелка сама создастся!) if levchm then local obj = story_object(lev_ch) map_spot(obj.id, "level_changer"..tostring(dir),levchm) end end Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/546/#findComment-1369942
_g.script 3 670 Опубликовано 13 Февраля 2021 Поделиться Опубликовано 13 Февраля 2021 По поводу артефактов. С самого начала использую скрипт art_mgr и всё мне нравится, кроме того, что порой арты спаунятся где-нибудь в недоступности для ГГ (за колючкой, например). ГГ их взять не может, мобы тоже там не ходят, вот и лежит артефакт там всё время. Но по легенде, на открытом воздухе он "тратится" и когда его condition менее нижнего предела, попросту удаляется. И вот тут моих знаний не хватает, что бы пользоваться стандартными ф-иями, банальные методы condition() и set_condition() приводят к вылету. Пришлось средствами m_netpk через биндер net_spawn отнимать у валяющихся артов понемногу кондиции (плюс-минус рандом) каждые несколько часов. 1 Здесь могла быть ваша реклама. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/546/#findComment-1369964
AndrewMor 535 Опубликовано 14 Февраля 2021 Поделиться Опубликовано 14 Февраля 2021 10 часов назад, phalcor сказал(а): Я решил эту проблему временным отключением перехода Можно и так, конечно. @ted.80 Кстати, там из скриптов только bind_ggun.script. Как же его тогда игра увидит? Сталкер - наше всё! Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/546/#findComment-1370090
Chypakabra 987 Опубликовано 14 Февраля 2021 Поделиться Опубликовано 14 Февраля 2021 18 часов назад, AndrewMor сказал(а): Кстати, там из скриптов только bind_ggun.script. Как же его тогда игра увидит? А что, ещё что-то нужно? Попробуй это запустить - как есть и заспавни - "wpn_gravigun" 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/546/#findComment-1370245
ARTLantist 16 Опубликовано 14 Февраля 2021 Поделиться Опубликовано 14 Февраля 2021 А можно как-то на оригинальном движке изменить вес предмета через скрипт? И ещё вопрос: как можно реализовать объединение двух предметов при перетаскивании одного на другой, как прицел на автомат? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/546/#findComment-1370246
AndreySol 215 Опубликовано 14 Февраля 2021 Поделиться Опубликовано 14 Февраля 2021 @ARTLantist Ответ на оба твоих вопроса - только движковые правки. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/546/#findComment-1370259
I am Dead 918 Опубликовано 14 Февраля 2021 Поделиться Опубликовано 14 Февраля 2021 Кто знает как запомнить активный слот, а после выполнения функции вернуть слот который запомнили? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/546/#findComment-1370262
AndrewMor 535 Опубликовано 15 Февраля 2021 Поделиться Опубликовано 15 Февраля 2021 9 часов назад, ted.80 сказал(а): А что, ещё что-то нужно? Потому и спрашиваю. Если никаких других скриптов не затрагивалось, как игра видит новый биндер? Сталкер - наше всё! Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/546/#findComment-1370270
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти