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

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

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

10 часов назад, Stalkersof сказал(а):

походу нет такой функции.

Можно делать скриптовый постпроцесс. И к нему добавлять какие угодно функции.

https://www.amk-team.ru/forum/topic/7450-spravochnik-po-funkciyam-i-klassam/?do=findComment&comment=473063

 

  • Полезно 4

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

Тогда другой вопрос - в textures.ltx прописаны файлы из папки lod, но в папке с текстурами её нету. Вырезанное во время разработки?

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

@KERIXFIX337X эта папка вообще нужна для СДК и в игре не используется.

  • Спасибо 1
  • Согласен 1
  • Полезно 1

GTA 3 MAP X-Ray | NFS U:2 MAP X-Ray | RTCW MAP X-Ray | L2D | Куча раритетных модов на моем облаке — на память о былом.

JNCR — Coming Soon...

i5-10400F / RAM 16GB / GTX 1660 Super / 1TB HDD+256GB SSDm2 / Win 11 PRO x64 / Samsung Curved 27" x2

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

@Stalkersof , ага. Поэтому и полез уточнять, спрашивать. Наличие звука или партикла в игре можно отследить. Для постпроцесса, похоже, подобного функционала нет.

@Zander_driver , полезно. Мощная штука. Но в данном случае субъективное ощущение, что "из пушки по воробьям" - "городить огородами", чтобы просто отследить активность постпроцесса? Проще уж по старинке, level.add_pp_effector() -> trigger=true, level.remove_pp_effector() -> trigger=false, с проверкой по значению trigger.

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

Можно ли заспавнить предмет в инвентарь ГГ рандомно по классу?

Мне нужно что-то типо:

local misc = {
    [clsid.obj_medkit] = true,
    [clsid.obj_antirad] = true
}

function misc_test(obj)
    if misc[obj:clsid()] then

....

end

 

Или как-то так.

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

@Colder 

Ф-ции движка, которые спавнят объекты, принимают секцию конфига, а явной связи между движковым clsid и конфиговой секцией нет. А в чем собственно смысл, спавнить аптечку по clsid, а не по секции?

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

Да бы не перечислять все предметы которые надо заспавнить,получиться длинющий список! Я хотел сделать это по классу что бы по короче. Ну раз нельзя.... спасибо!

Другой вопрос спавню предметы и хочу получить сообщение о полученых, делаю так:

Скрытый текст

local partn = {
    "grenade_rgd5",
    "ammo_9x18_fmj",
    "bandage",
    "antirad",
    "stim_bad",
    "medkit"
}

 

function random_item(obj)

    for i = 1, 2 do

    local a = partn[math.random(table.getn(partn))]

    local sect = obj:section()
    local name = tostring(system_ini():r_string(obj:section(),"inv_name_short"))

    local text = "\\n%c[white]"..game.translate_string(tostring(name))

    alife():create(a, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
    db.actor:give_game_news(text, "ui_libery\\ui_coal_air_iconstotal", Frect():set(415,94,83,47), 0, 6000)
end
end

Но игра вылетает...

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

@Colder 

В конфигах есть три разных аптечки, но движковый clsid у них одинаковый. И так с оружием и многими другими предметами. Как будешь выбирать, что именно спавнить? Проще сделать таблицу секций, чем городить нехилый скриптовый огород, тем более, что удобной движковой ф-ции, которая может сопоставить clsid с секцией конфига - нет.

Насчет вылета - что пишет-то в логе?

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

@AndreySol

Скрытый текст

Expression    : fatal error
Function      : CInifile::r_string
File          : E:\stalker\sources\trunk\xrCore\Xr_ini.cpp
Line          : 352
Description   : <no expression>
Arguments     : Can't find variable inv_name_short in [dog_weak]

Пытаюсь доспавнить некоторые предметы Актору при срезании трофеев с мутантов!

А он почему то считает секцию самого мутанта

24 минуты назад, AndreySol сказал(а):

@Colder 

В конфигах есть три разных аптечки, но движковый clsid у них одинаковый. И так с оружием и многими другими предметами. Как будешь выбирать, что именно спавнить? Проще сделать таблицу секций, чем городить нехилый скриптовый огород, тем более, что удобной движковой ф-ции, которая может сопоставить clsid с секцией конфига - нет.

Насчет вылета - что пишет-то в логе?

А можешь пж привести пример как сделать таблицу секций или можно где то подглядеть?

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

@Colder 

Ну так уже есть твой-же пример:

local partn = {"grenade_rgd5",
    "ammo_9x18_fmj",
    "bandage",
    "antirad",
    "stim_bad",
    "medkit"}

 

function random_item(obj)

    local sect = partn[math.random(table.getn(partn))]
    local name = system_ini():r_string(sect, "inv_name_short")
    local text = "%c[white]" .. name
    alife():create(sect, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
    db.actor:give_game_news(text, "ui_libery\\ui_coal_air_iconstotal", Frect():set(415,94,83,47), 0, 6000)
end

В таком виде ф-ция будет спавнить один объект из таблицы partn и выводить сообщение с коротким названием этого объекта.

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

Пытаюсь создать тайник через скрипт с присвоением Сида

 

Скрытый текст

local id_inv_box_1 = 48802
function yashik_habar()
local soObj = alife():create("esc_tainik_ferma",vector():set(-421.03182983398,1.2585370540619,40.20238494873),152517,3660)                                                           
if soObj then
id_inv_box_1 = soObj.id
end
end

Тайник то спаунится, а вот сид не работает. Не пойму в чем ошибка?

Ссылка на комментарий
2 часа назад, Colder сказал(а):

Да все работает, только когда приходит смс то там вот что)

Посмотри что у тебя в конфигах предметов. А Именно в секции inv_name_short. Походу у тебя там строковые переменные. Варианта два либо в этой секции прописать нормальное название предмета либо по аналогии с остальными предметами внести строковый индификатор в конфиги.

Ссылка на комментарий
6 минут назад, Colder сказал(а):

@Stalkersof В том то и проблема что в конфингах все у меня нормально!

@Stalkersof Я так понимаю по другому ни как?

Почему все должно работать. У Тебя в скрипте берется название предмета из секции inv_name_short предмета. Что в этой секции то и выводиться в сообщении. Не знаю в чем проблема должно все работать.

Добавлено  Опричник,

Изучите "Правила цитирования". https://www.amk-team.ru/forum/topic/13514-obyavleniya/

Устное предупреждение.

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

@WinCap Заработало:

Скрытый текст

Вместо:

function random_partn_monsters_item(obj)
    local sect = partn[math.random(table.getn(partn))]
    local name = system_ini():r_string(sect, "inv_name_short")
    local text = "%c[ui_white]"..game.translate_string("st_body_knife_parts").."\\n"..name
    alife():create(sect, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
    db.actor:give_game_news(text, "ui\\ui_coal_air_iconstotal", Frect():set(166,517,83,47), 0, 5000)
end

 

Сделал так:

function random_partn_monsters_item(obj)
    local sect = partn[math.random(table.getn(partn))]
    local name = game.translate_string(system_ini():r_string(sect, "inv_name_short"))
    local text = "%c[ui_white]"..game.translate_string("st_body_knife_parts").."\\n"..name
    alife():create(sect, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
    db.actor:give_game_news(text, "ui\\ui_coal_air_iconstotal", Frect():set(166,517,83,47), 0, 5000)
end

 

Результат: https://yadi.sk/i/0agThJHHTEN5Wg

 

  • Нравится 2
Ссылка на комментарий

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

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

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

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

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

Войти

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

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

AMK-Team.ru

×
×
  • Создать...