Overf1rst 1 496 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 18 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 292 Опубликовано 29 октября (изменено) А через что вообще создаётся анимация для текста? Может я успею сделать новую анимацию Дополнено 1 минуту спустя denis2000 %=add_cs_end_text(pavlik_leave_zone)% - функция из кат-сцены, которая через таймер вызывается <string id="creator"> <text>Разработчик - Skala (The Rock) \nСценарий - Skala (The Rock)</text> </string> - русификация Всё, проблема решена. Я не так light_anim вырезал, теперь всё нормально Изменено 29 октября пользователем Skala Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 950 Опубликовано 29 октября Skala text_on_screen_end Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 292 Опубликовано 29 октября (изменено) denis2000 Я уже понял, что было не так. Теперь и текст не мигает, и \n работает. Нужно было вырезать light_anim="ui_tesk_description", а complex_mode="1" la_alpha="1" la_text="1" la_cyclic="0" оставить. А я в первый раз всё это вместе удалил. Изменено 29 октября пользователем Skala Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 950 Опубликовано 29 октября (изменено) 33 минуты назад, Skala сказал: Нужно было вырезать light_anim="ui_tesk_description" О чем я вам и сказал. Вы же начали сносить все подряд. К стати по сути теперь и la_alpha="1" la_text="1" la_cyclic="0" тоже не нужны. А вот complex_mode="1" - это как раз форматирование текста под фрейм. Изменено 29 октября пользователем denis2000 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 292 Опубликовано 29 октября (изменено) denis2000 Никогда не работал с такими вещами. Теперь буду знать Изменено 29 октября пользователем Skala Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
sosiska23 0 Опубликовано 29 октября (изменено) радио не меняет музыку первая песня прекрасно работает, а на вторую не переключаеться и за что отвечает type как в level editor спавнить обЬекты через object, чтоб ошибки не было? Спойлер [logic] active = sr_idle@playl [sr_idle@playl] on_info = %=play_sound_looped(radio_stalker_1)% on_signal = sound_end|sr_idle@1 [sr_idle@1] on_gamer_timer = 10|sr_idle@play2 [sr_idle@play2] on_info = %=play_sound_looped(radio_stalker_2)% on_signal = sound_end|sr_idle@2 [sr_idle@2] on_gamer_timer = 10|sr_idle@playl Спойлер radio_stalker_1 radio_stalker_2 [radio_stalker_1] type = looped path = radio\radio_stalker_1 huffle = rnd [radio_stalker_2] type = looped path = radio\radio_stalker_2 huffle = rnd Изменено 30 октября пользователем sosiska23 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 95 Опубликовано 30 октября 22 часа назад, sosiska23 сказал: первая песня прекрасно работает, а на вторую не переключаеться 23 часа назад, sosiska23 сказал: huffle = rnd Здесь опечатка нужно исправить на shuffle Похоже что on_signal = sound_end|sr_idle@1 никогда не выполниться, потому что звуку сказано играть зациклено! Тут я думаю 2 варианта: либо принудительно останавливать звук через stop_sound_looped, либо использовать play_sound с параметром type 3d 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
sosiska23 0 Опубликовано 30 октября заселял локу 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\sim_board.script:222: attempt to index local 'spawn_smart' (a nil value) stack trace: Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ishps 8 Опубликовано 30 октября Доброго времени суток! Есть скрипт на выпадения из оружия нпс рандомного класса патронов. что нужно сделать, что бы выпадали только стандартные патроны, не бронебойные? Спойлер 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 = ammo_class[math.random(0,#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 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 1 110 Опубликовано 30 октября В ЗП реализована возможность назначать story_id в spawn_section НПС. Спойлер [zat_a2_stalker_nimble]:stalker $spawn = "respawn\zat_a2_stalker_nimble" character_profile = zat_a2_stalker_nimble spec_rank = novice community = stalker story_id = zat_a2_stalker_nimble_id Вопрос - как это реализовано? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Drive 13 Опубликовано 30 октября 31 минуту назад, ishps сказал: что нужно сделать, что бы выпадали только стандартные патроны, не бронебойные? можешь добавить новый bool'овый параметр у секции с патронами, для не бронебойных присвоить значение true , пример: not_ap = true и считывать, если у секции есть этот параметр и он равен true, то это не бронебойные, либо же можешь находить подстроку "_ap" у имени секции, пример названия секции из оригинала: "ammo_5.45x39_ap" - тем самым ты найдешь секцию бронебойных патронов и можешь либо поставить return, чтоб дальнейший код не выполнялся, либо вынести в проверку, что такой подстроки не должно быть. И только затем выполнять alife_create_item 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ishps 8 Опубликовано 30 октября Drive уфф, а попроще есть вариант? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Drive 13 Опубликовано 30 октября ishps да вроде и так максимально простое решение попытался подобрать, по крайней мере с подстрокой уж точно Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ishps 8 Опубликовано 30 октября Drive я просто вообще в скриптах не секу, нашел по моему мнению функцию которая за это вроде отвечает, думал там что то поменять можно и все будет хорошо Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Drive 13 Опубликовано 30 октября ishps Попробуй так: 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") if string.find(itm:section(), "_ap") then return end -- randomly spawn only 1 ammo type per found weapon if (#ammo_class > 0) then sec = ammo_class[math.random(0,#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 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ishps 8 Опубликовано 30 октября (изменено) Drive По ощущениям, теперь только бронейбойные падают тут зачем-то еще одна похожаю функция чуть ниже Спойлер 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 = ammo_class[math.random(1,#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 Изменено 30 октября пользователем ishps Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
N42 697 Опубликовано 30 октября (изменено) ishps чтобы не привязываться к шаблонам в названии секции патронов, можно в ammo_class ставить нужную секцию патронов самой первой и потом читать для спавна как-нибудь так (будет браться первая секция до запятой, ее и спавнишь сразу): sec = string.match(ini_sys:r_string(itm:section(), "ammo_class"), "[^,]+") Изменено 30 октября пользователем N42 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ishps 8 Опубликовано 30 октября N42 да елки. Нужная секция стоит самой первой, однако все равно спавнятся бронебойки... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
N42 697 Опубликовано 30 октября ishps выложи функцию полностью Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hrust 520 Опубликовано 30 октября В 29.10.2024 в 14:31, Skala сказал: А через что вообще создаётся анимация для текста? LevelEditor->Light Anim Editor, там всё интуитивно понятно, нужно посидеть, разобраться. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 292 Опубликовано 30 октября Hrust Ты прям вовремя. Но хотя можно как-нибудь посидеть и попробовать что-то сделать, может и пригодится Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hrust 520 Опубликовано 30 октября Вообще, мало кто про это знает и делает эти анимации, в NP под задачи новых элементов интерфейса ванильные не подходили и нужно было сделать множество разных эффектов с разной длительностью. Как пример, ванили был эффект плавного мигания на 3 секунды и на этом заканчивалось. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 292 Опубликовано 30 октября Hrust Ну просто мало когда встаёт эта задача Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 622 Опубликовано 30 октября (изменено) Хочу спросить, как правильно выключать и включать аномалии (одиночные)? Вопрос скорее академического характера, у меня сейчас сделано так - создается anomal zone со списком аномалий, и потом включается и выключается через =anomaly_turn_off и =anomaly_turn_on. Проблема - при anomaly_turn_off после перезагрузки сейва снова появляются партикли аномалии (она выключена но партикли становятся видимы). Я это решил насильным выводом всех выключенных аномалий в оффлайн по скрипту, и потом выводом в онлайн при включении. Это работает, но это костыль, а я хочу понять, как это по-нормальному делается? Изменено 30 октября пользователем Mawrak Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hrust 520 Опубликовано 30 октября 2 минуты назад, Mawrak сказал: она выключена но партикли становятся видимы Видимо, в движке включение партиклов на загрузке не зависит от стейта. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты