Как в своей миссии сделать Вид от 3 лица и аркадный прицел?

Как это сделать. Помогите пожалуйста!!!

Все это лучше всего делать только в entities.blk.

Вид от 3 лица можно сделать изменив camNames у бойцов.

base_soldier{
  _override:b=yes

  "camNames:array"{
    camNames:t="melee_tps_cam"
  }
}

После этих изменении у бойца будет всегда вид от 3ого лица. Если нужно чтобы во время прицеливания возвращался вид от 1ого лица, то вероятно лучше всего использовать shooter_tps_cam, если есть желание изменить положение камеры, то нужно будет добавить отдельный blk файл с координатами местоположения камеры. Но сначала нужно указать путь к нему.

melee_tps_cam{
  _override:b=yes

  shooter_cam__blk:t="%ugm/camera.blk"
}

Отдельный файл: camera.zip (308 байтов)

Если нужно, чтобы у техники тоже был вид от 3ого лица, то меняем tank_camera_setup, bike_camera_setup (для мотоциклов) и ship_camera (для лодок).

bike_camera_setup{
  _override:b=yes

  "camNames:array"{
    camNames:t="dev_tps_cam"
  }
}

base_vehicle{
  _override:b=yes

  "camNames:array"{
    camNames:t="dev_tps_cam"
  }
}

base_tank{
  _override:b=yes

  "camNames:array"{
    camNames:t="dev_tps_cam"
  }
}

tank_camera_setup{
  _override:b=yes

  "camNames:array"{
    camNames:t="dev_tps_cam"
  }
}

ship_camera{
  _override:b=yes

  "camNames:array"{
    camNames:t="dev_tps_cam"
  }
}

yak_1_early{
  _override:b=yes

  "camNames:array"{
    camNames:t="plane_tps_cam"
  }
}

У самолетов нету общего объекта, так что придется каждому менять камеру. В коде была изменена камера для yak_1_early.

В списке Create Entity (All) можешь найти и другие камеры и попробовать их. Координаты и пару прочих моментов можно изменить только редактируя blk файл, но некоторые фишки как анимации от 1ого лица только внутри объекта-камеры в виде свойств. Далеко не все камеры имеют все свойства.


Прицел можно добавить просто изменив свойство ui_crosshair_state__debugForceCrosshair.

crosshair{
  _override:b=yes
  ui_crosshair_state__debugForceCrosshair:b=yes
}
4 лайка

А где найти entities.blk ?

1 лайк

Копируешь scene и меняешь название на entities, а далее чистишь код (Ctrl + A для выделения всего кода). И пишешь свой. Более подробно про entities можешь узнать в неофициальном гайде, шестой раздел (Если что вместо _extends уже используется _use).

1 лайк

У меня получилось поменять камеру пока проверял только в редакторе как отключить инверсию?

1 лайк

работает почемуто только в редакторе

1 лайк

Камера или отключение инверсии? Похоже, что зря я не проверил работоспособность в мультиплеере. Далеко не все вещи будут работать в мультиплеере. Хотя камера, вроде, должна.

1 лайк

Камеры в мультиплеере нет

1 лайк

А, я забыл добавить isTpsView:b=no у shooter_tps_cam. А еще я ошибся и с камерами для техники. Обновил старое сообщение. Инверсия остается в технике, во время стрельбы из своего оружия. Вероятно можно поправить это все, используя копию камеры melee_tps_cam с измененным положением камеры.

Сейчас проверил и изменение камер работают у меня.

1 лайк

А как в рандомном ящике сделать так что бы он выдавал патроны для оружия без zombie в названии ато оружие даёт а патроны нет

И в камере от 3 лица инверсии теперь нет только когда бежишь

И еще вопрос, а можно ли как то сделать что то типо фонарика для бойца?

Много вопросов конечно, но как сделать кастомного зомби с выбранным оружием

Лучше всего сделать отдельный объект оружия. Либо обновить имеющийся. Более подробно тут: Как сделать зомби режим?

Но можно попробовать прописать +gun_with_initial_ammo_test к оружию (если что будет 4-5 магазина, даже у пулеметов с 100 патронов).

Не знаю. В общем не вижу проблем использовать melee_tps_cam с измененным положением камеры (zoomedIn с нулями). Инверсия у меня только во время использования своего оружия в технике, но я особо и не менял камеры техники. Если что прошлое сообщение обновил и добавил про base_vehicle и base_tank, чтобы и у БТР был вид от 3ого.

За инверсию и прочее отвечают свойства в камерах (например тот же isTpsView включает её). Их можешь найти в properties panel и менять их, а после проверять в редакторе.

Дыаа… Тут все сложнее. Все зависит от того какой фонарик тебе нужен. Самый простой способ - это прикрепить источник света к чему-то.

attached_light_source{
  _use:t="base_vehicle_decor"
  _use:t="base_spot_light"

  light__brightness:r=1.00
  light__color:c=175,165,155,255
  light__force_max_light_radius:b=yes
  spot_light__inner_attenuation:r=0.1
  spot_light__dynamic_obj_shadows:b=yes
  spot_light__shadows:b=yes

  animchar__res:t="sg_8498_III_bayonet_char"
  animchar_render__enabled:b=no
}

И добавляем этот код к оружию или к чему-то еще.

  "attach_decorators__entities:list<eid>"{
  }

  "attach_decorators__templates:array"{
    "attach_decorators__templates:object"{ // <- Тело для одного прикрепленного объекта.
      relativeTm:m=[[-1, -8.74229e-08, -2.71219e-06] [8.74254e-08, -1, 8.74231e-08] [-2.7122e-06, 8.74228e-08, 1] [1.9653e-07, -0.25778, -0.0137571]] // <- Координаты. 1-3 блока матрицы - вращение.
      template:t="attached_light_source" // <- Объект.
      nodeName:t="bayonet_attach" // <- Место куда прикрепляем (можно увидеть используя skeleton.debug команду).
    } // <- Не забываем закрыть тело.
  }
  • base_vehicle_decor позволяет изменить положение объекта в редакторе, а так же уничтожает объект, если объект-создатель был уничтожен. Чтобы изменить положение прикрепленного объекта нужно сделать:
    • Открываем свойства основного объекта, после перемещения прикрепленного (рекомендуется перемещать рядом с нулевой координатой, а то иногда сдвигается).
    • Находим attach_decorators__template. Убираем любой символ, подтверждаем изменения и возвращаем назад.
    • Сохраняем сцену. В файле scene можем найти код с attach_decortators__template и перемещаем relativeTm в код объекта. Удаляем объект/код в файле сцены.

Одна из проблем.



Данное свойство отвечает за крепления оружия на спине/в определенных точках (например slot_weapon_1). Тут вероятно надо будет поломать его и сделать так, чтобы в итоге выходил -1. Иначе говоря использовать несуществующий слот. Хотя в итоге могут быть сообщения об ошибках.

Смотря какого зомби. Без оружия - вряд ли. С оружием - просто меняем human_weap__weapTemplates (тип данных - object, содержит информацию про оружие) и human_weap__weapInfo (тип данных - array, а внутри object, в них патроны и предметы).


После этого надо будет изменить human_weap__template_deps_list (тип данных - list<t>) и прописать в нем патроны и предметы.

Код будет выглядеть как тут:

 "human_weap__weapTemplates:object"{
    primary:t="mp40_gun"
    secondary:t=""
    tertiary:t="p38_walther_gun"
    melee:t="knife_weapon"
    grenade:t="grenade_thrower"
  }

  "human_weap__weapInfo:array"{
    "weapInfo:object"{
      reserveAmmoTemplate:t="mp40_magazine"
      numReserveAmmo:i=4
    }

    "weapInfo:object"{}

    "weapInfo:object"{
      reserveAmmoTemplate:t="p38_walther_magazine"
      numReserveAmmo:i=3
    }

    "weapInfo:object"{}

    "weapInfo:object"{
      reserveAmmoTemplate:t="m24_grenade_item"
      numReserveAmmo:i=1

      "additionalReserveAmmoTemplates:array"{ //Дополнительно еще и аптечку.
        item:t="medkit_item"
      }

      "additionalNumReserveAmmos:array"{
        item:i=1
      }
    }
  }

  _group{
    _tags:t="server"

    "human_weap__template_deps_list:list<t>"{
      tmpl:t="mp40_magazine"
      tmpl:t="p38_walther_magazine"
      tmpl:t="m24_grenade_item"
      tmpl:t="medkit_item"
    }
  }

А его в волну можно как-то добавить?

Туда что угодно можно добавить, меняя entity_spawner__waves. В теории даже спавн пустой техники и предметов. Но это в теории. Как минимум точно надо будет им тэг добавить.

А к лицу или поясу бойца можно?

В волну же надо прописывать название зомбика а как его найти

Нельзя нормально прикрепить к тем объектам, у которых нету точек (например декору техники). К game_rendinst можно, но нужно будет дать ему расширение animchar и свойство animchar_res.

Прикрепляет к конкретной точке у анимчара. Если она будет двигаться, то объект с ней.

А тут вращение (1-3 блока матрицы) и смещение от прикреплённой точке.

В zombie_spawn_mode расписаны волны. В панели свойств есть вкладка:

А, неправильно прочел. Название зомби - это название объекта. Их можно найти в Create Entity.