Overf1rst 1 496 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 18 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Vint_the_stalker_ 564 Опубликовано 4 октября Вечер добрый. Не подскажет кто-нибудь, есть где-то какие-нибудь видеоролики или скажем пособия, в обращении с SDK для ЗП, как вообще пользоваться им, ну и.т.д? Самоуверенность ничто. Болты наше всё.Скиталец, бродящий в поисках модов. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 292 Опубликовано 4 октября Здравствуйте, у меня вот такая проблема с картой: Спойлер Общая карта ужалась, а при наведении на ТД не высвечивается название, хотя в game_maps_single всё прописал Дополнено 1 минуту спустя Vint_the_stalker_ Посмотри на ютубе шеву сталкера (старые видео) и Бориса Шепелёва. Так же тут на сайте есть тема с вопросами по СДК 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 628 Опубликовано 4 октября (изменено) 2 часа назад, Skala сказал: Общая карта ужалась, а при наведении на ТД не высвечивается название, хотя в game_maps_single всё прописал А что вы делали до того, как стало так Вы меняли общую карту на ТЧ? Мне кажется тогда ей нужно тоже прописать отдельно правильные настройки в game_maps_single. Изменено 4 октября пользователем Mawrak Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 292 Опубликовано 4 октября Mawrak У меня мод для конкурса на ЗП. Я в чновском game_maps_single скопировал секцию с тд и вставил в game_maps_single из моей геймдаты. Скопировал ui_global_map.dds из чн к себе в геймдату, тоже сделал и с картой тд. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hrust 520 Опубликовано 4 октября @Skala, советую воспользоваться Map Dragger. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 628 Опубликовано 4 октября Skala а эти секции тоже перенесли? 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 292 Опубликовано 5 октября 8 часов назад, Mawrak сказал: Skala а эти секции тоже перенесли? Нет Дополнено 32 минуты спустя Скопировал, всё заработало Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vasyan54636 128 Опубликовано 5 октября (изменено) Здравствуйте. На локации есть монстр 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 Изменено 5 октября пользователем vasyan54636 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
makdm 672 Опубликовано 5 октября 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 951 Опубликовано 5 октября (изменено) В 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[i].section), prob = tonumber(tbl[i].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 end end Функция 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[i]) then local se_obj = alife():object(item_params[num].item_ids[i]) 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 end end Функция CTreasureManager:load такой: Спойлер function CTreasureManager:load(package) for k,v in pairs(self.secrets) do if (v.box) then local box_id = get_story_object_id(k) self.secret_restrs[k] = box_id end end set_save_marker(package, "load", false, "CTreasureManager") self.items_spawned = package:r_bool() self.items_from_secrets = {} local num = package:r_u16() for i=1,num do local k = package:r_u16() local v = package:r_u16() self.items_from_secrets[k] = v end local num = package:r_u16() for i=1,num do local id = package:r_u16() for k,v in pairs(self.secret_restrs) do if(v==id) then id = k break end end local given = package:r_bool() local checked = package:r_bool() local to_find = package:r_u8() local box = package:r_bool() if(id~=65535 and self.secrets[id]) then self.secrets[id].given = given self.secrets[id].checked = checked self.secrets[id].to_find = to_find self.secrets[id].box = box end end set_save_marker(package, "load", true, "CTreasureManager") end Ящик используемый в качестве тайника должен называться в духе: zat_hiding_box_1 и иметь стори ид равный названию! А также логику обычного ящика, для того чтобы ГГ мог его лутать. Ящик нужно внести в структуру secrets.ltx аналогично с остальными тайниками. Изменено 30 октября пользователем denis2000 1 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 292 Опубликовано 6 октября Можно ли сделать так, чтобы при попытке выкинуть определённый предмет проигрывался звук? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
KILDIN 1 Опубликовано 6 октября (изменено) Skala bind_stalker.script, функция on_item_drop, там где тебе нужно пишешь xr_sound.set_sound_play(db.actor:id(), "ПУТЬ до звука или название секции в misc\script_sound.ltx") Изменено 6 октября пользователем KILDIN 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Крим 790 Опубликовано 6 октября (изменено) Как можно узнать текстуры у определенного партикла? Изменено 6 октября пользователем Крим Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 951 Опубликовано 6 октября Крим Открыть в редакторе и посмотреть. Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Крим 790 Опубликовано 6 октября denis2000 А точно, я забыл, что у партиклов свой редактор есть :) Дополнено 0 минут спустя Спасибо Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 292 Опубликовано 6 октября (изменено) KILDIN А как туда нужный мне предмет прописать? Мне это для одной вещи нужно Изменено 6 октября пользователем Skala Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Кадоре 0 Опубликовано 6 октября Всем добрый вечер. У меня вопрос к знатокам: есть ли возможность из ТЧ удалить каким-либо образом тайник? В смысле, вообще стереть его из игры полностью, как будто его и не было. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Flanceton 5 Опубликовано 6 октября В 05.10.2024 в 23:02, denis2000 сказал: Посидел на досуге и придумал, как добавить тайники в ящиках, для схемы тайников в ЗП. безмерно благодарен, правда при заходе такая штука: Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ...\stalkercoc\gamedata\scripts\treasure_manager.script:140: 'for' limit must be a number Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 951 Опубликовано 6 октября Flanceton Накосячили в конфигах. Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Flanceton 5 Опубликовано 6 октября 2 минуты назад, denis2000 сказал: Flanceton Накосячили в конфигах. конкретно в game_story_ids имя тайника указано, в secret_(локация) и лист и секция тайника - всё без ошибок 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
sosiska23 0 Опубликовано 6 октября поставил на свой мод stalker 2k FATAL ERROR [error]Expression : Ran out of memory [error]Function : CRender::texture_load [error]File : D:\prog_repository\sources\trunk\Layers\xrRenderDX10\dx10Texture.cpp [error]Line : 502 [error]Description : D3DX10CreateTextureFromMemory ( HW.pDevice,S->pointer(),S->length(), &LoadInfo, 0, &pTexture2D, 0 ) [error]Arguments : f:\s.t.a.l.k.e.r\s.t.a.l.k.e.r. call of pripyat\gamedata\textures\veh\veh_vagon1_01_bump.dds stack trace: 0023:69737365 nvwgf2um.dll Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Drive 13 Опубликовано 6 октября (изменено) В 05.10.2024 в 18:02, denis2000 сказал: local tbl = {count = tonumber(tbl.section), prob = tonumber(tbl.prob or 1)} table.insert(self.secrets[id].items[item_section], tbl) Ошибка в коде, вы не указали элемент массива tbl "i". Скорее всего возвратит nil значение. @Flanceton Решение вашей проблемы на скриншоте ниже: P.S. Видимо не ошибка в коде, а почему-то не отображаются квадратные скобки с "i" в сообщении, c моим сообщением так-же, прикол) Изменено 6 октября пользователем Drive 1 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 951 Опубликовано 6 октября (изменено) Flanceton Drive Прошу прощения, из-за того, что текст из скрипта был вставлен без контейнера КОД его покорежило при сохранении сообщения. Добавил тег и снова скопировал код. У меня все четко работает, будьте внимательны при вставке кода! Если снова возникают ошибки, вот ссылка на файл treasure_manager.script Кадоре Не та тема! В 06.10.2024 в 18:04, Flanceton сказал: конкретно в game_story_ids имя тайника указано Этот файл в ЗП не используется! В 06.10.2024 в 22:49, Drive сказал: отображаются квадратные скобки с "i" Абсолютно точно движок форума считает, что это открывающий тег для курсива! treasure_manager.script Изменено 30 октября пользователем denis2000 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Boomer 463 Опубликовано 7 октября Как изменить группировку ГГ по скрипту? И можно ли это сделать через рестриктор? Например, был вольным сталкером, стал бандитом. В интернете нормальных гайдов именно для ЗП не нашёл. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paracetamol 900 Опубликовано 7 октября 28 минут назад, Boomer сказал: Как изменить группировку ГГ по скрипту? db.actor:set_character_community("группировка", 0, 0) Дополнено 2 минуты спустя 31 минуту назад, Boomer сказал: И можно ли это сделать через рестриктор? попробуй функцию change_actor_community Дополнено 2 минуты спустя on_actor_inside = %=change_actor_community(bandit)% вот так примерно выглядеть будет. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты