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

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

 

1491319448148138184.png

Тема посвящена моддингу на платформе Зов Чернобыля.

 

Правила темы:

  • Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть.
  • Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
  • Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
  • Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться.
  • Так же, если вы модифицируете готовый мод, обязательно указывайте какой. Некоторые модификации очень сильно отличаются от Call of Chernobyl. 
  • Лайк 4
  • Хабар 1

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


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

Misery Lotions from Vergas


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

 Misery 

В 09.07.2021 в 17:28, Misery сказал:

Помню, где-то видел урок по созданию области точки на карте в ПДА.

 урок .

  • Спасибо 1

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


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

Я не понимаю, в чём проблема и как её устранить.

Expression    : <no expression>
Function      : CScriptEngine::lua_error
File          : ..\xrServerEntities\script_engine.cpp
Line          : 189
Description   : fatal error
Arguments     : LUA error: ...- call of chernobyl\gamedata\scripts\itms_manager.script:414: attempt to call method 'set_radiation_detector' (a nil value)

stack trace:

001B:0056399C xrCore.dll, xrDebug::fatal()
001B:04292FB5 xrGame.dll, CDialogHolder::IgnorePause()
001B:0427C7A9 xrGame.dll, CDialogHolder::IgnorePause()
 

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


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

Misery или метода "set_radiation_detector" нет в игре или он применяется не к тому объекту, к которому предназначается

  • Спасибо 1

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

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


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

vader_33 спасибо. Видимо идея перенести itms_manager.script из DA была плохой.

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

Постараюсь перенести всё удачно и правильно.

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


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

Misery у контейнеров функции точно работают на обычном коке, там всего 5 функций перенести надо, а вот set_radiation_detector я не встречал, наверно новое в движок добавили


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

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


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

наверно новое в движок добавили

Хм, в Стасоне движок ванильный, но там тоже гейгер есть.

Но увы на руках Стасика нету, а места и так мало.


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

В CoM тоже движок ванильный, почти, попробую из CoMa взять.


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

В CoM только такое есть в itms_manager.script

    -- Geiger
    if (obj:section() == "geiger_dead") then
        local text = game.translate_string("st_rad_level")..": "..math.floor(db.actor.radiation*10000*0.387).." "..game.translate_string("st_msv")
        SetHudMsg(text,3)
    end

В то время, как в DA у гейгера три упоминания.


Дополнено 3 минуты спустя
2 минуты назад, Misery сказал:

В то время, как в DA у гейгера три упоминания.

Использование с разрядкой повербанка с set_radiation_detector

Второе, почти как в CoM

Третье, разборка гейгера на запчасти.

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


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

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


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

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


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

vader_33 не знаю

Эти самые три упоминания

    if (db.actor:object("geiger")) then
        local upd = db.actor:object("wpn_upd")
        if (axr_main.config:r_value("mm_options","enable_use_battery",1,false) == false) or    (upd and (upd:condition() > 0.05)) then
            db.actor:set_radiation_detector(true)
        else
            db.actor:set_radiation_detector(false)
        end
    else
        db.actor:set_radiation_detector(false)
    end
end

 

    -- Geiger
    if (obj:section() == "geiger") then
        local upd = db.actor:object("wpn_upd")
        if (axr_main.config:r_value("mm_options","enable_use_battery",1,false) == false) or    (upd and (upd:condition() > 0.05)) then
            local text = game.translate_string("st_rad_level")..": "..math.floor(db.actor.radiation*10000*1).." "..game.translate_string("st_msv")
            SetHudMsg(text,3)
            if (upd) and (axr_main.config:r_value("mm_options","enable_use_battery",1,false) == true) then
                upd:set_condition(upd:condition() - 0.005)
            end
        else
            axr_battery.show_message("st_upd_low",25)
        end
    end

 

    elseif (section == "geiger") then
        if (math.random() < 0.75) then alife():create("capacitors", pos, lvid, gvid, actor) end
        if (math.random() < 1.0) then alife():create("batteries", pos, lvid, gvid, actor) end

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


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

if (db.actor:object("geiger")) then
        local upd = db.actor:object("wpn_upd")
        if (axr_main.config:r_value("mm_options","enable_use_battery",1,false) == false) or    (upd and (upd:condition() > 0.05)) then
            db.actor:set_radiation_detector(true)
        else
            db.actor:set_radiation_detector(false)
        end
    else
        db.actor:set_radiation_detector(false)
    end
end

можно попробовать для теста это закомментировать, если что - заменить на инфопоршни или метку в псторе


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

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


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

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


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

псторе

PS Store? xD


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

vader_33 попробую без set_radiation_detector

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


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

Misery есть такой вариант для чистого зова припяти, но нет отображения в зивертах, только проценты и нет привязки к потреблению энергии.

https://disk.yandex.ru/d/EtV7oOCzhqmuhA

  • Спасибо 1

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


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

Hoperise ща пощупаю


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

Hoperise ну такое, но буду иметь ввиду если ничего не выйдет с CoMовским.


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

Всё равно спасибо.


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

Не работает из Misery, не работает из DA

1 час назад, Misery сказал:

 local text = game.translate_string("st_rad_level")..": "..math.floor(db.actor.radiation*10000*1).."

Но судя по этой строке должно выводится. Ссылка на текст st_rad_level: уровень радиации db.actor.radiation*10000*1

Но даже с db.script из DA ни-че-го.


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

Перенёс я значит контейнеры. Я и функции перенёс, но что-то ничего нету.

ss-07-11-21-19-51-38-l01-escape.jpg


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

vader_33 


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

Переносил контейнеры из DA


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

Если не получился, то попробую вариант из CoM с задействованием "контейнер тула".

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


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

Перенёс я значит контейнеры. Я и функции перенёс, но что-то ничего нету

значит что-то не так сделали. Вот попробовал, нормально работает, для 1.4.22. В архиве сохранка с уже заспавненным контейнером и двумя артами, которым прописаны контейнеры

https://disk.yandex.ru/d/KsHV3qos3l4jSw


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

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


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

vader_33 о спасибо конечно.

Я удалил функцию одну и начало работать, но при извлечении арта вылет

Expression    : <no expression>
Function      : CScriptEngine::lua_error
File          : ..\xrServerEntities\script_engine.cpp
Line          : 189
Description   : fatal error
Arguments     : LUA error: ...- call of chernobyl\gamedata\scripts\itms_manager.script:710: attempt to perform arithmetic on field 'weight' (a nil value)

stack trace:

001B:0056399C xrCore.dll, xrDebug::fatal()
 


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

Я бы нажал на "Спасибо" но лимит по реакциям.

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


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

Misery я просто закомментил строчки с изменением параметров (всякие new_se_obj.condition = ..., new_se_obj.offline_condition  = ...), мне лень было разбираться с ними). Если нужен просто контейнер, а не вешать его на пояс с сохранением свойств артов - это не надо


Дополнено 3 минуты спустя
3 часа назад, Misery сказал:

Не работает из Misery, не работает из DA

3 часа назад, Misery сказал:

 local text = game.translate_string("st_rad_level")..": "..math.floor(db.actor.radiation*10000*1).."

Но судя по этой строке должно выводится. Ссылка на текст st_rad_level: уровень радиации db.actor.radiation*10000*1

Но даже с db.script из DA ни-че-го.

правленые файлы выложите (все, гляну у себя)


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

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


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

vader_33 

11 минут назад, vader_33 сказал:

Если нужен просто контейнер, а не вешать его на пояс с сохранением свойств артов - это не надо

А теперь понятно почему Ломоть Мяса в ПМК был без свойств. Тогда разкомментировать?

Спасибо огромное, неловко, потому-что хотел сам, а в итоге ты скинул.

12 минут назад, vader_33 сказал:

правленые файлы выложите (все, гляну у себя)

Я уже удалил. Ща сделаю и кину.


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

vader_33 itms_manager.script

Задействована батарея и повербанк. Их не удаляй, я их добавил, но повербанк не разряжается, это я потом исправлю.

Нужно ещё, чтобы арты в рюкзаке фонили.

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


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

Тогда разкомментировать?

если раскомментить - будет вылетать. Надо разбираться, что игре не нравится

13 минут назад, Misery сказал:

неловко, потому-что хотел сам, а в итоге ты скинул

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

14 минут назад, Misery сказал:

Задействована батарея и повербанк. Их не удаляй, я их добавил, но повербанк не разряжается, это я потом исправлю

а модели, секции? Мне всё сразу, чтобы просто закинуть в игру и проверять без поиска везде моделей и конфигов


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

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


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

а модели, секции? Мне всё сразу, чтобы просто закинуть в игру и проверять без поиска везде моделей и конфигов

сейчас, секунду


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

powerbank.zip


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

только без иконок

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


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

Misery завтра гляну


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

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


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

vader_33 Ок, я на сегодня тоже всё.

41 минуту назад, vader_33 сказал:

Надо разбираться, что игре не нравится

Закомментировал строку weight и generate - не вылетает.

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


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

Misery geiger не скинули


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

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


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

vader_33 Доброе утро. Щас скину.


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

vader_33 geiger.zip

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


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

Misery утро добрым не бывает) В конфиге гейгера такие функции, но в прикрепленном itms_manager их нет. Или это не нужно?

use1_functor                             = itms_manager.inv_item_dismantle_menu
use1_action_functor                      = itms_manager.inv_item_dismantle

 


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

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


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

vader_33 эти функции не работают почему-то.

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

function inv_item_dismantle_menu(itm)

    local p = itm:parent()
    if not (p and p:id() == db.actor:id()) then return end

    return game.translate_string("st_item_dismantle")
end

function inv_item_dismantle(itm)

    local p = itm:parent()
    if not (p and p:id() == db.actor:id()) then return end

    local section = itm:section()
    local condition = itm:condition()
    local se_itm = alife_object(itm:id())
    alife():release(se_itm)
    
    local pos = db.actor:position()
    local lvid = db.actor:level_vertex_id()
    local gvid = db.actor:game_vertex_id()
    local actor = db.actor:id()


Дополнено 0 минут спустя
13 минут назад, vader_33 сказал:

утро добрым не бывает

согласен


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

Закомментировал назад свойства артов в контейнерах, игра в любом случае вылетает, нужно что-то ещё видимо.

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


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

Misery в itms_manager.script ошибка, не туда всунут код в функции на нажатие, куда-то после end за пределы функции. Переместил в функцию - нормально заработало. Еще вылетало из-за того, что в фейковых патронах не было строчки tracer  = off. У вас вылетов не было? Пока эти две правки не сделал - вылетало в начале загрузки сохранки. Или старые файлы мне скинули. Поправил - щас нормально

Спойлер

ss_komp_07-12-21_10-51-05_(l01_escape).thumb.jpg.e8a8af8b2af6b1688ac5466b0daaeae7.jpg

 

itms_manager.script

  • Спасибо 2

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

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


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

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

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

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

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

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

Войти

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

Войти

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

    Ни одного зарегистрированного пользователя не просматривает данную страницу