Real Wolf 34 Опубликовано 16 Февраля 2012 Поделиться Опубликовано 16 Февраля 2012 (изменено) Каким образом можно добавлять клиентскому НПС in рестрикторы? Я добавляю через сталкер:add_restrictions("", имя_рестриктора), но рестриктор не попадает в список. Значит неправильно добавляешь ... --/Artos Изменено 16 Февраля 2012 пользователем Artos Ссылка на комментарий
kratos888 0 Опубликовано 16 Февраля 2012 Поделиться Опубликовано 16 Февраля 2012 Вот решил немного преукрасить иконки сообщений от сталкеров, что выводятся на экран. Все иконки берутся из news_manager'a, либо можно из amk, добавляй-не добавляй... Но хочется сделать так, как в ЧН - иконка из character_profile персонажа. Может кто-нибудь подсказать, как читать параметры из файлов конфигурации character_desc_....xml, которые содержат информацию о характеристике персонажа, в том чиле его иконка в диалогах? Ссылка на комментарий
Artos 99 Опубликовано 16 Февраля 2012 Поделиться Опубликовано 16 Февраля 2012 kratos888, стОит уточнять версию игры в контекстве вопроса. В ЧН и ЗП разработчики ввели дополнительную функцию character_icon(), которая позволяет получать интересующие тебя иконки, а вот в ТЧ таковой нет. Так что тут нужно самому писать (иль найти готовый) скрипт xml-парсера, создавать табличку-описатель со всеми координатми иконок из ui_icons_npc.dds для каждого персонажа/прфиля и пользоваться. В общем рутина довольно большого объема. Прим: Упрощенный вариант, когда не "каждому своя" иконка, а "одна из нескольких для группировки" можно посмотреть в новостном скрипте в моде SIMBION:SHOC. "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Полтергейст 37 Опубликовано 16 Февраля 2012 Поделиться Опубликовано 16 Февраля 2012 (изменено) Real Wolf Я добавляю через сталкер:add_restrictions("", имя_рестриктора), но рестриктор не попадает в список. Попробуйте сразу после вызова функции добавления рестрикторов вывести какое-нибудь сообщение в лог (не важно какое). Если выводится - значит, что-то неправильно добавляете. P.S. рестриктор-то один добавляете или несколько в цикле? Изменено 16 Февраля 2012 пользователем Полтергейст Ссылка на комментарий
kratos888 0 Опубликовано 17 Февраля 2012 Поделиться Опубликовано 17 Февраля 2012 Artos ну это естественно для ТЧ. Конечно, для каждой группировки я и сам могу сварганить скриптик, но хотелось бы создать иллюзию прихода сообщения лично от того персонажа, который его отправляет. Спасибо за подсказку. Ссылка на комментарий
Daniar299 0 Опубликовано 17 Февраля 2012 Поделиться Опубликовано 17 Февраля 2012 Здравствуйте, у меня вопрос, как мне прописать скриптом преход на другую локацию? И ещё один вопрос как например на новой подключённой локации заспанить без логики например 20 кобанов чтоб просто бегали по локации? И если кто может поделитель пожалуйста файлами чужих, но только их плиз! Заранее спасибо! Это всё для ТЧ Ссылка на комментарий
ColR_iT 171 Опубликовано 17 Февраля 2012 Поделиться Опубликовано 17 Февраля 2012 (изменено) Daniar299 Скриптовый спавн перехода, вот здесь: >>Click Me<<, третий пост. Скриптовый спавн вообще, вот здесь: >>Click Me<< поделитель пожалуйста файлами чужихВо-первых, это что вообще такое? Во-вторых, с подобными вопросами сюда: "Ищу файлы / моды / аддоны" Изменено 17 Февраля 2012 пользователем ColR_iT Ссылка на комментарий
dPlayer 445 Опубликовано 17 Февраля 2012 Поделиться Опубликовано 17 Февраля 2012 Народ, подскажите, каким способом можно отследить проигрался ли звуковой файл и вообще это можно сделать? Ссылка на комментарий
Artos 99 Опубликовано 17 Февраля 2012 Поделиться Опубликовано 17 Февраля 2012 Igor88.89 1. "Букварь" модмейкера у тебя под рукою. Что мешает заглянуть в lua_help.script и в частности посмотреть доступые методы для 'class sound_object' ? 2. На форуме имеется топик "Справочник по функциям и классам". 3. Народ - не площади гуляет ... там и клич его. "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Tris 9 Опубликовано 17 Февраля 2012 Поделиться Опубликовано 17 Февраля 2012 (изменено) Здравствуйте, возник такой вопрос: (ЗП) Я с помощью такой функции: local snd = sound_object([[interface\inv_fill_pistol]]) snd:play_no_feedback(db.actor,sound_object.s2d, 0, vector():set(0, 0, 0), 2.0) воспроизвел звук, можно ли как-то сделать проверку, воспроизводится ли он или нет? Поднимаем глаза и смотрим в пост выше. И уточни вопрос: для себя, так сказать, чтобы знать или в последующем использовать проверку в качестве условия? ColR_iT Добавлено через 11 мин.: ColR_iT, Смотрел пост, он мне не помог, так как мне необходимо использовать проверку в качестве условия. Изменено 17 Февраля 2012 пользователем ColR_iT • Dead Forgetting Zone • Мои работы. Обновление: 24.08.2012 Ссылка на комментарий
ColR_iT 171 Опубликовано 17 Февраля 2012 Поделиться Опубликовано 17 Февраля 2012 (изменено) Tris, жаль, что не помогло тебе, потому что мне помогло. Неужели так сложно заглянуть в lua_help.script, что и предлагал Artos, и посмотреть методы для класса sound_object? Раз уж так одолевает лень, то вот он, класс: C++ class sound_object { const looped = 1; const s2d = 2; const s3d = 0; property frequency; property max_distance; property min_distance; property volume; sound_object (string); sound_object (string, enum ESoundTypes); function set_position(const vector&); function stop_deffered(); function get_position() const; function play_no_feedback(game_object*, number, number, vector, number); function play_at_pos(game_object*, const vector&); function play_at_pos(game_object*, const vector&, number); function play_at_pos(game_object*, const vector&, number, number); function stop(); function length(); function play(game_object*); function play(game_object*, number); function play(game_object*, number, number); function playing() const; }; Найти нужные тебе методы поможет переводчик, если с английским не очень, если же всё хорошо, то... ты сможешь найти решение своего вопроса самостоятельно. Удачи! Изменено 17 Февраля 2012 пользователем ColR_iT Ссылка на комментарий
Арбитр 0 Опубликовано 17 Февраля 2012 Поделиться Опубликовано 17 Февраля 2012 Существует ли функция для убора кнопки(скажем, для того же спального мешка от АМК)? P.S Если что,то мне нужно,чтобы при нажатии кнопки, происходило определённое действие(с этим готово) и эта же кнопка убиралась. Ссылка на комментарий
Desertir 202 Опубликовано 18 Февраля 2012 Поделиться Опубликовано 18 Февраля 2012 День добрый. Первое. Недавно для себя открыл, что ключом таблицы может быть... таблица. Отсюда вопрос, какие критерии достаточны для равенства таких (в виде таблицы) ключей? Никогда не задавался вопросом равенства таблиц, а вот тут всплыло. Второе. Как известно, пстор это таблица, стандартными средствами в которую можно записать только число\строку\булево значение, при этом ключом может быть только строка (это следует из функции xr_logic.pstor_save_all). В последствии она записывает в нет пакет, значит, по аналогии, можно записать и таблицу как значение пстора, более того, можно ключом пстора сделать не только строку, но и число или ту же таблицу. Вопрос, кто-нибудь уже это сделал и я тут велосипед изобретаю? Если да, то прошу ссылку к этому делу, сравнить, учесть ошибки. Если нет, то я пошел допиливать эту писалку\читалку. На ТЧ. Арбитр, в АМК при использовании спальника идет проверка на здоровье ГГ, и если оно ниже какого то значения, то кнопка "Спать до выздоровления" создается, если ты об этом. Другое дело сделать это в активном окне. Посмотри тут и тут. PS: И еще, заглянул в Справочник, увидел класс reader. Зачем он нужен? Обычного нет пакета не хватило? Там же только методы на чтение (запись я так понимаю идет в движке или из сохранения, а само чтение в методе биндера load). ТЧ 1.0004. SAP и Trans mod github Ссылка на комментарий
Artos 99 Опубликовано 18 Февраля 2012 Поделиться Опубликовано 18 Февраля 2012 (изменено) Desertir, если бы ты читал топики, то не открывалбы для себя америк. Ключами/полями таблиц может быть что угодно, что подпадает под определение 'тип данных'. Это может быть и таблица и функция и т.п. - о чем можно было прочитать и посмотреть примеры в топике "Язык Lua. Общие вопросы программирования." Ну а т.к. в таблицах могут быть самые разные типы данных - задаваться вопросом о критерии достаточности равенства таблиц достсточно бессмысленно. Либо все индексы/ключи/поля обязаны быть идентичными, либо сам вырабатывай для себя критерии. О записи таблиц в pstor давным давно за нас позаботилась команда AMK, однако ... НЕ таблиц в pstor, а сериализированных в строку таблиц. Писать а pstor таблицы конечно можно, но ... в нет-пакет такое все одно не запишешь и по любому придется сериализировать. Варианты сериализации (даже с компрессией) также можно посмотреть в вышеупомянутом топике. Изменено 18 Февраля 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Desertir 202 Опубликовано 18 Февраля 2012 Поделиться Опубликовано 18 Февраля 2012 Я не задавался целью узнать, какие типы данных могут быть ключами таблицы. На счет равенства таблиц, если спрашиваю, значит для меня это все таки имеет смысл. в нет-пакет такое все одно не запишешь и по любому придется сериализировать. Хм, я что, совершил невозможное? Не смешите. Я же написал, что пстор (по факту - таблица), когда вызывается метод биндера актора save, записывается в нет пакет. Повторю, таблица записывается в нет пакет, однако с большим НО - значением может быть только число\строка\булево, а ключом - исключительно строка. Что сделал я, я немного подкорректировал запись пстора в нет пакет, при этом значением и ключом может быть число\строка\булево\таблица, в свою очередь у этой внутренней таблицы ключи\значения так же могут быть числами\строками\булевыми\таблицами, однако вышеперечисленное НО никуда не делось. В конце концов самая последняя таблица может иметь только числа\строки\булевы. НЕ таблиц в pstor, а сериализированных в строку таблиц. Такой метод убирает это НО? Т.е. можно ли например в пстор записать таблицу, где есть ссылки на функции, потом сделать сейв\лоад и ссылки будут вполне рабочие? ТЧ 1.0004. SAP и Trans mod github Ссылка на комментарий
Artos 99 Опубликовано 18 Февраля 2012 Поделиться Опубликовано 18 Февраля 2012 (изменено) Desertir, повторю, без контекста и исходных требований к твоему "критерии достаточны для равенства" бессмысленно что-либо обсуждать. Для кого-то пара банальных таблиц вида: t1={1,2,3}, t2={1,nil,2,3} будут равными, а для кого-то абсолютно разными. Ну а если в таблицах будут функции, объекты, ... - то тут только фантазия критерии достаточности равенства тебе подскажет. Про свершение невозможного: Возможность записи таблиц в нет-пакеты никто и не оспаривает (но!), тем более это сплошь и рядом в игре. Иное дело, что таблицы пишутся имеенно с учетом НО, т.е. ключами/полями только доступные для записи/чтений строки/числа/булевы ... ну еще вектора и т.п. Если в таблице объекты, функции, линки, ... то обломись, о чем ты и сам пишешь. А это значит - ты НЕ таблицу сохраняешь а только доступные для сохранения ее ключи/поля. И если хочешь писать "обычные" таблицы из pstor'а напрямую в сэйвы - нет проблем, делай как и разрабы, но не через xr_logic.pstor_save_all. Остальное - это уже фантазии модмейкера, который может модифицировать эту функцию и писать уже что ему угодно ... и что он умеет делать. Неясны твои потуги. Захотелось писать таблицы? Ну так этот путь уже известен и имеются готовые коды. Даже есть уже коды, которые пишуть гораздо больше, чем ты предполагаешь, взгляни на коды malandrinus'а по записи в универсальное хранилище. Мне вообще непонятно - зачем писать в pstor то, что потом все одно потребно будет конвертить во что-то перед записью? Ни что не мешает использовать локальные иль иные глобальные таблицы/хранилища в игре, а перед записью конвертировать/сериализировать и заносить в pstor. Cохранять ссылки/линки на функции невозможно. Хочешь сохранить - сохраняй в таблице строку на функцию типа "my_script.my_func". Изменено 18 Февраля 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
AndreySol 215 Опубликовано 18 Февраля 2012 Поделиться Опубликовано 18 Февраля 2012 В bind_stalker.script в actor_binder:reinit() есть кэллбэк на появление предмета в инвентаре: self.object:set_callback(callback.on_item_take, self.on_item_take, self) Когда генерируется этот кэллбэк ? Строго по факту появление предмета или-же присутствуют/возможны какие-то временные задержки ? Ссылка на комментарий
Капрал Хикс 515 Опубликовано 18 Февраля 2012 Поделиться Опубликовано 18 Февраля 2012 AndreySol, AFAIK, по факту появления предмета. Если нужно сделать задержку, то таймеры должны помочь. Ссылка на комментарий
Artos 99 Опубликовано 18 Февраля 2012 Поделиться Опубликовано 18 Февраля 2012 (изменено) Капрал Хикс, AndreySol Эх, кто бы мне тугодуму, растолковал бы что же такое факт появления предмета, да еще в инвентаре ... ;-) Вот факт того, что объект стал принадлежать актору, т.е. он его заимел (on_take) или перестал иметь (on_drop) - как то могу переварить, а вот ваши термины ... ну как то не перевариваются. Да и вообще, Lua - это поточное выполнение строк кода и о каком-то единомоментном (т.е. с задержкой в 0 процессорных тактов) событии говорить вообще не приходится даже в пределах одной функции, не говоря о разных потоках. Т.о. задержка будет в любом случае, иной разговор какого порядка задержка интересует/имеет значимость ... Изменено 18 Февраля 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
AndreySol 215 Опубликовано 18 Февраля 2012 Поделиться Опубликовано 18 Февраля 2012 Artos, не надо к словам придираться - все Вы поняли, что имелось в виду. И не о процессорных тактах я спрашивал, а о том что, если к примеру заспавнить (скриптом, подряд) в инвентарь актеру 10 предметов, то кэллбэки для каждого из них могут быть "раскиданы" движком по разным апдейтам для актера, или будут сгенерированы в один апдейт ? И апдейты актера имеют отношение к этому или нет ? Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти