Stalker как изменить машину
Прописал Ниву, прописал в файлик config\misc\item.ltx ключи от неё таким образом:
;;;;;;;;;;;;—ключи от нивы—;;;;;;;;;;;;
[niva_keys]:identity_immunities
GroupControlSection = spawn_group
discovery_dependency =
$spawn = «devices\quest_items\niva_keys»
> cform = skeleton
visual = equipments\item_minipda.ogf
radius = 1
description = item_niva_key
inv_name = item_car_key
inv_name_short = item_car_key_s
inv_weight = 0
inv_grid_width = 1
inv_grid_height = 1
inv_grid_x = 11
inv_grid_y = 23
cost = 0
Прописал в файл config\creatures\vehicles.ltx ,в блоке»Нивы» строчку вида :
custom_data = scripts\niva_data.ltx.
Ясно, после этого — создал сам файл config\scripts\niva_data.ltx, с содержимым :
[logic]
active = ph_car
[ph_car]
usable =
Добавил в info_l01escape.xml требующуюся инфопорцию:
А дальше интересно: активировать проверку наличия у ГГ ключей додумался так: внедрил в скрипт escape_tasks.script с опросом инфопорций свои строки:
function proceed()
local actor = db.actor
if not has_alife_info(«tutorial_artefact_start») and
not has_alife_info(«tutorial_artefact_gain») and
actor:object(«af_blood_tutorial»)
= nil
then
actor:give_info_portion(«tutorial_artefact_gain»)
end
————————moi_mod———————
if not has_alife_info(«actor_has_niva_key») and
actor:object(«niva_keys»)
= nil
then
actor:give_info_portion(«actor_has_niva_key»)
—news_manager.send_tip(db.actor, «find_keys_info»)
end
if actor:object(«niva_keys»)== nil then
actor:disable_info_portion(«actor_has_niva_key»)
end
—————————————————-
. и далее по оригиналу.
(закомментил сообщение о находке ключей ,так как оно является нам каждый раз после любой ближайшей загрузки уровня — не доработал:)
Получилось в итоге вот что: актёр нашёл(купил) ключи ,сел в машину и поехал, а потерял или выбросил (продал, пропил и т.д.) — внутрь не попасть, как ни пытайся.
В моём моде: На Кордоне у майора Кузнецова(под мостом) спавнится «Нива» и забытые на ящике с выпивкой — ключи от неё. ГГ платит подвыпившим военным за проход ,и тут же ,подобрав ключи, садится в машину и исчезает,оставив майора со товарищи в большом(сравнительно) убытке.
Второй вариант: Всё то же самое, только военные соображают быстро и открывают огонь на поражение,лишь только актёр садится в «Ниву».Хотя — если не тормозить — и тут успеваешь свинтить.
Сие реализовано так:
сама Нива спавнится мной прямо за мостом:
function spawn_niva()
alife():create(«vehicle_niva», vector():set(58.205856,-2.393073,189.756988),345171,98)
— ключи среди водки и закуски:
alife():create(«niva_keys», vector():set(61.393852,-0.143696695,154.954849),349686,97)
end
в файле info_l01escape.xml акция «открыть огонь» привязана к сообщению Торговца об удачном пересечении ж\д насыпи(при условии, естественно, что герой взял чужие ключи):
— родная часть
esc_modify.kill_thief — добавлено
— родная часть
, т. е. добавлена ссылка на несуществующий пока скрипт esc_modify и функцию в нём kill_thief.
скриптовая часть(scripts\esc_modify.script):
function kill_thief()
if has_alife_info(«actor_has_niva_key») then
db.actor:give_info_portion(«esc_bridge_pass_fire»)
end
end
Логично вот что: если ГГ не взял ключи(или взял, но спохватился и выбросил), то в спину ему никто не стрельнет, однако и машину уже не угнать.
Как добавлять транспорт «Ручками»
Так, в этом обучении я вас научу добавлять транспорт уже скачаный вами. Например вы скачали машину додж, но не знаете как её добавить. Ссылка на эту машину: rghost.ru/2048621
Начнем.
В вашей папке должны находиться файлы:
Формата DDS (текстуры)
Формата LTX (конфиг)
Формата OGF (модель)
Ну и звуки (ogg) иногда нет.
1)Работа с папкой meshes
Начнем с моделей.
Создаем папку под именем meshes, открываем её и создаем еще папку под именем physics, а в ней папку vehicles.
В созданой нами конечной папке будут храниться все новые машины.
Создадим папку под именем dodge и кинем туда модель в формате ogf.
С meshes закончили.
2)Работа с текстурами
В скачаном архиве у нас будут текстуры под именемами:
veh_dodge ; текстура, покрывающая тело машины
veh_dodge_dash ; текстура, покрывающая приборную доску.
veh_dodge_engine ; текстура, покрывающая ведомый двигатель.
Создадим в каталоге с папкой meshes папку textures, а в ней папку veh.
Откроем созданую папку и вставим туда все текстуры ( файлы формата DDS).
Все, с этим закончили.
3) Работа с config
В каталоге с папками textures и meshes создадим папку config, а в ней папку models, а в ней vehicles.
Туда вложим файл в формате LTX. Как его изменять напишу позже.
Все с конфигом покончено.
В папке config создаем папку misc. И в нем создаем текстовый документ в формате ltx., назовем его к примеру vehicles.
Открываем его и пишем следуещее:
[dodge] GroupC spawn_group $spawn= «vehicles\dodge\veh_godge» SCRPTCAR cform = skeleton visual =physics\vehicles\dodge\veh_dodge.ogf actor_visual= physics\vehicles\dodge\veh_dodge.ogf ef_equipment_type= 3 ph_mass = 100000 script_binding = bind_physic_object.init ————————————————-Для новичков————————————————- [dodge] GroupC spawn_group $spawn = «vehicles\dodge\veh_godge» class = SCRPTCAR cform = skeleton visual =physics\vehicles\dodge\veh_dodge.ogf actor_visual = physics\vehicles\dodge\veh_dodge.ogf ef_equipment_type = 3 ph_mass = 100000 script_binding = bind_physic_object.init Это что не знаю и совсем не используется Класс используемой модели, по умолчанию SCRPTCAR Форма построеной модели, по умолчанию skeleton Сама модель. Тут указываем путь к модели формата OGF. Засчет кокого скрипта работает. НЕ ТРОГАТЬ Название для спавна в скрипте
Далее лезем в файл system.ltx (достаем из распакованный геймдаты. Распологается в папке config).
#include «misc\respawn.ltx» #include «creatures\spawn_sections.ltx» ; Extra Content #include «extracontent.ltx» #include «localization.ltx» И после этого вписываем наш регистрационный файл: Код:
Все машина разложена и готова к спавну через скрипт.
Название для спавна в функции скрипта берем из регистрационного файла.
Машины в Сталкер: ТЧ — как покататься и где достать?
Всем привет, дорогие друзья. Рад вас видеть! Тема сталкера не угаснет, наверное, никогда, да и сама ТЧ вряд-ли потеряет свою аудиторию в ближайшее время.
Машины есть в огромном количестве пользовательских модификаций, но не все знают, что и в оригинальном ТЧ тоже можно на них покататься. Для этого придется скачать «повелитель зоны» (кроме одного БТР, на котором можно покататься прямо в ванильном ТЧ совсем без модификаций, но о нем — в конце статьи).
Система транспорта
Скорее всего, ее просто не успели закончить к релизу, и решили вырезать. В прочем, в игре остались все ее наработки, у которых, правда, есть несколько нюансов:
- Машины временами имеют неадекватную физическую модель. Игрока может буквально придавить машиной при выходе из нее, либо машина превратится в снаряд сразу после спавна. Не самый страшный баг.
- Попадая на машине в аномалию, как герой, так и автомобиль будут получать урон. Не буду говорить про прочность машин — она, скорее всего, у всех машин одинаковая (утверждать не буду), и Нивы, или ЗАЗа хватает всего на три проезда по «Жарке». Если машина теряет весь запас прочности — она взрывается, однако игрок урона практически не получает.
- Автомобили в игре имеют очень хорошую устойчивость к огнестрельным ранениям, снять весь запас прочности просто расстреливая машину, конечно, выйдет, но для этого понадобится как минимум пара тысяч патронов.
- Несмотря на устойчивость к огнестрельному оружию, машины очень быстро ломаются в аномалиях, а также при столкновениях. В прочем, КАМАЗ, трактор и БТР при столкновениях прочности практически не теряют. Скорее всего, это просто недоработка.
- Для взрыва любой машины достаточно всего одной гранаты. Исключение — БТР. Кроме того, из машины можно кидать гранаты. Стрелять из огнестрела, увы, не выйдет.
Какие бывают машины в Сталкере?
Сейчас на экране вы видите скриншоты из Повелителя Зоны и игры. Машин в игре всего 6, включая БТР и КАМАЗ, которых нет на фото.
Так как же ездить на БТРе?
Начинаем все с поиска БТРа. Единственный экземпляр, на котором я это тестировал, был вот этот замечательный БТР с локации ЧАЭС.
Нам нужно подбежать к нему, нажать клавишу F с определенного ракурса, чтобы ГГ попал в салон. Чтобы добиться успеха — встаньте примерно около второго колеса с левой стороны БТРа, примерно как на картинке. Сразу предупреждаю — получится далеко не с первого, второго или третьего. Я потратил 20 минут, пока мой ГГ наконец не захотел залезть в БТР.
Далее нам нужно привести эту махину в движение. БТР стоит на ручнике, нажимаем пробел, чтобы снять его с ручника. Далее заходим в консоль (буквой Ё, думаю, сами знаете), и вводим эту команду: Bind turn_engine k [кнопка, на которую вы поставите «завести двигатель]. Я пропускаю этот шаг, поскольку у меня установлен повелитель зоны, и клавишу я могу назначить прямо в настройках.
Теперь на БТРе уже можно прокатиться. В оригинальном ТЧ без всяких модов. Если не знал, то. Теперь знаешь)
Но окна нам, конечно, заботливо закрыли. Мы можем передвигаться, ориентируясь по миникарте, однако можно сделать вид от третьего лица. Для этого вводим bind cam_3 k[кнопка], после нажатия на которую, мы будем наблюдать нас в БТРе от третьего лица.
Кстати, не забудь подписаться на нашу группу ВК со статьями, смешными картинками, а также обсуждениями и криворуким оператором.
Ну и на этом, пожалую, все. Спасибо за внимание, если статья была интересной — не забудь поставить лайк и подписаться на канал. До скорого!
Подробный разбор файла actor.ltx
Настройка актёра. Написано by Rekongstor.
Путь к нужному файлу: /userdata/savedgames/user_quicksave.dds/user_quicksave.sav
Открываем в Notepad++ в верхнем меню нажимаем «Синтаксис» — «L» — «Lua»
И изменим весь блок десятью строчками ниже так:
max_item_mass = 999 ; Стоит указывать значения меньше параметра max_walk_weight (см.выше).
jump_speed = 60 ; Высота прыжка. Не указывайте астрономические значения. Гл. герой всё равно не улетит в космос ))
crouch_coef = 1 ; Скорость ползагия «очень сидя» (Ctrl + Shift по умолчанию)
climb_coef = 2 ; Вроде присев (Ctrl)
run_coef = 3 ; Обычный бег с параметром консоли «g_always_run» равным 1
sprint_koef = 4 ; спринт
run_back_coef = 3 ; бег назад
walk_back_coef = 2 ; ходьба назад с клавишей Shift
air_control_param = 1 ; контроль полёта. Выгоден при высоких значениях jump_speed, т.к. можно быстро перемещаться по карте
walk_accel = 17 ; неизвестный параметр
pickup_info_radius = 5 ;радиус, в котором над предметами выводятся их названия при нажатии клавиши «F».
Далее параметры 3d и т.п. смотрим поэтому дальше.
camera_height_factor = 0.85 ; определяет высоту взгляда. Увеличиваем и игрок станет зрительно выше
disp_base = 0 ;угол (в градусах) разлета пуль, когда актер стоит на месте
disp_aim = 0
disp_vel_factor = 0 ;на сколько увеличится дисперсия при скорости в 10 м/с (не обязательно при беге)
disp_accel_factor = 0 ;еще на сколько увеличится, если актер бежит (+ скорость)
disp_crouch_factor = 0 ;уменьшение если актер сидит
disp_crouch_no_acc_factor = 0 ;уменьшение если актер сидит + no acceleration
Чтобы уменьшить размер прицела можно сделать так.
Дальше увидим секцию [actor_immunities_gd_***] (вместо *** нужный ранг)
Чтобы увеличить живучесть — меняем значение ниже.
burn_immunity = 0.0
strike_immunity = 0.0
shock_immunity = 0.0
wound_immunity = 0.0
radiation_immunity = 0.0
telepatic_immunity = 0.0
chemical_burn_immunity = 0.0
explosion_immunity = 0.0
fire_wound_immunity = 0.0
Дальше видим [actor_condition]
И настройка в лучшую сторону будет таковой:
satiety_v = 0 ;скорость уменьшения сытости со временем
radiation_v = 1 ;скорость уменьшения радиации
satiety_power_v = 1 ;увеличение силы при уменьшении сытости
satiety_health_v = 1 ;увеличение здоровья при уменьшении сытости
satiety_critical = 0 ;критическое значения сытости (в процентах от 0..1) когда здоровье начинает уменьшаться
radiation_health_v = 0 ;уменьшение здоровья при воздействии радиации
morale_v = 1 ;скорость восстановления морали
psy_health_v = 1 ;скорость восстановления psy-здоровья
alcohol_v = -1
health_hit_part = 0 ;процент хита, уходящий на отнимание здоровья
power_hit_part = 0 ;процент хита, уходящий на отнимание силы
max_power_leak_speed = 0 ;накопление усталости (макс граница, до которой восстанавливается сила) в секунду игрового времени
max_walk_weight = 1000 ; Вес, при котором игрок не может двигаться. Указать можно любое значение.
bleeding_v = 0 ;потеря крови при номинальной ране в секунду
wound_incarnation_v = 1 ;скорость заживления раны
min_wound_size = 0 ;минимальный размер раны, после которого она считается зажившей
min_wound_size,satiety_v,satiety_power,satiety_health,satiety_critical,alcohol_v можно было и не настраивать, если вам нужно бессмертие
Будем настраивать выносливость.
Назодим строку «jump_power»
Меняем так, чтобы игрок никогда не уставал, разве что если нацепит на себя 5 огненных шаров ))
jump_power = 0 ;умешьшение силы с прыжком без учета веса ноши
jump_weight_power = 0 ;умешьшение силы с прыжком с учетом веса ноши, для максимального допустимого веса
overweight_jump_k = 1 ;коэффициент влияние перегрузки прыжок с весом (умножается на jump_weight_power)
stand_power = 0
walk_power = 0 ;умешьшение силы за секнду во время ходьбы без учета веса ноши
walk_weight_power = 0 ;умешьшение силы за секнду во время ходьбы с учетом веса ноши, для максимального допустимого веса
overweight_walk_k = 1 ;коэффициент влияние перегрузки ноши (умножается на walk_weight_power)
accel_k = 1;коэффициент на бег (умножается walk_power, walk_weight_power)
sprint_k = 1 ;коэффициент на «sprint» бег (умножается walk_power, walk_weight_power)
Значения с комментом «коофициент» и значениями более 1 (необязательно) рекомендую менять на 1.
limping_health_begin = 0 ;порог здоровья меньше которого актер начинает хромать
limping_health_end = 0;порог здоровья больше которого актер перестает хромать
limping_power_begin = 0 ;порог силы меньше которого актер начинает хромать
limping_power_end = 0 ;порог силы больше которого актер перестает хромать
cant_walk_power_begin = 0 ;порог силы меньше которого актер не может двигаться
cant_walk_power_end = 0 ;порог силы больше которого актер сможет двигаться
cant_sprint_power_begin = 0 ;порог силы меньше которого актер не может бежать в спринте
cant_sprint_power_end = 0 ;порог силы больше которого актер сможет бежать в спринте
Дальше идут кости, работающие в 3d, и их тоже можно менять, чтобы уменьшить уязвимость, но пока их настройка не столь нужна. Я лишь скажу, что нужно настраивать 1 (первый) параметр. Чем меньше, тем лучше.