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

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


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

Поясню: нужно, чтобы НПС палили по реальным врагам, но не срывались в движковый бой, а именно, палили во врагов, не перемещаясь. Может, не совсем правильно объяснил. Нужно, чтобы они отвлекали внимание вражин на себя. Возможно такое? Или я уже перемудрил и есть что-то попроще?

Сталкер - наше всё!

Ссылка на комментарий
чем стандартный скрипт для снайперов не нравится ?

В принципе мне кажется тем, что снайпера вроде только одиночными стреляют. Хотя в случае использования дробовика оно и пофиг.

Кстати можно попробовать и настройку  внутри схемы 

out_restr= <имя_рестра>,

чтобы непись не убегал с позиции.

Изменено пользователем _Val_
Ссылка на комментарий

 

 

Кстати можно попробовать и настройку внутри схемы out_restr= <имя_рестра>, чтобы непись не убегал с позиции.

Так ему сначала надо туда прийти. Он войдет в этот рестриктор? Или сначала прийти, потом переключить логику, где будет задействован рестриктор? Наверно, так будет проще.

 

Неплохо бы примерчик посмотреть.

Сталкер - наше всё!

Ссылка на комментарий

 

 

Он войдет в этот рестриктор?

Для запрещения входа применяется настройка 

in_restr =

Неплохо бы примерчик посмотреть.

 

Не...пулемет я вам не продам...

С учетом того, что сам бы я таки использовал схему снайпера.

Так ему сначала надо туда прийти.

 

Не, ну это же вообще можно сделать как угодно.

Допустим...

Шляется непись по базе в волкере_1.

По поршню переходит в волкер_2, точка пути которого находится на позиции. Одна точка и он как миленький туда прибежит.

А по прибытию в точку по сигналу прибытия из олл_спавна переключается в схему снайпер.

Ссылка на комментарий

Схема снайпера наверное оптимальна будет. Там непись кемперится, сканирует точки look и одиночными шарахает. А на определенном расстоянии уже в движковый бой уходит. В ЗП легче - там смарткаверы есть...

  • Согласен 1
Ссылка на комментарий

AndrewMor

Из ЧН (configs\scripts\marsh\mar_csky_tutorial_man.ltx),

[logic]

active = walker@wait

 

[walker@wait]

path_walk = mar_tutorial_man_walk

path_look = mar_tutorial_man_shoot

 

[mar_tutorial_man_shoot]

p0:name = wp00|a=hide_fire - принудительная анимка стрельбы (из state_lib.script), в указанную ниже позицию

p0:position = -295.453704833984,0.787685990333557,20.4697418212891

 

combat_ignore_cond = true

on_actor_dist_le_nvis = 50 | camper@wait %=actor_enemy% - делаем гг врагом

meet = no_meet

 

Для теста бота в режиме боя

[camper@wait]

path_walk = mar_tutorial_man_walk

path_look = mar_tutorial_man_look

meet = no_meet

radius = 0 - это нужно проверять, судя по скрипту - радиус < которого начинается движ.бой (def - 20)

def_state_moving = sneak

def_state_moving_fire = sneak_fire

def_state_campering = hide

def_state_campering_fire = hide_fire

 

 

Обязательно к изучению - http://stalkerin.gameru.net/wiki/index.php?title=Настройка_логики._Часть_1#.D0.A1.D1.85.D0.B5.D0.BC.D0.B0_camper

  • Полезно 2
Ссылка на комментарий

Как-то так короче - навскидку.

Проверять нет никакого желания, как и мясо наращивать на схемы...

[smart_terrains]
none = true


[logic]
active=walker@agro_1,{+vrag_blizko}walker@agro_2,{+agro_sniper_1_mesto}camper@agro_sniper_1


[walker@agro_1]
path_walk = agro_1_walk
path_look = agro_1_look
meet = meet
danger = danger_condition
on_info = {+vrag_blizko}walker@agro_2


[walker@agro_2]
path_walk = agro_2_walk
path_look = agro_2_look
meet = meet
danger = danger_condition
on_signal = agro_2_mesto | camper@agro_sniper_1 %+agro_sniper_1_mesto%


[camper@agro_sniper_1]
sniper = true
def_state_campering = threat_na
radius = 100
path_walk = agro_sniper_1_walk
path_look = agro_sniper_1_look
no_move = true

@h0N0rпринудительная анимка стрельбы , это одно...

А человек хочет конкретики...

 
нужно, чтобы НПС палили по реальным врагам

 

 

Игроки у нас совсем не дураки. С полпинка просекутЪ, что непись тупо стреляет в одну точку.

Изменено пользователем _Val_
Ссылка на комментарий

Ковыряю OLR. Тотально заменяю старые\билдовские текстуры новыми аналогами. Добрался до "Свалки" - на кучах мусора вроде как юзается текстура grnd_dry_iov:

7378631m.jpg

Но увы и ах, ее замена не влияет на внешний вид объектов на которые она "натянута". Может кто знает, у нее есть аналоги или копии в других папках?


Упс... После сессии мозги совсем не варят. Данный пост должен находится в разделе вопросов о ТЧ. Просьба модераторам перенести его.

Изменено пользователем Stalker_AleX333
Добавлено warwer,

Сообщение перемещено.

aka Stalker_AleX333
 
Мои проекты  - ЯндексДиск   |   Я на Gamer-Mods.ru

Ссылка на комментарий

 

 

Шляется непись по базе в волкере_1. По поршню переходит в волкер_2, точка пути которого находится на позиции. Одна точка и он как миленький туда прибежит. А по прибытию в точку по сигналу прибытия из олл_спавна переключается в схему снайпер.

Я так примерно и думал.

Сталкер - наше всё!

Ссылка на комментарий

Подскажите, уже крыша едет. Суть дела: есть рестриктор, при входе в который должно показываться сообщение о большой радиации (стандартное, из чистой игры), при выходе - убираться. Причем я уже это делал, и все работало. Щас стал делать заново - ни в какую не хочет показываться. Причем рестриктор исправно отрабатывает вход и выход актора.

 

Логика рестриктора:

[logic]


active = sr_idle

[sr_idle]
on_actor_inside = %=show_static%
on_actor_outside = %=hide_static%

 

 

Функции в xr_effects.script:

function show_static()
local hud = get_hud()
hud:AddCustomStatic("cs_radiation_danger", true)
hud:GetCustomStatic("cs_radiation_danger"):wnd():SetTextST("st_radiation_danger")
end

function hide_static()

 local hud = get_hud()

 hud:RemoveCustomStatic("cs_radiation_danger")
end

 

 

Упорно нет сообщения. Вопрос - почему?

Сталкер - наше всё!

Ссылка на комментарий

@AndrewMor, Может так попробуй.

 

xr_effects.script:

 

 

function show_static()
local hud = get_hud()
local static_rad = hud:GetCustomStatic("cs_radiation_danger")
if static_rad == nil then
      hud:AddCustomStatic("cs_radiation_danger", true)
      hud:GetCustomStatic("cs_radiation_danger"):wnd():SetTextST("st_radiation_danger")
end

end

function hide_static()
local hud = get_hud()
local static_rad = hud:GetCustomStatic("cs_radiation_danger")
  if static_rad ~= nil then
       hud:RemoveCustomStatic("cs_radiation_danger")
  end
end

 

 

Изменено пользователем TIGER_VLAD
Ссылка на комментарий

 

 

Упорно нет сообщения. Вопрос - почему?

Ну, похоже потому, что этот статик "движковый", если так можно сказать. Т.е. для него движково заблокированы часть\все методы UI-классов. Ну, тот самый расклад, из-за которого статики худа, для того чтоб убрать, двигают координатами в конфиге за пределы экрана, вместо ...:Show(false).

Сделай в том-же xml-е где и cs_radiation_danger копию с него, с другим именем. Подставь это имя в свой код - все отлично заработает.

Ссылка на комментарий

 

 

AndrewMor, Может так попробуй.

И так пробовал - результат нулевой.

 

 

 

Ну, похоже потому, что этот статик "движковый", если так можно сказать. Т.е. для него движково заблокированы часть\все методы UI-классов. Ну, тот самый расклад, из-за которого статики худа, для того чтоб убрать, двигают координатами в конфиге за пределы экрана, вместо ...:Show(false). Сделай в том-же xml-е где и cs_radiation_danger копию с него, с другим именем. Подставь это имя в свой код - все отлично заработает.

В том-то и дело, что работало прекрасно. Буквально функция, и в ней всего две строки. И никакой статик не движковый, он из бинд_сталкер прекрасно вызывается. Просто делаю то же самое - не хочет отображаться, и все.

 

Но попробую, конечно, вдруг прокатит? :)

Сталкер - наше всё!

Ссылка на комментарий

Подскажите пожалуйста, с какими параметрами заспавнить объект на уровне вечный (нельзя разрушить) и который нельзя двигать.

[my_obj]:identity_immunities
class  = ???? O_PHYS_S|P_SKELET - все можно двигать в присяде актором...
remove_time = ????? 999999 - тоже конечное время...
Ссылка на комментарий

 

 

с какими параметрами заспавнить объект на уровне вечный (нельзя разрушить) и который нельзя двигать.

У меня спавнится стол, его секция:

[stol_esc]:identity_immunities
GroupControlSection = spawn_group
discovery_dependency = 
$spawn = "physics\stol_esc_technic"
visual = physics\stol\stol_6.ogf -- модель должна иметь кость для фиксации, с именем "link"
class = O_PHYS_S
cform = skeleton
remove_time = 10000 -- насчет этого параметра спрашивал, пояснили, что для физических неразрушаемых объектов он не обрабатывается(но быть должен).

Собственно ф-ция спавна:

local ser_obj = alife():create("stol_esc",vector():set(-196.05,-19.49,-135.23),56184,36)
if ser_obj then
----- фиксируем объект после спавна -----
local pk = m_netpk.get(ser_obj) -- здесь m_netpk, это модуль для работы с нет-пакетами от Artos
if pk and pk:isOk() then
local data = pk:get()
if data then
data.fixed_bones = "link"
pk:set(data)
end
end
end

В результате имеем стол, который не сдвигается актером(ГГ) даже с разбегу.

 

 

 

Есть ли функция проверки в какой группировке находится актёр?

Я уже вроде писал Вам:

db.actor:character_community()

у меня результат: "Одиночка".

  • Спасибо 1
  • Нравится 1
Ссылка на комментарий

@UnLoaded, еще кастом дату надо написать, что-бы не гудел. К тому же есть экспортированный класс для работы с фиксацией костей, только там тоже есть свои тонкости, но всеже лучше работать с ним.

Ссылка на комментарий

 

 

К тому же есть экспортированный класс для работы с фиксацией костей, только там тоже есть свои тонкости, но всеже лучше работать с ним.

Это Вы про:

local pshell = obj:get_physics_shell()
if pshell then 
local element = pshell:get_element_by_bone_name("link")
if element then
element:fix()
....

Так ведь тут фиксация будет только до первого сэйв\лоад. Какой смысл в ней ?

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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