Перейти к контенту

[CoP] Ковыряемся в файлах


Halford

Рекомендуемые сообщения

Полтеры не подчиняются логике - улетают в рандомном направлении.

[smart_terrain];esc_polter_smart
squad_id = 6
max_population = 3
def_restr = esc_polter_smart_def_restr

[exclusive]
esc_polter_1 = escape\exclusives\esc_polters_logic.ltx
esc_polter_2 = escape\exclusives\esc_polters_logic.ltx
esc_polter_3 = escape\exclusives\esc_polters_logic.ltx

 

 

[logic@polters]
prior = 200
monster_job = true 

[mob_home@polters]
aggressive = true

[logic@esc_polter_1]:logic@polters
active = mob_home@esc_polter_1
suitable = {=is_monster_polter} true

[mob_home@esc_polter_1]:mob_home@polters
path_home = polter_home_walk_1
home_min_radius = 5
home_max_radius = 10

[logic@esc_polter_2]:logic@polters
active = mob_home@esc_polter_2
suitable = {=is_monster_polter} true

[mob_home@esc_polter_2]:mob_home@polters
path_home = polter_home_walk_2
home_min_radius = 5
home_max_radius = 10

[logic@esc_polter_3]:logic@polters
active = mob_home@esc_polter_3
suitable = {=is_monster_polter} true

[mob_home@esc_polter_3]:mob_home@polters
path_home = polter_home_walk_3
home_min_radius = 5
home_max_radius = 10

 

 

Я им и рестриктор в смарте указал. Не помогает. Из-за чего могут не поддаваться логике?

 

Ранее был известен под ником BoBaH_671.

Поделиться этим сообщением


Ссылка на сообщение

@warwer, у меня в скваде прописан target_smart, я немного не догоняю, что нужно сделать-то? Подробнее, пожалуйста. И это полтеры на 1 раз, так сказать, респавн мне не нужен.

Ранее был известен под ником BoBaH_671.

Поделиться этим сообщением


Ссылка на сообщение

 

 

%=create_squad(твой_сквад : имя_смарта)%

Так я и делаю. Через рестриктор. Вопрос заключается в том, почему они улетают за пределы установленных для них границ?

Ранее был известен под ником BoBaH_671.

Поделиться этим сообщением


Ссылка на сообщение

 

 

out_restr = имя_рестриктора

За радиус не улетает и остается в точке спавна. :nea:

Ранее был известен под ником BoBaH_671.

Поделиться этим сообщением


Ссылка на сообщение
@tan4ik75, если в смарте прописан респавн и условия, то да. А если создать смарт и сунуть в него сквад, после чего умертвить, то респавна не будет, разумеется. Почитай по этому поводу вики на сталкерине. Изменено пользователем warwer

Ранее был известен под ником BoBaH_671.

Поделиться этим сообщением


Ссылка на сообщение

Как можно ограничить движение камеры? Ну, например, стоит ГГ на какой-то снайперской позиции и повернуться назад нельзя, только на 90 гр., например. Реализуемо?

Ранее был известен под ником BoBaH_671.

Поделиться этим сообщением


Ссылка на сообщение
@aka_sektor, мой пример, видимо, оказался не очень удачным. Сидит в кресле, например, не по вернётся же он на 360 гр. Да и вообще в целом интересна реализация.
  • Нравится 1

Ранее был известен под ником BoBaH_671.

Поделиться этим сообщением


Ссылка на сообщение
@KitkaT.Net, %=spawn_object(секция:точка_пути)%, например. А для удаления существуют разные функции, да и для спавна тоже. См. xr_effects.script.
  • Нравится 1
  • Полезно 1

Ранее был известен под ником BoBaH_671.

Поделиться этим сообщением


Ссылка на сообщение

@KitkaT.Net, достаточно, если предметов не очень много, проверять так {=actor_has_item(section)} . И так несколько раз. Ну а если айтемов с десяток и больше, то лучше написать функцию для их проверки.

Изменено пользователем BoBaH_671
  • Полезно 1

Ранее был известен под ником BoBaH_671.

Поделиться этим сообщением


Ссылка на сообщение

@alex5773, см. smart_terrain.script:

local RESPAWN_IDLE = 1000   -- секунд игрового времени
  • Спасибо 1

Ранее был известен под ником BoBaH_671.

Поделиться этим сообщением


Ссылка на сообщение

Сколько уже мучаюсь с этим во всей трилогии. Наверно, решение элементарное? Как заставить непися сразу отыгрывать анимацию после перехода в remark из walker'а? Он постоит, руки потрёт и только потом отыгрывает...

Ранее был известен под ником BoBaH_671.

Поделиться этим сообщением


Ссылка на сообщение

С вопросом выше разобрался, перед сменой схемы вызывать:

 

 

local state_mgr = db.storage[npc:id()].state_mgrif state_mgr == nil then return end

local planner = npc:motivation_action_manager()

state_mgr.animation:set_state(nil, true)
state_mgr.animation:set_state() --set_control()
state_mgr.animstate:set_state(nil, true)
state_mgr.animstate:set_state() --set_control()

state_mgr:set_state("idle", nil, nil, nil, {fast_set = true})

state_mgr:update()
state_mgr:update()
state_mgr:update()
state_mgr:update()
state_mgr:update()
state_mgr:update()
state_mgr:update()

npc:set_body_state(move.standing)
npc:set_mental_state(anim.free)

Теперь такой вопрос. Есть отличия между on_timer и on_game_timer? Вот если запускать таймер реального времени, допустим, на 30 секунд и из этих 30-ти секунд игра зависает на несколько секунд, то время же идет все равно? Как в такой же ситуации с таймером игрового времени? Вот on_timer = 1000 - секунда реального времени. on_game_timer = 1 - секунда игрового времени.
Сколько нужно задать on_game_timer'у, чтобы значение было равно одной секунде реального времени?
 

 

on_game_timer = 1
Это будет 1 секунда игрового времени, а мне надо реального. Надо было сразу спросить проще: сколько реальных секунд в минуте игровог времени?
Изменено пользователем BoBaH_671

Ранее был известен под ником BoBaH_671.

Поделиться этим сообщением


Ссылка на сообщение

db.actor:has_info("инфопоршень")

return has_alife_info("info")

Можно и как предложил ты.

  • Нравится 1

Ранее был известен под ником BoBaH_671.

Поделиться этим сообщением


Ссылка на сообщение

С монстрами в ЗП почти не работал, потому спрошу: как направить сквад монстров атаковать смарт сталкеров? mob_walker с точками пути рядом с нужным смартом или можно проще? Монстров более десятка и для каждого делать по точке... Есть еще варианты?

 

Вопрос снят, допёр. Поставил смарт монстров рядом со смартом сталкеров, а самих монстров заспавнил подальше и сделал им логику mob_home...

Изменено пользователем BoBaH_671

Ранее был известен под ником BoBaH_671.

Поделиться этим сообщением


Ссылка на сообщение

Можно как-то отловить зависание? Просто есть катсцена, в которой по истечению таймера в нужный момент запускается эффект fade_in_out, но может быть так, что из-за зависаний таймер срабатывает раньше и всё идёт не так. Как при зависании сделать, чтобы зависали и таймеры? Реально вообще? Или какой-то другой способ. Отловить на какой секунде камера, например. Лучше, конечно, последний вариант.

Ранее был известен под ником BoBaH_671.

Поделиться этим сообщением


Ссылка на сообщение

@CiBrAiKeR, в alife.ltx нельзя, наверно. А вот в _g.script в функцию start_game_callback или как ее там, можно сунуть функцию с рандомизацией времени при старте, думаю.

Ранее был известен под ником BoBaH_671.

Поделиться этим сообщением


Ссылка на сообщение

@KitkaT.Net, воспользуйся %=spawn_object_in(section_item:section_obj)%. Ну ты понял, я думаю. Первое значение - айтем, который спавнить, второе - в кого спавнить.

  • Полезно 1

Ранее был известен под ником BoBaH_671.

Поделиться этим сообщением


Ссылка на сообщение

Попробуй-ка:

return character_community(db.actor) == "dolg" 

Ну группировку уже по своим нуждам пишешь.

 

По второму вопросу тебе сюда. См. схемы camper\sniper.

Изменено пользователем BoBaH_671
  • Полезно 1

Ранее был известен под ником BoBaH_671.

Поделиться этим сообщением


Ссылка на сообщение

 

 

Как вообще сделать используемый предмет?

Открой items.ltx, там юзабельные предметы. По аналогии сделай свой.

Ранее был известен под ником BoBaH_671.

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...