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/
deniska9999den 3 Опубликовано 18 Февраля 2022 Поделиться Опубликовано 18 Февраля 2022 Хотел поинтересоваться, что это такое в консоли выскакивает: ProcessGameEvents, spawn event postponed. Events rest = 1 ProcessGameEvents, spawn event postponed. Events rest = 8 ProcessGameEvents, spawn event postponed. Events rest = ... (или другое число) Игра Тени Чернобыля на движке 1.0007 Такая лабуда выскакивает в консоли всякий раз, когда подходишь к новому заспавненному НПС, и происходит микрофриз пока весь ProcessGameEvents не пройдёт. Можно ли как-то эту проверку отключить, чтобы избавиться от фриза? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/586/#findComment-1421230
Norman Eisenherz 355 Опубликовано 18 Февраля 2022 Поделиться Опубликовано 18 Февраля 2022 @EGER.OVERKILL WF Надо править конфиг: [config\ui\inventory_new.xml] или […\inventory_new_16.xml] <dragdrop_bag> rows_num, cols_num – сетка unlimited=0 – ограничение вместимости // событие "свободное место закончилось" обрабатывается с вылетом в любой части оригинала, как с этим в модах – не знаю always_show_scroll=0 – полоса прокрутки по умолчанию скрыта В ЗП те же параметры в [configs\ui\actor_menu.xml] или [actor_menu_16.xml]. Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/586/#findComment-1421251
EGER.OVERKILL WF 3 Опубликовано 18 Февраля 2022 Поделиться Опубликовано 18 Февраля 2022 (изменено) 3 часа назад, Norman Eisenherz сказал: с вылетом Хотелось бы найти универсальное решение без вылета, ибо получается что подобрать "лишний", предмет который уже не влезает, мы можем, а открыть инвентарь нет, ибо вылет. Сегодня уже испытал функцию unlimited=0/1. Просто допустим инвентарь миниатюрный, а гг захочет набрать "ништяков", допустим 3 костюма, и в 35 клеток это вряд ли вместится корректно. Так-то мои карланские навыки мне подсказали что ковырять, но вот как "довести до ума", я пока не знаю. Не ищу готового решения, просто хочу сделать качественно, или хотя бы замахнуться на подобное. upd: Суть, в том, которую я хочу донести , это что можно и 6х6 и 3х3 сделать инвентарь, просто если гг наберет "сверх" нормы, то он просто расширяется. Хотелось бы сделать его (Инвентарь/рюкзак) фиксированным, а не "резиновым". Разумеется если это возможно, может это вообще ограничивается движком. Изменено 18 Февраля 2022 пользователем EGER.OVERKILL WF 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/586/#findComment-1421272
Chypakabra 1 002 Опубликовано 19 Февраля 2022 Поделиться Опубликовано 19 Февраля 2022 8 часов назад, EGER.OVERKILL WF сказал: Хотелось бы сделать его (Инвентарь/рюкзак) фиксированным, а не "резиновым" Господа игре уже не один год, и все возможные хотелки уже давно реализованы, нужно просто немного напречь ганглии и пользоваться поиском или по форуму, ну или на худой конец гуглите в интернетах - Inventory Volume mod Inventory Volume Mod Для Stalker: Shadow of Chernobyl любой версии. ------------------------- Описание: ------------------------- - Модификация вводит в игру систему ограничения инвентаря ГГ на вместимость по физическому объёму. - Если попытаться поднять предмет, параметры которого отсутствуют в inv_volume.ltx, то предмет будет выброшен обратно, появится сообщение, содержащее отсутствующую секцию (это можно изменить). ------------------------- Inventory Volume mod.7z Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/586/#findComment-1421309
EGER.OVERKILL WF 3 Опубликовано 19 Февраля 2022 Поделиться Опубликовано 19 Февраля 2022 6 часов назад, ted.80 сказал: напречь ганглии Спасибо, с этим модом знаком, просто думал есть, может еще что-то. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/586/#findComment-1421341
explorerbee 0 Опубликовано 7 Марта 2022 Поделиться Опубликовано 7 Марта 2022 Друзья, всем привет. На днях увидел мод, который заменяет карту на компас. Идея очень понравилось, но мне хотелось бы реализовать компас как в игре Squad, PUBG. Как там это реализовано: при передвижении камеры по оси X компас "прокручивается", т.е. отображается сторона света. Также там указывается отдельно градус направления, в котором ты смотришь. Ссылка на картинку (как это вообще выглядит в том же Squad) Я к сожалению совершенно не обладаю никакими навыками моддера (максимум пушки портировал из B&S), и мне хотелось бы кое-что спросить: Что мне нужно изучить, чтобы попробовать такое сделать? Может какие-то материалы есть? Может уже где-то были такие наработки? И сильно ли будет сложно такое реализовать? Заранее спасибо. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/586/#findComment-1423410
_g.script 3 670 Опубликовано 7 Марта 2022 Поделиться Опубликовано 7 Марта 2022 (изменено) Назрел вопрос. В момент сдачи квеста требуется одну пачку патронов трансферить НПСу, остальные удалить из инвентори актёра. Общее кол-во пачек нужно для прекондишена. Но при одновременном трансфере и удалении всегда остаётся лишняя пачка в рюкзаке. Верно ли я понимаю, что выход, это разделить трансфер и удаление некоторым промежутком времени с помощью постановки удаления на таймер? Или же можно обойтись иначе? Всем добра. Изменено 7 Марта 2022 пользователем mole venomous Здесь могла быть ваша реклама. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/586/#findComment-1423433
Zander_driver 10 358 Опубликовано 7 Марта 2022 Поделиться Опубликовано 7 Марта 2022 @mole venomous Можно просто сначала составить список наличных пачек патронов, индексированный по ID объекта. А затем из этого списка одну трансферить, остальные удалять. Скрытый текст Как-то в таком духе: local list = {} local transfered = false function iterator_inventory(item, actor) if item and item:section() == "target_item" then table.insert(list, item:id()) end end function execute_mv() for i, id in pairs(list) if transfered then local sobj = alife():object(id) if sobj then alife():release(sobj, true) end else local obj = level.object_by_id(id) if obj then transfer(obj) transfered = true end end end end 6 часов назад, explorerbee сказал: Что мне нужно изучить, чтобы попробовать такое сделать? Посоветую изучить принципы построения худа в игре https://www.amk-team.ru/forum/topic/8013-hud/ Как он строится при помощи xml-конфигов и текстур, и принципы скриптового управления им, тут и тут ЗЫ. Кстати, в постах по ссылкам, спойлеры побились... модераторы, поправил бы кто) 2 1 Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил. Я понял что моя старая подпись что-то нарушает. Удалил все ссылки. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/586/#findComment-1423441
AndreySol 215 Опубликовано 18 Марта 2022 Поделиться Опубликовано 18 Марта 2022 (изменено) 07.03.2022 в 20:48, mole venomous сказал: Но при одновременном трансфере и удалении всегда остаётся лишняя пачка в рюкзаке. Тут неплохо-бы посмотреть код, как это все устроено. P.S. Может стоит упростить само условие квеста? В чем смысл, отдать в завершение квеста одну пачку патронов, а остальные удалить? Пытаюсь понять формулировку такого квеста, и не могу: меня просят принести пачку патронов, соглашаюсь. У меня уже есть пять пачек таких патронов - почему я должен лишится всех, отдав одну квестодателю? Изменено 18 Марта 2022 пользователем AndreySol 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/586/#findComment-1423893
_g.script 3 670 Опубликовано 18 Марта 2022 Поделиться Опубликовано 18 Марта 2022 24 минуты назад, AndreySol сказал: Пытаюсь понять формулировку такого квеста Нужно трансферить лишь одну пачку, остальные удалить, якобы НПСу переданы все пачки. При попытке трансферить более одной пачки вылет типа: Скрытый текст [error]Expression : e_entity->ID_Parent == id_parent [error]Function : xrServer::Process_event_reject [error]File : d:\a\ogsr-engine\ogsr-engine\ogsr_engine\xrgame\xrserver_process_event_reject.cpp [error]Line : 38 [error]Description : ammo_5.45x39_fmj17085 [error]Arguments : single_player 34 минуты назад, AndreySol сказал: посмотреть код Обычный трансфер в диалоге: Скрытый текст dialogs.relocate_item_section(b, "ammo_5.45x39_fmj", "out") Удаление, коды из НС 2016: Скрытый текст function out_GG_num(thing,num) local actor = db.actor local sim = alife() local id,item,sect,sobj local count = actor:object_count() local ind1,ind2 = 0,num for i = 0, count - 1 do if ind2 == 0 then break end item = actor:object(i) sect = item and item:section() if sect and sect == thing then id = item:id() or item.id sobj = id and sim:object(id) if sobj then ind2 = ind2 - 1 ind1 = ind1 + 1 sim:release(sobj) end end end if ind1 ~= num then return false end ex_all.news_item_out(actor,thing,ind1) return true end По отдельности всё работает - либо пачка трансфериться НПСу, либо удаляется нужное кол-во пачек. Одновременно же происходит трансфер пачки и недоудаление одной пачки патронов. Насчёт вылета при трансфере более одной пачки одинаковых патронов, судя по всему, я это делаю не так, ибо впервые столкнулся. Но тут выше уже речь была про 07.03.2022 в 21:53, Zander_driver сказал: список наличных пачек патронов, индексированный по ID объекта , и видимо это есть решение. Здесь могла быть ваша реклама. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/586/#findComment-1423897
Это популярное сообщение. dsh 3 824 Опубликовано 18 Марта 2022 Это популярное сообщение. Поделиться Опубликовано 18 Марта 2022 Вот же любит народ сложно. Это игра, здесь не нужно соблюдать физ. законы, достаточно сделать иллюзию их наличия. Что ты привязался к этому трансферу. Удали, что тебе нужно из инвентаря актора, и создай в инвентаре непися то, что тебе там нужно. Никто не узнает, что эта злосчастная пачка была там создана заново, а не перемещена существующая. 2 3 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/586/#findComment-1423902
Zander_driver 10 358 Опубликовано 18 Марта 2022 Поделиться Опубликовано 18 Марта 2022 Соглашусь. Можно так, можно еще кучей других простых способов, смотря какие цели преследуются. Мы же их не знаем. Я просто попытался обозначить (одно из) возможных решений на то что было озвучено. Хочет человек трансфер - значит трансфер... А зачем там именно трансфер, для чего, и нужен ли он в самом деле - это другие вопросы. 3 часа назад, mole venomous сказал: Одновременно же происходит трансфер пачки и недоудаление одной пачки патронов. Просто не нужно с одним и тем же объектом, пытаться делать одновременно обе вещи. Трансфер и удаление. Можно все трансферить. Можно все удалить. Можно проиндексировать и какие-то одни удалить, а какие-то другие трансферить. Можно спавнить конечно. Но не нужно допускать попыток совершения взаимоисключающих действий над одним и тем же объектом одновременно - тогда в лучшем случае, одно из действий не будет выполнено. А скорее будет закономерный вылет. Это если что, общий теорикрафт в принципе по любым действиям с игровыми объектами... не только в обсуждаемой ситуации. 3 часа назад, mole venomous сказал: dialogs.relocate_item_section Посмотрел код этой ерунды в оригинале - в обсуждаемой ситуации, вообще не надо такое юзать. 1 1 1 Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил. Я понял что моя старая подпись что-то нарушает. Удалил все ссылки. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/586/#findComment-1423909
dsh 3 824 Опубликовано 18 Марта 2022 Поделиться Опубликовано 18 Марта 2022 На мой взгляд, трасфером вообще не нужно пользоваться без реальной на то необходимости. Т.е. только тогда, когда без этого никак. Результат трансфера будет только на следующем апдейте, а для новичков это слишком сложно и запутано. Да и не для новичков тоже грабли, стоит только эту отложенность из виду упустить. 1 1 2 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/586/#findComment-1423911
Zander_driver 10 358 Опубликовано 18 Марта 2022 Поделиться Опубликовано 18 Марта 2022 Опять же соглашусь. Трансфер хорош только в случаях когда передаваемый объект имеет кучу каких-то своих особенных кастомизируемых данных, и/или что-то объемное и нужное в кастом-дате. А ковыряться с его нетпакетом допустим лень и/или сложно. Пачка патронов не тот случай. 1 Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил. Я понял что моя старая подпись что-то нарушает. Удалил все ссылки. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/586/#findComment-1423914
_g.script 3 670 Опубликовано 19 Марта 2022 Поделиться Опубликовано 19 Марта 2022 (изменено) 11 часов назад, Zander_driver сказал: Пачка патронов не тот случай Совершенно не тот случай. Вот интересно было разобраться, когда споткнулся об эту пачку. Прочитал мнения и советы. И сделал вывод, в похожей ситуации мне проще удалять и спаунить с записью в пакет. Изменено 19 Марта 2022 пользователем mole venomous Здесь могла быть ваша реклама. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/586/#findComment-1423924
Okichi 981 Опубликовано 19 Марта 2022 Поделиться Опубликовано 19 Марта 2022 Наоборот же ) Если пачка - как раз проще удалить у актора и заспаунить где надо. А вот если что-то уникальное (с еще где-то используемым id и/или story_id, например, или с неудобочитаемой кастомдатой) - тогда уж трансфер. 1 След от кругов на воде - это тоже след (с) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/586/#findComment-1423944
_g.script 3 670 Опубликовано 19 Марта 2022 Поделиться Опубликовано 19 Марта 2022 7 минут назад, Okichi сказал: Наоборот же Я это и имею ввиду, как то невнятно написал просто. Здесь могла быть ваша реклама. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/586/#findComment-1423947
_Sk8_AsTeR_ 122 Опубликовано 25 Марта 2022 Поделиться Опубликовано 25 Марта 2022 Доброго времени. А есть способ узнать, присутствует ли у непися, который находится в оффлайне (например на другой локации) в его инвентаре конкретный итем? 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/586/#findComment-1424442
Chypakabra 1 002 Опубликовано 25 Марта 2022 Поделиться Опубликовано 25 Марта 2022 2 часа назад, _Sk8_AsTeR_ сказал: есть способ узнать, присутствует ли у непися, который находится в оффлайне (например на другой локации) в его инвентаре конкретный итем? Я конечно понимаю, что наСТОящий сталкер - лёгких путей не ищет, но на кой фиг такие сложности? soryy за offтоп 1 2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/586/#findComment-1424459
Okichi 981 Опубликовано 25 Марта 2022 Поделиться Опубликовано 25 Марта 2022 @ted.80 И еще очень интересно узнать - зачем ЭТО вот надо автору исходного поста) 1 2 След от кругов на воде - это тоже след (с) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/586/#findComment-1424473
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти