Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Настройка логики (часть 1).doc
Скачиваний:
7
Добавлен:
30.10.2018
Размер:
142.85 Кб
Скачать

3.2.5.1. Схема sniper

Разновидность кемпера. Отличаются тем, что стреляют только одиночными выстрелами и не смотрят по точкам патрульного пути, а сканируют пространство между ними. Скорость сканирования от точки к точке фиксирована и равна 20сек. Внимание! Ставить снайперу только 2 точки look.

В кастом дате кемпера прописать: sniper = true

Файл: \gamedata\scripts\xr_camper.script

3.2.6. Схема follower

В custom_data прописан как follower. NPC идет за NPC лидером. Если до лидера расстояние менее 5 метров, то он идет, если от 5 до 20 – бежит в режиме run, если свыше 20 – догоняет в режиме sprint. Пути не задаются.

[follower]

  • leader = ... - story_id лидера из game.ltx (число!).

  • formation_line = true - постарается идти сбоку от лидера, в противном случае будет идти сзади.

  • distance = ... - расстояние в метрах, на котором будет идти от лидера attendant. По умолчанию – 1,5 метра, если идет цепью, то 5 метров.

  • state_if_leader_in_meet - это есть строка с именем состояния из state_manager, которое будет назначено follower'ам, если командир пребывает в состоянии meet.

  • anim_walk = state - состояние, в котором фолловер идет за лидером.

  • anim_run = state - состояние, в котором фолловер бежит за лидером.

  • anim_sprint = state - состояние, в котором фолловер спринтует за лидером.

Файл: \gamedata\scripts\xr_ attendant.script

Если все это происходит под гулагом, то вместо story_id лидера, мы прописываем его секцию логики в файле скрипта. Пример:

t = { section = "logic@bar_arena_follower_2",

idle = 0,

prior = 7, state = {0}, squad = squad, group = groups[0],

in_rest = "", out_rest = "",

dependent = "logic@bar_arena_leader",

predicate = function(obj)

return obj:character_community() == "dolg"

end

}

3.2.7. Схема zoneguard

NPC есть две зоны (может быть одна). Он ходит по путям, но когда игрок заходит в зону, отрывает от дел, подбегает к игроку, наставляет на игрока оружие (может кричать, может говорить), если игрок заходит во вторую зону – атакует игрока

[zoneguard]

  • path_walk = ... - путь перемещения

  • path_look = ... - путь обзора

  • team = ... - имя команды синхронизированных zoneguard-ов (из всей команды только 1 будет реагировать на игрока)

  • zone_guard = ... - имя зоны, в пределах которой игрок будет атакован

  • zone_warn = ... - имя зоны, в пределах которой начинать разговор с игроком

  • walker_team = ... - team для схемы перемещения его в состоянии walker (если не задан, используется значение из поля team)

  • no_move = ... - если true, персонаж окликнет игрока с места и не будет подбегать к нему

  • snd_greet = ... - имя звуковой схемы, из которой будет проигран звук при обнаружении персонажа

  • ignore_friends = ... - true - будет игнорировать дружественных ему персонажей.

  • ignore_cond = {+info -info =func !func} - условия, при которых NPC игнорирует игрока

  • no_danger = ... - если true, то не отыгрывает угрожающую анимацию, нейтралам.

  • anim = ... - какую отыгрывает анимацию, если игрок ему не враждебен.

  • snd_anim_sync = ... - если true, то npc будет синхронизировать звук с анимацией

Файл: \gamedata\scripts\xr_zoneguard.script