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

Malandrinus

Жители
  • Число публикаций

    1 930
  • Регистрация

  • Последнее посещение

  • Дней в топе

    13
  • AMKoin

    160 [Подарить AMKoin]

Весь контент пользователя Malandrinus

  1. Stalk15, Можно сделать. Я подробно расписывал насчёт диалогов здесь и здесь. В частности расписывал, почему нет смысла использовать скриптовые диалоги. В скриптовых диалогах можно сделать ровно тоже самое, что и через XML. Не больше и не меньше. SkyLoader, Нет. В данном движке актор - совершенно другой класс, нежели сталкер. Общее есть, но в целом большая часть того, что относится к сталкерам, к актору не применимо. Не помню такого варианта. Пример бы показал?
  2. deadmoroz, Справедливости ради замечу, что таки поддерживает. При сохранении открывается диалог с настройками. Там есть галка для генерации уровней.
  3. SkyLoader, npc:set_item(<действие>, <ствол>, <размер очереди>, <пауза между очередями>) <действие> - константа из класса object. Для ствола подходят object.idle, object.aim1, object.aim2, object.fire1, object.fire2, object.strap, object.drop. Остальные проверяйте сами. <ствол> - клиентский объект оружия. Должен быть в инвентаре у непися Насчёт параметров очереди не уверен. Размер вроде как работает.
  4. Garry_Galler, Это вектор скорости и угловой скорости соответственно. Вектор угловой скорости направлен по оси вращения, а его значение = количеству радианов в секунду.
  5. SkyLoader, Эта функция переключает камеру на "смотреть глазами монстра". Применима только к кровососам. Кроме камеры ещё и проигрывается специальный постэффект. Оригинальное назначение функции в игре мне неведомо.
  6. kokkai, Странно, даже не знаю, как такую ошибку можно скриптом вызвать. Суть этой проверки в том, что первое значение нетпакета для CSE_Abstract всегда должно быть 1. Но до этой части нетпакета скриптами не добраться никак. Соответственно и испортить там не получиться. Разве что можно грешить на фатально битый сейв.
  7. deadmoroz, непакованные текстуры - это жестоко. Неудивительно, что начинает лагать и глючить - системе попросту не хватает памяти. Вообще, ни в движке ни в DirectX нет запрета на текстуры со стороной, не равной степени двойки. Это просто оптимальный размер для обработки. Нет также жёсткой привязки к формату DXT5. Это опять же просто наиболее приемлемый формат для большинства случаев. Разницы с DXT3 почти никакой нет. Иногда можно сократить размер текстур, используя DXT1. В этом случае слой прозрачности будет однобитный, т.е. просто маска. Вполне кстати подходит для большинства текстур худа. При этом двукратная выгода по размеру. Навести порядок с мипмапами надо однозначно. Для текстур худа мипмапы - просто ненужная трата памяти и диска. Отсутствие их-же в текстурах для "обшкуривания" объектов приведёт к диким тормозам с одной стороны, и к довольно мерзенькой отрисовке удалённых объектов с другой. Такая рябь появляется и как будто переливаться начинает. Помнится, было такое дело в солянке для ЧН. Народ жаловался на дикие тормоза. При этом владельцы топовых мегакарточек ни на что не жаловались =) Вопрос решился полной перепаковкой всего набора текстур.
  8. KOKC, HKEY_LOCAL_MACHINE\SOFTWARE\GSC Game World\STALKER-SHOC HKEY_LOCAL_MACHINE\SOFTWARE\GSC Game World\STALKER-STCS HKEY_LOCAL_MACHINE\SOFTWARE\GSC Game World\STALKER-COP везде ключ InstallPath Если винда 64-х разрядная, то путь может быть таким HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\GSC Game World\...
  9. Malandrinus

    [SoC] Вопросы по SDK

    and_modern, есть неплохая сравнивалка текстовых файлов в Total Commander. Там же можно и объединять отличия. Но по проблеме должен заметить, что простого решения может и не быть. При разборе all.spawn при помощи acdc объекты перетасовываются, значения с плавающей запятой могут меняться в последних знаках, и всё это может сделать любые инструменты посимвольного сравнения попросту бесполезными.
  10. _Призрак_, это не совсем то, что нужно. Там запускается туториал, в котором, кроме всего прочего, показывается PDA. Но способа просто открыть PDA, как например диалог, вроде бы нет.
  11. Shadows, в ТЧ у детекторов движком худ не заложен.
  12. Garry_Galler, В целом ответ - нет, невозможно. Lua в целом однопоточный, соответственно весь игровой API тоже. Любые оптимизации с многопоточностью работают только внутри движка и скриптеру в явном виде недоступны. Не обманывайтесь наличием в Lua потоков. Это средство кооперативной многозадачности и требует явного переключения со стороны выполняющегося кода. На самом деле непонятно, что такого надо сделать, что требует запуска независимого потока. В этом объективно нет никакой необходимости.
  13. karavan, граф остался и вроде как без изменений, но просто в качестве одной из секций all.spawn. Распакуй сначала с помощью acdc, а потом можешь попробовать работать с этой секцией, как со старым файлом графа. По идее должно получиться. Геймвертексы можно и скриптами исследовать. Пробегаешь в цикле все вертексы и проверяешь их так: if game_graph():valid_vertex_id(gvid) then ... принадлежность вертекса к уровню получаем так: if game_graph():vertex(gvid):level_id() С левелвертексами скриптами не выйдет. Надо парсить файлы level.ai
  14. Mechanic.92, есть вероятность, что ничего не выйдет. Для смены визуала надо перевести объект в оффлайн. А актора в оффлайн скорее всего засунуть не получится.
  15. Byurrer, Не выйдет, это движковое. Вроде как у актора есть в биндере колбек на использование предметов. Можно также прописать предмету свой биндер и в нём при выходе в оффлайн проверять наличие серверного. Если нет, значит предмет был удалён (что может произойти только при его использовании). level.present()
  16. SkyLoader, local start_dir = device().cam_pos:getH() if start_dir > math.pi then start_dir = start_dir - 2*math.pi end local end_dir = npc:position():sub(device().cam_pos):getH() local delta_dir = (end_dir - start_dir) local start_time = game.time() local time_interval = 5000 function cond() local cur_time = game.time() local dt = cur_time - start_time local dir = start_dir + dt* delta_dir / time_interval db.actor:set_actor_direction(-dir) if dt > time_interval then return true end end level.add_call(cond, function()end)
  17. SkyLoader, local npc_pos = npc:position() затем вычисляешь направление из своего положения в положение непися. Для этого можно использовать к примеру операции из класса vector. Да, это возможно. На каждом апдейте меняешь понемногу угол поворота, приближая его к конечному. Дополнение: Удобнее использовать не апдейт актора (хотя и можно), а функцию level.add_call, которую я описывал здесь. Это даст возможность установить периодическое действие, которое должно закончиться по определённому условию - как раз то, что в данном случае нужно.
  18. SkyLoader, Непонятно. Для того, чтобы посмотреть на NPC нужно знать его положение, а направление-то зачем? Не применим. Кстати, вне зависимости от применимости вылета он вызывать не должен. Так что вылет у тебя по какой-то другой причине. Будет так, как ты захочешь. Естественно, надо будет запрограммировать вычисление направление взгляда в зависимости от времени.
  19. SkyLoader, Это метод для класса CProjector. Для какого объекта надо получить направление? Как и любое другое повторяющееся во времени действие - поставить изменение направление на апдейт. гопыч, Английским же языком тебе говорят "ошибка закрывающего тега". Где-то не закрыл конструкцию XML.
  20. SkyLoader, dir - это угол в радианах вокруг вертикальной оси Но чтобы при этом работало твоё меню? Скорее всего не получится. Тебе изменить или узнать? Изменить нельзя, узнать: device().fov
  21. Malandrinus

    Гравипушка

    KANDZI, Это тоже невозможно. Умертвить-то не проблема и получить после этого (условно) красивый регдолл в принципе тоже можно. Но с оживлением имеются большие траблы. Для оживления надо загнать непися в оффлайн, переписать нетпакет, выдернуть в онлайн обратно. Это означает, что персонаж визуально исчезнет на пару секунд, потом появится обратно. При этом он не будет вставать из того положения, куда упал (этого попросту нет в движке), а появится в положении "по стойке смирно". Это явно не то, что ожидаешь увидеть в данном случае. Это не считая других проблем с оживлением. К примеру, с сюжетной точки зрения смерть персонажа - не всегда обратимый процесс, особенно для уникальных неписей.
  22. _Призрак_, Вращение камеры. Я думаю, в виде компонент матрицы поворота. А при чём здесь геймвертекс?
  23. Stalk15, тогда не сможет "крутить камерой и стрелять"
  24. qwqwqw, по всей видимости тебе нужно сделать так, как в оригинальной игре делают при отображении в диалоге динамического списка квестов. Т.е. создается одна общая фраза и используется функция give_talk_message, чтобы дополнить ее вариативной частью. Подробности использования функции смотри в теме "справочник".
×
×
  • Создать...