Перейти к содержанию

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

 
 

Подскажите, как заспавнить пустое ружье?

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


Ссылка на сообщение
Поделиться на другие сайты
 
10 часов назад, Paracetamol сказал:

как заспавнить пустое ружье?

Через alife():create("секция_оружия", vector(), 0, 0, db.actor:id())

А чтобы заспавнилось пустое оружие использовать obj:unload_magazine() где obj - клиенский объект

local se_obj = alife():create("секция_оружия", vector(), 0, 0, db.actor:id())
if se_obj then
	level.client_spawn_manager():add(se_obj.id, db.actor:id(), function(id, obj) obj:unload_magazine() end)
end

Вроде бы так... могу и ошибиться

  • Лайк 1

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


Ссылка на сообщение
Поделиться на другие сайты
 
55 минут назад, Mass сказал:

Через alife():create("секция_оружия", vector(), 0, 0, db.actor:id())

А чтобы заспавнилось пустое оружие использовать obj:unload_magazine() где obj - клиенский объект


local se_obj = alife():create("секция_оружия", vector(), 0, 0, db.actor:id())
if se_obj then
	level.client_spawn_manager():add(se_obj.id, db.actor:id(), function(id, obj) obj:unload_magazine() end)
end

Вроде бы так... могу и ошибиться

Я немного другим способом воспользовался, но этот тоже опробую тогда.

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


Ссылка на сообщение
Поделиться на другие сайты
 

Подскажите, пожалуйста, где найти файл конфигурации где есть параметры для курсора?

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


Ссылка на сообщение
Поделиться на другие сайты
 

В  каком файле редактируется ширина и длина иконки сообщения

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

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


Ссылка на сообщение
Поделиться на другие сайты
 

Stalkervernite не смотрел саму функцию send_tip? Попробуй у actor:give_game_news(news_text, "ui\\ui_iconsTotal", Frect():set(x,y,83,47), timeout*1000, showtime) поменять числа в Frect():set (не проверял, хз)


Дополнено 4 минуты спустя

sN4Rtm вроде нет такого

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


Ссылка на сообщение
Поделиться на другие сайты
 
В 05.11.2024 в 12:07, Stalkervernite сказал:

В  каком файле редактируется ширина и длина иконки сообщения

Например, в текстуре.

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


Ссылка на сообщение
Поделиться на другие сайты
 
4 часа назад, N42 сказал:

Stalkervernite не смотрел саму функцию send_tip? Попробуй у actor:give_game_news(news_text, "ui\\ui_iconsTotal", Frect():set(x,y,83,47), timeout*1000, showtime) поменять числа в Frect():set (не проверял, хз)

Не помогло

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


Ссылка на сообщение
Поделиться на другие сайты
 

Stalkervernite  само поле имеешь в виду? В maingame_pda_msg.xml

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

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


Ссылка на сообщение
Поделиться на другие сайты
 
9 часов назад, N42 сказал:

Stalkervernite  само поле имеешь в виду? В maingame_pda_msg.xml

Всё помогло. Спасибо!

  • Жму руку 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

Приветствую! Кто нибудь может подсказать как убрать использование патрон с пояса.

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


Ссылка на сообщение
Поделиться на другие сайты
 
2 часа назад, Новис сказал:

как убрать использование патрон с пояса.

Командой g_ammunition_on_belt off

  • Жму руку 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

всем привет, снова вопрос есть

я собрал спавн для трех уровней с помощью компилятора от skyloader-а, но при попытке запуска вылетает:

Спойлер

[08.11.24 12:51:49.454] * phase time: 22 ms
[08.11.24 12:51:49.454] * phase cmem: 0 K
[08.11.24 12:51:49.527] --LUA version: [LuaJIT 2.1.0-beta3]
[08.11.24 12:51:49.597] * phase time: 143 ms
[08.11.24 12:51:49.597] * phase cmem: 0 K
[08.11.24 12:51:49.599] * phase time: 1 ms
[08.11.24 12:51:49.599] * phase cmem: 0 K
[08.11.24 12:51:49.607] * Creating new game...
[08.11.24 12:51:49.608] * Loading spawn registry...
[08.11.24 12:51:49.729] * 1248 spawn points are successfully loaded
[08.11.24 12:51:49.930] * Saving spawns...
[08.11.24 12:51:49.930] * Saving objects...
[08.11.24 12:51:49.936] * 1755 objects are successfully saved
[08.11.24 12:51:49.937] * Game all.sav is successfully saved to file 'd:\games\4. mods\s.t.a.l.k.e.r.  + stsoc wp\appdata\savedgames\all.sav'
[08.11.24 12:51:49.937] * New game is successfully created!
[08.11.24 12:51:49.937] * phase time: 338 ms
[08.11.24 12:51:49.937] * phase cmem: 0 K
[08.11.24 12:51:50.007] # Player not found. New player created.
[08.11.24 12:51:50.007] !!xrServer::Check_GameSpy_CDKey_Success - 1
[08.11.24 12:51:50.007] * client : connection accepted - <>
[08.11.24 12:51:50.032]
FATAL ERROR

[error]Expression    : FATAL ERROR
[error]Function      : CInifile::Load
[error]File          : C:\Users\alex_\Desktop\Engine\STSoC-Engine\STSoC_Engine\xrCore\Xr_ini.cpp
[error]Line          : 294
[error]Description   : Duplicate section 'map_usage' found.

я без понятия что за секция map_usage и где она находится, в ручную я ничего не добавлял, проверил конфиги на предмет этой секции

прошу помощи

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


Ссылка на сообщение
Поделиться на другие сайты
 
15 минут назад, microFarad сказал:

я без понятия что за секция map_usage и где она находится, в ручную я ничего не добавлял, проверил конфиги на предмет этой секции

Создай секцию с таким именем, а в игре запроси её координаты с помощью Finder Addon (c адаптацией аддна, думаю, справишься)

Изменено пользователем sumrak6835
  • Спасибо 1

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


Ссылка на сообщение
Поделиться на другие сайты
 
4 часа назад, microFarad сказал:

что за секция map_usage и где она находится

В level.ltx искал?

  • Спасибо 1

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


Ссылка на сообщение
Поделиться на другие сайты
 
19 часов назад, macron сказал:

В level.ltx искал?

спасибо, в level.ltx нашел, но теперь непонятный вылет на клиент: синхронизация

Спойлер


[09.11.24 11:56:35.865] ***************************[ScriptCrashHandler]**********************************
[09.11.24 11:56:35.865] stack traceback:
[09.11.24 11:56:35.865] *********************************************************************************
[09.11.24 11:56:35.865] ********************************************************************************
[09.11.24 11:56:35.865] !![LogStackTrace] Thread: [X-RAY Primary thread], ExceptionCode: [c0000005]
[09.11.24 11:56:36.910] !!Unhandled exception stack trace:
! Module: [d:\Games\S.T.A.L.K.E.R. STSoC\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6F46FC9C0], Fun: [CHudItem::UpdateCL()] + [340 byte(s)], File-->Line: [C:\Users\alex_\Desktop\Engine\STSoC-Engine\STSoC_Engine\xrGame\HudItem.cpp-->307] + [34 byte(s)]
! Module: [d:\Games\S.T.A.L.K.E.R. STSoC\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6F4345530], Fun: [CObjectList::SingleUpdate()] + [124 byte(s)], File-->Line: [C:\Users\alex_\Desktop\Engine\STSoC-Engine\STSoC_Engine\xr_3da\xr_object_list.cpp-->110]
! Module: [d:\Games\S.T.A.L.K.E.R. STSoC\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6F4345852], Fun: [CObjectList::Update()] + [394 byte(s)], File-->Line: [C:\Users\alex_\Desktop\Engine\STSoC-Engine\STSoC_Engine\xr_3da\xr_object_list.cpp-->174] + [19 byte(s)]
! Module: [d:\Games\S.T.A.L.K.E.R. STSoC\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6F4341950], Fun: [IGame_Level::OnFrame()] + [24 byte(s)], File-->Line: [C:\Users\alex_\Desktop\Engine\STSoC-Engine\STSoC_Engine\xr_3da\IGame_Level.cpp-->128]
! Module: [d:\Games\S.T.A.L.K.E.R. STSoC\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6F460B7AA], Fun: [CLevel::OnFrame()] + [1066 byte(s)], File-->Line: [C:\Users\alex_\Desktop\Engine\STSoC-Engine\STSoC_Engine\xrGame\Level.cpp-->408]
! Module: [d:\Games\S.T.A.L.K.E.R. STSoC\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6F4372F0F], Fun: [CRegistrator<pureFrame>::Process()] + [87 byte(s)], File-->Line: [C:\Users\alex_\Desktop\Engine\STSoC-Engine\STSoC_Engine\xr_3da\pure.h-->109]
! Module: [d:\Games\S.T.A.L.K.E.R. STSoC\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6F437299B], Fun: [CRenderDevice::FrameMove()] + [387 byte(s)], File-->Line: [C:\Users\alex_\Desktop\Engine\STSoC-Engine\STSoC_Engine\xr_3da\device.cpp-->453]
! Module: [d:\Games\S.T.A.L.K.E.R. STSoC\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6F4371B3E], Fun: [CRenderDevice::on_idle()] + [234 byte(s)], File-->Line: [C:\Users\alex_\Desktop\Engine\STSoC-Engine\STSoC_Engine\xr_3da\device.cpp-->208]
! Module: [d:\Games\S.T.A.L.K.E.R. STSoC\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6F4372687], Fun: [CRenderDevice::Run()] + [575 byte(s)], File-->Line: [C:\Users\alex_\Desktop\Engine\STSoC-Engine\STSoC_Engine\xr_3da\device.cpp-->391] + [85 byte(s)]
! Module: [d:\Games\S.T.A.L.K.E.R. STSoC\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6F433CCD4], Fun: [Startup()] + [1332 byte(s)], File-->Line: [C:\Users\alex_\Desktop\Engine\STSoC-Engine\STSoC_Engine\xr_3da\x_ray.cpp-->204]
! Module: [d:\Games\S.T.A.L.K.E.R. STSoC\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6F433D367], Fun: [WinMain_impl()] + [503 byte(s)], File-->Line: [C:\Users\alex_\Desktop\Engine\STSoC-Engine\STSoC_Engine\xr_3da\x_ray.cpp-->410]
! Module: [d:\Games\S.T.A.L.K.E.R. STSoC\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6F433D4F7], Fun: [WinMain()] + [335 byte(s)], File-->Line: [C:\Users\alex_\Desktop\Engine\STSoC-Engine\STSoC_Engine\xr_3da\x_ray.cpp-->431]
! Module: [d:\Games\S.T.A.L.K.E.R. STSoC\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6F4B263BE], Fun: [__scrt_common_main_seh()] + [262 byte(s)], File-->Line: [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl-->288] + [33 byte(s)]
! Module: [C:\Windows\System32\KERNEL32.DLL], AddrPC.Offset: [00007FF80409257D], Fun: [BaseThreadInitThunk()] + [29 byte(s)]
! Module: [C:\Windows\SYSTEM32\ntdll.dll], AddrPC.Offset: [00007FF80628AF08], Fun: [RtlUserThreadStart()] + [40 byte(s)]
[09.11.24 11:56:36.910] ********************************************************************************
[09.11.24 11:56:37.483] --Saved dump file to [d:\games\s.t.a.l.k.e.r. stsoc wp\appdata\logs\xray_anod_11-09-24_11-56-37.mdmp]

у меня скомпилены три локации: ванильный бар, росток от РСФС и билдовский янтарь; скомпилированные без ростка две локации отлично работают, но я не могу понять что конкретно с ростком не так...

по отдельности они все работают

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

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


Ссылка на сообщение
Поделиться на другие сайты
 

Всем привет. Меня интересует два вопроса:
1. Как конвертировать параметры (костюмов, оружия и тд) из билда 2205 в систему ТЧ?
2. Как создать файл для широкоформатных мониторов для файлов у которых такого нет (например ui_mm_opt)?

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


Ссылка на сообщение
Поделиться на другие сайты
 

Такой вопрос: можно ли в оригинальном ТЧ узнать отношение нпс к актору (враг-друг-нейтрал)?

Если есть клиентский объект, то всё понятно:

function not_enemy(id)
	local npc = level.object_by_id(id)
	return npc and npc:relation(db.actor) ~= game_object.enemy
end

А если нпс находится в оффлайне?

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


Ссылка на сообщение
Поделиться на другие сайты
 

av661194
alife():object(id) - серверный
level.object_by_id(id) - клиентский

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


Ссылка на сообщение
Поделиться на другие сайты
 

StrawFlux И к чему этот ответ? Я знаю, что такое серверный и клиентский объекты. Вопрос же был в следующем: как определить отношение нпс к актору, если нет клиентского объекта?

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


Ссылка на сообщение
Поделиться на другие сайты
 
1 час назад, Pastalker56 сказал:

Как создать файл для широкоформатных мониторов для файлов у которых такого нет (например ui_mm_opt)?

 Тут пример,как раз для скриптов.

  • Спасибо 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

Hrust Спасибо. Я вот только немного не понял, часть с редактированием движка обязательна или нет?

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


Ссылка на сообщение
Поделиться на другие сайты
 
25 минут назад, Pastalker56 сказал:

часть с редактированием движка обязательна или нет?

Метода нет такого, хотя можно и без изменений в движке обойтись, передав аналог такой проверки локально, но ябы не стал плодить копипасты. 

bool ui_core::is_16_9_mode()
{
	return (Device.dwWidth)/float(Device.dwHeight) > (UI_BASE_WIDTH/UI_BASE_HEIGHT +0.01f);
}

Только я не помню, как это сделать в скриптах, поищи по скриптам или луа хелпу проверки на разрешение экрана. 

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


Ссылка на сообщение
Поделиться на другие сайты
 

av661194 

Спойлер

local relation_matrix = {}
local rel_enemy, rel_friend
function trim(s)
    return (string.gsub(s, "^%s*(.-)%s*$", "%1"))
end
function str_explode(div, str, clear)
    local t = {}
    local cpt = string.find(str, div, 1, true)
    if cpt then
        repeat
        if clear then
            table.insert(t, trim(string.sub(str, 1, cpt - 1)))
        else
            table.insert(t, string.sub(str, 1, cpt - 1))
        end
        str = string.sub(str, cpt + string.len(div))
        cpt = string.find(str, div, 1, true)
        until cpt == nil
    end
    if clear then
        table.insert(t, trim(str))
    else
        table.insert(t, str)
    end
    return t
end

function build_tables()
    rel_enemy, rel_friend = utils.cfg_get_number(system_ini(), "game_relations", "goodwill_enemy", nil, false, -1000), utils.cfg_get_number(system_ini(), "game_relations", "goodwill_friend", nil, false, 1000)
    local s_comm_list = utils.cfg_get_string(system_ini(), "game_relations", "communities", nil, false, "", "")
    local comm_list = {}
    local s_value = str_explode(",", trim(s_comm_list), true)
    for a = 1, table.getn(s_value), 2 do
        local s_comm = s_value[a] table.insert(comm_list, s_comm)
    end
    local tmp = {}
    local result, id, value = nil, nil, nil
    for a = 0, system_ini():line_count("communities_relations") - 1 do
        result, id, value = system_ini():r_line("communities_relations", a, "", "")
        if id ~= nil and trim(id) ~= "" and trim(id) ~= nil then
            relation_matrix[trim(id)] = {}
            table.insert(tmp, trim(id))
        end
    end
    for a = 1, table.getn(tmp) do
        local value = utils.cfg_get_string(system_ini(), "communities_relations", tmp[a], nil, false, "", "")
        local idx = tmp[a]
        local m_value = str_explode(",", trim(value), true)
        for i = 1, table.getn(m_value) do
            local idx2 = comm_list
            local v = m_value
            if relation_matrix[idx] and idx2 ~= nil and v ~= nil then
                relation_matrix[idx][idx2] = tonumber(trim(v))
            end
        end
    end
end

function check_enemy()
    local rel = relation_check()
    if rel >= rel_friend then
        log3("друг")
    end
    if rel <= rel_enemy then
        log3("враг")
    end
end

function relation_check()
    local sim = alife()
    local npc = sim:object("esc_bridge_soldier5")
    local actor = db.actor
    if relation_matrix[npc:community()] and relation_matrix[npc:community()][actor:character_community()] then
        return relation_matrix[npc:community()][actor:character_community()]
    else
        return 0
    end
end

вот пример функции которая проверяет отношение (друг или враг) для актора и выбранного серверного нпс в данном случае для примера майора Кузнецова, сначала нужно вызвать функцию build_tables потом уже проверять check_enemy, так же можно проверять между нпс и нпс (character_community поменять на community)
П.С. референс брал из амк скриптов где при офлайн стычке проверяется отношение нпс к нпс

Изменено пользователем StrawFlux
  • Спасибо 1

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


Ссылка на сообщение
Поделиться на другие сайты
 
4 часа назад, Pastalker56 сказал:

2. Как создать файл для широкоформатных мониторов для файлов у которых такого нет (например ui_mm_opt)?

Берешь и создаешь такой же, но с _16 на конце.

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


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   1 пользователь онлайн