Overf1rst 1 480 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 18 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Vint_the_stalker_ 437 Опубликовано Пятница в 18:17 Вечер добрый. Не подскажет кто-нибудь, есть где-то какие-нибудь видеоролики или скажем пособия, в обращении с SDK для ЗП, как вообще пользоваться им, ну и.т.д? Самоуверенность ничто. Болты наше всё.Скиталец, бродящий в поисках модов. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 172 Опубликовано Пятница в 20:33 Здравствуйте, у меня вот такая проблема с картой: Спойлер Общая карта ужалась, а при наведении на ТД не высвечивается название, хотя в game_maps_single всё прописал Дополнено 1 минуту спустя Vint_the_stalker_ Посмотри на ютубе шеву сталкера (старые видео) и Бориса Шепелёва. Так же тут на сайте есть тема с вопросами по СДК 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 514 Опубликовано Пятница в 21:19 (изменено) 2 часа назад, Skala сказал: Общая карта ужалась, а при наведении на ТД не высвечивается название, хотя в game_maps_single всё прописал А что вы делали до того, как стало так Вы меняли общую карту на ТЧ? Мне кажется тогда ей нужно тоже прописать отдельно правильные настройки в game_maps_single. Изменено Пятница в 21:48 пользователем Mawrak Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 172 Опубликовано Пятница в 21:35 Mawrak У меня мод для конкурса на ЗП. Я в чновском game_maps_single скопировал секцию с тд и вставил в game_maps_single из моей геймдаты. Скопировал ui_global_map.dds из чн к себе в геймдату, тоже сделал и с картой тд. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hrust 470 Опубликовано Пятница в 21:36 @Skala, советую воспользоваться Map Dragger. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 514 Опубликовано Пятница в 21:50 Skala а эти секции тоже перенесли? 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 172 Опубликовано вчера в 06:33 8 часов назад, Mawrak сказал: Skala а эти секции тоже перенесли? Нет Дополнено 32 минуты спустя Скопировал, всё заработало Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vasyan54636 69 Опубликовано вчера в 10:49 (изменено) Здравствуйте. На локации есть монстр c логикой mob_walker, по инфопоршню он должен пробежать с одного вейпоинта на другой. В точках walk я указал "r=true", чтобы монстр именно бежал. Но в игре результат другой, монстр и вправду по инфопоршню идет на нужную точку, но делает это медленной походкой, хотя в вейпоинте указывал r=true, тобишь бег. Спойлер Спойлер [logic@dv_a2_going_flash] active = mob_walker@idle suitable = {=check_npc_name(dv_a2_going_flash)} true prior = 75 monster_job = true [mob_walker@idle] path_walk = fls_2_walk path_look = fls_2_look actor_friendly = true combat_ignore_cond = {=check_enemy_name(military_start_1)} true, {=check_enemy_name(military_start_2)} true, {=check_enemy_name(actor)} true aggressive = false friendly = true npc_friendly = true on_info = {+lejt_came} mob_walker@attack [mob_walker@attack] path_walk = atk_1_walk path_look = atk_1_look actor_friendly = true combat_ignore_cond = {=check_enemy_name(military_start_1)} true, {=check_enemy_name(military_start_2)} true, {=check_enemy_name(actor)} true aggressive = true friendly = true npc_friendly = true Изменено вчера в 10:51 пользователем vasyan54636 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
makdm 667 Опубликовано вчера в 12:08 1 час назад, vasyan54636 сказал: На локации есть монстр c логикой mob_walker У вас все смешалось в логике. Не путайте ТЧ и ЗП. Где вы этого всего насмотрелись? 1 час назад, vasyan54636 сказал: aggressive = false friendly = true npc_friendly = true Эти параметры не используется в логике mob_walker в ЗП. Сразу "в топку". 1 час назад, vasyan54636 сказал: actor_friendly = true Это туда же. Для перемещения монстра из одной точки в другую лучше использовать не скриптовую mob_walker, а движковую логику mob_home. В этом случае: 1. Если параметр aggressive равен true - бежим в точку. 2. Если параметр aggressive равен false - идем в точку. 1 1 Терпение... И все получится. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 895 Опубликовано 23 часа назад (изменено) В 04.10.2024 в 13:13, Flanceton сказал: Ну получается что второй вариант если это не слишком сложно, там скрипты небось шерудить какие то... Посидел на досуге и придумал, как добавить тайники в ящиках, для схемы тайников в ЗП. Для этого меняем скрипт treasure_manager.script. Функция CTreasureManager:initialize() должна принять такой вид: Спойлер function CTreasureManager:initialize() local ini = ini_file("misc\\secrets.ltx") local n = ini:line_count("list") for i=0,n-1 do local result, id, value = ini:r_line("list",i,"","") if(ini:section_exist(id)) then if string.find(id,"_hiding_box_") then self.secrets[id] = {items = {}, given = false, empty = nil, refreshing = false, checked = false, to_find = 0, box = true} else self.secrets[id] = {items = {}, given = false, empty = nil, refreshing = false, checked = false, to_find = 0, box = false} end local items_count = ini:line_count(id) local item_section = "" for i=0,items_count-1 do result, item_section, str = ini:r_line(id,i,"","") if(item_section=="empty") then local parsed_condlist = xr_logic.parse_condlist(nil, "treasure_manager", "empty_cond", str) self.secrets[id].empty = parsed_condlist elseif(item_section=="refreshing") then local parsed_condlist = xr_logic.parse_condlist(nil, "treasure_manager", "refreshing_cond", str) self.secrets[id].refreshing = parsed_condlist else self.secrets[id].items[item_section] = {} local tbl = utils.parse_spawns(str) if(#tbl==0) then abort("There is no items count set for treasure [%s], item [%s]", id, item_section) end for i=1,#tbl do local tbl = {count = tonumber(tbl.section), prob = tonumber(tbl.prob or 1)} table.insert(self.secrets[id].items[item_section], tbl) end end end else abort("There is no section [%s] in secrets.ltx", tostring(id)) end endend А функция CTreasureManager:spawn_treasure такой: Спойлер function CTreasureManager:spawn_treasure(treasure_id) if not(self.secrets[treasure_id]) then abort("There is no stored secret [%s]", tostring(treasure_id)) end if(self.secrets[treasure_id].given) then printf("Secret [%s] already given!", treasure_id) return end for item_section,item_params in pairs(self.secrets[treasure_id].items) do for num = 1,#item_params do for i = 1,item_params[num].count do local prob = math.random() if(prob<item_params[num].prob) then if(item_params[num].item_ids and item_params[num].item_ids) then local se_obj = alife():object(item_params[num].item_ids) local obj = alife():create( item_section, se_obj.position, se_obj.m_level_vertex_id, se_obj.m_game_vertex_id) obj.angle = se_obj.angle obj:use_ai_locations(se_obj:used_ai_locations()) self.items_from_secrets[obj.id] = self.secret_restrs[treasure_id] self.secrets[treasure_id].to_find = self.secrets[treasure_id].to_find + 1 end if (self.secrets[treasure_id].box) then local box_id = get_story_object_id(treasure_id) self.secret_restrs[treasure_id] = box_id local inv_box = alife():object(box_id) local obj = alife():create( item_section, inv_box.position, inv_box.m_level_vertex_id, inv_box.m_game_vertex_id, box_id) self.items_from_secrets[obj.id] = self.secret_restrs[treasure_id] self.secrets[treasure_id].to_find = self.secrets[treasure_id].to_find + 1 end end end end endend Ящик используемый в качестве тайника должен называться в духе: zat_hiding_box_1 и иметь стори ид равный названию! А также логику обычного ящика, для того чтобы ГГ мог его лутать. Ящик нужно внести в структуру secrets.ltx аналогично с остальными тайниками. Изменено 23 часа назад пользователем denis2000 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 172 Опубликовано 6 часов назад Можно ли сделать так, чтобы при попытке выкинуть определённый предмет проигрывался звук? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
KILDIN 0 Опубликовано 4 часа назад (изменено) Skala bind_stalker.script, функция on_item_drop, там где тебе нужно пишешь xr_sound.set_sound_play(db.actor:id(), "ПУТЬ до звука или название секции в misc\script_sound.ltx") Изменено 4 часа назад пользователем KILDIN Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Крим 721 Опубликовано 2 часа назад (изменено) Как можно узнать текстуры у определенного партикла? Изменено 2 часа назад пользователем Крим Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 895 Опубликовано 2 часа назад Крим Открыть в редакторе и посмотреть. Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Крим 721 Опубликовано 2 часа назад denis2000 А точно, я забыл, что у партиклов свой редактор есть :) Дополнено 0 минут спустя Спасибо Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 172 Опубликовано 1 час назад (изменено) KILDIN А как туда нужный мне предмет прописать? Мне это для одной вещи нужно Изменено 1 час назад пользователем Skala Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты