Malandrinus 615 Опубликовано 6 Августа 2009 Ооо...а можно на позицию? Там есть ещё набор этих функций, где в качестве аргумента не объект а вектор function set_sight(enum SightManager::ESightType, const vector*, number); function set_sight(enum SightManager::ESightType, const vector&, boolean); function set_sight(enum SightManager::ESightType, const vector*); SightManager::ESightType - это вероятно как смотреть, или как интерпретировать другие аргументы. это вот такое перечисление enum SightManager::ESightType { eSightTypeCurrentDirection, //0 eSightTypePathDirection, //1 eSightTypeDirection, //2 eSightTypePosition, //3 eSightTypeObject, //4 - не экспортирована eSightTypeCover, //5 eSightTypeSearch, //6 eSightTypeLookOver, //7 - не экспортирована eSightTypeCoverLookOver, //8 - не экспортирована eSightTypeFireObject, //9 - не экспортирована eSightTypeFirePosition, //10 eSightTypeDummy, }; Эти константы экспортированы через класс look. look.cur_dir -- eSightTypeCurrentDirection look.path_dir --eSightTypePathDirection look.direction --eSightTypeDirection look.point --eSightTypePosition look.danger --eSightTypeCover look.search --eSightTypeSearch look.fire_point --eSightTypeFirePosition Как видно, именованные константы заведены не для всех элементов этого перечисления. Для 4,7,8,9 именованных констант нет. Можно конечно и просто указать их как цифры при вызове функции, но что будет неизвестно. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 6 Августа 2009 Как можно по скрипту взорвать бочки, баллоны и.т.п? метод explode() Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 9 Августа 2009 Monnoroch, А если в качестве эксперимента попробовать несколько раз увеличить на 1 процент? Может меняется, но просто округляется при выводе. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 10 Августа 2009 XMK, Да ладно, может он исправился =) Вот даже в нужную тему написал. он нормально работает. появляется в нужной точке на кордоне и работает. с помощью команды rs_stats 1 в игре снял координаты нужного места в игре. заменил координаты нпса на новые с помощью xr_spawner. всё. что бы я ни делал, его нет. игра не вылетает, ничего. нпс просто не появляется. Кроме координат надо ещё менять левел и гейм вертексы. Таки придётся тебе скрипт для снятия координат ставить =) Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 10 Августа 2009 я совсем не про офф топ говорил пользуйся ACDC и не парь мозги ни себе ни нам. Сколько раз обсуждалось, что спавнер по сравнению с ним - ничто. Комрады, вы чего взъелись? Если человек делал всё по той статье, на которую сылку привёл, то собственно нового непися он сделал с помощью acdc. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 10 Августа 2009 (изменено) Monnoroch, когда броню снимаешь, то всё работает. Возможно, где-то засел скрипт, который контролирует состояние _надетой_ брони и переписывает твоё значение. Изменено 10 Августа 2009 пользователем malandrinus Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 10 Августа 2009 malandrinus, хмм.вот значит как? а вообще можно тогда хоть как нибудь надетую броню чинить? Покопал глубже и откопал вот такую собаку =) Файл amk_mod.script: local last_condition=0 ... function check_armor() ... if last_condition<armor:condition() then armor:set_condition(last_condition) else last_condition=armor:condition() end end check_armor вызывается по апдейту. Видно, что состояние брони переписывается принудительно, если оно стало больше, чем сохранённое в переменной last_condition. Надо убрать local из объявления переменной last_condition, чтобы сделать её доступной снаружи модуля и при необходимости повысить состояние брони одновременно записывать нужное значение с помощью set_condition и в эту переменную: outfit:set_condition(cond + 0.2) amk_mod.last_condition = cond + 0.2 В принципе, можно что-то в check_armor изменить. Но фиг его знает, зачем там это сделано. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 10 Августа 2009 Monnoroch, Что-то я об этом слышал, но тогда так и не понял. Нельзя ли подробнее? Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 11 Августа 2009 создавал его для мощьных аппаратов...Проблема в видеокарте моего ноутбука(MSI VR-600,процессор-1890 MHZ,видео 400MHZ(256мб)),которая не в силах обработать DDS файл 2048x1024,вот почему и происходит путаница иконок в инвентаре.... По-моему, бред какой-то. Это размер как в оригинальной игре. Ну ладно... Скачиваешь SIE последней версии. Запускаешь, открываешь иконки из пункта меню Файл -> тени Чернобыля -> ui_icon_equipment.dds Он их сам найдёт Далее. Меню "Вид -> Загрузить иконки из ТЧ". Несколько секунд подожди. Когда загрузит, убери сетку "Вид -> показать сетку". Увидишь, как соответствуют иконки из конфигов реальным изображениям. Кроме того, при движении мышой над изображением будет подсвечиваться имя объекта в статусной строке. Если всё выглядит логичным, значит проблема у тебя. Если не соответствуют - значит товарищ тебе напарил. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 11 Августа 2009 Как поместить в это сообщение файл ui_icon_equipment.dds ? Залей на обменник. Например на ifolder.ru Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 11 Августа 2009 biskot, пока скачать не даёт, проверяет что-то. Но уже видно, что файл сделан кривыми руками. 8 мегов при размере 2048x1024 - это ненормально. Без упаковки что-ли сделано? Щас разберёмся. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 11 Августа 2009 The dds file is 2048x1024 and maybe too much for your video card. If you believe you have a strong card then try using paint.net or photoshop to resave the dds file.. It might work. Руки бы этому господину поотрывать. Во-первых, 4096*2048. Во-вторых, там редкая помойка. Куча пробелов между иконками и много практически одинаковых изображений. Я этого не понял. Там одних только калашей несколько десятков! Можно попробовать сохранить в DXT1 с некоторой потерей качества, но в целом на мой погляд это не исправить. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 11 Августа 2009 biskot, 1. Возьми из шапки темы шпаргалку, разберись, где прописываются иконки (ничего сложного), и редактируй сам. Для большинства людей здесь, это - неинтересная рутина. 2. У меня возникают сомнения в адекватности (я не имею в виду квалификацию) авторов мода, которые запихали в него несколько десятков автоматов Калашникова (а было ли в реале столько модификаций?). С другой стороны судя по тем же иконкам никаких особенных новшеств по части новых предметов в этом моде нет. 3. Там что, серьёзно изменён сюжет и графика по сравнению с оригинальной игрой? Что за мод вообще? Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 13 Августа 2009 почему функция ... Возвращает true для болта? Сложно сказать. Но если надо определить принадлежность предмета к некоторому множеству (судя по коду, именно это требуется), то я бы сделал по другому: musor = { ["bolt"] = true, -- вместо true может быть что угодно отличное от nil ["yet_another_musor_section"] = true } function f(obj,npc) return musor[obj:section()] ~= nil end Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 14 Августа 2009 А по другим вопросам не знаешь? что самое смешное - то,что есть в этой таблице возвращает тру,а то,чего в ней нет фолс.... 1. По другим не знаю =( 2. Это я недосмотрел. Однако ничто не мешает логически инвертировать возвращаемое значение или изменить условие: function f(obj,npc) return musor[obj:section()] == nil end Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 14 Августа 2009 2)Как определить положение ГГ (бегом,шагом,сидя...) Вроде как тоже нет. Есть movement_type(), но он похоже для ГГ не работает А если измерять расстояние между db.actor:position() и камерой device().cam_pos ? Я так понимаю, что position - это всегда точка на земле, а cam_pos - это "глаза" ГГ. Из предположительных ограничений: - не знаю, что будет в момент прыжка - однозначно не будет работать в режиме не от первого лица. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 14 Августа 2009 а ты уверен что position() это на земле? Я проверял. Специально для этого сделал световой маркер в пространстве - партикл, позиция которого постоянно обновляется. Видно, что position() - это в точности на земле, поскольку партикл видно ровно наполовину. Правда прыгать не пробовал, так что не знаю, сохраняется ли позиция при прыжке. Добавлено через 2 мин.: position() - по логике вещей это положение главной (первой) кости модели Думаю иначе. Это вроде как положение _на сетке_ Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 14 Августа 2009 в моделях сталкеров ЧН, по сравнению с моделями ТЧ, появилась кость идущая из таза до земли и она "главная", и в ЧН position() возвращает именно точку на земле, вот я и подумал что в ТЧ точка не на земле, значит разрабы запарились и проецировали координаты главной кости на землю для позиции модели. Я проверил. position() - это точка не на земле, а "на ступнях" ГГ. При прыжке перемещается вместе с ГГ. Так что способ вроде работает. Чему именно соответствуют эти координаты, я уже и не знаю. Не проекция на землю - это точно. Но и не тазовая кость. Добавлено через 5 мин.: Возникает проблема - данные не могут быть точными. Отсюда вопрос - только на основе статистики если делать,то сей метод не будет точным.... так а в чём проблема? стоит/полуприсел/сел отличаются отчётливо, а бег/ходьба можно отличить по изменению горизонтальных координат. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 14 Августа 2009 Тогда еще такой вопрос - как поймать прыжок? По изменению z не покатит - ведь в игре много резких подьемов....или не настолько резких? Еще причина,почему не покатит - апдейт слишком часто - разницы большой не будет.А если делать реже,чем апдейт то и смысла нет - как там момент поймаешь... С прыжком ситуация такая. С одной стороны, когда прыгаешь - разница между позицией и камерой увеличивается определённым образом. С другой стороны, когда бегаешь по пересечённой местности эта разница тоже скачет. Не сильно, но сравнимо с прыжком. Поэтому не знаю, как уверенно определить факт прыжка. Если устроит, что бег по "ребристой" местности будет индицироваться как "подпрыгивание", то в принципе будет работать. Ситуация: стою на месте.Инфа в лог о дистанции между предыдущей позицией актора и текущей выводится в апдейте. Прошу заметить - я даже не трогаю клавиши управления - да и при выведенной консоли это невозможно. И должно оно выглядеть,как сплошные нули. Ну почему непременно должно? Фиг его знает, почему движок не сохраняет точно позицию, но это не так уж и странно. От вычислений с плавающей запятой можно ожидать чего угодно. А с практической точки зрения проблем нет, числа там близки к нулю (1E-5 - 1E-6, что составляет несколько игровых микрометров) так что можно спокойно задать безопасную границу в скажем 1E-3 и сказать, что всё, что меньше - стояние на месте. З.Ы. ГГ не пил - он у меня вообще непьющий А я думаю, что даже если его будет постэффектом колбасить, то это только повлияет на направление камеры =) Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 14 Августа 2009 Еще хочу уточнить: как правильно проверить,что таблица существует и не пустая? tbl = {1,5,8} -- проверяем, что таблица существует и не пустая if tbl and next(tbl) then ... end Добавлено через 33 мин.: table.getn(npc_items) > 0 Это сработает только для тех таблиц, у которых ключи начинаются от единицы и идут непрерывно. Или иными словами, для созданных таким образом: t = {v1, v2, v3, ... и т.д.} - в этой таблице ключи создаются автоматически с автонумерацией от единицы если же я создал таблицу общего вида: t = { [k1] = v1, [k2] = v2, [k3] = v3, и т.д. } или просто добавлял в таблицу значения с произвольными ключами: t[k] = v то это не сработает. В этом случае надо использовать функцию next(table, key). Эта функция возвращает ключ, следующий за key. Если key равен nil (или просто не указан), то вернёт первый ключ. Если в таблице нет ничего, то получим nil, что эквивалентно false в логических выражениях. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение