[SoC] Ковыряемся в файлах - Страница 295 - Скрипты / конфиги / движок - AMK Team
Перейти к контенту

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


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

vavilov8

пост malandrinus'a #202

Читайте внимательно тему справочник по функциям и классам.

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

Хочу сделать, чтобы на локациях постоянно велись перестрелки. Чтобы нпс и монстры часто спавнились. Подскажите способы как это можно сделать. Я всё время путаю спавн и респавн. К примеру лагерь новичков. Они иногда респавнятся. Но в алл.спавн я респавнера для их класса не нашёл. И респавнятся они через долгое время. А мне надо быстрее. Можно ли спавнить нпс через такую функцию, чтобы вызывалась через опредёлённые промежутки времени?

mma - а ты тему "редкого спавна" от Колмогора почитай. Авось поможет ;) (в мастерской).
Но в алл.спавн я респавнера для их класса не нашёл

Найдите в all.spawn смарт с именем "esc_lager", там в customdata есть ссылка на этот респавн.

Полтергейст, но ведь там ссылка на респавн вещей в ящике. А я говорю про людей.

Лучше я напишу, что хотел сделать и что у меня получилось.

1. Я хотел, чтобы на локах постоянно кипела жизнь, велись перестрелки и прочее. Для этого я их просто очень густо заселил.

Сделал я это так: открыл алл.спавн и начал копировать секции. К примеру бандитов. Я брал их секции, копировал, ничего не менял, кроме номера. Получалось, что они имели тот же профиль, класс и т.д. И вот я загружаю игру. Кругом стрельба, война. Но когда все друг друга перебьют, я перехожу на другие локации, а когда возвращаюсь на Кордон, людей там маловато. Я же хочу, чтобы они респавнились как можно скорее.

У новичков в лагере класс "esc_stalker_novice". Для такого класса респавнера я не видел. Но ведь они после смерти потом вновь появляются. Зато есть респавнер для класса "sim_stalker_novice"

 

 

Вообщем, как мне сделать так, чтобы мои новые нпс и монстры, после смерти, через время, вновь спавнились? И стоит ли в их кустомдатах прописывать гулаг? Или лучше пусть под движком ходят? А то я читал, что нпс респавнятся только тогда, когда приписаны к гулагу и там освобождаются работы. Я поменял вместимость всех гулагов на 100, но это не помогает.

создал я смарт лагеря, мне надо чтоб НПС проигрывал анимацию "стоин у столика" как в баре, в логике смарта даже намека на анимации нет

mma, изменить вместимость мало, нужно для этих мест еще и работы дописывать, чего, как понял я, ты не сделал. А респавн и правда зависит от наличия свободных работ гулага на уровне. Еще посмотри файлы в папке misc, а именно: smart_terrain_presets.ltx, general_lager.ltx и general_lair.ltx.

 

Batment, а при чем тут логика смарта!? Посетители в баре, причем на сколько мне известно - все, не под смартом там стоят, у них своя логика в кустом дате, вот напримар, логика охотника:

[smart_terrains]
none = true

[logic]
active = walker

[walker]
path_walk = bar_bar_visitor_hunter_walk
path_look = bar_bar_visitor_hunter_look
soundgroup = bar_visitors1
meet = meet
danger = danger_ignore
on_info = {+bar_bar_hunter_quest_finish} walker@2

[walker@2]
path_walk = bar_bar_visitor_hunter_walk
path_look = bar_bar_visitor_hunter_look_1
soundgroup = bar_visitors1
meet = meet
danger = danger_ignore


[danger_ignore]
ignore_distance = 0

[meet]
use = true
use_wpn = true
meet_talk_enabled = true
meet_state = ward

 

Изменено пользователем Куфзук

Batment

Можно использовать логику remark, в которой в параметре anim задать одну из анимок бармена:

bar_head, bar_fas, bar_sleep, bar_right, bar_left и т.д.

На обычном NPC точно работает анимка bar_sleep - NPC будет стоя спать, положив голову на руки. Остальные проверь сам.

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

Возможно ли сделать для артефакта полосу состояния, т.е "спелось артефакта" при уроне артефакта или при длительном ношении, чтобы артефакт портился?

(Ну как у брони допустим)

Если можно, то как?

Колбэки? Или как-то проще можно сделать?

Изменено пользователем Куфзук

Привязываешь значение изношености к полоске и вешаешь на апдейт, как-то так. В НЛС6 вроде бы как артефакты имеют "состояние целостности", глянь там.

Изменено пользователем Куфзук

Gonarh,

 

физ.обьект легко на счет костра не уверен

юзаемый балон

алл спавн

 

[117]

; cse_abstract properties

section_name = physic_object

name = trader_physic_object0007

position = -250.935073852539,-24.7987232208252,-135.995330810547

direction = 0,4.36330795288086,0

 

; cse_alife_object properties

game_vertex_id = 0

distance = 0

level_vertex_id = 594270

object_flags = 0xfffffffa

custom_data = <<END

[collide]

ignore_static

 

[logic]

cfg = scripts\esc_balon.ltx

END

 

; cse_visual properties

visual_name = physics\balon\balon_01

 

; cse_ph_skeleton properties

skeleton_name =

 

; cse_alife_object_physic properties

physic_type = 0x3

mass = 10

 

 

логика

 

[logic]

active = ph_idle

 

[ph_idle]

tips = tip_bolon

on_use = %=функция из хр ефект% уменя ГГ Засыпает

 

function функция из хр ефект()

sleep_manager.sleep_three_hours()

end

пробовал и родные функции из хр ефект такие как

function yan_gluk (actor, npc)

function x18_gluk (actor, npc)

все работает

в string_table_ui.xml что будет написанно ну и сам tip_bolon

</string>

<string id="tip_gate_locked">

<text>Ворота заблокированы</text>

</string>

<string id="tip_gate_open">

<text>Нажмите ($$ACTION_USE$$) для того, чтобы открыть ворота</text>

</string>

<string id="tip_monolith">

<text>ЗАГАДАТЬ ЖЕЛАНИЕ ($$ACTION_USE$$)</text>

</string>

<string id="tip_bolon">

<text>ля ля юзни меня ($$ACTION_USE$$)</text>

</string>

</string_table>

 

Ну и при юзе срабатывает функция

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

Может кто подсказать-какой параметр отвечает за отдачу у НПС? Ато вооружил непесей FN FALами а они первые две пули в цель остальные ствол задирает и палит в воздух как полоумный.

 

Сообщение от модератора Cyclone
cam_relax_speed_ai и zoom_cam_relax_speed_ai

 

Cyclone а какие примерно значения надо ставить? В конфигах этот параметр не прописан.

 

Просто дописывай рядом с основными и ставь например, = 360

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

Народ, подскажите плз, в каком билде неписи умеют хромать? И есть ли моды, возвращающие эту схему?

Всем привет. Делаю небольшой аддон для мода Восстановление старого сюжета. Хотелось бы чтобы после уничтожении бтра на кордоновский блокпост прилетал вертолет, как в амк моде. Что и сделал, заспаунил вертолет в all.spawn, добавил ему логику -

[logic]

active = heli_move@idle

 

[heli_move@idle]

path_move = heli_blockpost_idle_move

engine_sound = false

on_info = {=gulag_casualities_ge(esc_blokpost:8)} heli_move@fly, {+esc_btr_killed} heli_move@fly

combat_safe_altitude = -50

 

[heli_move@fly]

path_move = heli_blockpost_fly

engine_sound = true

combat_enemy = actor

combat_use_rocket = true

combat_use_mgun = true

rocket_delay = 3000

combat_safe_altitude = -70

on_timer = 120000 | heli_move@retreat

 

[heli_move@retreat]

path_move = heli_blockpost_idle_move

engine_sound = true

combat_use_rocket = false

combat_use_mgun = false

combat_safe_altitude = -50

on_timer = 120000 | heli_move@stop

 

[heli_move@stop]

path_move = heli_blockpost_idle_move

engine_sound = false

 

 

Все тоже самое проделал с бтром. Прописал в info_l01escape инфопоршень esc_btr_killed. Но после уничтожения бтра вертолет не прилетает. Уже все перепробовал, ноль. Подскажите пожалуйста что забыл? Заранее благодарен за ответ.

Roman82, а что именно проделал с БТРом и прилетает ли вертолет, если потери гулага esc_blokpost составляют более восьми человек?

Roman82, условия в логике у тебя странные конечно...

[logic]

active = heli_move@idle

 

[heli_move@idle]

path_move = heli_blockpost_idle_move

engine_sound = false

on_info = {=gulag_casualities_ge(esc_blokpost:8) +esc_btr_killed} heli_move@fly

combat_safe_altitude = -50

 

[heli_move@fly]

path_move = heli_blockpost_fly

engine_sound = true

combat_enemy = actor

combat_use_rocket = true

combat_use_mgun = true

rocket_delay = 3000

combat_safe_altitude = -70

on_timer = 120000 | heli_move@retreat

 

[heli_move@retreat]

path_move = heli_blockpost_idle_move

engine_sound = true

combat_use_rocket = false

combat_use_mgun = false

combat_safe_altitude = -50

on_timer = 120000 | heli_move@stop

 

[heli_move@stop]

path_move = heli_blockpost_idle_move

engine_sound = false

 

Куфзук

Также поставил бтр через all.spawn, вписал ему в логику -

[logic]

active = ph_car@idle

on_hit = hit

 

[hit]

on_info = %+esc_blockpost_alarm%

 

[ph_car@idle]

target=actor

fire_range=110

fire_repeat=50

auto_fire=true

track_target=true

on_info = {=gulag_casualities_ge(esc_blokpost:5)} ph_car@eliminate, {+esc_blockpost_alarm} ph_car@eliminate

on_death_info = esc_btr_killed

 

[ph_car@eliminate]

target=actor

fire_range=150

fire_repeat=50

auto_fire=true

track_target=true

on_info = {+esc_blockpost_normal} ph_car@idle

on_death_info = esc_btr_killed

 

 

Все. И при убийстве восьми человек не прилетает.

Спасибо всем большое за ответы. Буду пробовать дальше.

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

iDreD, это смотря чего ты хочешь добиться, в твоем случае вертолет прилетит, если потери гулага на блокпосте будут более восьми человек И выдан инфопоршень esc_btr_killed.

 

Roman82, не уверен, что секция death работает таким образом, но давай проверим. Пропиши так:

on_death_info = %+esc_btr_killed%

, если не сработает перепиши логику так:

[logic]

active = ph_car@idle

on_hit = hit

on_death = death

 

[hit]

on_info = %+esc_blockpost_alarm%

 

[death]

on_info = %+esc_btr_killed%

 

[ph_car@idle]

target=actor

fire_range=110

fire_repeat=50

auto_fire=true

track_target=true

on_info = {=gulag_casualities_ge(esc_blokpost:5)} ph_car@eliminate, {+esc_blockpost_alarm} ph_car@eliminate

 

[ph_car@eliminate]

target=actor

fire_range=150

fire_repeat=50

auto_fire=true

track_target=true

on_info = {+esc_blockpost_normal} ph_car@idle

 

 

Изменено пользователем Куфзук

Нет. Не получается. В чем же может быть проблема? Вот секции бтра и вертолета в аллспаун -

[899]

; cse_abstract properties

section_name = helicopter

name = esc_heli2

position = -150.729080200195,-40.1031475067139,-620.886474609375

direction = -1.41131033615238e-006,-1.29239809513092,1.70586758940772e-007

 

; cse_alife_object properties

game_vertex_id = 11

distance = 0

level_vertex_id = 128298

object_flags = 0xffffffba

custom_data = <<END

[logic]

cfg = scripts\esc_blockpost_heli.ltx

END

 

; cse_visual properties

visual_name = physics\vehicles\mi24\veh_mi24_u_01

visual_flags = 0x1

 

; cse_motion properties

motion_name = helicopter\aaa.anm

 

; cse_ph_skeleton properties

skeleton_name = idle

 

; cse_alife_helicopter properties

cse_alife_helicopter__unk1_sz = idle

engine_sound = alexmx\helicopter

 

 

[896]

; cse_abstract properties

section_name = m_car

name = esc_btr

position = -155.729080200195,-30.1031475067139,-358.886474609375

direction = -1.41131033615238e-006,-1.29239809513092,1.70586758940772e-007

 

; cse_alife_object properties

game_vertex_id = 33

distance = 0

level_vertex_id = 94106

object_flags = 0xffffffba

custom_data = <<END

[logic]

cfg = scripts\esc_blockpost_btr.ltx

END

 

; cse_visual properties

visual_name = physics\vehicles\btr\veh_btr_u_01

visual_flags = 0x1

 

; cse_ph_skeleton properties

 

; cse_alife_car properties

health = 1

 

 

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

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

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

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

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

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

Войти

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

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

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