Перейти к контенту

Рекомендуемые сообщения

Каким образом можно добавлять клиентскому НПС in рестрикторы?

Я добавляю через сталкер:add_restrictions("", имя_рестриктора), но рестриктор не попадает в список.

 

Значит неправильно добавляешь ... --/Artos

Изменено пользователем Artos
Ссылка на комментарий

Вот решил немного преукрасить иконки сообщений от сталкеров, что выводятся на экран. Все иконки берутся из news_manager'a, либо можно из amk, добавляй-не добавляй... Но хочется сделать так, как в ЧН - иконка из character_profile персонажа.

 

Может кто-нибудь подсказать, как читать параметры из файлов конфигурации character_desc_....xml, которые содержат информацию о характеристике персонажа, в том чиле его иконка в диалогах?

Ссылка на комментарий

kratos888, стОит уточнять версию игры в контекстве вопроса.

В ЧН и ЗП разработчики ввели дополнительную функцию character_icon(), которая позволяет получать интересующие тебя иконки, а вот в ТЧ таковой нет.

Так что тут нужно самому писать (иль найти готовый) скрипт xml-парсера, создавать табличку-описатель со всеми координатми иконок из ui_icons_npc.dds для каждого персонажа/прфиля и пользоваться. В общем рутина довольно большого объема.

Прим: Упрощенный вариант, когда не "каждому своя" иконка, а "одна из нескольких для группировки" можно посмотреть в новостном скрипте в моде SIMBION:SHOC.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Real Wolf

Я добавляю через сталкер:add_restrictions("", имя_рестриктора), но рестриктор не попадает в список.

Попробуйте сразу после вызова функции добавления рестрикторов вывести какое-нибудь сообщение в лог (не важно какое). Если выводится - значит, что-то неправильно добавляете.

 

P.S. рестриктор-то один добавляете или несколько в цикле?

Изменено пользователем Полтергейст
Ссылка на комментарий

Artos ну это естественно для ТЧ. Конечно, для каждой группировки я и сам могу сварганить скриптик, но хотелось бы создать иллюзию прихода сообщения лично от того персонажа, который его отправляет. Спасибо за подсказку.

Ссылка на комментарий

Здравствуйте, у меня вопрос, как мне прописать скриптом преход на другую локацию? И ещё один вопрос как например на новой подключённой локации заспанить без логики например 20 кобанов чтоб просто бегали по локации? И если кто может поделитель пожалуйста файлами чужих, но только их плиз! Заранее спасибо! Это всё для ТЧ

Ссылка на комментарий

Daniar299

Скриптовый спавн перехода, вот здесь: >>Click Me<<, третий пост.

Скриптовый спавн вообще, вот здесь: >>Click Me<<

поделитель пожалуйста файлами чужих
Во-первых, это что вообще такое?

Во-вторых, с подобными вопросами сюда: "Ищу файлы / моды / аддоны"

Изменено пользователем ColR_iT
Ссылка на комментарий

Igor88.89

1. "Букварь" модмейкера у тебя под рукою. Что мешает заглянуть в lua_help.script и в частности посмотреть доступые методы для 'class sound_object' ?

2. На форуме имеется топик "Справочник по функциям и классам".

3. Народ - не площади гуляет ... там и клич его.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Здравствуйте, возник такой вопрос: (ЗП)

Я с помощью такой функции:

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,

Смотрел пост, он мне не помог, так как мне необходимо использовать проверку в качестве условия.

 

Изменено пользователем ColR_iT
Ссылка на комментарий

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;
};

Найти нужные тебе методы поможет переводчик, если с английским не очень, если же всё хорошо, то... ты сможешь найти решение своего вопроса самостоятельно.

Удачи!

Изменено пользователем ColR_iT
Ссылка на комментарий

Существует ли функция для убора кнопки(скажем, для того же спального мешка от АМК)?

P.S Если что,то мне нужно,чтобы при нажатии кнопки, происходило определённое действие(с этим готово) и эта же кнопка убиралась.

Ссылка на комментарий

День добрый.

Первое. Недавно для себя открыл, что ключом таблицы может быть... таблица. Отсюда вопрос, какие критерии достаточны для равенства таких (в виде таблицы) ключей? Никогда не задавался вопросом равенства таблиц, а вот тут всплыло.

Второе. Как известно, пстор это таблица, стандартными средствами в которую можно записать только число\строку\булево значение, при этом ключом может быть только строка (это следует из функции xr_logic.pstor_save_all). В последствии она записывает в нет пакет, значит, по аналогии, можно записать и таблицу как значение пстора, более того, можно ключом пстора сделать не только строку, но и число или ту же таблицу. Вопрос, кто-нибудь уже это сделал и я тут велосипед изобретаю? Если да, то прошу ссылку к этому делу, сравнить, учесть ошибки. Если нет, то я пошел допиливать эту писалку\читалку.

На ТЧ.

 

Арбитр, в АМК при использовании спальника идет проверка на здоровье ГГ, и если оно ниже какого то значения, то кнопка "Спать до выздоровления" создается, если ты об этом. Другое дело сделать это в активном окне. Посмотри тут и тут.

 

PS: И еще, заглянул в Справочник, увидел класс reader. Зачем он нужен? Обычного нет пакета не хватило? Там же только методы на чтение (запись я так понимаю идет в движке или из сохранения, а само чтение в методе биндера load).

ТЧ 1.0004. SAP и Trans mod

github

Ссылка на комментарий

Desertir, если бы ты читал топики, то не открывалбы для себя америк.

Ключами/полями таблиц может быть что угодно, что подпадает под определение 'тип данных'. Это может быть и таблица и функция и т.п. - о чем можно было прочитать и посмотреть примеры в топике "Язык Lua. Общие вопросы программирования."

 

Ну а т.к. в таблицах могут быть самые разные типы данных - задаваться вопросом о критерии достаточности равенства таблиц достсточно бессмысленно. Либо все индексы/ключи/поля обязаны быть идентичными, либо сам вырабатывай для себя критерии.

 

О записи таблиц в pstor давным давно за нас позаботилась команда AMK, однако ... НЕ таблиц в pstor, а сериализированных в строку таблиц.

Писать а pstor таблицы конечно можно, но ... в нет-пакет такое все одно не запишешь и по любому придется сериализировать.

Варианты сериализации (даже с компрессией) также можно посмотреть в вышеупомянутом топике.

Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Я не задавался целью узнать, какие типы данных могут быть ключами таблицы. На счет равенства таблиц, если спрашиваю, значит для меня это все таки имеет смысл.

в нет-пакет такое все одно не запишешь и по любому придется сериализировать.

Хм, я что, совершил невозможное? Не смешите. Я же написал, что пстор (по факту - таблица), когда вызывается метод биндера актора save, записывается в нет пакет. Повторю, таблица записывается в нет пакет, однако с большим НО - значением может быть только число\строка\булево, а ключом - исключительно строка. Что сделал я, я немного подкорректировал запись пстора в нет пакет, при этом значением и ключом может быть число\строка\булево\таблица, в свою очередь у этой внутренней таблицы ключи\значения так же могут быть числами\строками\булевыми\таблицами, однако вышеперечисленное НО никуда не делось. В конце концов самая последняя таблица может иметь только числа\строки\булевы.

НЕ таблиц в pstor, а сериализированных в строку таблиц.

Такой метод убирает это НО? Т.е. можно ли например в пстор записать таблицу, где есть ссылки на функции, потом сделать сейв\лоад и ссылки будут вполне рабочие?

ТЧ 1.0004. SAP и Trans mod

github

Ссылка на комментарий

Desertir, повторю, без контекста и исходных требований к твоему "критерии достаточны для равенства" бессмысленно что-либо обсуждать.

Для кого-то пара банальных таблиц вида: t1={1,2,3}, t2={1,nil,2,3} будут равными, а для кого-то абсолютно разными.

Ну а если в таблицах будут функции, объекты, ... - то тут только фантазия критерии достаточности равенства тебе подскажет.

 

Про свершение невозможного:

Возможность записи таблиц в нет-пакеты никто и не оспаривает (но!), тем более это сплошь и рядом в игре.

Иное дело, что таблицы пишутся имеенно с учетом НО, т.е. ключами/полями только доступные для записи/чтений строки/числа/булевы ... ну еще вектора и т.п. Если в таблице объекты, функции, линки, ... то обломись, о чем ты и сам пишешь.

А это значит - ты НЕ таблицу сохраняешь а только доступные для сохранения ее ключи/поля.

И если хочешь писать "обычные" таблицы из pstor'а напрямую в сэйвы - нет проблем, делай как и разрабы, но не через xr_logic.pstor_save_all.

Остальное - это уже фантазии модмейкера, который может модифицировать эту функцию и писать уже что ему угодно ... и что он умеет делать.

 

Неясны твои потуги. Захотелось писать таблицы? Ну так этот путь уже известен и имеются готовые коды. Даже есть уже коды, которые пишуть гораздо больше, чем ты предполагаешь, взгляни на коды malandrinus'а по записи в универсальное хранилище.

Мне вообще непонятно - зачем писать в pstor то, что потом все одно потребно будет конвертить во что-то перед записью? Ни что не мешает использовать локальные иль иные глобальные таблицы/хранилища в игре, а перед записью конвертировать/сериализировать и заносить в pstor.

 

Cохранять ссылки/линки на функции невозможно. Хочешь сохранить - сохраняй в таблице строку на функцию типа "my_script.my_func".

Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

В bind_stalker.script в actor_binder:reinit() есть кэллбэк на появление предмета в инвентаре:

self.object:set_callback(callback.on_item_take, self.on_item_take, self)

Когда генерируется этот кэллбэк ? Строго по факту появление предмета или-же присутствуют/возможны какие-то временные задержки ?

Ссылка на комментарий

AndreySol,

AFAIK, по факту появления предмета. Если нужно сделать задержку, то таймеры должны помочь.

Ссылка на комментарий

Капрал Хикс, AndreySol

Эх, кто бы мне тугодуму, растолковал бы что же такое факт появления предмета, да еще в инвентаре ... ;-)

Вот факт того, что объект стал принадлежать актору, т.е. он его заимел (on_take) или перестал иметь (on_drop) - как то могу переварить, а вот ваши термины ... ну как то не перевариваются.

 

Да и вообще, Lua - это поточное выполнение строк кода и о каком-то единомоментном (т.е. с задержкой в 0 процессорных тактов) событии говорить вообще не приходится даже в пределах одной функции, не говоря о разных потоках. Т.о. задержка будет в любом случае, иной разговор какого порядка задержка интересует/имеет значимость ...

Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Artos, не надо к словам придираться - все Вы поняли, что имелось в виду.

И не о процессорных тактах я спрашивал, а о том что, если к примеру заспавнить (скриптом, подряд) в инвентарь актеру 10 предметов, то кэллбэки для каждого из них могут быть "раскиданы" движком по разным апдейтам для актера, или будут сгенерированы в один апдейт ? И апдейты актера имеют отношение к этому или нет ?

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...