Malandrinus
Жители-
Число публикаций
1 930 -
Регистрация
-
Последнее посещение
-
Дней в топе
13 -
AMKoin
160 [Подарить AMKoin]
Весь контент пользователя Malandrinus
-
AKKK1, типа такого наверное: function talk_to_me() local npc = level.object_by_id(alife():story_object(<npc_sid>).id) db.actor:run_talk_dialog(npc) end здесь <npc_sid> - это story_id непися-невидимки рядом. Ну а уже неписю прописываешь нужные диалоги.
-
antreg, тогда никак. Для вызова движкового окна диалога собеседник нужен обязательно. Ничто однако не мешает тебе написать полностью свой диалог. Муторно, естественно, но возможно.
-
antreg, для окна диалога нужен объект-собеседник. Это принципиально хотя бы потому, что диалоги берутся из профиля собеседника, да и просто нужен объект и все тут. Если собеседник есть, то есть функция для открытия окна диалога, но собеседник должен быть в пределах кажется 3-х метров, чтобы это нормально работало. А если собеседника нет, то движковым диалогом попросту не воспользоваться. Пиши свой полностью скриптовый. Если ты имел в виду, что собеседник есть, но просто надо инициировать разговор скриптово, то думаю надо типа такого сделать: Рестриктор с логикой на вход актора. Там вызов функции, в которой уже вызывается диалог. Функцию не помню. Приводил в справочнике, посмотри там.
-
Справочник по функциям и классам
Malandrinus ответил на тему форума автора Malandrinus в Скрипты / конфиги / движок
RvP, Это в Lua всё одного типа, а при передаче внутрь происходит преобразование в указанный тип C/C++. Т.е. при описании я давал тип аргументов и возвращаемых значений самих движковых функций. Это важно для того, чтобы вы понимали, какой именно природы должны быть аргументы и что именно ожидать в качестве результата функции. Уже говорил, но повторюсь. Из-за того, что функции движковые, но используется из Lua, выходит по-нормальному описание типов не дать. Названия типов и классов в большинстве случаев изменены, поэтому не будет никакого смысла указывать реальный движковый тип, поскольку большинству это ни о чём не скажет и только запутает. Кроме того, не все понятия С/С++ имеют внятный эквивалент в Lua. К примеру ссылки/указатели всяко преобразуются в просто ссылку Lua. Или скажем строковому типу Lua string, в С++ соответствует три разных типа С++ да ещё с вариациями указатель/ссылка, ну и т.д. По этой причине принятый язык описания - это "псевдо C/C++", т.е. нечто в стиле С++, но строго стандарту языка не соответствующее. Для тех же строк для простоты указывается просто тип Lua string без лишних заморок с указателями/ссылками. Это вероятно может запутать или вызывать раздражение у пуристов, но в оригинале в lua_help.script было ещё хуже. -
[CoP] Ковыряемся в файлах
Malandrinus ответил на тему форума автора Halford в Скрипты / конфиги / движок
Phantom1305, Тема "справочник". Там в шапке найди пост про окна. -
n6260, думаю, всё это сильно зависит от ситуации, и как поступит тренированный боец не знает даже он сам, пока такая ситуация не возникнет. Ну а я крайне надеюсь, что для меня это останется досужей болтовнёй =)
- 14 175 ответов
-
- мод
- s.t.a.l.k.e.r.
-
(и еще 5 )
Отмечено тегом:
-
Shader, это тоже всё понятно. Просто прозвучало мнение, что кувыркаться бесполезно. А по моим расчётам выходит, что когда в тебя стреляют, то бежать зигзагами очень даже полезно для здоровья =)
- 14 175 ответов
-
- мод
- s.t.a.l.k.e.r.
-
(и еще 5 )
Отмечено тегом:
-
_Val_, Давайте посчитаем. Скорость пули 300 м/с, пусть расстояние будет 150 метров, а стреляем перпендикулярно направлению движения цели. Пусть цель перемещается шагом, что означает 3-4 км/ч или примерно 1 м/с. Время полёта пули - полсекунды. За это время цель успеет переместиться на полметра, что достаточно, чтобы промазать. Если цель бежит, то за тоже время успеет переместиться на расстояние 1-2 метра. В таких условиях, если цель маневрирует, меняет направление внезапно и резко, то это на первый взгляд вполне реально повышает шансы на выживание. С другой стороны при скорости пули в 700 и более м/с такое же маневрирование на том же расстоянии явно ничего не даст. Выглядит так, что соображение о неэффективности дозвукового патрона на дальних дистанциях в самом деле не лишено оснований.
- 14 175 ответов
-
- мод
- s.t.a.l.k.e.r.
-
(и еще 5 )
Отмечено тегом:
-
zubr14, ну если я правильно понял, то там длинное такое интервью, где рассказывают о разных модах. Но типа в интервью не указаны авторы модов вообще, из-за чего создаётся впечатление, что все они сделаны теми, кто о них рассказывает, т.е. чехами и в Чехии. amik, я правильно понял мысль? Я посмотрел внимательно ролик. По чешски я не понимаю, но речь славянская, перенасыщенная игровыми терминами, так что в целом ясно о чём речь =) Там ребята рассказывают о модах для сталкера, упоминают АМК, Oblivion Lost, какой-то модпак, не знаю ими склёпанный или нет. Об авторах вроде и в самом деле ничего не говорили, но я как-то особенного криминала не заметил. В целом вроде уважительно говорили. Если и не упомянули, то думаю не специально. Кто хоть малость в теме и так знают авторов таких гигантов. Хотя мог и упустить что-то. Кто по чешски ферштейн, есть там явное присваивание авторства?
- 14 175 ответов
-
- мод
- s.t.a.l.k.e.r.
-
(и еще 5 )
Отмечено тегом:
-
IQDDD, Это почти так. Иногда встречал вылеты в такой ситуации и смысл сообщения был в том, что "значения нет вообще", а не то, что оно равно nil. В частности, пусть есть функция fun1, принимающая bool. Пусть есть вторая fun2, просто с return. У меня иногда был вылет в такой ситуации: fun1(fun2()) Особенно, если fun1 - движковая, а не скриптовая. В общем, если нужно вернуть логическое значение - верните nil или false, но не "ничего". AKKK1, Есть только одна проблема. При этом sid не регистрируется в игре, т.е. он назначен объекту, а поиск по нему делать не выйдет (ну и соответственно в логике не будет работать). Причём, вроде даже не поможет вывести объект в оффлайн, поскольку регистрация происходит при создании/загрузке серверного объекта. Т.е. придётся ждать смены уровня или сохранения/загрузки.
-
Справочник по функциям и классам
Malandrinus ответил на тему форума автора Malandrinus в Скрипты / конфиги / движок
Функции can_switch_online/offline по идее определяют возможность перехода в онлайн/оффлайн самого объекта. Как это будет в данном случае влиять на неписей, приписанных к смарту, понятия не имею. -
Справочник по функциям и классам
Malandrinus ответил на тему форума автора Malandrinus в Скрипты / конфиги / движок
Stalk15, да, там какие-то проблемы. Причём, у меня дежа-вю, что как-то работало, но все поздние попытки были неудачными. В итоге, чтобы сместить партикл я просто создавал объект в новом месте, а старый удалял. Но он при этом некрасиво моргает. Если кто сможет выяснить условия работы этого метода - обязательно отпишитесь здесь. -
Garry_Galler, С торговлей несколько лучше. Есть метод актора switch_to_trade, который открывает окно торговли из разговора. Ну и разговор можно открыть: run_talk_dialog. пда и прочее - да, это никак. Кстати, знает ли кто, что как-бы пда открыть можно? Делается это в обучалках. "Ка-бы" потому, что толку от этого ноль, поскольку в этом режиме блокируется ввод.
-
IQDDD, зачем так категорично? При освоении нового языка программирования знание любого другого весьма помогает. Тем более, что Lua в чём-то близок к Паскалю.
-
Garry_Galler, А я всегда на русском пишу. Не настоящий программист, наверное =)
-
Справочник по функциям и классам
Malandrinus ответил на тему форума автора Malandrinus в Скрипты / конфиги / движок
_Призрак_, вроде нет. AKKK1, Посчитай сам, сколько потребуется памяти на такую сетку. Да и зачем? Сетка нужна для "навигации" неписей по земле. Навигация в пространстве требует совершенно другого подхода. -
Справочник по функциям и классам
Malandrinus ответил на тему форума автора Malandrinus в Скрипты / конфиги / движок
Kolmogor, Ну может быть. Типа заранее отсортировать по X, затем по Z, затем по Y. Но тогда должен возникать побочный эффект. Если не нашли узел точно, то будет найден не ближайший, а первый в ряду, т.е. скорее всего ближайший по X (или может Z), находящийся с краю локации. Надо будет при случае проверить. IQDDD, Там просто линейный массив из всех узлов. Каждый узел представляет собой два целых числа - это так хранятся координаты в упакованном виде. Смысл в том, что вся сетка вписана в прямоугольный параллелепипед (бокс по-простому). На высоту даётся 2 байта, т.е. по высоте имеется ровно 65536 уровней, соответственно, разрешение сетки по высоте определяется как <высота бокса> / 65536. По X и Z задаётся примерно постоянный шаг (что-то около 0.25 игровых метра, хотя вроде это можно менять). Соответственно, может быть Nx = <сторона по X> / 0.25 и Nz = <сторона по Z> / 0.25 возможных координат по каждой оси, а всего Nx * Nz, но не больше, чем влазит в 24 разряда. Теперь обе координаты X и Z пакуются в одно целое в 24 бита. Дальше все эти элементы - упакованная Y и XZ, дополнительная информация по укрытиям и привязке к узлам графа - всё сохраняется в виде линейного массива в файлах. По всей видимости ещё и отсортировано заранее. Двоичный поиск Byurrer, Всё это внутри движка. -
Справочник по функциям и классам
Malandrinus ответил на тему форума автора Malandrinus в Скрипты / конфиги / движок
IQDDD, Так и есть. Я подробно алгоритм поиска вертекса не исследовал, но вроде как координата Y (вертикальная) игнорируется. Кроме того, если под точкой сетки нет, то всё равно возвращается какой-то вертекс, ближайший или нет - не знаю. В ЗП, кстати, есть функция, которая просто возвращает вертекс по координатам без всей этой возни со стартовым вертексом, направлением и расстоянием. Хотя знак равенства между этими функциями я бы не ставил. Если думать о том, как этот алгоритм может быть реализован, то можно прийти в выводу, что функция эта весьма затратная, поскольку вертексов может быть под миллион и больше. vertex_in_direction возможно ищёт от текущего и на этом экономит, а как работает та функция из ЗП - могу только догадываться. И ещё. Граф уровня - это никакой не граф. Сетка уровня - это попросту невидимая поверхность, состоящая из мелких строго прямоугольных клеточек одинакового размера, натянутая на геометрию. Если актор и физические объекты взаимодействуют с реальной геометрией, то неписи ходят вот по этой невидимой поверхности. Это просто кажется, что они ходят по реальной геометрии. Процесс компиляции сетки собственно и заключается в том, чтобы создать такую поверхность, совмещённую с реальной геометрией. -
Справочник по функциям и классам
Malandrinus ответил на тему форума автора Malandrinus в Скрипты / конфиги / движок
IQDDD, а луну с неба? Нужен алгоритм - дизассемблер в руки и вперёд =) Что непонятно то с этой функцией? Выдаёт вертекс под точкой. -
kenver, там вроде что-то надо в самой модели менять. Что именно - не знаю
-
IQDDD, запусти заново. Не знаю на самом деле. Поэкспериментируй и расскажи нам, тогда это будет известно =) Там есть ещё возвращаемое значение из process. Может быть при определённой комбинации параметров при создании эффекта это может являться сигналом к окончанию проигрывания. Но это только предположение.
-
IQDDD, super() вызывается с аргументами, второй - время действия постэффекта. Может в этом проблема. А зачем тебе вообще этот скриптовый постэффект? Ничего же не даёт по сравнению с движковым.
-
Справочник по функциям и классам
Malandrinus ответил на тему форума автора Malandrinus в Скрипты / конфиги / движок
IQDDD, а при чём здесь справочник? Я смотрел кости с помощью OGF Master. Там модель конвертилась в текстовый формат, и в начале файла шёл список костей. Ещё наверное в SDK можно посмотреть. -
[CoP] Ковыряемся в файлах
Malandrinus ответил на тему форума автора Halford в Скрипты / конфиги / движок
bill_gates, сколько можно это повторять, ничего разрабы не вырезали. Есть в ЗП машина, её можно создать, только нельзя в неё сесть. И были не попытки, возможность сесть в машину вернул Колмогор. Почитайте тему правок x-ray. БТР - был сделан на классе машины. Общего у машины с пулемётом немного - только наследование от CHolderCustom, что означает способность "содержать в себе" актора. Нет, это означает только то, что разрабы решили не заморачиваться и в духе модостроителей сделали пулемёт из машины. У машин есть встроенное оружие, вот они им и воспользовались. -
Справочник по функциям и классам
Malandrinus ответил на тему форума автора Malandrinus в Скрипты / конфиги / движок
Полтергейст, скажем так, он там есть. Хотя похоже какой-то недоделанный. В ЗП кстати его update уже что-то делает. Это вроде класс для управления отрядами, но подробностей я не знаю. Добавлено через 8 мин.: Garry_Galler, насчёт видео - это лучше в тему про SDK или в ковырялку. Я этим вообще не занимался никогда. Помнится, когда я первый раз узнал про Lua и почитал мануал, то проделал точно такой же эксперимент =) Дело было кажется года так два или три назад. Признаться, до сих точного ответа не знаю. Вероятно, это так из-за компилятора JIT. Это же фактически альтернативная реализация Lua. Там не обязательно должно быть всё как в "настоящем".
- [ЧН] OGSM CS 1.8 CE Fixes
- [ЧН] HARDWARMOD 3.2
- [ЗП] The Long Road
- [ЧН] New vision of War
- [ЧН] Old Good Stalker Mod - Clear Sky
- [ЗП] Unofficial Patch
- [ЗП] Смерти вопреки
- [ЗП] Контракт на хорошую жизнь
- [ЗП] Shoker Weapon Mod 2.1
- [ЗП] Hardcore pack for SGM 2.2
- [ЗП] Контракт Синдиката
- [ЗП] Клондайк 2.0
- ...и другие моды