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

[SoC] Ковыряемся в файлах


Halford

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

Ооо...а можно на позицию?

Там есть ещё набор этих функций, где в качестве аргумента не объект а вектор

    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

 

Поделиться этим сообщением


Ссылка на сообщение
Как можно по скрипту взорвать бочки, баллоны и.т.п?

метод explode()

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

Monnoroch,

А если в качестве эксперимента попробовать несколько раз увеличить на 1 процент? Может меняется, но просто округляется при выводе.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

XMK,

Да ладно, может он исправился =) Вот даже в нужную тему написал.

 

он нормально работает. появляется в нужной точке на кордоне и работает. с помощью команды rs_stats 1 в игре снял координаты нужного места в игре. заменил координаты нпса на новые с помощью xr_spawner. всё. что бы я ни делал, его нет. игра не вылетает, ничего. нпс просто не появляется.

Кроме координат надо ещё менять левел и гейм вертексы. Таки придётся тебе скрипт для снятия координат ставить =)

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение
я совсем не про офф топ говорил
пользуйся ACDC и не парь мозги ни себе ни нам. Сколько раз обсуждалось, что спавнер по сравнению с ним - ничто.

Комрады, вы чего взъелись? Если человек делал всё по той статье, на которую сылку привёл, то собственно нового непися он сделал с помощью acdc.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

Monnoroch,

когда броню снимаешь, то всё работает. Возможно, где-то засел скрипт, который контролирует состояние _надетой_ брони и переписывает твоё значение.

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

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение
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

 

Поделиться этим сообщением


Ссылка на сообщение

Monnoroch,

Что-то я об этом слышал, но тогда так и не понял. Нельзя ли подробнее?

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение
создавал его для мощьных аппаратов...Проблема в видеокарте моего ноутбука(MSI VR-600,процессор-1890 MHZ,видео 400MHZ(256мб)),которая не в силах обработать DDS файл 2048x1024,вот почему и происходит путаница иконок в инвентаре....

По-моему, бред какой-то. Это размер как в оригинальной игре. Ну ладно...

Скачиваешь SIE последней версии. Запускаешь, открываешь иконки из пункта меню

Файл -> тени Чернобыля -> ui_icon_equipment.dds

Он их сам найдёт

Далее. Меню "Вид -> Загрузить иконки из ТЧ". Несколько секунд подожди. Когда загрузит, убери сетку "Вид -> показать сетку". Увидишь, как соответствуют иконки из конфигов реальным изображениям. Кроме того, при движении мышой над изображением будет подсвечиваться имя объекта в статусной строке. Если всё выглядит логичным, значит проблема у тебя. Если не соответствуют - значит товарищ тебе напарил.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение
Как поместить в это сообщение файл ui_icon_equipment.dds ?

Залей на обменник. Например на ifolder.ru

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

biskot,

пока скачать не даёт, проверяет что-то. Но уже видно, что файл сделан кривыми руками. 8 мегов при размере 2048x1024 - это ненормально. Без упаковки что-ли сделано? Щас разберёмся.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение
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

 

Поделиться этим сообщением


Ссылка на сообщение

biskot,

1. Возьми из шапки темы шпаргалку, разберись, где прописываются иконки (ничего сложного), и редактируй сам. Для большинства людей здесь, это - неинтересная рутина.

2. У меня возникают сомнения в адекватности (я не имею в виду квалификацию) авторов мода, которые запихали в него несколько десятков автоматов Калашникова (а было ли в реале столько модификаций?). С другой стороны судя по тем же иконкам никаких особенных новшеств по части новых предметов в этом моде нет.

3. Там что, серьёзно изменён сюжет и графика по сравнению с оригинальной игрой? Что за мод вообще?

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение
почему функция

...

Возвращает 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

 

Поделиться этим сообщением


Ссылка на сообщение
А по другим вопросам не знаешь?

что самое смешное - то,что есть в этой таблице возвращает тру,а то,чего в ней нет фолс....

1. По другим не знаю =(

 

2. Это я недосмотрел. Однако ничто не мешает логически инвертировать возвращаемое значение или изменить условие:

function f(obj,npc)
    return musor[obj:section()] == nil
end

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение
2)Как определить положение ГГ (бегом,шагом,сидя...)
Вроде как тоже нет. Есть movement_type(), но он похоже для ГГ не работает

А если измерять расстояние между db.actor:position() и камерой device().cam_pos ?

Я так понимаю, что position - это всегда точка на земле, а cam_pos - это "глаза" ГГ.

Из предположительных ограничений:

- не знаю, что будет в момент прыжка

- однозначно не будет работать в режиме не от первого лица.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение
а ты уверен что position() это на земле?

Я проверял. Специально для этого сделал световой маркер в пространстве - партикл, позиция которого постоянно обновляется. Видно, что position() - это в точности на земле, поскольку партикл видно ровно наполовину. Правда прыгать не пробовал, так что не знаю, сохраняется ли позиция при прыжке.

 

Добавлено через 2 мин.:

position() - по логике вещей это положение главной (первой) кости модели

Думаю иначе. Это вроде как положение _на сетке_

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение
в моделях сталкеров ЧН, по сравнению с моделями ТЧ, появилась кость идущая из таза до земли и она "главная", и в ЧН position() возвращает именно точку на земле, вот я и подумал что в ТЧ точка не на земле, значит разрабы запарились и проецировали координаты главной кости на землю для позиции модели.

Я проверил. position() - это точка не на земле, а "на ступнях" ГГ. При прыжке перемещается вместе с ГГ. Так что способ вроде работает. Чему именно соответствуют эти координаты, я уже и не знаю. Не проекция на землю - это точно. Но и не тазовая кость.

 

Добавлено через 5 мин.:

Возникает проблема - данные не могут быть точными.

 

Отсюда вопрос - только на основе статистики если делать,то сей метод не будет точным....

так а в чём проблема?

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

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение
Тогда еще такой вопрос - как поймать прыжок?

По изменению z не покатит - ведь в игре много резких подьемов....или не настолько резких?

Еще причина,почему не покатит - апдейт слишком часто - разницы большой не будет.А если делать реже,чем апдейт то и смысла нет - как там момент поймаешь...

С прыжком ситуация такая. С одной стороны, когда прыгаешь - разница между позицией и камерой увеличивается определённым образом. С другой стороны, когда бегаешь по пересечённой местности эта разница тоже скачет. Не сильно, но сравнимо с прыжком. Поэтому не знаю, как уверенно определить факт прыжка. Если устроит, что бег по "ребристой" местности будет индицироваться как "подпрыгивание", то в принципе будет работать.

 

Ситуация: стою на месте.Инфа в лог о дистанции между предыдущей позицией актора и текущей выводится в апдейте.

Прошу заметить - я даже не трогаю клавиши управления - да и при выведенной консоли это невозможно.

И должно оно выглядеть,как сплошные нули.

Ну почему непременно должно? Фиг его знает, почему движок не сохраняет точно позицию, но это не так уж и странно. От вычислений с плавающей запятой можно ожидать чего угодно. А с практической точки зрения проблем нет, числа там близки к нулю (1E-5 - 1E-6, что составляет несколько игровых микрометров) так что можно спокойно задать безопасную границу в скажем 1E-3 и сказать, что всё, что меньше - стояние на месте.

 

З.Ы. ГГ не пил - он у меня вообще непьющий ;)

А я думаю, что даже если его будет постэффектом колбасить, то это только повлияет на направление камеры =)

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение
Еще хочу уточнить: как правильно проверить,что таблица существует и не пустая?

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

 

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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