7.9 174 Опубликовано 3 Июня 2011 Поделиться Опубликовано 3 Июня 2011 На время пропадания НПС (при смене визуала) можно ввести временного... всё легко Ссылка на комментарий
dPlayer 502 Опубликовано 4 Июня 2011 Поделиться Опубликовано 4 Июня 2011 Kirag, а как происходит невидимость кровососа? Это подмена модели? Ссылка на комментарий
=VENOM= 50 Опубликовано 4 Июня 2011 Поделиться Опубликовано 4 Июня 2011 Igor88.89, именно. Кстати, можно и сразу "переодевать" NPC, используя эффект, например, кратковременного потемнения в глазах ГГ, или наоборот, яркой засветки (эффект телепорта), чтобы не было видно исчезновения/появления NPC. При "оживлении" трупов я такой эффект использую ... Ссылка на комментарий
dPlayer 502 Опубликовано 4 Июня 2011 Поделиться Опубликовано 4 Июня 2011 =VENOM=, однако там замена модели происходит быстро и на глазах ГГ. Я Собсно хотел сделать, чтобы нпс переодевался на глазах ГГ, а потом отыгрывал анимацию. (анимация, похлопывания по карманам, застёгивания ширинки, утряски одежды.) Ссылка на комментарий
=VENOM= 50 Опубликовано 4 Июня 2011 Поделиться Опубликовано 4 Июня 2011 Ну, это сделать совсем непросто, если вообще возможно: придётся создавать новые модельки сталкеров, с новыми анимациями, или прописывать новые анимации уже существующим. Вряд ли что выйдет ... Ссылка на комментарий
Kirag 39 Опубликовано 4 Июня 2011 Поделиться Опубликовано 4 Июня 2011 Да и класс у сталкера не вполне кровососовский. Это как бы не в движке с экскаватором копаться придется, чтоб смену моделей поддерживал... Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Ссылка на комментарий
RayTwitty 508 Опубликовано 4 Июня 2011 Поделиться Опубликовано 4 Июня 2011 (изменено) Всем привет. Вопрос: возможно ли, в ТЧ скриптами реализовать защиту от хим. заражения? Ну т.е. химзащиту как в ЗП, при употреблении препарата? Щас думаю только подменять костюм (или вешать арт) с улучшенными характеристиками химзащиты при использовании препарата... Но может есть что-то по лучше? Изменено 4 Июня 2011 пользователем Shadows Ссылка на комментарий
TRAMP14 1 Опубликовано 5 Июня 2011 Поделиться Опубликовано 5 Июня 2011 (изменено) Здравствуйте. В последнее время всё рассуждаю о невидимости. Хочу сделать духов зоны Но в связи с отсутствием установленного сталкера и малых знаний пишу сюда. Если заспавнить непися прямо перед ГГ и перевести его в оффлайн (беспонятия что это, но похоже что это отсутствие деятельности непися) то этот непись будет невидим визуально, но его местоположение, направление взгляда, снаряжение в конце концов можно отследить? Так? Или я всё неправильно понял? Изменено 5 Июня 2011 пользователем TRAMP14 Ссылка на комментарий
Kirag 39 Опубликовано 5 Июня 2011 Поделиться Опубликовано 5 Июня 2011 TRAMP14 НПС в оффлайне будет существовать весьма формально, как все объекты на других уровнях. В том смысле, что он, конечно существует, можно отследить его положение и инвентарь - но это только перебором всех объектов в игре. Вот только из оффлайна он не сможет взаимодействовать с объектами на уровнях - участвовать в бою, например, или находиться под какой-то схемой. Фактически, для геймплея его не существует. Так что сделать на оффлайне духов Зоны врядли получится. Невидимого НПС больше смысла делать на прозрачной модели - так он хотя бы в игре нормально участвовать будет. Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Ссылка на комментарий
amik 253 Опубликовано 5 Июня 2011 Поделиться Опубликовано 5 Июня 2011 (изменено) TRAMP14 Не пойму в чем у тебя проблема с не видимостью. С конфигом m_phantom.ltx (а точнее с теми моделями) знаком? Минуту нужно на то чтобы поменять шейдер и текстуру для модели нужного нпс. Kirag прав по поводу модели. Shadows Не знаю, возможно подойдет. Представляю скрипт Супер-Мега-Пупер Броника. Скрипт можно привязать к любому бронежилету, хоть к куртке новичка. Точнее, скрипт привязан к актору, где проверяется какой броник надет на ГГ. Если тот, что надо, то скрипт начинает работать. Особенности: 1. Текущее оздоровление до 0.8 единиц, при падении здоровья актора до 0.4 единиц. Оздоровление плавное, ~2 минуты игрового времени. Система текущего оздоровление ломается, при повреждении броника более чем на 0.6 единиц. 2. Экстренное оздоровление до 0.4 единиц, при падении здоровья актора до 0.2 единиц. Оздоровление мгновенное до 0.4 единиц. Далее действует текущее оздоровление. Система экстренного оздоровление ломается, при повреждении броника более чем на 0.4 единицы. 3. Система поддержки выносливости, более чем в 2 раза. При этом скорость восстановления сил замедленно, так же в 2 раза. Система поддержки выносливости ломается, при повреждении броника более чем на 0.3 единицы. При повреждении броника более чем на 0.7 единиц действует ухудшение выносливости (более быстрое падение сил). В этом случае советуется снять броник. 4. Индивидуальная система вывода оповещений о действиях и состоянии систем броника. Вывод сообщений производится в несколько ниже центральной части экрана. Каждое сообщение сопровождается звуковым зумом. При этом каждый тип сообщений имеет свой цвет. Я не буду подробно описывать, как работает данный скрипт. Это будет слишком муторно и мало понятно. Но некоторые комментарии в скрипте достаточно наглядно объясняют, где и какой код, за что отвечает. Итак начнём. Создаём файл super_outfit.script. И вписываем в нём такой код: ------------------------------------------------------------------- local med_obc = 0 --защёлка вывода информации о запуске текущего оздоровления local pred_med = 0 --защёлка вывода информации о повреждении системы текущего оздоровления local ekst_med = 0 --защёлка вывода информации о повреждении экстренного оздоровления local bron_tek = 0 --защёлка вывода информации о востановлении системы текущего оздоровления local bron_eks = 0 --защёлка вывода информации о востановлении системы экстренного оздоровления local pow_kras = 0 --защёлка вывода информации о повреждении и востановлении системы поддержки выносливости local tbl_news = {} --таблица текстовой информации local pow = 1 --переменная для запоминания предыдущего параметра выносливости. function update_nano() local actor = db.actor local bron = actor:get_current_outfit() if actor:alive() == true and bron and bron:section() == "outfit_exo_m1" then --здесь ставится имя броника local live_bron = actor:get_current_outfit_protection(9) --запуск текущего оздоровления if actor.health <= 0.4 and actor.health > 0.2 and med_obc == 0 then if live_bron > 0.4 then med_obc = 1 this.text_list(0) elseif pred_med == 0 then this.text_list(4) pred_med = 1 if bron_tek == 0 then bron_tek = 1 end end elseif med_obc == 1 and live_bron <= 0.4 and actor.health > 0.4 then this.text_list(4) med_obc = 0 --запуск экстренного оздоровления elseif actor.health <= 0.2 then if live_bron > 0.6 then actor.health = 0.2 this.text_list(3) if med_obc == 0 then med_obc = 1 this.text_list(0) else this.text_list(1) end elseif ekst_med == 0 then this.text_list(5) if pred_med == 0 then if med_obc == 0 then this.text_list(0) med_obc = 1 else this.text_list(1) end end ekst_med = 1 if bron_eks == 0 then bron_eks = 1 end end end --поддержка выносливости if live_bron > 0.7 then local pow_raz = pow - actor.power actor.power = pow_raz/1.1 pow = actor.power elseif live_bron < 0.3 then local pow_raz = pow - actor.power if pow_raz < 0 then actor.power = pow_raz/1.1 else actor.power = -(pow_raz/1.1) end pow = actor.power elseif live_bron <= 0.7 and pow_kras == 0 then this.text_list(8) pow_kras = 1 end --защёлки вывода информации о повреждениях систем броника if pred_med == 1 and actor.health > 0.4 then pred_med = 0 end if ekst_med == 1 and actor.health > 0.2 then ekst_med = 0 end --апдейт активных действий this.medic() this.bron_rem(live_bron) this.text_news() end end --текущее лечение function medic() if med_obc == 1 then db.actor.health = 0.0005 if db.actor.health > 0.8 then this.text_list(2) med_obc = 0 end end end --востановление ресурсов после ремонта броника function bron_rem(live_bron) if bron_tek == 1 and live_bron > 0.4 then this.text_list(6) bron_tek = 0 end if bron_eks == 1 and live_bron > 0.6 then this.text_list(7) bron_eks = 0 end if pow_kras == 1 and live_bron > 0.7 then this.text_list(9) pow_kras = 0 end end --список текстовых сообщений, и запуск соответствующих к ним звуковых сопровождений function text_list(typ) if typ == 0 then table.insert (tbl_news, 1, {'Запущен процесс текущего оздоравления!', 1000, 255, 255, 0}) elseif typ == 1 then table.insert (tbl_news, 1, {'Продолжается текущее оздоровление!', 1000, 255, 255, 0}) elseif typ == 2 then table.insert (tbl_news, 1, {'Текущее оздоровление завершено!', 1000, 0, 255, 0}) elseif typ == 3 then table.insert (tbl_news, 1, {'Произведено экстренное оздоровление!', 1000, 255, 255, 0}) elseif typ == 4 then table.insert (tbl_news, 1, {'Внимание! Система текущего оздоровления повреждена!', 1000, 255, 0, 0}) elseif typ == 5 then table.insert (tbl_news, 1, {'Внимание! Система экстренного оздоровления повреждена!', 1000, 255, 0, 0}) elseif typ == 6 then table.insert (tbl_news, 1, {'Система текущего оздоровления востановлена!', 1000, 0, 255, 0}) elseif typ == 7 then table.insert (tbl_news, 1, {'Система экстренного оздоровления востановлена!', 1000, 0, 255, 0}) elseif typ == 8 then table.insert (tbl_news, 1, {'Внимание! Система поддержки выносливости повреждена!', 1000, 255, 0, 0}) elseif typ == 9 then table.insert (tbl_news, 1, {'Система поддержки выносливости востановлена!', 1000, 0, 255, 0}) end if typ == 4 or typ == 5 or typ == 8 then this.sound_news(1) else this.sound_news(0) end end --вывод текстовых сообщений function text_news() local hud = get_hud() local tm = hud:GetCustomStatic("nano_news" ) if tm == nil then hud:AddCustomStatic("nano_news", true) tm = hud:GetCustomStatic("nano_news" ) end local tmv = '' for k,v in ipairs(tbl_news) do tmv = tmv.. string.format("%s\n", '%c[255,'..tostring(v[3]..','..v[4]..','..v[5]..']')..v[1]) if v[2] > 0 then v[2] = v[2] - 1 elseif v[3] ~= 70 or v[4] ~= 70 or v[5] ~= 70 then for j = 3, 5 do if v[j] > 70 then v[j] = v[j] - 1 elseif v[j] < 70 then v[j] = v[j] + 1 end end else table.remove (tbl_news, k) end end if tm ~= nil then tm:wnd():SetText(tmv) end end --звуковые сопровождения текстовых сообщений function sound_news(typ) local snd if typ == 1 then snd = xr_sound.get_safe_sound_object([[device\pda\pda_sos]]) else snd = xr_sound.get_safe_sound_object([[device\decoder]]) end snd:play(db.actor, 0, sound_object.s2d) end --сохранение данных function nano_save(packet) packet:w_u8(med_obc) packet:w_u8(pred_med) packet:w_u8(ekst_med) packet:w_u8(bron_tek) packet:w_u8(bron_eks) packet:w_u8(pow_kras) packet:w_u8(pow) end --загрузка сохранённых данных function nano_load(reader) med_obc = reader:r_u8() pred_med = reader:r_u8() ekst_med = reader:r_u8() bron_tek = reader:r_u8() bron_eks = reader:r_u8() pow_kras = reader:r_u8() pow = reader:r_u8() end ------------------------------------------------------------------------------------- Теперь открываем файл bind_stalker.script, находим функцию actor_binder:update(delta), и в теле функции вписываем апдейт нашего скрипта: super_outfit.update_nano() Затем, ниже находим функцию actor_binder:save(packet) и в конец тела функции вставляем вызов сохранения данных: super_outfit.nano_save(packet) Далее, ещё ниже находим функцию actor_binder:load(reader), и так же, в конец тела функции вставляем вызов загрузки данных: super_outfit.nano_load(reader) Теперь осталось создать виджет, для вывода оповещений. Для этого открываем файл config\ui\ui_custom_msgs.xml и добавляем новую секцию: <nano_news x="240" y="600" width="550" height="100" complex_mode="1"> <text font="letterica18" r="255" g="255" b="255" a="255" align="c"/> </nano_news> Вот в принципе и всё. Можно идти тестировать. Если у кого есть какие ещё соображения по нововведениям к супер-мега-пупер бронику, просьба писать в коментах. Изменено 5 Июня 2011 пользователем amik Мой архив Сталкером не занимаюсь. Ссылка на комментарий
TRAMP14 1 Опубликовано 5 Июня 2011 Поделиться Опубликовано 5 Июня 2011 (изменено) НУ единственное что пришло мне на ум - сделать непися в оффлайне и от его лица, с его позиций (это мне и нужно - сравнивать расстояние) наносить хит, и потом спавнить какую нибудь тряпку на его месте (мне труп не нужен, и удалять нежелательно). В таблицу его ид можно же записать и потом над ним работать? С онлайном\оффлайном не работал, прошу прощения за тупость вопросов Изменено 5 Июня 2011 пользователем TRAMP14 Ссылка на комментарий
Kirag 39 Опубликовано 5 Июня 2011 Поделиться Опубликовано 5 Июня 2011 TRAMP14 Насколько я понимаю, хит можно нанести просто с направления - в xr_effects, вроде, была такая функция. А если указывать draftsman-а, то нужен онлайн объект. Записать id в таблицу, ты конечно сможешь, а вот что с этим id делать - совсем другая история... Со спавном дряни на месте оффлайнового НПС - вообще непонятно. Он и так никуда не денется, пока его alife():release-ом не убрать. В общем, несколько непонятен смысл того, что ты хочешь сделать. Если нужен удар из ниоткуда, без возможности дать сдачи - так и НПС не нужен. Если нужна возможность дать сдачи, то на оффлайне ты ее не вдруг построишь, разве что скриптовую. Онлайновый НПС оффлайнового как врага все равно не воспримет. Да и вообще никак не воспримет. Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Ссылка на комментарий
dPlayer 502 Опубликовано 5 Июня 2011 Поделиться Опубликовано 5 Июня 2011 Kirag, Kirag, анимация ощупывания себя после переодевания/закрытия ширинки/осмотра своего тела есть. Я собственно говоря наткнулся на нее случайно и подумал, ведь зачем то её (довольно долгую и качественную) сделали. Не иначе чтобы после переодевания нпс проигрывать. Ссылка на комментарий
F.O.B.O 0 Опубликовано 5 Июня 2011 Поделиться Опубликовано 5 Июня 2011 Подскажите, пожалуйста, как создавать скриптовые меню (а-ля спальный мешок из amk), или ткните носом в инструкцию, если таковая имеется. Просто нужно создать небольшое меню с 10 кнопками. При нажатии на них выполняется скрипт. Заранее спасибо. Точка ЛЦУ у вас на лбу это тоже чья-то точка зрения. Ссылка на комментарий
Kirag 39 Опубликовано 5 Июня 2011 Поделиться Опубликовано 5 Июня 2011 Igor88.89 А то мы не о сталкере говорим Наверняка очередная недоделка/недорезка. Возможно, в каком-то из билдов такая функция преодевания и была. Но в релизе нет даже функции получения визуала - приходится через нет-пакеты читать, молчу уже про его смену (для кровососов - персонально функция про невидимость, но то для класса кровососа, и на вполне конкретный визуал). Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Ссылка на комментарий
Callisto 2 Опубликовано 5 Июня 2011 Поделиться Опубликовано 5 Июня 2011 Вопрос к знающим людям, возможно ли скриптами заставить НПС реагировать на дымовую гранату (например со слезоточивым газом)? Чтоб было поведение как во время выброса или ранненого НПС. Ссылка на комментарий
Painter 3 407 Опубликовано 6 Июня 2011 Поделиться Опубликовано 6 Июня 2011 (изменено) Доброго времени суток. Подскажите, возможно ли через скрипт заблокировать дверь кабинета Шульги? Если да, подскажите, пожалуйста, каким образом. Заранее спасибо. Изменено 26 Ноября 2019 пользователем Jurok Портфолио Ссылка на комментарий
Callisto 2 Опубликовано 6 Июня 2011 Поделиться Опубликовано 6 Июня 2011 С предыдущим вопросом сама так и не смогла разобраться, мозгов не хватило. Теперь возник новый вопрос: Решила попробовать отредактировать all.spawn, скачала acdc universal, устаноаила ActivePerl, все вроде работает (с чистой игры all.spawn рпспаковывается). Но немогу распаковать all.spawn из мода, выдает ошибку Как это исправить? Ссылка на комментарий
Sync 30 Опубликовано 6 Июня 2011 Поделиться Опубликовано 6 Июня 2011 (изменено) Callisto, файл acdc.pl кликнуть правой кнопкой, выбрать "изменить". Во второй половине перечисляются игровые объекты, в том числе и монстры. Добавь недостающего: zombie_immortal_2_weak => 'se_monster', Вроде бы, так. Изменено 6 Июня 2011 пользователем Sync Старый сюжет ТЧ - в топку! Ссылка на комментарий
Callisto 2 Опубликовано 6 Июня 2011 Поделиться Опубликовано 6 Июня 2011 (изменено) Sync, Спасибо вроде помогло, эту ошибку и подобные исправила. Но теперь вылазит новая непонятная ошибка Изменено 6 Июня 2011 пользователем Callisto Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти