Overf1rst 1 488 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 18 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 276 Опубликовано Вторник в 11:31 (изменено) А через что вообще создаётся анимация для текста? Может я успею сделать новую анимацию Дополнено 1 минуту спустя denis2000 %=add_cs_end_text(pavlik_leave_zone)% - функция из кат-сцены, которая через таймер вызывается <string id="creator"> <text>Разработчик - Skala (The Rock) \nСценарий - Skala (The Rock)</text> </string> - русификация Всё, проблема решена. Я не так light_anim вырезал, теперь всё нормально Изменено Вторник в 11:40 пользователем Skala Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 920 Опубликовано Вторник в 11:40 Skala text_on_screen_end Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 276 Опубликовано Вторник в 11:43 (изменено) denis2000 Я уже понял, что было не так. Теперь и текст не мигает, и \n работает. Нужно было вырезать light_anim="ui_tesk_description", а complex_mode="1" la_alpha="1" la_text="1" la_cyclic="0" оставить. А я в первый раз всё это вместе удалил. Изменено Вторник в 12:03 пользователем Skala Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 920 Опубликовано Вторник в 12:15 (изменено) 33 минуты назад, Skala сказал: Нужно было вырезать light_anim="ui_tesk_description" О чем я вам и сказал. Вы же начали сносить все подряд. К стати по сути теперь и la_alpha="1" la_text="1" la_cyclic="0" тоже не нужны. А вот complex_mode="1" - это как раз форматирование текста под фрейм. Изменено Вторник в 12:18 пользователем denis2000 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 276 Опубликовано Вторник в 12:18 (изменено) denis2000 Никогда не работал с такими вещами. Теперь буду знать Изменено Вторник в 16:53 пользователем Skala Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
sosiska23 0 Опубликовано Вторник в 17:43 (изменено) радио не меняет музыку первая песня прекрасно работает, а на вторую не переключаеться и за что отвечает 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 Изменено Среда в 08:05 пользователем sosiska23 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 92 Опубликовано Среда в 16:50 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 Опубликовано Среда в 17:02 заселял локу 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 Опубликовано Среда в 17:56 Доброго времени суток! Есть скрипт на выпадения из оружия нпс рандомного класса патронов. что нужно сделать, что бы выпадали только стандартные патроны, не бронебойные? Спойлер 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 088 Опубликовано Среда в 18:24 В ЗП реализована возможность назначать 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 12 Опубликовано Среда в 18:28 31 минуту назад, ishps сказал: что нужно сделать, что бы выпадали только стандартные патроны, не бронебойные? можешь добавить новый bool'овый параметр у секции с патронами, для не бронебойных присвоить значение true , пример: not_ap = true и считывать, если у секции есть этот параметр и он равен true, то это не бронебойные, либо же можешь находить подстроку "_ap" у имени секции, пример названия секции из оригинала: "ammo_5.45x39_ap" - тем самым ты найдешь секцию бронебойных патронов и можешь либо поставить return, чтоб дальнейший код не выполнялся, либо вынести в проверку, что такой подстроки не должно быть. И только затем выполнять alife_create_item Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ishps 8 Опубликовано Среда в 18:34 Drive уфф, а попроще есть вариант? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Drive 12 Опубликовано Среда в 19:08 ishps да вроде и так максимально простое решение попытался подобрать, по крайней мере с подстрокой уж точно Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ishps 8 Опубликовано Среда в 19:15 Drive я просто вообще в скриптах не секу, нашел по моему мнению функцию которая за это вроде отвечает, думал там что то поменять можно и все будет хорошо Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Drive 12 Опубликовано Среда в 19:25 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 Опубликовано Среда в 20:11 (изменено) 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 Изменено Среда в 20:18 пользователем ishps Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
N42 687 Опубликовано Среда в 20:24 (изменено) ishps чтобы не привязываться к шаблонам в названии секции патронов, можно в ammo_class ставить нужную секцию патронов самой первой и потом читать для спавна как-нибудь так (будет браться первая секция до запятой, ее и спавнишь сразу): sec = string.match(ini_sys:r_string(itm:section(), "ammo_class"), "[^,]+") Изменено Среда в 20:29 пользователем N42 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ishps 8 Опубликовано Среда в 20:56 N42 да елки. Нужная секция стоит самой первой, однако все равно спавнятся бронебойки... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
N42 687 Опубликовано Среда в 21:07 ishps выложи функцию полностью Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hrust 506 Опубликовано Среда в 21:23 В 29.10.2024 в 14:31, Skala сказал: А через что вообще создаётся анимация для текста? LevelEditor->Light Anim Editor, там всё интуитивно понятно, нужно посидеть, разобраться. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 276 Опубликовано Среда в 21:27 Hrust Ты прям вовремя. Но хотя можно как-нибудь посидеть и попробовать что-то сделать, может и пригодится Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hrust 506 Опубликовано Среда в 21:38 Вообще, мало кто про это знает и делает эти анимации, в NP под задачи новых элементов интерфейса ванильные не подходили и нужно было сделать множество разных эффектов с разной длительностью. Как пример, ванили был эффект плавного мигания на 3 секунды и на этом заканчивалось. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 276 Опубликовано Среда в 21:41 Hrust Ну просто мало когда встаёт эта задача Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 578 Опубликовано Среда в 23:31 (изменено) Хочу спросить, как правильно выключать и включать аномалии (одиночные)? Вопрос скорее академического характера, у меня сейчас сделано так - создается anomal zone со списком аномалий, и потом включается и выключается через =anomaly_turn_off и =anomaly_turn_on. Проблема - при anomaly_turn_off после перезагрузки сейва снова появляются партикли аномалии (она выключена но партикли становятся видимы). Я это решил насильным выводом всех выключенных аномалий в оффлайн по скрипту, и потом выводом в онлайн при включении. Это работает, но это костыль, а я хочу понять, как это по-нормальному делается? Изменено Среда в 23:32 пользователем Mawrak Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hrust 506 Опубликовано Среда в 23:35 2 минуты назад, Mawrak сказал: она выключена но партикли становятся видимы Видимо, в движке включение партиклов на загрузке не зависит от стейта. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты