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

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


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

Scarabay, никак без майи или макса

Неужели? Конвертор от bardak'a vs. Actor Editor более ничего не надо.

d31addd2eac30de15743bb7fab48bfb2.jpg

И сидели бы сейчас вышеозначенные любители больших подписей в маленьких файлах, в байт-коде ковырялись, если не в машинном...

Ссылка на комментарий
Возмжно ли без задавания анимации задать look_position НПС?

npc:set_sight(object_he_looks_at)

npc и object_he_looks_at - это game_object

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

 

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

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

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

 

Ссылка на комментарий
Ооо...а можно на позицию?

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

    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

 

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

Виталий Зверь

 

Можно в кастом дате непися (в all.spawn) прописать схему как, например, у Волка

[smart_terrains]

esc_lager = {-agroprom_military_case_have -esc_fanat_spawn}

mil_lager = {+agroprom_military_case_have}, {+esc_fanat_spawn}

т.е. увести из одного гулага в другой при помощи инфопоршенов.

В данном примере, пока не выданы инфопоршены agroprom_military_case_have и esc_fanat_spawn Волк находится под гулагом esc_lager, если же выдан инфопоршен agroprom_military_case_have или esc_fanat_spawn, то Волк переходит под гулаг mil_lager на Армейских складах.

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

Где в солянке указана степень радиоактивности автомобилей? В папке config/models/vehicles нашел файлы "буханки" и прочих, но из параметров связаных с радиации-только иммунитет защиты... Где еще искать, подскажите.

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

метод explode()

 

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

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

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

 

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

Green Stalker, можно ещё так более точно:

function hit_nanesti()

for a=1,65635,1 do

local obj=level.object_by_id(a)

if obj and string.find(obj:name(),"explosive_barrel") then

local h = hit ();

h.power = 10000;

h.direction = vector():set (0, 0, 0);

h.impulse = 0;

h.draftsman = obj;

h.type = hit.explosion;

obj:hit (h);

end

end

end

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

Здравствуйте! Дико извиняюсь, но ещё вопрос по гулагам. Обрисую подробно.

В моём случае я убрал одного из НПС из игры(Шустрый), но у меня посыпались гулаги военных и нейтралов на кордоне. Как сохранить гулаг при удалении НПС.

banderos, спасибо, у меня получилось!

Ссылка на комментарий
Здравствуйте! Дико извиняюсь, но ещё вопрос по гулагам. Обрисую подробно.

В моём случае я убрал одного из НПС из игры(Шустрый), но у меня посыпались гулаги военных и нейтралов на кордоне. Как сохранить гулаг при удалении НПС.

banderos, спасибо, у меня получилось!

 

Достаточно одной ошибки в загрузке работ файла gulag_escape

При удалении НПС из гулага ,гулаг должен сохранится

Ссылка на комментарий
но у меня посыпались гулаги военных и нейтралов на кордоне. Как сохранить гулаг при удалении НПС.
Значит, точно ошибка в скрипте загрузки работ.

До:

        -- Шустрый
        t = { section = "logic@esc_lager_shustryi",
            idle = 0,
            prior = 16, state = {0,1},
            online = true,
            in_rest = "", out_rest = "",
            predicate = function(obj_info)
                            return obj_info.profile_name == "esc_shustryi"
                        end
        }
        table.insert(sj, t)
        t = { section = "logic@esc_lager_kamp1",
            idle = 0,
            prior = 16, state = {2},
            online = true,
            in_rest = "", out_rest = "",
            predicate = function(obj_info)
                            return obj_info.profile_name == "esc_shustryi"
                        end
        }
        table.insert(sj, t)

После:

        -- Шустрый
        t = { section = "logic@esc_lager_shustryi",
            idle = 0,
            prior = 16, state = {0,1},
            online = true,
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)
        t = { section = "logic@esc_lager_kamp1",
            idle = 0,
            prior = 16, state = {2},
            online = true,
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)

То есть, работу необходимо сохранить, но убрать проверку профиля esc_shustryi. Важно - обязательно убрать зпт в строке in_rest = "", out_rest = "" - в общем, как здесь. Можно так же, замениь его логику logic@esc_lager_shustryi на ту, что ниже logic@esc_lager_kamp1. То есть, воявится ещё одно место у костра, причём, для всех состояний - дня, ночи, атаки наёмников.

Ещё, в этом гулаге, есть оигинальная ошибка:

        -- охранники
        t = { section = "logic@esc_lager_zoneguard1",
            idle = 0,
            prior = 9, state = {0, 1},
            in_rest = "", out_rest = "esc_lager_guard_kill_zone",
        }
        table.insert(sj, t)
        t = { section = "logic@esc_lager_zoneguard2",
            idle = 0,
            prior = 9, state = {0, 1},
            in_rest = "", out_rest = "esc_lager_guard_kill_zone",
        }
        table.insert(sj, t)

Запятые в конце строк in_rest = "", out_rest = "esc_lager_guard_kill_zone",

Их тоже убрать:

        -- охранники
        t = { section = "logic@esc_lager_zoneguard1",
            idle = 0,
            prior = 9, state = {0, 1},
            in_rest = "", out_rest = "esc_lager_guard_kill_zone"
        }
        table.insert(sj, t)
        t = { section = "logic@esc_lager_zoneguard2",
            idle = 0,
            prior = 9, state = {0, 1},
            in_rest = "", out_rest = "esc_lager_guard_kill_zone"
        }
        table.insert(sj, t)

Ну и у самого шустрого убрать esc_lager = true.

 

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

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

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

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

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

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

Войти

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

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

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