Overf1rst 1 500 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 19 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hude 112 Опубликовано 30 октября 5 часов назад, imcrazyhoudini сказал: character_profile = zat_a2_stalker_nimble spec_rank = novice community = stalker Аватарка Ранг - Новичок Группировка - Сталкер Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 637 Опубликовано 30 октября 1 час назад, Hrust сказал: Видимо, в движке включение партиклов на загрузке не зависит от стейта. А, то есть этого не должно быть? Тогда напишу авторам движка Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 961 Опубликовано 31 октября (изменено) 10 часов назад, imcrazyhoudini сказал: Вопрос - как это реализовано? Насколько я помню это сделано в движке, вам конкретный код нужен? sosiska23 В скрипте sim_board.script в строке 222 переменная spawn_smart равна nil вместо осмысленного значения. Открываете файл смотрите, анализируете или выкладываете фрагмент кода с указание нумерации строк. Изменено 31 октября пользователем denis2000 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
sosiska23 0 Опубликовано 31 октября --' Создание нового отряда function sim_board:create_squad(spawn_smart, sq_id) printf("create squad called") local squad_id = tostring(sq_id) local squad = alife():create(squad_id,spawn_smart.position, spawn_smart.m_level_vertex_id, spawn_smart.m_game_vertex_id) --local squad = squad_class(self, squad_id, faction_name, settings_id) --squad:init_squad(spawn_smart) printf("Creating squad[%s] in smart[%s]", squad_id, spawn_smart:name()) --' Определяем в каком смарте создать новый отряд squad:create_npc(spawn_smart) squad:set_squad_relation() self:assign_squad_to_smart(squad, spawn_smart.id) --' Пересчитываем Team, Squad, Group for k in squad:squad_members() do local obj = k.object squad.board:setup_squad_and_group(obj) end return squad end только я думаю что не в этом дело, ведь этот файл я не трогал, а просто заселял локу болванчиками, скорее всего не зарегистрировал где-то, только не знаю где Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 961 Опубликовано 31 октября sosiska23 Скорее попытка спавна на несуществующем смарте. Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
sosiska23 0 Опубликовано 31 октября (изменено) denis2000 что то пошаманил, вылет есть но лог поменялся Спойлер 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 : ...k.e.r. call of pripyat\gamedata\scripts\utils.script:469: bad argument #1 to 'gsub' (string expected, got nil) stack trace: 0023:69737365 nvwgf2um.dll Изменено 31 октября пользователем sosiska23 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 1 116 Опубликовано 31 октября 2 часа назад, denis2000 сказал: вам конкретный код нужен? Должно быть уже нашёл, если что напишу, спасибо. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 95 Опубликовано 31 октября 42 минуты назад, sosiska23 сказал: вылет есть но лог поменялся Вылет, скорее всего, из-за неправильной логики переменная section равна nil. Очень странно, по идее, должен был сработать abort. Я подразумеваю что отключено логирование и сама функция abort Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 961 Опубликовано 31 октября sosiska23 Неверное имя работы или имя секции в логике. Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
sosiska23 0 Опубликовано 31 октября (изменено) 2 часа назад, denis2000 сказал: Неверное имя работы или имя секции в логике. 2 часа назад, Mass сказал: Вылет, скорее всего, из-за неправильной логики переменная section равна nil. Очень странно, по идее, должен был сработать abort. Я подразумеваю что отключено логирование и сама функция abort неверная логика смарт-террейна? Спойлер [smart_terrain] squad_id = 5 max_population = 3 Изменено 31 октября пользователем sosiska23 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BeeRseK 80 Опубликовано 31 октября (изменено) Приветствую. В тч, в xr_effects.script есть такая функция: Спойлер -- играть звук от указанного объекта function play_snd_from_obj(actor, npc, p) if p[1] and p[2] then local snd_obj = xr_sound.get_safe_sound_object(p[2]) local obj = level_object_by_sid(p[1]) if obj ~= nil then printf("can't find object with story id %s", tostring(p[1])) -- snd_obj:play_at_pos(obj, obj:position(), sound_object.s3d) snd_obj:play_no_feedback(obj, sound_object.s3d, 0, obj:position(), 1.0) end end end Которую можно вызывать в логике, например %=play_snd_from_obj(10902:characters_voice\scenario\zhar)% Но, в зп, почему то данной функции нет, можно ее как то "вернуть" ? Изменено 31 октября пользователем BeeRseK Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hrust 522 Опубликовано 31 октября @BeeRseK, а в чём сложности копипаст сделать? Вообще, вместо этого проигрывания чаще используют script sounds, пример — запись Ноя с КПК или сообщение о выбросе. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 961 Опубликовано 31 октября (изменено) 1 час назад, sosiska23 сказал: неверная логика смарт-террейна? А почему вы решили, что ошибка здесь? Ничего криминального не вижу. BeeRseK В ЗП play_sound_by_story используют. Или просто play_sound если звук проигрывается из логики НПС. Изменено 31 октября пользователем denis2000 1 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ishps 15 Опубликовано 31 октября N42 воц Спойлер ------------------------------- -- WEAPONS ------------------------------- function try_spawn_ammo(npc) local ammo_class,sec,number local function itr(npc,itm) if (IsWeapon(nil,itm:clsid()) and not npc:marked_dropped(itm)) then ammo_class = parse_list(ini_sys,itm:section(),"ammo_class") -- randomly spawn only 1 ammo type per found weapon if (#ammo_class > 0) then sec = string.match(ini_sys:r_string(itm:section(), "ammo_class"), "[^,]+") if (sec) then if (item_count[sec]) then number = math.random(item_count[sec][1], item_count[sec][2]) else number = 0 end if (number > 0 and ini_sys:section_exist(sec)) then alife_create_item(sec, npc, {ammo = number}) end end end -- spawn grenade ammo if there is launcher attached if (ini_sys:r_float_ex(itm:section(),"grenade_launcher_status") > 0) then ammo_class = parse_list(ini_sys,itm:section(),"grenade_class") for i=1,#ammo_class do sec = ammo_class if (sec) then if (item_count[sec]) then number = math.random(item_count[sec][1], item_count[sec][2]) else number = math.random(0,2) end if (number > 0 and ini_sys:section_exist(sec)) then alife_create_item(sec, npc, {ammo = number}) end end end end end end npc:iterate_inventory(itr,npc) CreateTimeEvent(npc:id(), "npc_ammo_aggregation", 0, item_weapon.ammo_aggregation_full, npc:id()) end function set_weapon_drop_condition(npc,itm) local rank = ranks.get_obj_rank_name(npc) local condition = 10 if npc:character_community() ~= "zombied" then condition = math.random( weapon_drop_condition[rank][1] , weapon_drop_condition[rank][2] ) else condition = math.random( weapon_drop_condition["novice"][1] , weapon_drop_condition["novice"][2] ) end condition = clamp(condition,5,100) condition = condition / 100 itm:set_condition(condition) -- avoid creating ammo on reload local death_dropped = se_load_var(npc:id(), npc:name(), "death_dropped") if (death_dropped) then return end if (IsWeapon(nil,itm:clsid()) and not npc:marked_dropped(itm)) then -- local sec,number local ammo_class = parse_list(ini_sys,itm:section(),"ammo_class") -- randomly spawn only 1 ammo type per found weapon if (#ammo_class > 0) then sec = string.match(ini_sys:r_string(itm:section(), "ammo_class"), "[^,]+") if (sec and item_count[sec]) then number = math.random(item_count[sec][1], item_count[sec][2]) if (number > 0 and ini_sys:section_exist(sec)) then alife_create_item(sec, npc, {ammo = number}) end end end -- spawn grenade ammo if there is launcher attached if (ini_sys:r_float_ex(itm:section(),"grenade_launcher_status") > 0) then ammo_class = parse_list(ini_sys,itm:section(),"grenade_class") for i=1,#ammo_class do sec = ammo_class if (sec and item_count[sec]) then number = math.random(item_count[sec][1], item_count[sec][2]) if (number > 0 and ini_sys:section_exist(sec)) then alife_create_item(sec, npc, {ammo = number}) end end end end -- local ammo = itm:get_ammo_in_magazine() --printf("--Weapon: "..itm:section()) --printf("--Ammo before edit: "..itm:get_ammo_in_magazine()) if (ammo > 10) then local chance = math.random(0,100) if chance > 15 then itm:set_ammo_elapsed(math.random(5,10)) end end --printf("--Ammo after edit: "..itm:get_ammo_in_magazine()) end end Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BeeRseK 80 Опубликовано 31 октября Hrust сложность в том,что копипаст не работает. 1 час назад, denis2000 сказал: А почему вы решили, что ошибка здесь? Ничего криминального не вижу. BeeRseK В ЗП play_sound_by_story используют. Или просто play_sound если звук проигрывается из логики НПС. ок, понял, спасибо. Play sound это ведь "звук в голове игрока",а мне нужен звук от конкретного объекта. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 95 Опубликовано 31 октября 1 минуту назад, BeeRseK сказал: мне нужен звук от конкретного объекта Так задайте в конфиге саунда сам звук с типом 3d или looped Дополнено 5 минуты спустя 2 часа назад, sosiska23 сказал: неверная логика смарт-террейна? Вполне возможно, неправильная ссылка на конфигурационный файл Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BeeRseK 80 Опубликовано 31 октября 19 минут назад, Mass сказал: Так задайте в конфиге саунда сам звук с типом 3d или looped ну задам тип, а дальше что? Не работает оно, вон Денис написал функцию, попробую Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 95 Опубликовано 31 октября 24 минуты назад, BeeRseK сказал: ну задам тип, а дальше что? Это был ответ на вопрос! Чтобы играть звук его нужно подключить корректно в файл script_sound.ltx, где и задать тип звука. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Domovoi 29 Опубликовано 31 октября Приветствую! Столкнулся с проблемой во время конвертации в формат СДК локации Мёртвого Города из OGSE, причем что с другими локациями подобного не было. Спойлер This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. В интернете была информация о том что могут быть проблемы с софтом но до этой и после неё такого не было. Иные локации без проблем конвертируются и дальше, а вот с данной локацией как-то не срослось. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BeeRseK 80 Опубликовано 31 октября (изменено) 28 минут назад, Mass сказал: Это был ответ на вопрос! Чтобы играть звук его нужно подключить корректно в файл script_sound.ltx, где и задать тип звука. Я в курсе что его там нужно регистрировать. Зарегистрировал ты его, как ты потом вызовешь воспроизведение от определенного объекта - от спейсрестриктора? Дополнено 26 минуты спустя Mass прописан так:[ds_heliscene_sound_zhar] type = 3d path = sozgsp\zhar shuffle = seq idle = 0,0,100 Прописал через функцию %=play_sound_by_story(ds_helifire_snd:ds_heliscene_sound_zhar)% Звука нет. До этого был вылет, но там я накосячил Дополнено 34 минуты спустя Если прописать как %=play_sound(ds_heliscene_sound_zhar)% тобишь "звук в голове", то работает. Значит звук подключен верно. Видимо проблема с дальностью до объекта. Надо попробовать ближе его подвинуть... Изменено 31 октября пользователем BeeRseK Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 95 Опубликовано 31 октября 35 минут назад, BeeRseK сказал: Зарегистрировал ты его, как ты потом вызовешь Не понимаю в чем суть проблемы? Был задан вопрос, на него был дан ответ, затем последовало уточнение, и был задан другой вопрос в том же посте. Я на него ответил, специально процитировав сообщение чтобы не было недопонимания! 43 минуты назад, BeeRseK сказал: Звука нет Нужно проверить всё-ли правильно, нигде ли ничего не забыто!? Если что можно переписать функцию в эфектах Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
sosiska23 0 Опубликовано 31 октября 4 часа назад, Mass сказал: Вполне возможно, неправильная ссылка на конфигурационный файл cfg = scripts\escape\smart\esc_killer_base_st_01.ltx путь правильный Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pavel2000 26 Опубликовано 31 октября (изменено) Всем привет, можно ли отключить спавн отрядов на локации? и как это сделать? Дополнено 12 минуты спустя или как заменить одиночек долговцев и свободовцев на зомби, именно тех кто со временем спавнятся Изменено 31 октября пользователем Pavel2000 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
N42 700 Опубликовано 31 октября ishps а из стандартного дропа убрал секции патронов? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Retr_0 34 Опубликовано 31 октября (изменено) Ловлю такой графический артефакт на скомпилированной локации. На сколько знаю, это проблема с группами сглаживания. Подскажите, как исправить? P/S за группы сглаживания в ЗП и X-Ray вообще не разбираюсь. Спойлер На скринах ЗП (стилизация под ТЧ). Изменено 31 октября пользователем Retr_0 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты