Overf1rst 1 488 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 18 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hude 82 Опубликовано Среда в 23:38 5 часов назад, imcrazyhoudini сказал: character_profile = zat_a2_stalker_nimble spec_rank = novice community = stalker Аватарка Ранг - Новичок Группировка - Сталкер Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 578 Опубликовано Среда в 23:41 1 час назад, Hrust сказал: Видимо, в движке включение партиклов на загрузке не зависит от стейта. А, то есть этого не должно быть? Тогда напишу авторам движка Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 920 Опубликовано 22 часа назад (изменено) 10 часов назад, imcrazyhoudini сказал: Вопрос - как это реализовано? Насколько я помню это сделано в движке, вам конкретный код нужен? sosiska23 В скрипте sim_board.script в строке 222 переменная spawn_smart равна nil вместо осмысленного значения. Открываете файл смотрите, анализируете или выкладываете фрагмент кода с указание нумерации строк. Изменено 22 часа назад пользователем denis2000 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
sosiska23 0 Опубликовано 20 часов назад --' Создание нового отряда 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 920 Опубликовано 20 часов назад sosiska23 Скорее попытка спавна на несуществующем смарте. Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
sosiska23 0 Опубликовано 19 часов назад (изменено) 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 Изменено 19 часов назад пользователем sosiska23 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 1 088 Опубликовано 19 часов назад 2 часа назад, denis2000 сказал: вам конкретный код нужен? Должно быть уже нашёл, если что напишу, спасибо. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 92 Опубликовано 19 часов назад 42 минуты назад, sosiska23 сказал: вылет есть но лог поменялся Вылет, скорее всего, из-за неправильной логики переменная section равна nil. Очень странно, по идее, должен был сработать abort. Я подразумеваю что отключено логирование и сама функция abort Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 920 Опубликовано 18 часов назад sosiska23 Неверное имя работы или имя секции в логике. Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
sosiska23 0 Опубликовано 16 часов назад (изменено) 2 часа назад, denis2000 сказал: Неверное имя работы или имя секции в логике. 2 часа назад, Mass сказал: Вылет, скорее всего, из-за неправильной логики переменная section равна nil. Очень странно, по идее, должен был сработать abort. Я подразумеваю что отключено логирование и сама функция abort неверная логика смарт-террейна? Спойлер [smart_terrain] squad_id = 5 max_population = 3 Изменено 16 часов назад пользователем sosiska23 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BeeRseK 69 Опубликовано 15 часов назад (изменено) Приветствую. В тч, в 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)% Но, в зп, почему то данной функции нет, можно ее как то "вернуть" ? Изменено 15 часов назад пользователем BeeRseK Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hrust 506 Опубликовано 15 часов назад @BeeRseK, а в чём сложности копипаст сделать? Вообще, вместо этого проигрывания чаще используют script sounds, пример — запись Ноя с КПК или сообщение о выбросе. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 920 Опубликовано 15 часов назад (изменено) 1 час назад, sosiska23 сказал: неверная логика смарт-террейна? А почему вы решили, что ошибка здесь? Ничего криминального не вижу. BeeRseK В ЗП play_sound_by_story используют. Или просто play_sound если звук проигрывается из логики НПС. Изменено 14 часов назад пользователем denis2000 1 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ishps 8 Опубликовано 13 часов назад 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 69 Опубликовано 13 часов назад Hrust сложность в том,что копипаст не работает. 1 час назад, denis2000 сказал: А почему вы решили, что ошибка здесь? Ничего криминального не вижу. BeeRseK В ЗП play_sound_by_story используют. Или просто play_sound если звук проигрывается из логики НПС. ок, понял, спасибо. Play sound это ведь "звук в голове игрока",а мне нужен звук от конкретного объекта. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 92 Опубликовано 13 часов назад 1 минуту назад, BeeRseK сказал: мне нужен звук от конкретного объекта Так задайте в конфиге саунда сам звук с типом 3d или looped Дополнено 5 минуты спустя 2 часа назад, sosiska23 сказал: неверная логика смарт-террейна? Вполне возможно, неправильная ссылка на конфигурационный файл Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BeeRseK 69 Опубликовано 13 часов назад 19 минут назад, Mass сказал: Так задайте в конфиге саунда сам звук с типом 3d или looped ну задам тип, а дальше что? Не работает оно, вон Денис написал функцию, попробую Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 92 Опубликовано 13 часов назад 24 минуты назад, BeeRseK сказал: ну задам тип, а дальше что? Это был ответ на вопрос! Чтобы играть звук его нужно подключить корректно в файл script_sound.ltx, где и задать тип звука. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Domovoi 29 Опубликовано 12 часов назад Приветствую! Столкнулся с проблемой во время конвертации в формат СДК локации Мёртвого Города из 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 69 Опубликовано 12 часов назад (изменено) 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)% тобишь "звук в голове", то работает. Значит звук подключен верно. Видимо проблема с дальностью до объекта. Надо попробовать ближе его подвинуть... Изменено 12 часов назад пользователем BeeRseK Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 92 Опубликовано 11 часов назад 35 минут назад, BeeRseK сказал: Зарегистрировал ты его, как ты потом вызовешь Не понимаю в чем суть проблемы? Был задан вопрос, на него был дан ответ, затем последовало уточнение, и был задан другой вопрос в том же посте. Я на него ответил, специально процитировав сообщение чтобы не было недопонимания! 43 минуты назад, BeeRseK сказал: Звука нет Нужно проверить всё-ли правильно, нигде ли ничего не забыто!? Если что можно переписать функцию в эфектах Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
sosiska23 0 Опубликовано 9 часов назад 4 часа назад, Mass сказал: Вполне возможно, неправильная ссылка на конфигурационный файл cfg = scripts\escape\smart\esc_killer_base_st_01.ltx путь правильный Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pavel2000 23 Опубликовано 7 часов назад (изменено) Всем привет, можно ли отключить спавн отрядов на локации? и как это сделать? Дополнено 12 минуты спустя или как заменить одиночек долговцев и свободовцев на зомби, именно тех кто со временем спавнятся Изменено 7 часов назад пользователем Pavel2000 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
N42 687 Опубликовано 6 часов назад ishps а из стандартного дропа убрал секции патронов? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Retr_0 10 Опубликовано 5 часов назад (изменено) Ловлю такой графический артефакт на скомпилированной локации. На сколько знаю, это проблема с группами сглаживания. Подскажите, как исправить? P/S за группы сглаживания в ЗП и X-Ray вообще не разбираюсь. Спойлер На скринах ЗП (стилизация под ТЧ). Изменено 5 часов назад пользователем Retr_0 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты