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/
Norman Eisenherz 354 Опубликовано 6 Февраля 2020 Поделиться Опубликовано 6 Февраля 2020 Теперь у меня даже больше ответов, чем было вопросов. Всем спасибо. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/507/#findComment-1314029
_g.script 3 666 Опубликовано 8 Февраля 2020 Поделиться Опубликовано 8 Февраля 2020 (изменено) У меня такие дилетантские вопросы. Как сохраняются объекты в ОП-2.1 при перемещении в самопальный тайник? Сохраняются ли они вообще как объекты (т.к. по описанию эти тайники почти не "нагружают" систему)? Насколько сложно воссоздать подобную схему (или что-то вроде пересоздания объекта с переносом нет-пакета) или проще обратиться в другую тему с поиском нужных исходных файлов? Изменено 8 Февраля 2020 пользователем mole venomous Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/507/#findComment-1314194
naxac 2 578 Опубликовано 8 Февраля 2020 Поделиться Опубликовано 8 Февраля 2020 @mole venomous, думаю, там сохраняются только основные данные о объектах. Например, секция, состояние, количество патронов и наличие навесов для оружия, и т.д... 14 минут назад, mole venomous сказал: проще обратиться в другую тему с поиском нужных исходных файлов? Проще самому посмотреть, что и как, в файлах мода. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/507/#findComment-1314198
Norman Eisenherz 354 Опубликовано 11 Февраля 2020 Поделиться Опубликовано 11 Февраля 2020 Здрасьте. Задача: вывести шкалу с последовательным заполнением делений: https://drive.google.com/open?id=1EBywWOQW3TvpG3rpP9Ula394q4LA4yzy Вроде бы простое решение: SEQ-файл с набором кадров. Проблема: анимация проигрывается со 2-го кадра, потом с 3-го, потом с 5-го, потом правильно, потом еще с какого-нибудь левого кадра – такое впечатление, что каждый второй-третий раз начальный кадр выбирается случайным образом, потом один-два раза сдвигается на +1, потом опять выбирается случайно. Как с таким поведением бороться? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/507/#findComment-1314912
_g.script 3 666 Опубликовано 11 Февраля 2020 Поделиться Опубликовано 11 Февраля 2020 5 часов назад, Norman Eisenherz сказал: последовательным заполнением делений А если привязать обновление текстуры на таймеры, и при каждой отсечке обновлять шкалу? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/507/#findComment-1314929
Norman Eisenherz 354 Опубликовано 11 Февраля 2020 Поделиться Опубликовано 11 Февраля 2020 @mole venomous Это уже сложное решение – вдвое больше кода (хотя все равно не больше 60 строк). У меня вопрос в другом: как заставить SEQ-анимацию проигрываться всегда с 1-го кадра? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/507/#findComment-1315115
naxac 2 578 Опубликовано 11 Февраля 2020 Поделиться Опубликовано 11 Февраля 2020 @Norman Eisenherz, а CUIProgressBar для твоих целей не подойдёт? Там при задании значения (SetProgressPos) длина шкалы изменяется плавно. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/507/#findComment-1315129
Norman Eisenherz 354 Опубликовано 12 Февраля 2020 Поделиться Опубликовано 12 Февраля 2020 @naxac 1. Нет, мне как раз нужна шкала с дискретным заполнением, по одной ячейке в секунду. 2. Можно картинку с примером применения CUIProgressBar? В имеющихся у меня файлах (ТЧ, OGSE, солянка 2010) только описание в lua_help. 3. Первым кадром анимации, описанной в SEQ-файле, все-таки можно управлять, или он всегда выбирается случайно? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/507/#findComment-1315140
_g.script 3 666 Опубликовано 12 Февраля 2020 Поделиться Опубликовано 12 Февраля 2020 Подскажите, существует ли скриптовый метод запретить автоматическую перезарядку оружия? Или на крайний случай, отловить момент начала перезарядки? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/507/#findComment-1315166
Zander_driver 10 348 Опубликовано 12 Февраля 2020 Поделиться Опубликовано 12 Февраля 2020 5 минут назад, mole venomous сказал: существует ли скриптовый метод В нынешние времена, стоит делать оговорку, о том что наличие либо отсутствие тех или иных скриптовых методов, зависит от версии движка. И если задавать вопрос "существует ли" - то уточнять, о каком движке речь. 2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/507/#findComment-1315175
UriZzz 1 004 Опубликовано 12 Февраля 2020 Поделиться Опубликовано 12 Февраля 2020 @mole venomous, если в чистом ТЧ, то нет, есть в x-ray ext последней ревизии, но там задаются в оружейных конфигах - запретить или нет авто-перезарядку. Есть в OGSR, но там, по моему, в самом движке железно отключена авто-перезарядка, если с того времени когда я тыкал тот двиг, не чего не изменилось. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/507/#findComment-1315185
naxac 2 578 Опубликовано 12 Февраля 2020 Поделиться Опубликовано 12 Февраля 2020 @Norman Eisenherz, 2. https://github.com/naxac/CP2_AddOn/commit/f34310407a98f13d24c5b36d3c1008b058b96f65 Можно через нужные промежутки времени прибавлять значение, передаваемое в SetProgressPos. 3. Всегда думал, что *.seq проигрывается с самой первой (верхней) текстуры. Интересно... Управлять первым кадром точно нельзя. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/507/#findComment-1315192
gam 118 Опубликовано 19 Февраля 2020 Поделиться Опубликовано 19 Февраля 2020 Подскажите плиз с какой частотой апдейтится функция function set_fastcall(const function<boolean>&, object) в милисекундах. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/507/#findComment-1316408
Malandrinus 615 Опубликовано 19 Февраля 2020 Поделиться Опубликовано 19 Февраля 2020 gam, Вроде как с частотой кадров, т.е. точной частоты нет. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/507/#findComment-1316476
Norman Eisenherz 354 Опубликовано 20 Февраля 2020 Поделиться Опубликовано 20 Февраля 2020 Здрасьте. Начал ковырять нетпакеты… По файлу [weap_data.script] из старого мода "Ночные прицелы" восстановил порядок и тип переменных, потом прочитал по одной с начала и с конца со сдвигом (lvid и condition) – результат сходится с тем, что выдают обычные функции. https://drive.google.com/open?id=1LvustUkaKFNZWCMUUsZ0V-7Rms8RwfoF Насколько я могу судить по записям на форуме, полученная таблица подходит только для типа предметов "огнестрельное оружие без гранатомета". Где можно найти аналогичную информацию (порядок и тип переменных) для нетпакетов NPC, брони, оружия с гранатометом и других типов игровых объектов? Можно ли эту информацию как-то получить из самого нетпакета, или в нем хранятся только значения, которые невозможно прочитать без знания их типов? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/507/#findComment-1316490
Zander_driver 10 348 Опубликовано 20 Февраля 2020 Поделиться Опубликовано 20 Февраля 2020 1 час назад, Norman Eisenherz сказал: Где можно найти аналогичную информацию В модулях Артоса, вроде как, параметры с названиями а не просто набором байт. Уж 10 лет как. Или нужно нечто другое? Тогда я не понял, что именно. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/507/#findComment-1316494
dsh 3 824 Опубликовано 20 Февраля 2020 Поделиться Опубликовано 20 Февраля 2020 6 hours ago, Norman Eisenherz said: хранятся только значения, которые невозможно прочитать без знания их типов? Именно так. Уже все изобретено до вас. Найди m_netpk и не изобретай велосипедов. Вообще совет и не только тебе. Прочитайте эту и соседнии темы с самого начала. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/507/#findComment-1316510
Zander_driver 10 348 Опубликовано 20 Февраля 2020 Поделиться Опубликовано 20 Февраля 2020 2 часа назад, dsh сказал: Прочитайте эту и соседнии темы с самого начала. Ох и добрый ты :) Я бы другой совет дал бы. Не засиживаться на ванильном ТЧ, каким бы новичком и вообще не-программистом вы ни были. Устарел он, для 2020 года. И соотв-но, не тратить слишком уж время на прочтение того, что только для него актуально. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/507/#findComment-1316555
Norman Eisenherz 354 Опубликовано 21 Февраля 2020 Поделиться Опубликовано 21 Февраля 2020 @Zander_driver 1. В OGSE есть обработчик [m_net_utils.script] – это те самые "модули Артоса"? 2. Я ни в коем случае не пытаюсь освоить современное программирование ковырянием игры 2007 года – я пытаюсь уменьшить количество "кочек" в игре, в которой приятно убивать время, для чего перебираю существующие моды и пытаюсь их повторить в той мере, в которой это подходит для моих целей. Готовые решения уровня "электросамокат с гироскопом, GPS и подсветкой дороги" не годятся, если мне нужна просто табуретка. Опять же, даже чужие функции надо изучить, чтобы понять причину ошибок и вылетов. @dsh 1. Ссылка на [m_netpk.script] на GitHub у меня есть, но так как из этих черных ящиков под названием "нетпакеты" я пока докопался до начинки только одного, 3,5к строк кода я буду изучать долго. 2. Как вскрывали нет-пакеты на момент выхода игры? Вслепую перебирали тип данных для каждого параметра, потом так же вслепую сравнивали полученные значения с данными в игре, чтобы определить переменную? Должен же быть какой-то более продуктивный метод. Теперь практика: проверка состояния фонарика и ПНВ Spoiler function net_cse_alife_item_torch:__init(obj,mode) … self.st_props = {} self.up_props = { { name = 'torch_flags', type = 'u8', default = -1 }, … … _G.torch_flags = { --/ torch Active = 1, NightVisionActive = 2, Attached = 4 … Вывод: переменная состояния фонарика имеет тип u8 и находится в начале раздела UPDATE. Spoiler local item = db.actor:item_in_slot(9) if item then local sobj = alife():object(item:id()) local pk = net_packet() sobj:UPDATE_Write(pk) pk:r_seek(0) local v = pk:r_u8() news_manager.send_tip(db.actor, v) end Результат: 0 в любом состоянии. Эксперимент: читаю аналогичное значение от конца раздела UPDATE через сдвиг pk:r_seek(pk:w_tell() -1). Результат: все выключено – 4, фонарик – 5, ПНВ – 6, все вместе – 7. Я не знаю, что именно я прочитал, но это точно переменная размером 1 байт, которая меняется при переключении режима фонарика и остается на указанном значении до следующего переключения. Ну и как сие понимать? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/507/#findComment-1316746
abramcumner 1 229 Опубликовано 21 Февраля 2020 Поделиться Опубликовано 21 Февраля 2020 8 минут назад, Norman Eisenherz сказал: Ну и как сие понимать? Прекратить заниматься ерундой и использовать таки m_netpk.script :) Вывод: переменная состояния фонарика имеет тип u8 и находится в начале раздела UPDATE. Вывод неверный. Перед блоком переменных фонарика идут блоки переменных классов родителей. 1 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/507/#findComment-1316748
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти