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

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


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

2 Malandrinus: не могу удержаться от ответа: мылить веревку. ;)

Мне, кстати, очень понравилась та штука, которая вызывает срабатывание actor:level_border_enter() - в том смысле, что по факту в ТЧ работает только на свалке (причем там, где не надо) и нигде больше.

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

Схема всегда была гючной для толпы.

Вот рабочий кофиг для одного из этой толпы:

 

 

 

[9242]
; cse_abstract properties
section_name = stalker
name = radar_svoboda_reyd1
position = 576.033142089844,-52.8505744934082,-420.248352050781
direction = 0,0,0

; cse_alife_trader_abstract properties
money = 500
character_profile = radar_svoboda_reyd1

; cse_alife_object properties
game_vertex_id = 1868
distance = 9.10000038146973
level_vertex_id = 203363
object_flags = 0xffffffbf
custom_data = <<END
[smart_terrains]
none = true

[spawner]
cond = {+vitamin_reyd_zadan_start}

[logic]
active = walker

[walker]
path_walk = radar_svoboda_reyd1_walk
path_look = radar_svoboda_reyd1_look
on_info = {+vitamin_radar_bazar} karavan

[karavan]
close_dist = 3
near_dist = 10
faraway_dist = 40
close_state = guard
near_state = rush
faraway_state = sprint
wait_state = hide
look_on_actor = false
no_loot = true
radius = 1
combat_ignore_cond = {=fighting_dist_ge(40)} always
on_info = {+vit_radar_restr} walker1

[walker1]
path_walk = radar1_svoboda1_reyd1_walk
path_look = radar1_svoboda1_reyd1_look
END

; cse_visual properties
visual_name = actors\svoboda\stalker_sv_exoskeleton

; cse_alife_creature_abstract properties
g_team = 11
g_squad = 7
g_group = 0
health = 3
dynamic_out_restrictions =
dynamic_in_restrictions =

upd:health = 3
upd:timestamp = 0
upd:creature_flags = 0
upd:position = 576.033142089844,-52.8505744934082,-420.248352050781
upd:o_model = 0
upd:o_torso = 0,0,0
upd:g_team = 11
upd:g_squad = 7
upd:g_group = 0

; cse_alife_monster_abstract properties

upd:next_game_vertex_id = 65535
upd:prev_game_vertex_id = 65535
upd:distance_from_point = 0
upd:distance_to_point = 0

; cse_alife_human_abstract properties
predicate5 = 1,0,2,0,2
predicate4 = 0,2,1,2

; cse_ph_skeleton properties

upd:start_dialog =

; se_stalker properties

 

 

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

на health = 3 не смотрите, это вымысел :wub:

 

N. B. faraway_dist = 40  - типа своеобразного фриплей от ГГ

Изменено пользователем Arhara
  • Спасибо 1
  • Согласен 1
  • Полезно 1

Еще 10 лет таких цен, зарплат и пенсий, и вместо переписи населения будет перекличка

Ссылка на комментарий
Здравствуйте. Прошу помощи. Установил НС. Решил усложнить- теперь ГГ ест на 1.0 сытости в день, со временем здоровье не восстанавливается, увеличил

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

но на сайтах ничего не нашёл. Вроде за спавн аномалий и артов отвечает файл amk_anoms.script,  но что за что отвечает - не понял. Напишите, пожалуйста,

или дайте ссылку. С уважением, blackwings.

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

local level_arts = {} - вроде, все понятно там: минимум, максимум и вероятности для каждого вида по локациям. Появляются после каждого выброса.

 

С вероятностями там ошибка, кстати, в spawn_rand_arts()

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

Необходимо создать зону, в которую не будут заходить монстры определенного типа (в данном случае, крысы). Насколько я понимаю, для этих целей лучше всего подходят IN и OUT рестрикторы. Правда, в ТЧ они почти не используются, да и запрет в них стоит для любого типа НПС. Вот я создал в СДК рестриктор IN (я так понимаю, мне он нужен?). А дальше чего делать? Что-то писать в его логику или логику крыс на данном левеле?

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

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

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

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

 

 

Вот я создал в СДК рестриктор IN (я так понимаю, мне он нужен?

IN default restrictor - закроет вход всем мобам по умолчанию. А если нужно только крысам - то так как Карлан подсказывает: для рестриктора указать NONE default restrictor, а для крыс указать этот рестриктор в "Personal" -> in space restrictions(это в СДК) или dynamic_in_restrictions = ... в alife-файлах спавна.

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

 

 

local level_arts = {} - вроде, все понятно там: минимум, максимум и вероятности для каждого вида по локациям. Появляются после каждого выброса.

Спасибо большое.

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

 

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

 

сигнал в конце пути и по нему переводи его в другую секцию,
Ссылка на комментарий
В кастом_дате НПСа прописано:

[spawner]

cond = {-agr_krot_secret_info}

Следовательно, он будет заспавнен при НИ, а затем по выдаче инфо-порции уведен в офф-лайн. И затем всё остальное время будет сидеть в офф-лайне, бесполезно, но занимая один игровой ID ? Сделал поиск по "cond = {-", получил 72 результата в 10 файлах. Вроде и не много, но может все-же лучше удалять таких, после перевода в офф-лайн ?

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

@UnLoaded, в оригинале меньше 20% айди заюзано, дались тебе эти 72 (хотя их 73) :). Лучше то оно лучше, только не нужно (соотношение время/качество), если ты на скриптах всю популяцию держишь, то там да, а если гвоздями прибиваешь то и так сойдет. В любом случае ты же по 5т зон на каждой локе спавнить не собираешься, поэтому биться тут даже за тысячу я считаю маразмом, лучше от рестрикторов уж тогда чистить, как они себя отработали, но это все проще скриптами, а не заседать сутками в СДК.

Ссылка на комментарий
Еще вопрос вдогонку: если такой НПС в момент перевода в офф-лайн работал в гулаге, он так и останется на этой работе или будет снят с нее и выброшен из гулага ?
 
Несколько вопросов:
Что из того, что обычно прописывается в кастом_дате НПСов, можно вынести в указываемый там-же конфиг ?
Ну т.е. имеем:
[logic]
cfg = scripts\agr\agr_defector_stalker.ltx

[spawner]
cond = {-agr_krot_secret_info}

[smart_terrains]
none=true

[dont_spawn_character_supplies]

[spawn]
wpn_bm16
ammo_12x70_buck = 2

В agr_defector_stalker.ltx можно вынести всё остальное ?

 
По принятию неписей в гулаг, перемещение меж них и изгнание под собственную логику.
Если надо, к примеру, чтоб непись сначала ходил под собственной логикой, а затем по инфо-порции принимался в гулаг, как это прописать:
[smart_terrains]
наш_гулаг = {+инфо_порция}, а вот тут что ? none=true ? или never или еще как ?
Или вообще иначе ?
 
Если неписю прописано "наш_гулаг = true", он работает в нем, и в какой-то секции ему прописано
on_info = {+инфо_порция} nil
то получится, что непись будет изгнан с работы и из гулага ? Или только с работы ? И с учетом, что этот гулаг ему прописан - он тут-же опять будет принят на подходящую работу в этом гулаге ? Следовательно это плохой способ выгнать непися из гулага, и правильнее будет в [smart_terrains] это прописать ?
Изменено пользователем UnLoaded
Ссылка на комментарий

 

 

Еще вопрос вдогонку: если такой НПС в момент перевода в офф-лайн работал в гулаге, он так и останется на этой работе или будет снят с нее и выброшен из гулага ?

Это я уже не помню, там параметров фигова гора. Если он в оффлайне и прописан в этот гулаг, то он в нем числится в свойстве количества оффлайна, и работа ему разумеется не выдается, т.к. логика не работает. Выведи свойства гулага на метку например и сам посмотри, там все достаточно наглядно. Как я помню в свойствах есть текущее количество, зарезервированное количество (под работы) и общее количество (capacity) которое может вместить гулаг. Погляди xr_gulag.script, там все подробно описано.

 

 

 

В agr_defector_stalker.ltx можно вынести всё остальное ?

Да, разумеется можно, туда можешь что угодно вообще писать, скрипты парсят что им нужно по шаблонам, только и всего. Из кастом даты, а не из файла, так что все в порядке.

 

 

 

Если надо, к примеру, чтоб непись сначала ходил под собственной логикой, а затем по инфо-порции принимался в гулаг, как это прописать:

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

 

 

 

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

Как-то ты все запутанно описал. Там же вроде все как ясный день, логика просто занилится (уничтожится) на этой секции, разумеется в обоих вариантах (и в смартовской, и в персональной), непись будет под гулагом, но без работы (если сторонних ограничений у него нет то пойдет гулять). Надеюсь понятно объяснил. Т.о. из гулага ты его не выгонишь. Ему надо будет писать все равно none = {cond} true.

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

Да, разумеется можно, туда можешь что угодно вообще писать, скрипты парсят что им нужно по шаблонам, только и всего. Из кастом даты, а не из файла, так что все в порядке.

В файл логики-то писать можно что угодно. Только это движком восприниматься не будет :)

Та же секция [smart_terrains] читается исключительно из кастом-даты. Из файла логики не читается. Да по-моему и остальные секции из примера не читаются из файла логики.

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

@abramcumner, они же из spawn_ini() берутся. Я и написал, что из кастом даты.

Начальный вопрос был: Можно ли из кастом-даты вынести в файл логики некоторые секции. Ты ответил:

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

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

 

 

логика просто занилится (уничтожится) на этой секции ... непись будет под гулагом, но без работы (если сторонних ограничений у него нет то пойдет гулять)

Бррр :wacko2:, извиняйте, но ниче не понял.  Как-то не вяжется в моем понимании, как непись будет под гулагом и при этом пойдет гулять? И насчет "логика занилится на этой секции" - это типа работа гулага, в которой эта секция, будет отключена? И уже никто не будет принят на нее?

надо будет писать все равно none = {cond} true

 

На вики сказано, что none = true - это зарезервированное сочетание. Разве оно понимает кондлист ?

 

P.S. Насчет xr_gulag.script и того что там все подробно описано - не так просто там разобраться...


 

 

Та же секция [smart_terrains] читается исключительно из кастом-даты. Из файла логики не читается. Да по-моему и остальные секции из примера не читаются из файла логики.

А это можно поправить в скриптах, или в движок зашито ?

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

Есть ещё один метод, как вынести логику (будут читаться все секции) любого объекта во внешний конфиг:

custom_data = #include "scripts\my_path\my_name.ltx"<<END

как пример,
...
object_flags = 0xfffffff3
custom_data = #include "scripts\l01_escape\stalkers\esc_fox.ltx"<<END
story_id = 5

; cse_visual properties
visual_name = actors\stalker_neutral\stalker_neutral_suit_halfmask
...
Ссылка на комментарий

А это можно поправить в скриптах, или в движок зашито ?

А зачем править? кастом-дата свойство серверного объекта. Там где надо распределяют по смарт-терейнам работают с серверными объектами.

Логика - это клиентский объект.

 

Если хочешь все держать в одном файле, можно как выше написал h0N0r или как сделано в spawn_sections.ltx(в секции спавна можно задать custom_data).

 

Можно тогда мне пример?

Пример чего? Пример кастом-даты был в начальном сообщении. Пример, что секция смарт-террейнс не читается из файла логики был в этой теме раньше. Изменено пользователем abramcumner
Ссылка на комментарий

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

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

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

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

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

Войти

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

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

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