Overf1rst 1 496 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 18 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Policai 1 318 Опубликовано 12 июня, 2021 2 минуты назад, exDeMODER сказал: Не спорь, это бесполезно Верно..))) Группа мода в VK Мод делался и тестировался на железе i5-11400, 32Гб ОЗУ, Radeon RX580 Разрешение 2560 х 1440. ВСЕ на максималке Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 230 Опубликовано 12 июня, 2021 как можно присвоить кондишн броне и оружию при попадании в инвентарь гг? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Chiliaz 165 Опубликовано 12 июня, 2021 ian98 local obj = db.actor:object("stalker_outfit") -- твой предмет if obj ~= nil then obj:set_condition(0.09) -- состояние предмета (9%) end Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 230 Опубликовано 12 июня, 2021 Chiliaz а куда вставлять-то? В свой скрипт и на on_item_take в bind_stalker? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Chiliaz 165 Опубликовано 12 июня, 2021 ian98 да хоть куда. Если выдаешь предметы в диалоге, то в <action>, если вызываешь через рестриктор, то в xr_effects. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 230 Опубликовано 12 июня, 2021 (изменено) Chiliaz А я не очень понимаю, это только для сталкерского комбеза? Пробовал сделать Спойлер function set_weapon_condition() local obj = db.actor:object("wpn_pm") -- твой предмет if obj ~= nil then obj:set_condition(0.09) -- состояние предмета (9%) end вешал на он итем тейк. Вылет словил. И еще вопрос, можно ли сделать как-то так? Спойлер function set_weapon_condition() local obj = isWeapon(item) and isOutfit(item) if isWeapon(item) and not(get_clsid(item)==clsid.wpn_grenade_rgd5_s or get_clsid(item)==clsid.wpn_grenade_f1_s) then set_weapon_drop_condition(item) return end if isOutfit(item) then set_weapon_drop_condition(item) return end function set_weapon_drop_condition(item) local condition = (math.random(99)+1)/100 if item:condition() > 0.99 then item:set_condition(condition) end end там, скорее всего, много ошибок, потому что ничего не работает, но смысл надеюсь передан понятно: присвоить кондишн броне или оружию, когда айтем попадает в инвентарь к актору, если состояние предмета больше 99. Изменено 12 июня, 2021 пользователем ian98 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Chiliaz 165 Опубликовано 12 июня, 2021 (изменено) ian98 если надо изменить состояние оружия выпадающего с трупов тогда надо копать death_manager и менять функцию set_weapon_drop_condition(item) local condition = (math.random(40)+40)/100 -- целостность оружия от 0 до 40% Если надо поменять для всего оружия которое попадает в рюкзак к ГГ тогда в функцию actor_binder:on_item_take (obj) из bind_stalker, добавляем if isWeapon(obj) and not(get_clsid(obj)==clsid.wpn_grenade_rgd5_s or get_clsid(obj)==clsid.wpn_grenade_f1_s) then obj:set_condition(0.09) end Изменено 12 июня, 2021 пользователем Chiliaz 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 230 Опубликовано 12 июня, 2021 Chiliaz не вылетает, уже хорошо, правда ничего не происходит. Я на тч пробую, но думал, что с зп в этом смысле все одинаково. Видно не очень. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 12 июня, 2021 ian98 всё работает и на тч и на зп В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 230 Опубликовано 12 июня, 2021 (изменено) vader_33 вот блин, а у меня ничего не происходит. Вот это должно работать? Мне бы так. Здесь первая меняет состояние, а вторая функция должна, вроде как, разрешать это делать только один раз. Я вот прям вот это и вставлял в он итем тейк. Ничего не происходит. Спойлер function set_weapon_condition() local obj = isWeapon(item) and isOutfit(item) if isWeapon(item) and not(get_clsid(item)==clsid.wpn_grenade_rgd5_s or get_clsid(item)==clsid.wpn_grenade_f1_s) then set_weapon_drop_condition(item) return end if isOutfit(item) then set_weapon_drop_condition(item) return end function set_weapon_drop_condition(item) local condition = (math.random(99)+1)/100 if item:condition() > 0.99 then item:set_condition(condition) end end проверил скрипт чекером. Он мне сказал, что не хватает end в конце. Поставил. Проверил. Все ок. В bind stalker подключил скрипт название_скрипта.название_функции() и ничего не происходит:( Изменено 12 июня, 2021 пользователем ian98 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 12 июня, 2021 (изменено) ian98 объект не передается в функцию Дополнено 0 минут спустя 26 минут назад, ian98 сказал: а вторая функция должна, вроде как, разрешать это делать только один раз вторая как раз и меняет, тут нет того, что разрешает что-то делать один раз. Функции isOutfit в тч нету, если она у вас не добавлена - вылетит Изменено 12 июня, 2021 пользователем vader_33 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 230 Опубликовано 12 июня, 2021 (изменено) vader_33 добавлена. В скрипт _g.script. Спойлер function isOutfit(object) local id = get_clsid(object) if id == nil then return false end if id == equ_stalker_s then return true elseif id == clsid.equ_stalker then return true elseif id == clsid.equ_scientific then return true elseif id == clsid.equ_military then return true elseif id == clsid.equ_exo then return true else return false end end Ну как же, состояние предмета изменится только, если оно выше 99, т.е один раз. Или нет? Ну понятно, что предмет, который дважды получил состояние 100 - дважды получит случайное состояние от 1 до 99, но в тч нет ремонта, кроме бага с артами, но и сет из 5 артефактов еще надо собрать. Изменено 12 июня, 2021 пользователем ian98 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 12 июня, 2021 (изменено) ian98 я подумал, что имелась в виду проверка на предметы актора, что отработает функция один раз только при поднятии предмета, а не на все предметы актора. А так да, пойдет. Можно одну проверку сделать и на оружие и на костюмы if (isWeapon(item) and not(get_clsid(item)==clsid.wpn_grenade_rgd5_s or get_clsid(item)==clsid.wpn_grenade_f1_s) ) or isOutfit(item) then Изменено 12 июня, 2021 пользователем vader_33 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 230 Опубликовано 12 июня, 2021 vader_33 Да, только у меня вылетает. С последним вариантом. Что-то с ним не так. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 12 июня, 2021 ian98 а что в логе? В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 230 Опубликовано 12 июня, 2021 vader_33 так, ошибся, вылета нет, но и не работает ничего. Сейчас вот так выглядит. Спойлер function set_weapon_condition() local obj = isWeapon(item) and isOutfit(item) if isWeapon(item) and not(get_clsid(item)==clsid.wpn_grenade_rgd5_s or get_clsid(item)==clsid.wpn_grenade_f1_s) or isOutfit(item) then set_weapon_drop_condition(item) return end function set_weapon_drop_condition(item) local condition = (math.random(99)+1)/100 if item:condition() > 0.99 then item:set_condition(condition) end end end Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 12 июня, 2021 ian98 в set_weapon_condition() объект надо передавать Дополнено 0 минут спустя ian98 и условие неправильно скопировали В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 230 Опубликовано 12 июня, 2021 vader_33 Спойлер function set_weapon_condition() local obj = isWeapon(item) and isOutfit(item) if (isWeapon(item) and not(get_clsid(item)==clsid.wpn_grenade_rgd5_s or get_clsid(item)==clsid.wpn_grenade_f1_s) ) or isOutfit(item) then set_weapon_drop_condition(obj) return end function set_weapon_drop_condition(obj) local condition = (math.random(99)+1)/100 if item:condition() > 0.99 then item:set_condition(condition) end end end Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 12 июня, 2021 (изменено) ian98 в первую функцию function set_weapon_condition(), которая в биндере прописана. Из биндера передавать в нее. Откуда условие на оружие и броню должно брать item? function set_weapon_condition(item) . local obj = isWeapon(item) and isOutfit(item) вообще не нужен, сразу с функции берите item Изменено 12 июня, 2021 пользователем vader_33 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 230 Опубликовано 12 июня, 2021 (изменено) vader_33 аааааа, зачем( Спойлер function set_weapon_condition(obj) local obj = isWeapon(item) and isOutfit(item) if (isWeapon(item) and not(get_clsid(item)==clsid.wpn_grenade_rgd5_s or get_clsid(item)==clsid.wpn_grenade_f1_s) ) or isOutfit(item) then set_weapon_drop_condition(item) return end function set_weapon_drop_condition(item) local condition = (math.random(99)+1)/100 if item:condition() > 0.99 then item:set_condition(condition) end end end Изменено 12 июня, 2021 пользователем ian98 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 12 июня, 2021 ian98 Спойлер function set_weapon_condition(item) if (isWeapon(item) and not(get_clsid(item)==clsid.wpn_grenade_rgd5_s or get_clsid(item)==clsid.wpn_grenade_f1_s) ) or isOutfit(item) then set_weapon_drop_condition(item) end end function set_weapon_drop_condition(item) local condition = (math.random(99)+1)/100 if item:condition() > 0.99 then item:set_condition(condition) end end В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 230 Опубликовано 12 июня, 2021 vader_33 function set_weapon_condition() if (isWeapon(item) and not(get_clsid(item)==clsid.wpn_grenade_rgd5_s or get_clsid(item)==clsid.wpn_grenade_f1_s) ) or isOutfit(item) then set_weapon_drop_condition(item) return end function set_weapon_drop_condition(item) local condition = (math.random(99)+1)/100 if item:condition() > 0.99 then item:set_condition(condition) end end end Дополнено 3 минуты спустя vader_33 vader_33 все равно не работает, блин... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 12 июня, 2021 ian98 блин, в четвертый раз пишу, с биндера в функцию в скобках надо передавать объект function set_weapon_condition(item). И в бинд_сталкере соответственно скрипт.set_weapon_condition(obj) Дополнено 1 минуту спустя ian98 https://ap-pro.ru/forums/topic/92-cop-modostroy-voprosnica/?do=findComment&comment=86056 1 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 230 Опубликовано 12 июня, 2021 (изменено) vader_33 Мне в бинд сталкер прописать - скрипт.set_weapon_condition(obj) а сам скрипт такой Спойлер function set_weapon_condition(item) if (isWeapon(item) and not(get_clsid(item)==clsid.wpn_grenade_rgd5_s or get_clsid(item)==clsid.wpn_grenade_f1_s) ) or isOutfit(item) then set_weapon_drop_condition(item) end end function set_weapon_drop_condition(item) local condition = (math.random(99)+1)/100 if item:condition() > 0.99 then item:set_condition(condition) end end попробую сейчас так. ДААААА! НАКОНЕЦ-ТА. 50 раз перезапускал игру за сегодня. Не меньше... Дополнено 6 минуты спустя vader_33 Одно только непонятно, почему с броней не работает-то? По крайней мере с бандитской курткой. Не хватает клсидов? В _g isOutfit сделал, вроде правильно все там? Посмотрю с другими костюмами еще. С оружием класс) Получил сломанный обрез за зачистку логова собак. Изменено 12 июня, 2021 пользователем ian98 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 12 июня, 2021 1 час назад, ian98 сказал: if id == equ_stalker_s then return true clsid.equ_stalker_s 1 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты