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

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

 
 

Переношу оружейку в Dead Air из сторонних модов и столкнулся с такой проблемой, что в отдельных случаях лог выдает просто stack trace: без каких либо дополнительных сведений куда копать (я просматривал логи почти полностью и ничего за рамки нормальности работы Dead Air не обнаружил) и проблемы зачастую решаются методом тыка и шаманством с ogf editor'ом, это основная проблема. Хотелось бы знать есть ли какой-то доступный инструментарий, который позволяет расширить лог, либо предотвратить вылеты и дать возможность просмотра консоли? я пользуюсь параметром запуска -extralog, но каких либо существенных преимуществ он не дает. Т.е. моддинг вслепую получается. Я готов бесконечно ковырятся в конфигах и прочем инструментарии, однако без понимания куда копать за фиксом вылета такой подход заводит меня в тупик и вообще не понятно как продолжать дальше.

Это первый и основной мой вопрос.
Пользуясь случаем хотел бы задать вопрос по следующему вылету, который хотя бы имеет "причину":
 

Спойлер

FATAL ERROR
 
[error]Expression    : <no expression>
[error]Function      : CInifile::r_section
[error]File          : Xr_ini.cpp
[error]Line          : 520
[error]Description   : fatal error
[error]Arguments     : Can't open section 'dynamics\weapons\wpn_aps_bas\wpn_aps_bas_world.ogf'. Please attach [*.ini_log] file to your bug report

Файл wpn_aps_bas_world.ogf имеется, по соответствующему пути, имена указаны верно, в самом ogf. файле никаких аномалий не обнаружил. В самом конфиге оружия меш и путь к ней тоже указаны верно. В чем может быть причина подобного? Движок Dead Air попросту не воспринимает басовский формат ogf. или как это можно интерпретировать? Похожих вылетов пока ещё не было, это первый при переносе басовского оружия. 

Заранее благодарю того, кто шарит и сможет жестко пояснить за материальную базу.
 

wpn_aps_bas_world.ogf

w_aps.ltx

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

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


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

SPL Приложенные файлы не содержат отсылки на dynamics\weapons\wpn_aps_bas\wpn_aps_bas_world.ogf. Ищите кто содержит.


Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

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


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

denis2000 Сорян, по ошибке перекинул дефолтный ДА апс. Вот конкретно тот, который выдает ошибку.

w_aps.ltx

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


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

Здраствуйте. Можно ли в скрипте сделать проверку на тайник поблизости? Я хочу создать что-то на подобии детектора тайников.

Осталось понять, как ЛОГИЧЕСКИ обосновать детектор тайников... Артефакты излучение разное, а в тайниках что???? Радиоактивная метка?

  • Хабар 1

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


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

Policai ну например артефакт который даёт игроку паранормальную чуйку на тайники

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


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

SPL Это норма?

Цитата

visual              = dynamics\weapons\wpn_aps_bas\wpn_aps_bas_world.ogf
item_visual    = dynamics\weapons\wpn_aps\wpn_aps_bas_hud.ogf

У вас действительно мировая и худ модели по разным папкам?


Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

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


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

denis2000 да действительно путь был указан неверно, но вот за ним последовал вылет о ненаходе анимации

 

Спойлер

 

Expression    : pm->m_animations.size()
Function      : player_hud_motion_container::load
File          : player_hud.cpp
Line          : 92
Description   : motion not found [blnd_aps_bas_afk_arms]

stack trace:

 


И так практически с любым портируемым оружием. Зачастую это idle_bore, idle или что-то подобное, если имеет значение. Данную анимацию я нашел через тотал коммандер в папке с аддоном откуда портирую в отдельном файле, который лежит не по пути оружия.image.thumb.png.75d8d0d84bea5497135f39c289800173.png

Я скопировал и вложил эти файлы по тому же пути, что и в оригинале. Но вылет это не фиксит. Т.е. игра просто не видит откуда ей эти анимации считать.
Попробовал скопировать эти же файлы в папку с мешем данного ствола. Результат тот же. Возможно необходимо указать где-то путь, чтобы движок игры понимал где и откуда что брать. Но как же? Аддон завершен и все анимации в самой Аномали работают и не приводят к вылетам, всё работает. Значит проблема в движке Dead Air, что он эти анимации не засчитывает? Вот ещё посмотрел огф и он не ссылается на данный файл с анимациями по оригинальному пути. Тогда как это устроено, что он должен оттуда их взять?image.thumb.png.dcbc320e758927936b29932c1fd0d924.png

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


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

Description   : motion not found [blnd_aps_bas_afk_arms]

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

Анимаций с таким именем должно быть две! Одна своя для оружия и одна своя для рук.
Анимация оружия может содержаться прямо в файле модели *.ogf, а может быть ссылкой внутри файла модели *.ogf на внешний файл с анимациями *.omf.
Но вот анимации рук всегда находятся в отдельном файле *.omf, потому, что ссылки на этот файл (а точнее на всю кучу файлов анимаций рук с разным оружием) должна быть во всех моделях рук.

По итогу - вы добавили худ модель оружия и ссылка на внешний файл в нем есть (см. скрин). Но вот добавить ссылку соответствующий файл с анимациями рук во все модели рук вы не догадались.


Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

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


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

Господа. Возник вопрос, начал делать квест, как сделать обновление квеста?  

Вот скелет квеста

[quest_vodka_give] icon = ui_inGame2_Put_v_pripyat prior = 2 storyline = false title = {=actor_has_item(vodka)}vodka_barmen_prinesti_name, vodka_barmen_naiti_name descr = vodka_barmen_descr target = {=actor_has_item(vodka)}zat_a2_stalker_barmen condlist_0 = {+quest_vodka_done} complete

Здесь только завершение, а как сделать так, что бы после разговора с нпс квест обновлялся?

 

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

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


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

denis2000 С этим я разобрался. Понял как и куда пихать анимки, чтобы он их воспринимал. Через omf editor перекинул все анимации в файл, который читается игрой, все пути указал, все анимации залил.
Но далее следует неизвестная мне ошибка.

 

Спойлер

 

FATAL ERROR
 
[error]Expression    : _GetItemCount(anm.c_str())==2
[error]Function      : player_hud_motion_container::load
[error]File          : player_hud.cpp
[error]Line          : 63
[error]Description   : blnd_aps_bas_idle_arms,idle,0.75
 

stack trace:

 

Ума не приложу в чем здесь может быть дело.

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


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

Stalkervernite  выдай инфу на диалог, а на завершение придумай другую инфу.

[квест_tm]
icon = ui_inGame2_PD_Diplomat
prior = 106
storyline = true
title = {+инфа}второй_name_2, первый_name_1
descr = {+инфа}второй_text_2, первый_text_1
target = {+инфа}второй_target, первый_target
condlist_0 = {+комплит} complete

 

  • Мастер! 1

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


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

Народ, в SGM 2.2 от "Затмения" есть ли какой-нибудь прок? Артефакты, к примеру, спавнятся или ещё что? Или это просто погодный эффект? Обычно я его отключаю, а может зря?

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


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

Всем добра, обращаюсь за помощью к спецам модинга, так как был большой перерыв в работе с файлами сталкера я подзабыл многое(годики мать иху дают о себе уже знать))))

Спойлер

ss_andrey_01-30-24_19-23-21_(rad_wood).thumb.jpg.19d571f860ca3ad86d74fb5d39458f0e.jpg

вопрос: куда копать и что править, как видим черная текстура прицела уже экрана и такое я видел во многих модах.


Адаптации ганслингера на моды зов припяти
Всегда на связи в телеге @Mervin62
 

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


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

Mervin62 Такое я уже видел в другом оружейном паке, но на него была правка на DX10 прицелы. Если на этот оружейный пак такой правки нет, то надо править ui_ingame.xml (configs\ui\textures_descr) и подбирать нужный размер прицелов (у меня 1920x1200). Также возможно придётся править текстуры прицелов.

  • Жму руку 1

Просто создаю свой мод...

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


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

SPL Судя по всему используемый вами движок не понимает такую конструкцию в параметре анимация: blnd_aps_bas_idle_arms,idle,0.75


Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

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


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

Привет, нужна помощь, я в скриптах пока не особо разбираюсь поэтому хотелось бы спросить у знающих.

У меня есть такой скрипт(не мой, взял от сюда тык)

Спойлер

local list_of_pages = {}
local list_of_note     = {}
local note_of_pages = {}
local pages_list     = {}
local diary_ini = ini_file("misc\\diary_records.ltx")

function give_diary_record(record_name)
    if not diary_ini:section_exist(record_name)
    or note_of_pages[record_name] ~= nil then
        return
    end
    local diary_text = diary_ini:r_string(record_name, "text")
    local diary_page = diary_ini:r_string(record_name, "page")
    if not list_of_pages[diary_page] then
        list_of_pages[diary_page] = {}
        table.insert(pages_list, diary_page)
    end
    note_of_pages[record_name] = {}
    note_of_pages[record_name].text = diary_text
    table.insert(list_of_pages[diary_page], record_name)
    table.insert(list_of_note, record_name)
end

function get_pages_list()
    local count = diary_ini:line_count("records") - 1
    local info, value = "", "", result
    for i = 0, count do
        result, info, value = diary_ini:r_line("records",i,"","")
        if has_alife_info(info) then
            give_diary_record(info)
        end
    end
end

class "list_item" (CUIListBoxItem)

function list_item:__init(height) super(height)
    self.text                    = self:GetTextItem()
    self:SetTextColor            (GetARGB(255, 92, 84, 69))
    self.text:SetFont            (GetFontLetterica25())
    self.text:SetWndSize        (vector2():set(325,height))
    self.text:SetEllipsis        (true)
end

class "diary_dialog" (CUIScriptWnd)

function diary_dialog:__init() super()
     self:InitControls    ()
     self:InitCallBacks    ()
     self:FillList        (pages_list, true)
end

function diary_dialog:__finalize()
end

function diary_dialog:FillList(tbl, is_pages)
    self.list:Clear()
    
    self.is_pages = is_pages
    self.tbl = tbl
    
    for i = 1, #tbl do
        self:AddItemToList(tbl, i)
    end
end

function diary_dialog:InitControls()
    local xml                = CScriptXmlInit()
    self:SetWndRect            (Frect():set(0,0,1024,768))
    local ctrl
    
    xml:ParseFile            ("ui_diary.xml")
    xml:InitFrame            ("background",self)

    self.text = xml:InitTextWnd ("paragraph", self)
    self.header = xml:InitTextWnd ("header", self)

    self.list = xml:InitListBox    ("list",self)

    self.list:ShowSelectedItem    (true)
    self:Register                (self.list, "list_window")

    local ctrl = xml:Init3tButton        ("back",self)
    self:Register                (ctrl, "btn_close")
    
    self.header:SetTextST    ("st_diary_header")
end

function diary_dialog:InitCallBacks()
    self:AddCallback("btn_close",        ui_events.BUTTON_CLICKED,             self.OnButton_close_clicked,    self)
    self:AddCallback("list_window",        ui_events.WINDOW_LBUTTON_DB_CLICK,      self.OnButton_create_clicked,    self)
end

function diary_dialog:OnButton_create_clicked()
    if self.list:GetSize()==0 then
        return
    end

    local item    = self.list:GetSelectedItem()
    
    if not item then
        return
    end
    local itmname        = item.text:GetText()

    local itemnum = tonumber(itmname:sub(1, itmname:find(".")))
    
    if self.is_pages then
        self:FillList(list_of_pages[pages_list[itemnum]], false)
        self.text:SetText("")
        self.header:SetTextST(pages_list[itemnum])
    else
        local tbl = note_of_pages[self.tbl[itemnum]]
        self.text:SetTextST(tbl.text)
        self.header:SetTextST(self.tbl[itemnum])
    end
end

function diary_dialog:OnButton_close_clicked()
    if not self.is_pages then
        self:FillList        (pages_list, true)
        self.text:SetText    ("")
        self.header:SetTextST    ("st_diary_header")
    else
        self:HideDialog()
    end
end

function diary_dialog:OnKeyboard(dik, keyboard_action)
    CUIScriptWnd.OnKeyboard(self,dik,keyboard_action)

    local bind = dik_to_bind(dik)
    
    if bind == key_bindings.kQUIT then
        self:HideDialog()
    end

    return true
end

function diary_dialog:AddItemToList(item_name, number)
    local _itm                    = list_item(30)
    _itm.text:SetText            (string.format("%d. %s", number, game.translate_string(item_name)))
    self.list:AddExistingItem    (_itm)
end

function ShowNotepad ()
    get_pages_list ()
    diary_dialog():ShowDialog(true)
end

это типо дневник с записями и в нём есть такая проблема что когда записей становиться больше 9 то начиная от 10  и до 19 записи у них используется описание от первой записи следовательно у 20-29 описание от второй записи. Вот примеры:

1.thumb.jpg.927c35250d93149ebada92864608009d.jpg

1.1.thumb.jpg.461206457368dbb4425a3f4dda182869.jpg

2.thumb.jpg.cf8e636433686146810675e891c7bc67.jpg

2.2.thumb.jpg.34b38b881b8a7f4848e9a87cadc7caa6.jpgи вот собственно мне думается что проблема в скрипте. помогите пожалуйста


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

@denis2000 Привет, посмотри пожалуйста, может ты знаешь в чём дело.

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

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


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

подскажите пожалуйста, прохожу данный мод sgm 2.2 gunslinger mod, при использовании спавнера перестает работать сохранение , что с этим можно сделать?

 

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


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

GoodCobra не использовать спаунер, зачем он там нужен?

  • Клоун 1

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


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

Добрый день. 
Подскажите, пожалуйста, с чем связана ошибка
~ cannot remove restriction with id [885][ros_zone_mine_thermal_average] to the entity with id [1393][fracture_strong1393], because it is not added

И как её исправить?

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


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

Здравствуйте, пытался отредактировать мини-карту, но столкнулся с такой проблемой:

Спойлер

972978630_.png.f7c45f7f005e008fcc3e807998dbfaa2.png

Пробовал менять значения в zone_map и ui_actor_hint_wnd, но ничего не меняется

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


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

Skala 

в zone_map в строке background возможно отсутствует атрибут alignment="c" если его нет то добавь в конце

Пример:

<background width="0.30" height="0.30" stretch="1" alignment="c">

Если не помогло, то убери alignment="c" и ровняй по x y.

Просто добавь атрибуты x y в background

Пример:

Цитата

<background x="0.15" y="0.15" width="0.30" height="0.30" stretch="1">

И подгоняй позицию.

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

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


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

Всем привет, через СДК 0.7 от DaaGuda v2 компилировал локацию со своими правками на максимальных настройках, в итоге на моделях как-будто бьется сглаживание, появляется полигонаж, хотя на оригинальной локации таких багов не было. Компилировал х64 компиляторами от SkyLoader. Скрины прикладываю. На что грешить, где ошибся?

 

ssq_Алексей_02-04-24_13-32-56_(l02_garbage_old).jpg

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


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

Бессмертный попробуй компилировать с ключом -no_smg

  • Мастер! 1

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


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

Скомпилировал на средних, вроде, помогло. Спасибо!

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


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

Спасибо!

Я бы не торопился говорить. Ключ носмг делает автосглаживание по настройкам в левел эдиторе, по дефолту 75. Будешь когда проффесионалом то поймёшь, что после конвертера бардака, нужно на уровне сглаживание делать заново в 3d редакторе, либо извращаться как то на 1 типе сглаживания всё делать.

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


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

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

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

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

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

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

Войти

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

Войти

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