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

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

 
 

Прописал в логику =disable_anomaly(toz_camp) для костра со стори айди, в СДК у костра стори айди прописан:

Snipaste-2021-10-25-10-38-06.png

Но ловлю вылет:

FATAL ERROR
 
[error]Expression    : !m_error_code
[error]Function      : raii_guard::~raii_guard
[error]File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
[error]Line          : 748
[error]Description   : ...r call of pripyat\gamedata\scripts\xr_effects.script:2130: attempt to index local 'obj' (a nil value)

stack trace:

Вроде как жалуется, что не может найти объект с таким айди, но он же прописан. Что я делаю не так?

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


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

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

  Лог вылета (Показать контент)

 

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


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

AziatkaVictor , в ЗП регистрация стори айди объектам читается из под скриптов. Обычно регистрация производится внутри скриптовых серверных классов. У костра нет. Если правильно помню, даже скриптового варианта серверного класса нет. Пиши его и добавь чтение и регистрацию айдишника, тут все просто по аналогии.
p.s. Но никто не запрещает регать и из под биндера на пример или откуда-то еще. (пригодится может. Т.К. Не все до экспортировано в луа.)

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

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


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

Ekagors а можно подробнее пожалуйста? Если честно, я не понял что конкретно нужно делать, точнее где и что писать.

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


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

AziatkaVictor , осуществляется все в скрипте story_objects.script, вызовом check_spawn_ini_for_story_id(sObj)
то есть story_objects.check_spawn_ini_for_story_id(sObj)
Где sObj - серверный объект. И все. Рега закончена. Читает из секции конфига и из кастюм даты, проверяет есть ли стори айди, то регает.
Пример (вырезка из ПЫС скрипта кусок скриптового серверного класса брони):
 

  Показать контент

P.S. Необязательно регать там. Но ПЫС регают там.

p.s.s По скриптовым серверным классам: Как, что и где связано разберешься сам. Интуитивно понятно, а если нет, то гайдов нет, есть описания по работе с скриптовыми серверными классами, на АМК точно помню было, они даже ценней.

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

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


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

Прописал в логику =disable_anomaly(toz_camp) для костра со стори айди,

Так попробуй. Работать будет только на DX10

function disable_campfire(actor, npc, p)
    local obj = get_story_object(p[1])
    if obj then
        local campfire = obj:get_campfire()
        campfire:turn_off()
    end
end


Терпение... И все получится.

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


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

makdm , у него вылет не жалуется, что метод неподходящий, он жалуется на отсутствие obj.
 

  В 25.10.2021 в 07:40, AziatkaVictor сказал:

xr_effects.script:2130: attempt to index local 'obj' (a nil value)

А если просто открыть эффектс и посмотреть:

  Показать контент

Раз его нет. Он не зареган, не зареган он может быть только по четырем причинам:
1. Он не прописан нигде или прописан неправильно.
2. Регистрация происходит слишком поздно.
3. Регистрации вообще не осуществляется для данного объекта.
4. Сбой, неправильная работа скриптов, ввиду какой-то ошибки.

Но у нас, первое, он прописан. Второе, это вряд ли, такое могло быть при имениях существующих скриптов или добавлении своего кода с ошибками. Третье, на лицо оно. К тому же я не помню, чтобы у костров был скриптовый серверный класс и даже если есть, на пример точно помню, что у тех же визуальных зон не прописана рега стори айди (жгучий-пух). Четвертый пункт, маловероятен в нашем случае.

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

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


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

Ekagors то есть, я не могу отключить его, так как ему просто не присваивается айдишник? Но как тогда его отключают, если присвоить специальное имя смарт тиррейна? Когда там нету ни одного НПС, то костры отключаются.

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


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

AziatkaVictor , а кто запрещает отключать? Ты в ручную оффаешь, через ф-ию которая дает тебе объекты из таблицы по их стори айди. То есть, у тебя есть ф-ия disable_anomaly в xr_effects, которую ты вызываешь из под логики.
Что внутри нее:
 

  Показать контент

Видишь же, что она объект получает передавая тобой переданный аргумент в get_story_object.
get_story_object в свою же очередь, это ф-ия которая прописана в _g.script:

  Показать контент

Которая взывает как раз таки таблицу внутри класса из скрипта story_objects , где зареганы (записаны в таблицу) айдишники. По принципу {[name_sid]=id,[name_sid_arbuz]=id,[rad_pm]=id и т.д.}. Получив этот айди, по айди дает тебе объект либо из стора (таблица, которая уже заполняется из под биндеров), либо через двигло с помощью level.object_by_id.

Расписал, немного. Чтобы было понятно. Что там свой механизм и отключается там в скриптах имея объект. У тебя же случай, где ты хочешь получить объект и провести с ним операцию. Получить по выше описному. Но его просто там нет. Его нет в табле стори айдишников. Он не "зареган". Следовательно нет ID, следовательно объекта никак не получить.

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

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


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

AziatkaVictor попробуй заменить obj = alife():object(p[1]) --здесь НАЗВАНИЕ В СДК аномалии
if obj ~= nil then ...
должно сработать

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

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


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

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

  • Печаль 1

Boomsticks & Sharpsticks: https://discord.gg/vThnFWrbaA

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


Ссылка на сообщение
Поделиться на другие сайты
 
  В 25.10.2021 в 17:37, liner сказал:

попробуй заменить obj = alife():object(p[1]) --здесь НАЗВАНИЕ В СДК аномалии
if obj ~= nil then ...

В чистом ЗП нет метода на получение серверного объекта по его имени. Только по ID.
(В ЧН и ТЧ есть. В ЗП вырезан.)
 

  Показать контент

 

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

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


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

intro_start game_loaded
* MEMORY USAGE: 413727 K
* End of synchronization A[1] R[1]
intro_delete ::update_game_loaded
weather= atmosfear_clear
compiling shader shadow_direct_model_aref_2
 
FATAL ERROR
 
[error]Expression    : no_assert
[error]Function      : CIni_IdToIndex<1,struct COMMUNITY_DATA,class shared_str,int,class CHARACTER_COMMUNITY>::GetById
[error]File          : d:\projects\x-ray_callofchernobyl-master\src\xrgame\ini_id_loader.h
[error]Line          : 134
[error]Description   : item not found, id
[error]Arguments     : 
 

stack trace:

0023:00563C43 xrCore.dll, xrDebug::fail()
0023:05399863 xrGame.dll, CDialogHolder::UseIndicators()

 

Подскажите пожалуйста, что 3а вылет такой и как лечить ? Это при убийстве сталкера зомбированого !

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

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


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

Kalambur зачем посылать одно и тоже сообщение в две темы?


бывший модоел

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


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

Kalambur 

Зачем вообще с КОКом лезть в тему по ЗП,  не различаете разницу???


Группа мода в VK
Мод делался и тестировался на железе
i5-11400, 32Гб ОЗУ, Radeon RX580  Разрешение 2560 х 1440.  ВСЕ на максималке

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


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

Kalambur Чел не туда пишешь.

Поподробнее распиши про вылет. Зомби симуляционный или уникальный? Вылет стабильный или нестабильный?

  • Спасибо 1

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


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

удалено
 

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

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


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

Как отобразить в GUI например списком содержимое рюкзака ГГ?

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


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

Paradox27kms перебор инвентаря - db.actor:iterate_inventory(функция, obj)   function функция (actor, item) ...здесь добавляете в список или в  таблицу что надо от item ... end.  Пример составления списка можно посмотреть в файле ui_load_dialog.script


В беге за рассветом приближаешь свой закат

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


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

vader_33 Ну вот я например взял скрипт на проверку содержимого определенного оружия в инвентаре (пример проверка на оружие у бандита Валета) и нужно чтобы оружие отображалось в списке уже в listbox gui. (сам список то я реализовал) т.е нужно как-то прикрутить скрипт к списку.

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

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


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

Paradox27kms ui_load_dialog.script смотрите, там всё есть. Функция FillList, там уже поиском по файлу AddItemToList и остальное всё найдёте, как там добавлять в список


В беге за рассветом приближаешь свой закат

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


Ссылка на сообщение
Поделиться на другие сайты
 
  В 29.10.2021 в 03:52, vader_33 сказал:

Paradox27kms ui_load_dialog.script смотрите, там всё есть. Функция FillList, там уже поиском по файлу AddItemToList и остальное всё найдёте, как там добавлять в список

local weapons_table = {
"wpn_ak74",
"wpn_ak74u",
}

function ui_mm_mod:FillListShop()
         local tbl
         local name

     self.list_shop:Clear()    

tbl = weapons_table -- список предметов (оружия) отображаемого в списке listbox

     for i, v in ipairs(tbl) do
         name = game.translate_string(system_ini():r_string(v, "inv_name"))
         self:AddItemToListShop(name, v)
     end
end

P.S нужно сделать так чтобы отображалось только то оружие которое есть в таблице weapons_table и в слоте для оружия, те должно получиться так что если данного оружия в слоте нет то оно и не будет отображаться  списке weapons_table

вот подобный скрипт на проверку оружия в слоте 2 и 3  

  проверка на оружие в слотах (Показать контент)

Но нужно это как-то к списку прикрутить. Скорее всего я так думаю должно получиться что-то типо этого только рабочий вариант

  тест но не допилено (Показать контент)

 

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

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


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

Paradox27kms вот так сразу надо, а не ходить вокруг да около. Зачем tbl = inv_table?

  Показать контент

 

  • Лайк 1

В беге за рассветом приближаешь свой закат

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


Ссылка на сообщение
Поделиться на другие сайты
 
  В 29.10.2021 в 05:53, vader_33 сказал:

Paradox27kms вот так сразу надо, а не ходить вокруг да около. Зачем tbl = inv_table?

  Показать контент

 

Большое спасибо. А как реализовать чтобы при клике на предмете в списке активировалась функция? p.s я к сожалению знаю только как так сделать в компоненте выпадающий список (combo_box) но мне нужно с простым списком list_box

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

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


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

Всем привет. Столкнулся с такой проблемой, с которой ранее не сталкивался.

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

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

У меня на локе только кровососы и собаки, собаки не могут укусить, а кровосос не бьется и даже не присасывает камеру.

А нпс даже при полном счетчике палива стоят секунд 10, а потом стреляют, но по инвалидному при чём на мастере.


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

Я и понятия не имею, почему они так тупят.

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


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

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

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

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

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

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

Войти

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

Войти

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