-
Публикаций
558 -
Зарегистрирован
-
Посещение
-
Победитель дней
6
Сообщения, опубликованные makdm
-
-
25 минут назад, imcrazyhoudini сказал:это откроет новые возможности в спавне кровососа для сценки))) спасибо!
Не понимаю в чем тут УРА!
Существует функция в файле xr_effects.script, которая называется create_squad.
В любой момент времени можно проспавнить сквад монстров в той точке, в которой это нужно по сцене.
Изобретаете велосипед, а мерседес стоит рядом и тихо смеётся.
-
11 минут назад, imcrazyhoudini сказал:но мне нужно чтобы он пред этим отыграл две анимации
Ну так отыгрывайте. Доработанный файл mob_remark я вам сбросил. Скорее всего вы что-то не то в логике делаете.
Сбрасываю последнюю версию.
Дополнено 6 минуты спустяВ 02.07.2023 в 12:41, imcrazyhoudini сказал:появляется кровосос, смотрит на гг, отыгрывает анимацию рычания со звуком, переходит в режим прыжка, подпрыгивает к гг, всё
Исправил файл mob_jump.script
Теперь, если в логике прописать: path_jump = actor
нпс будет прыгать точно в позицию ГГ.
Надеюсь теперь ваши двухмесячные мучения закончатся.
-
В 07.07.2023 в 17:17, imcrazyhoudini сказал:а вы на чн оттестировать данную логику с вашим скриптом не можете?
а то я уже отчаялся... второй месяц уже с этой сценкой:
Вот только пять минут назад протестировал схему jump на ЗП с кровососом. Прыгает как миленький.
Выкладываю вам его логику. Вы можете переделать под ЧН и попробовать.
Путь blood_3_walk имеет такой вид
[esc_sim_8_blood_3_walk]
points = p0
p0:name = wp00|sig=path_1_end
p0:flags = 0x1
p0:position = 327.387054443359,16.0682029724121,-9.58210563659668
p0:game_vertex_id = 31
p0:level_vertex_id = 655572 -
20 минут назад, SoDizzari сказал:wpn_akm = 1, silencer \n то калаш спавнится с глушителем
Файл читается движком. И движок понимает, что ему нужно делать.
21 минуту назад, SoDizzari сказал:но если прописать wpn_akm = 1, okp \n
то калаш спавнится без прицелаОчевидно, что движок не умеет читать данную конструкцию.
-
16 часов назад, DevilSatalker сказал:Не подскажите сделал НПСа с логикой снайпера выставил ему радиус в логике 200
К сожалению, вы не понимаете, за что отвечает параметр radius. При таком раскладе у вас схема camper даже работать не начнёт. Читайте туторы по логике "Снайпер".
16 часов назад, DevilSatalker сказал:Но этот милейший человек не видит ничего дальше в радиусе 30 метров
Редактируйте файл xr_combat_ignore.script
Сколько метров установите, на столько нпс и будет шмалять по ГГ.
-
8 часов назад, ScarletFox сказал:Появилась необходимость ввести в мод переменную "объём в рюкзаке", знает кто, как это реализовать?
Без лишней скромности, я знаю. Делал это ещё в 2014 году для невышедшего мода Смерти Вопреки 3.
Задействована куча файлов. И в каждом нужно все прописать правильно и не допустить ошибки.
Очень сложно для начинающего модмейкера!
Без знания скриптов на приемлемом уровне, вам это не реализовать и мне даже объяснять нет смысла, так как это превратится в бесконечную переписку.
А если ваши знания на высоте, то вы и сами сможете реализацию сделать.
Скину вам только один файл скриптов. Если сможете, то сами разберётесь, что и как нужно прописывать в других файлах. Файл выкладывается по принципу - как есть. На Ваши вопросы ответов не будет.
З.Ы. Возможно, если кому-то некуда девать свободное время Вам и поможет.
-
В 03.07.2023 в 21:08, Mass сказал:При переключении логики с mob_walker монстр уходит в алайф
У меня нет такой проблемы.
В 03.07.2023 в 21:08, Mass сказал:При дебаге движок ругается на Entity Action removed!!!
У меня в модах на что только не ругается. Как правило вся эта ругань не критичная. Собака лает - караван идет.
-
В 03.07.2023 в 21:08, Mass сказал:2) Не работают анимации из таблицы anim, моб просто виснет
Скрипт был разработан для проигрывания уникальных анимаций мобом, а не для стандартных движковых.
Но я поправил это и допилил скрипт. Ниже смотрите.
Дополнено 9 минуты спустя6 часов назад, imcrazyhoudini сказал:есть вариант прикрутить target при действующем anim?
Вот представьте ситуацию - спит собака. Вы подходите к ней и она, продолжая спать, разворачивается в вашу сторону. Это как?
Одновременно и спать и поворачиваться в сторону ГГ не получится.
Поэтому сначала в схеме ремарк разверните моба в вашу сторону ( он встанет на лапы и повернётся ), затем переключитесь снова на ремарк и проиграйте анимацию.
[mob_remark@1]
target = actor
anim_movement = false
combat_ignore_cond = true
combat_ignore_keep_when_attacked = trueon_signal = action_end | mob_remark@2
[mob_remark@2]
anim = lie_idle_0, lie_idle_1, lie_idle_2
time = 2330, 7340, 7340
anim_movement = false
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true -
3 часа назад, Neptun сказал:Да, там есть параметр item, который используется для гаусс-пушки. Но я не совсем понимаю, как использовать precondition_functor для отдельно взятых апгрейдов
Делается это так. Например:
1. В файле stalkers_upgrade_info.ltx разрешаете устанавливать апгрейд up_sect_fifthc_ak74 и up_sect_fiftha_ak74 только для автомата wpn_ak74
up_sect_fiftha_ak74 = true {=can_upgrade(wpn_ak74)}, false
up_sect_fifthc_ak74 = true {=can_upgrade(wpn_ak74)}, false
2. В файле xr_conditions.script пишите функцию
upgrade_item_name = nil
function can_upgrade(actor, npc, p)
if p then
if p[ 1 ] == upgrade_item_name then
return true
end
end
return false
end3. В файле inventory_upgrades.script после строки function can_upgrade_item( item_name, mechanic ) пишите
xr_conditions.upgrade_item_name = item_name
Готово. Теперь пятый апгрейд будет доступен только автомату АК74. Другой автомат с другим именем, сделанный на его основе апгрейдится по пятому апгрейду не будет.
- 1
- 2
-
2 минуты назад, imcrazyhoudini сказал:но она у меня не двигается
Загрузите модель в ActorEditor.
Переключитесь с editor на engenie.
Выбираете motions
Вываливаются доступные анимации. Жмете на нужную и видите время.
Дополнено 19 минуты спустя1 час назад, imcrazyhoudini сказал:появляется кровосос, смотрит на гг, отыгрывает анимацию рычания со звуком, переходит в режим прыжка, подпрыгивает к гг, всё
Ключевое здесь - подпрыгивает к ГГ.
Вот этого нет в анимациях прыжка, потому что сам полет монстра делает движок, а в анимации только есть положение частей тела во время прыжка.
Если у вас схема JUMP не работает, то только один вариант остаётся - сделать анимацию с прыжком и её использовать в схеме remark.
-
41 минуту назад, imcrazyhoudini сказал:не указывается ибо будет автоматически смотреть на актора или рандомно?
В самом файле есть пояснения. Их можно прочитать.
41 минуту назад, imcrazyhoudini сказал:и как узнать точные миллисекунды анимации?
ActorEditor в помощь. Проигрываете в нём анимацию и видите её длительность.
46 минут назад, imcrazyhoudini сказал:собственно что делает time если есть action_end
Параметр time - это время проигрывания одной анимации. А action_end - это флаг, который выдает скрипт после окончания проигрывания всех анимаций.
44 минуты назад, imcrazyhoudini сказал:; обязателен ли сей пункт? или автоматом перейдёт?
Автоматом ничего не делается. Переход после окончания анимации обязателен.
-
17 часов назад, imcrazyhoudini сказал:как скриптом заставить монстра отыграть анимацию?
В общем так.
Схема mob_remark, которая есть во всех играх трилогии написана для..... Сидоровича.
По просьбе хорошего товарища переписал схему для использования монстрами.
Здесь есть нюанс. Схема написана как для проигрывания анимаций монстрами, так и для разворота монстра в сторону ГГ.
Для разворота монстра в сторону ГГ нужно в логике указать параметр target = actor. Для проигрывания анимаций этот параметр в логике не указывается.
Пользуйтесь на здоровье.
- 2
- 1
- 1
-
2 минуты назад, Skala сказал:А куда мне дальше копать, если я в логике всё перерыл?
Копай..... на Север! Во! Реальный вариант.
- 1
-
1 минуту назад, Skala сказал:ак я всю логику перерыл, всё везде прописано правильно. Вылетает вообще по какому-то скрипту.
Я наверно раз 5 перепроверил по слогам всё
Нам это не интересно. Продолжай копать дальше. Ты что здесь ведёшь дневник разработки?
-
38 минут назад, Skala сказал:Я выяснил, что это связано с логикой для нпс, я её переписал, и на какое-то время вылет исчез, но сейчас заново вернулся
Продолжай работать в этом направлении. Зачем нам об этом рассказывать?
-
15 минут назад, chriotmao сказал:Это шкаф
Да бог с ним с этим шкафом.
Где следы на полу осыпавшейся краски и штукатурки?
Уборщица приходила?
- 2
- 2
-
Второй скрин.
Справа стена - краска вздулась и осыпалась. Норм.
Слева стена - впечатление, что только что покрасили.
Стена прямо, где два чувака - штукатурка осыпалась местами.
Так не бывает. Помещение одно, условия температурные одни. Шайтан наверное завелся на локации.
НЕ верю!
- 1
- 2
-
20 минут назад, Skala сказал:Вы правы, но как я получу эти знания, если не ошибусь и не задам вопрос?
Прежде чем что-то делать нужно учить мат часть и читать туторы. Их в иненте полным полно. НЕ думайте, что вы изобретаете, что-то новое. Поверьте, что все что вы сейчас делаете, кто-то уже делал и не раз.
Но вы используете "хитрый" метод:
Ничего не читаю, делаю тяп-ляп, а если вылетает, то пусть другие учат мат часть и читают туторы, а вам принесут все готовое "на блюдечке". Таких "модмейкеров" я за версту чую. В игнор их. Поэтому в этой теме очень редко что-то пишу. Пишу только если вижу, что человек старался, пытался , но не получилось, либо задача очень сложная и требуются знания большие, чем можно получить от прочтения туторов.
- 1
- 3
-
Prostomod , вот так я делал в моде Время Альянса 3.0
Спойлерfunction send_message(actor, npc, p)
--' p[1] - id текста сообщения из папки text\rus
--' p[2] - story_id сендера
--' p[3] - id имени сендера из папки text\rus
--' p[4] - длительность показа сообщения в миллисек, по-умолчанию 5 секунд.
--' =send_message(p[1]:p[2]:p[3]:p[4]) - вызов функции
if p == nil then
abort("Wrong parameters in 'send_message' function!!!")
end
if p[4] == nil then p[4] = 5000 end
--' Иконки сендеров [ story_id сендера ] = "Название иконки"
local portrets = {
["jup_a18_sherkchan_bandit"] = "ui_inGame2_sherkchan_noheat",
["jup_a9_sedoy_stalker"] = "ui_inGame2_sedoy",
["jup_a18_baloon_bandit"] = "ui_inGame2_puzir",
["jup_smuggler_lena"] = "ui_inGame2_lena_contra",
["bar_a1_botanick"] = "ui_inGame2_doctor",
["bar_a5_stalkerden"] = "ui_inGame2_den",
["bar_a2_duty_leader"] = "ui_inGame2_stalker_dolg_leader",
["jup_a18_botan_bandit"] = "ui_inGame2_botan_bandit",
["jup_stalker_garik"] = "ui_inGame2_stalker_Garik",
["jup_stalker_dectyrev"] = "ui_inGame2_Degtyaryov",
["bar_a1_proveren_3"] = "ui_inGame2_makdm",
["radar_a4_lider_night"] = "ui_inGame2_stalker_night_2",
["aver_a1_4erepok_bandit"] = "ui_inGame2_stalker_bandit_3",
["radar_a1_lider_bandit"] = "ui_inGame2_evil_raccoon",
["lim_a4_lider_monolit"] = "ui_inGame2_semperfay",
["lim_a4_brodiaga_monolit"] = "ui_inGame2_Brodyaga_monolith",
["radar_a6_botanic"] = "ui_inGame2_ecolog_red",
["bar_a2_dolg_3"] = "ui_inGame2_inkvizitor",
["dark_a2_winchester"] = "ui_inGame2_stalker_jagernaut1",
["radar_a1_gupi_bandit"] = "ui_inGame2_stalker_bandit_3_face_1",
["bar_a5_voyak_4"] = "ui_inGame2_stalker_soldier_33",
["pr_a7_stalker_degtyrev"] = "ui_inGame2_Degtyaryov"
}local news_text = game.translate_string(p[1])
local news_caption = game.translate_string(p[3])
local showtime = p[4]
local sender = get_story_object(p[2])
local texture = "ui_iconsTotal_grouping"
if sender then
texture = sender:character_icon()
elseif portrets[ p[2] ] ~= nil then
texture = portrets[ p[2] ]
end
xr_sound.set_sound_play(db.actor:id(), "pda_tips")
db.actor:give_game_news(news_caption, news_text, texture, 0, showtime, 0)
end- 1
-
1 час назад, Prostomod сказал:Как я могу обратиться к объекту через story_id, который в оффлайне?
local npc_id = get_story_object_id(story_id)
local obj_server = alife():object(npc_id)
- 1
-
5 часов назад, Prostomod сказал:предотвратить выпадение оружие из рук НПС при падении раненым (как-то скриптом убрать в инвентарь НПС?)?
В ТЧ играли? При заходе ГГ на арену оружие отбирается, а при возвращении с арены возвращается в рюкзак ГГ.
Что мешает сделать тоже самое с НПС? При переключении на секцию раненного оружие изымайте из рюкзака. После выброса возвращайте. Как это сделать специально не пишу. Все есть в оригиналах игры.
-
2 часа назад, Prostomod сказал:В чём может быть проблема и как с ней бороться?
Анимация зацикленная. Движок тупит пока не проиграет её до конца.
Делается так:
В файл xr_effects.script добавляем функцию
function reset_npc( actor, npc )
reset_animation( npc )
endВ логику пишем
on_info = {+yan_psi_oko_expedition_p2_start} walker@dolg_guard_4_phase_2 %=reset_npc%
Подпрыгнет как ужаленный. Тормозов не будет.
- 2
-
1 час назад, Mass сказал:on_game_timer = 8 | nil %=kill_npc%
так не стоит делать!
Лучше подключить схему death и по поршню убивать!
Абсолютно ничем не обоснованное и в корне неправильное утверждение. Схема death срабатывает, когда пациент УЖЕ умер. И кого вы там ещё по поршню собрались убивать?
Я скажу, что именно так делать и НУЖНО!
З.Ы. Всегда так делаю и всем советую. Да и разрабы сталкера полностью со мной согласны.
- 1
-
24 минуты назад, Savan сказал:Wrong smart name [ex_gar_a3] in start position
Файл simulation.ltx
Неверно указано имя смарта ex_gar_a3, на котором создаете отряд.
[CS] Модострой: вопросница
в Уроки, вопросы и советы по созданию модов
Опубликовано · Изменено пользователем makdm
Продолжайте насиловать "запорожец".
"Мерс" просто пока постоит в гараже.
Когда допрёте до "мерса", возможно придет понимание.
З.Ы. Со мной спорить не нужно. Мне фиолетово ваше мнение!
Спорьте с разрабами Сталкера, которые похерили спавн одиночных НПС в ТЧ и ЧН, который имел место, и полностью перешли на сквады в ЗП.