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 Ссылка на комментарий
gruber 2 481 Опубликовано 26 Декабря 2010 Поделиться Опубликовано 26 Декабря 2010 (изменено) ЙоЖеГ, Чтобы нпс озвучил свой диалог-достаточно прописать в папке со звуками диалог с таким же айди как и у диалога или у конкретной строки диалога(не знаю нужно ли гдето прописывать звук в скриптах).Так сделан диалог у сидора -посмотри как там и сделай подобное Arhara,Если нпс в ремарке сдвинется с места(например сорвется в комбат или денжер),то назад уже не вернется-правильно? Изменено 26 Декабря 2010 пользователем gruber Ссылка на комментарий
Arhara 32 Опубликовано 26 Декабря 2010 Поделиться Опубликовано 26 Декабря 2010 gruber, В ремарках, обычно, прописывают полный игнор. Зато, при следующем вхождении актора в алайв к такой неписи - он почти 100% вернётся снова в точку ремарка, хотя м.б по логике уже далеко от неё... Поэтому - актив - любое другое, хоть на пару секунд, потом - ремарк Еще 10 лет таких цен, зарплат и пенсий, и вместо переписи населения будет перекличка Ссылка на комментарий
Byurrer 0 Опубликовано 27 Декабря 2010 Поделиться Опубликовано 27 Декабря 2010 (изменено) gruber, спасибо конечно, но заспавнить это одно дело, но как заставить его работать? (т.е. воспроизводить звук). Возможно ли это осуществить без вмешательства в логику? Попробовал настроить проигрывание звуков в логике, получилось, добавил новые темы в sound_theme.script но почему то они тихо воспроизводятся, хотя громкость самих треков такая же как и у остальных, как добавить громкость воспроизведения? Изменено 27 Декабря 2010 пользователем Byurrer Ссылка на комментарий
ColR_iT 171 Опубликовано 27 Декабря 2010 Поделиться Опубликовано 27 Декабря 2010 Byurrer, не вмешиваясь в логику приемника - нет! Я сначала думал, что возможен вариант как с телевизором, у него в модель вшиты анимаии, может у приемника есть, что либо бодобное, но нет. Наткнулся только на надпись в User Data: [disable] linear_factor =0.1 angular_factor =0.1 Что это я не знаю! Есть конечно вариант через схему sr_sound_act, но помоему это, так сказать, "веселый" вариант... А почему для тебя критично не вмешиваться в логику? Ссылка на комментарий
znachara 0 Опубликовано 27 Декабря 2010 Поделиться Опубликовано 27 Декабря 2010 Куфзук, скачал тот мод от амк со спальным мешком. но в нём нет фишки типа "меченый не хочет спать"! а мне нужна именно она Ссылка на комментарий
ColR_iT 171 Опубликовано 27 Декабря 2010 Поделиться Опубликовано 27 Декабря 2010 znachara, ну вот ты как думаешь, что легче: прописать условие в нужном месте или создавать всю схему с нуля? Я тебе сказал, что данный алгоритм уже реализован, а с какими нюансами - это ты уж извеняй! :ny_cool: Ссылка на комментарий
KitkaT.Net 2 Опубликовано 27 Декабря 2010 Поделиться Опубликовано 27 Декабря 2010 byerer, добавить громкости музыке тока через обработку в X-Ray SDK. Ничто не вечно под луной. Ссылка на комментарий
Byurrer 0 Опубликовано 27 Декабря 2010 Поделиться Опубликовано 27 Декабря 2010 Куфзук, спасибо, понял, не то чтобы критично но смотриться примитивно сам процесс создания,т.е. ресурсоемко, что в значительной степени помешает совместимости (ну это мне так кажется), есть идейка как реарганизовать под специальный приемник ... буду пробовать ... Ссылка на комментарий
ColR_iT 171 Опубликовано 27 Декабря 2010 Поделиться Опубликовано 27 Декабря 2010 (изменено) Byurrer, а что ты считаешь "ресурсоемким"? На крайний случай заспавни этот приемник через скрипт, если ты не хочешь трогать all.spawn во избежании совместимости. Конечно интересно! Обязательно отпишись... :ny_thumbsup: Изменено 27 Декабря 2010 пользователем Куфзук Ссылка на комментарий
Byurrer 0 Опубликовано 27 Декабря 2010 Поделиться Опубликовано 27 Декабря 2010 (изменено) Куфзук, не буду спорить, а начну делать, кому будет интересно потом отпишусь по поводу применика. Вот по ходу дела возник вопрос: использую функцию воспроизведения такую: snd:play_at_pos(db.actor, vector():set(0,0,0),0, sound_object.s2d) snd - саунд, но этот звук воспроизводится всего несколько секунд, хотя на самом деле играет (в проигрывателе) более 1 минуты, и через метод: play_no_feedback воспроизводится нормально, то есть полностью ... подскажите пожалуйста как исправить это. Изменено 27 Декабря 2010 пользователем Byurrer Ссылка на комментарий
ЙоЖеГ 7 Опубликовано 27 Декабря 2010 Поделиться Опубликовано 27 Декабря 2010 Даже добавление звуков в папку не помогло( Странно на самом деле. При выдаче инфопоршня на переход к другой ремарке, НПС адекватно реагирует и переходит. А со звуком никак. Странно однако. Ссылка на комментарий
ColR_iT 171 Опубликовано 27 Декабря 2010 Поделиться Опубликовано 27 Декабря 2010 (изменено) ЙоЖеГ, с наступающим Новым Годом! На двадцатую строчку ругань идет в случае ситкасической ошибки в логике (уже обсуждалося, 101 пост на этой странице), я вот например, случайно вместо active написал activ, так вот и получил ругань на 20ю строку _g.script. И по поводу озвучки фразы, возможно gruber прав! Нужно попробывать в папку sounds\dialogs положить файл с названием один-в-один, как айди фразы в диалоге. Попробуй, может что-то и выйдет! :ny_thumbsup: Изменено 27 Декабря 2010 пользователем Куфзук Ссылка на комментарий
gruber 2 481 Опубликовано 27 Декабря 2010 Поделиться Опубликовано 27 Декабря 2010 ЙоЖеГ, А почему оно должно работать,если ты там чушь слепил,покажи мне хоть один пример где так сделано или выписку из тутора по логике,что так нужно делать.Сам придумал?И удивляешься что не работает по инфопоршню звук можно отыграть только как эффект,а эффекты заключаются в знак% %play_snd(snd_name)%-так к примеру или попроще по поршню сделать переход на другую схему через ремарк где этот звук и проиграть Ссылка на комментарий
gruber 2 481 Опубликовано 27 Декабря 2010 Поделиться Опубликовано 27 Декабря 2010 Byurrer, Ты изобретаешь велосипед-приемник всего лишь визуал,петь в игре можно заставить все что угодно -хоть трактор,хоть холодильник.даже нечто нематериальное(рестриктр).Прописать звук в файле саунд тем-дело одной минуты(копипаст +изменение имени) Тихо играет?Возможно низкий уровень исходника звука -можно увеличить параметры в том же файле Ссылка на комментарий
Byurrer 0 Опубликовано 27 Декабря 2010 Поделиться Опубликовано 27 Декабря 2010 gruber, нет я не пытаюсь его изобрести ... я пытаюсь разобраться в методах воспроизведения звуков ... разобрал ПЫСовские скрипты, более менее ясно ... кроме одного: что это за метод? Как его использовать?(play_sound) примерную схему я понял и суть немного, но не могу сообразить суть аргументов которые принимает данная функция ... Мне это нужно не только для создания приемника ... с помощью этого можно сделать кучу чего нового ... разнообразного ... поэтому хочу разобраться! Ссылка на комментарий
ColR_iT 171 Опубликовано 27 Декабря 2010 Поделиться Опубликовано 27 Декабря 2010 (изменено) TRAMP14 посмотри как реализован вывод на худ часов: http://www.amk-team.ru/forum/index.php?sho...st&p=219306 и сделай по аналогии. Byurrer, что именно ты хочешь сделать? Ты просишь помощи, но не говоришь сути, сложно понять тебя без экстрасенсорных способностей! Объясни хотя бы это есть идейка как реарганизовать под специальный приемник ...в чем заключается "специальность" твоего приемника? Изменено 27 Декабря 2010 пользователем Куфзук Ссылка на комментарий
Byurrer 0 Опубликовано 28 Декабря 2010 Поделиться Опубликовано 28 Декабря 2010 Куфзук, я хочу понять как использовать методы:play_sound, то есть как воспроизвести звук через этот метод, вот что конкретно я хочу узнать! И еще косвенный вопрос, который я задавал ранее: Вот по ходу дела возник вопрос: использую функцию воспроизведения такую: snd:play_at_pos(db.actor, vector():set(0,0,0),0, sound_object.s2d) snd - саунд, но этот звук воспроизводится всего несколько секунд, хотя на самом деле играет (в проигрывателе) более 1 минуты, и через метод: play_no_feedback воспроизводится нормально, то есть полностью ... подскажите пожалуйста как исправить это. Ссылка на комментарий
TRAMP14 1 Опубликовано 28 Декабря 2010 Поделиться Опубликовано 28 Декабря 2010 Куфзук часы я перебрал, как вывести сообщение ужо понял но вот как определить сколько аптечек у ГГ незнаю как Добавлено через 3 мин.: Была идея определить для каждого числа но это не есть выполнимо я например ношу 100-120 аптечек а ктото мож всего 10 просчитывать все варианты както не гуд Ссылка на комментарий
ColR_iT 171 Опубликовано 28 Декабря 2010 Поделиться Опубликовано 28 Декабря 2010 (изменено) ВСЕХ с наступающим Новым Годом! :ny_smile: TRAMP14, вот смотри, приблизительно, код будет выглядеть вот так: local function counting_kits(item) if item:name() == "medkit" or item:name() == "medkit_army" or item:name() == "medkit_scientic" then number_of_kits = number_of_kits + 1 end end local number_of_kits = 0 function all_kits (actor, npc) actor:inventory_for_each(counting_kits) return number_of_kits end Вызывать нужно функцию all_kits. НО! Если вешать на апдейт для актора, то это не гуд! Считай каждый вызов апдейта, а это где-то каждые 40 мс, будет происходить подсчет аптечек в его инвентаре. Лично я стараюся без КРАЙНЕЙ надобности его не нагружать. Но решать тебе! P.S. Код набросал на работе, поэтому если что не так, пусть меня поправят. 1. Функция all_kits, считает колличество аптечек в инвентаре у актора (сумма будет общей, т.е. обычные+армейские+научные). Как это происходит: Локальная функция counting_kits получает в качестве параметра, объект возвращаемый функцией inventory_for_each (это стандартная функция ПЫСов). Переменная number_of_kits будет хранить в себе то самое колличество аптечек. Функция inventory_for_each перебирает все предметы в инвентаре, кроме тех, что находяться в невидимых слотах (нож, бинокль, болт, фонарик и ПДА). Про эту функцию можешь почитать сдесь: Описание класса game_object. В качестве параметра ей будет передаваться локальная функия counting_kits. Т.е. когда ты вызовишь функцию all_kits, начнет работать функция inventory_for_each, перебирая в инвенторе все предметы. Когда она найдет первый предмет, она передаст его в качестве параметра функции counting_kits. Она же, в свою очередь, будет сравнивать имя этого предмета с именем одной из аптечек, если это аптечка, то переменная number_of_kits увеличиться на один. И так далее, пока не переберуться все предметы. В итоге у тебя будет возвращено общее колличество аптечек. 2. Таймер нужно где-то запустить! Если ты хочешь выводить колличество аптечек на худ, то тебе нужно вешать на апдейт. Изменено 28 Декабря 2010 пользователем Куфзук Ссылка на комментарий
TRAMP14 1 Опубликовано 28 Декабря 2010 Поделиться Опубликовано 28 Декабря 2010 (изменено) Мда я думал что хоть немного разберусь но нет обьясни пожалуйста какими способом прилепить вывод цифры на экран точнее функция вывода меня не интересует а интересует как её вставить чтобы она циферку понимала и выводила Изменено 28 Декабря 2010 пользователем TRAMP14 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти