advisor890 1 Опубликовано 5 Октября 2017 Поделиться Опубликовано 5 Октября 2017 @naxacСпасибо. Буду пробовать. Ссылка на комментарий
aka_sektor 1 476 Опубликовано 6 Октября 2017 Поделиться Опубликовано 6 Октября 2017 (изменено) Можно ли получить задание после получения инфопорции? Например, в квесте задано: title = {+info_portion2} step_2, {+info_portion1} step_1 Если я получю в игре info_portion1, стартанет ли квест? Изменено 6 Октября 2017 пользователем aka_sektor Discord-сервер modfaq.ru: https://discord.gg/9j42BXwB Ссылка на комментарий
Painter 3 381 Опубликовано 6 Октября 2017 Поделиться Опубликовано 6 Октября 2017 (изменено) @aka_sektor, не "стартанёт" (да и с чего бы?). Квест выдаётся через рестриктор в виде: on_info = {+инфопоршень} %=give_task(название_квеста)% Либо через скрипт: function функция() task_manager.get_task_manager():give_task("название_квеста") end Изменено 6 Октября 2017 пользователем Jurok Портфолио Ссылка на комментарий
aka_sektor 1 476 Опубликовано 6 Октября 2017 Поделиться Опубликовано 6 Октября 2017 (изменено) @Jurok а только эти 2 способа? Нельзя ли как то выдать при обыске тела NPC? Хотя наверное думаю можно, если прописать в апдейт вызов функции при условии наличия инфопорции. А порцию выдать при обыске. Изменено 6 Октября 2017 пользователем aka_sektor Discord-сервер modfaq.ru: https://discord.gg/9j42BXwB Ссылка на комментарий
Painter 3 381 Опубликовано 6 Октября 2017 Поделиться Опубликовано 6 Октября 2017 В xr_conditions.script (ЗП) есть функция: function dead_body_searching(actor, npc) return actor_menu.dead_body_searching end Можешь применить её в том же рестрикторе: on_info = {-инфопоршень =dead_body_searching} %+инфопоршень =give_task(название_квеста)% Портфолио Ссылка на комментарий
aka_sektor 1 476 Опубликовано 6 Октября 2017 Поделиться Опубликовано 6 Октября 2017 (изменено) @Jurok не совсем понял как эта функция работает? Это для всех тел? Или как указывается нужное? Рестриктор мне не надо, шейпы эти. 49 минут назад, Jurok сказал: function функция() task_manager.get_task_manager():give_task("название_квеста") end Предпочитаю укороченную: function task_funct_name(first_speaker, second_speaker) give_task("task_name") end Изменено 6 Октября 2017 пользователем aka_sektor Discord-сервер modfaq.ru: https://discord.gg/9j42BXwB Ссылка на комментарий
Painter 3 381 Опубликовано 6 Октября 2017 Поделиться Опубликовано 6 Октября 2017 (изменено) Цитата Это для всех тел? Для всех. Если тебе нужно, что квест активировался при обыске конкретного трупа, можно сделать рестриктор с определённым радиусом действия, чтобы труп находился в его диапазоне, ну или добавь проверку на его story_id. Изменено 6 Октября 2017 пользователем Jurok Портфолио Ссылка на комментарий
Overfirst 630 Опубликовано 6 Октября 2017 Поделиться Опубликовано 6 Октября 2017 (изменено) Выдача инфопоршня в кастом дате: [logic] active = nil known_info = known_info [known_info] info_portion Как ты мне в скайпе говорил, у тебя труп спавнится из логики рестриктора (spawn_corpse). Так пропиши в секцию непися: custom_data = scripts\tatata\corpse.ltx Создавай этот файл и пиши вышепоказанное. При открытии окна обыска получишь свой инфо. Изменено 6 Октября 2017 пользователем BoBaH_671 1 Ранее был известен под ником BoBaH_671. Ссылка на комментарий
antreg 178 Опубликовано 7 Октября 2017 Поделиться Опубликовано 7 Октября 2017 Добрый день. Подскажите, если знаете, STALKER ТЧ, Windows 10, валидность координат при снятии всегда false, даже в тех местах, где реально точно есть AI. На координатах, по факту, всё работает, но при снятии выдаётся невалидность. В чём может быть причина? Функция снятия давно известная и работающая прекрасно на семёрке и хр: function main_menu:LevelVertexId() local hud = get_hud() local cs = hud:GetCustomStatic("cs_debug" ) if cs == nil then hud:AddCustomStatic("cs_debug", true) cs = hud:GetCustomStatic("cs_debug" ) end local lvid, gvid = db.actor:level_vertex_id(), db.actor:game_vertex_id() local pos, dir = db.actor: position(), db.actor:direction() local pos2 = level.vertex_position(lvid) local valid = pos2:distance_to(pos) <= 0.7 local msg = string.format("lvid: %d\\n", lvid) .. string.format("gvid: %d\\n", gvid) .. string.format("pos: %f,%f,%f\\n", pos.x, pos.y, pos.z) .. string.format("dir: %f,%f,%f\\n", dir.x, dir.y, dir.z) .. string.format("valid: %s", tostring(valid)) if cs ~= nil then cs:wnd():SetText(msg) end end "Тайные Тропы 2" техподдержка "Ф.О.Т.О.Г.Р.А.Ф" техподдержка Ссылка на комментарий
aka_sektor 1 476 Опубликовано 7 Октября 2017 Поделиться Опубликовано 7 Октября 2017 (изменено) 2 часа назад, antreg сказал: Windows 10 2 часа назад, antreg сказал: на семёрке и хр Может дело в версии игры? Почему ж тогда одни моды сделанные под 4 патч, не работают на 6 или работают неправильно. p.s. @antreg делаю вывод ещё не покинул моддинг, судя по слухам. Изменено 7 Октября 2017 пользователем aka_sektor Discord-сервер modfaq.ru: https://discord.gg/9j42BXwB Ссылка на комментарий
kmsk 2 Опубликовано 7 Октября 2017 Поделиться Опубликовано 7 Октября 2017 Подскажите пожалуйста, если возможность заменить скриптом тип боеприпаса в оружии? то есть допустим в Макарове ammo_class = ammo_9x18_fmj, сейчас заряженно. А надо скриптом поменять на ammo_9x18_pmm, с сохраннение количества патронов. Кто знает хэлп??? Ссылка на комментарий
AndrewMor 527 Опубликовано 8 Октября 2017 Поделиться Опубликовано 8 Октября 2017 В 06.10.2017 в 11:59, aka_sektor сказал: Можно ли получить задание после получения инфопорции? Например, в квесте задано: title = {+info_portion2} step_2, {+info_portion1} step_1 Если я получю в игре info_portion1, стартанет ли квест? В теле поршня пишешь тег с нужным именем: <info_portion id="info_portion1"> <task>имя_твоего_таска</task> </info_portion> Сталкер - наше всё! Ссылка на комментарий
aka_sektor 1 476 Опубликовано 8 Октября 2017 Поделиться Опубликовано 8 Октября 2017 1 час назад, AndrewMor сказал: В теле поршня пишешь тег Проблема в том, что в ЗП чтение секции закомментировано. Эт вариант для ТЧ/ЧН. Discord-сервер modfaq.ru: https://discord.gg/9j42BXwB Ссылка на комментарий
AndrewMor 527 Опубликовано 8 Октября 2017 Поделиться Опубликовано 8 Октября 2017 1 час назад, aka_sektor сказал: Проблема в том, что в ЗП чтение секции закомментировано. Эт вариант для ТЧ/ЧН. О как. Сам не знал, с ЗП дела не имел... Сталкер - наше всё! Ссылка на комментарий
AndrewMor 527 Опубликовано 9 Октября 2017 Поделиться Опубликовано 9 Октября 2017 (изменено) Просветите кто-нибудь. Вопросы по классам типа ZS_BUZZ и им подобным. 1. Классы должны как-нибудь прописаны в движке? 2. В скриптах они прописываются только в class_registrator.script или где-то еще? 3. Что нужно сделать, чтобы зарегистрировать совершенно новый класс? Нужно ли копаться в движке или это все делается скриптами? 4. В lua_help.script есть константы вида Скрытый текст const zone_galantine = 176; const zone_mbald_s = 170; const zone_mincer = 178; const zone_mincer_s = 171; const zone_mosquito_bald = 177; const zone_radioactive = 180; const zone_rusty_hair = 181; const zone_buzz_s = 185; const zone_zharka_s = 188; const zone_electra_s = 189; const zone_ice = 190; const zone_ice_s = 191; Они как-то поддерживаются/экспортируются движком? Эти константы если что, из Солянки-2016. Проще говоря, если я придумаю какой-нибудь новый класс, например, ZS_PORT, и пропишу его конкретной аномалии, этого будет достаточно или еще какие телодвижения нужно сделать? Изменено 9 Октября 2017 пользователем AndrewMor Сталкер - наше всё! Ссылка на комментарий
naxac 2 445 Опубликовано 10 Октября 2017 Поделиться Опубликовано 10 Октября 2017 @AndrewMor , 1. Есть движковые, которые чисто в движке и есть скриптовые, которые можно создать с помощью class_registrator. 2. Если имеется в виду название для конфигов (ZS_BUZZ, например), то только там, да. 3. Это делается чисто скриптами. Создаём свой скриптовый серверный класс, наследованный от движкового, и привязываем его к клиентскому в class_registrator.script. Главное, чтобы из движка были экспортированы и серверный, и клиентский классы для нашего объекта. Примеры в игре есть, по ним и сделай. 4. lua_help - это файл чисто для справки, пиши туда что хочешь, а можешь вообще удалить. Константы для новых классов движок расставит сам, и они будут меняться каждый раз при добавлении новых классов. Так что особого смысла их туда писать, даже для справки, нет. 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
AndrewMor 527 Опубликовано 10 Октября 2017 Поделиться Опубликовано 10 Октября 2017 1 час назад, naxac сказал: Если имеется в виду название для конфигов (ZS_BUZZ, например), то только там, да. Да, именно для конфигов аномалий. 1 час назад, naxac сказал: 3. Это делается чисто скриптами. Создаём свой скриптовый серверный класс, наследованный от движкового, и привязываем его к клиентскому в class_registrator.script. Главное, чтобы из движка были экспортированы и серверный, и клиентский классы для нашего объекта. Примеры в игре есть, по ним и сделай. Т.е., по аналогии с cs_register (object_factory, "CMincer", "se_zones.se_zone_anom", "ZS_MINCE", "zone_mincer_s") пишем свой класс cs_register (object_factory, "CMincer", "se_zones.se_zone_anom", "ZS_PORT", "zone_port_s") и все? Новая игра нужна? 1 час назад, naxac сказал: Константы для новых классов движок расставит сам, и они будут меняться каждый раз при добавлении новых классов. А посмотреть их (константы) как-то можно? Сталкер - наше всё! Ссылка на комментарий
naxac 2 445 Опубликовано 10 Октября 2017 Поделиться Опубликовано 10 Октября 2017 (изменено) @AndrewMor, да, всё. CMincer - клиентский класс, se_zones.se_zone_anom - скриптовый серверный, ZS_PORT - параметр для конфигов, zone_port_s - название константы класса в clsid для скриптов. Новая игра не нужна. Посмотреть - вывести в лог. Например, log("clsid.zone_port_s = "..clsid.zone_port_s). Изменено 10 Октября 2017 пользователем naxac 1 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
AndrewMor 527 Опубликовано 10 Октября 2017 Поделиться Опубликовано 10 Октября 2017 2 часа назад, naxac сказал: CMincer - клиентский класс, se_zones.se_zone_anom - скриптовый серверный, ZS_PORT - параметр для конфигов, zone_port_s - название константы класса в clsid для скриптов. Новая игра не нужна Вот спасибки. Давно хотел этот момент для себя прояснить, да все недосуг было. Сталкер - наше всё! Ссылка на комментарий
Graff46 598 Опубликовано 13 Октября 2017 Поделиться Опубликовано 13 Октября 2017 (изменено) Для движения машин используется такая конструкция: action(CCar, move(move.on + move.fwd, 30), cond(cond.move_end, 3000)) --движение Мне интересно за что отвечают параметры ф-ций, а именно 2-й параметр ф-ции move, (тот который 30) и для чего нужен cond и что значат пара его параметров? Также 2-ым параметром у cond была замечана константа time_infinite... Изменено 13 Октября 2017 пользователем Graff46 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти