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

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


Halford

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

 

 

Юрик игнорирует разговоры и идет в сторону лагеря бандитов у бетонных плит

Накосячено в логике и диалогах Юрика. Однозначно....

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


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

 

 

То есть своей конкретной логики у него нет, как например у Сидоровича

Как это нет ? Просто логика для всей Темной долины прописана в скрипте gulag_dark_valley.script, использовано динамическое заполнение ltx-конфига. Там и Борову все прописано, для всех трех состояний, предусмотренных для бандитского гулага...

  • Согласен 2

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


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

Такой вот вопрос: при хэд-шотах НПСы частенько помирают со всякими смертными изречениями\стонами. А это не логично... Можно как-то побороть ? В какую сторону смотреть\копать ?

state_manager.script, но не нужно. Овчинка выделки не стоит. dc

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

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


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

Не 100% утверждаю, но видимо смотреть логику, в которой прописана "юзабельность" трупов и править параметры, отвечающие за доступность инвентаря и таскание...

P.S. сразу признаюсь, что не знаю где эта логика запрятана. А может ее вообще нет - и это зашито в двигло...

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


Ссылка на сообщение
Мне нужно конкретному кровососу со 100% вероятностью добавить в труп челюсть

Вопрос в догонку: а если попробовать сделать запчасть квестовым предметом и прописать в all.spawn в инвентарь монстру ? Не знаю только - а есть инвентарь у монстра пока он жив ?

 

 Лучше спавн челюсти прописать в логике этого кровососа в on_death

 

 А детч_менеджер не подчистит ?

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

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


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

Зарегистрируй и\п walker_3_start, и преключайся из [remark] в [walker3]:

[walker1]
 

[remark]

on_info = {+walker_2_start} walker2
on_info2 = {+walker_3_start} walker3

 

[walker2]

отсюда по какому-то условию возвращаемся в [remark], перед этим дисаблим walker_2_start

[walker3]

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

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


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

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

on_info = {+ info1} walker@next

on_info2 = {+ info2} walker@next

какой первее будет выдан - тот и переключит логику...

  • Спасибо 1

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


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

@Ахмед

Сначала инициализируем необходимый звук, как-то так:

local snd_eat = xr_sound.get_safe_sound_object(".................")

Затем в use_collback проверяем, что съели нужный хавчик и проигрываем ранее заготовленный звук:

snd_eat:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0)

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


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

 

 

проще так: В конфиге предмета писать use_sound = ...\...\....ogg

попробовал для колбасы:

так - use_sound = "interface\inv_detach_addon.ogg"

и так - use_sound = interface\inv_detach_addon.ogg

в обоих случаях прописанный звук не проигрывается. Чет не так написал ?

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


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

 

 

Пиши так: use_sound = interface\inv_detach_addon

эффект тот-же - не воспроизводится звук. Похоже Вы напутали с use_sound, видимо в ТЧ этот параметр конфига не работает.


 

 

ему нужно создавать отдельное место в этом гулаге, или он никуда не уйдет?

Если в логике прописано сидеть и не рыпаться - не уйдет. И пофиг в каком гулаге ему это прописано...

Посмотри пример с Шустрым на АТП на Кордоне(оригинал).

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


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

@AndrewMor

Правкой соответствующих данных нет-пакета объекта при спавне. Подробнее, к примеру в ридми к модулю нет-пакетов от Artos

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


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

 

 

Проблема в том, что не все патроны спавнятся после смерти

Примерчик бы... Приведи конкретные данные из какого-то character_desc_#.xml и что потом в инвентаре у НПСа.

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


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

@Gaz24

Попробуй заменить ammo_5.45x39_fmj = 1 на  .... = 2. Возможно, единственная пачка расходуется на зарядку автомата, когда Волк спавнится\выходит он-лайн ?

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


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

 

 

[esc_way_if_reject] За что они отвечают? Для чего нужны?

Связаны с переходами между локаций. Вот фрагмент из alife_l01_escape.ltx:

; cse_abstract properties
section_name = level_changer
name = exit_to_garbage_01
position = 29.34641456604, 16.5561962127686, 686.241638183594
direction = 0, 0, 0
id = 65535
version = 118
script_version = 6
spawn_id = 2233

; cse_alife_object properties
game_vertex_id = 0
level_vertex_id = 3978
object_flags = 0xffffff3e
custom_data = <<END
[pt_move_if_reject]
path = esc_way_if_reject
END
story_id = 34

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


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

path_walk = walk_task

чет тут подозрительно, попробуй так:

center_point = camp_center

path_walk = camp_center_task

может я и не прав, но везде в оригинальных кодах от ПЫСов path_walk именуют как center_point + _task

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

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


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

Wolokodav

в аллспавне за это отвечает (stories_id=число )

С чего это вдруг ? В ф-ции утсановки метки используется id объекта, который никакого отношения ни к allspawn ни к story_id не имеет.

 

после которого этот нпс появится??

Точно так.

 

 Карлан

Зачем же так мозг вопрошавшему выносить, еще и с учетом того, что он не очень разбирается в вопросе ? Судя по Вашему пояснению, вы для установки метки использовали level.map_add_object_spot, метка которого сохраняется только до первого сэйв\лоад. А достаточно было использовать level.map_add_object_spot_ser и никаких описанных Вами заморочек.

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

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


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

{снесено лишнее. dc}
 

Объясните мне,_возможно ли заспавнить мутанта через скрипт,_чтобы к нему можно было прицепить файл логики?

Ответов, в общем, два:
1) Если ты имеешь в виду, для заспавненного скриптом моба, прописать ему логику так как это можно сделать в allspawn:

custom_data = <<END
[logic]cfg = scripts\ля-ля-ля.ltx
END

то для этого юзаем нет-пакеты(самый удобный вариант - модуль от ARTOS'а).
2) Если ты имеешь в виду, что-бы после скриптового спавна, взять моба\ов под логику - определи в нужном гулаге работу, на которую будут приняты именно нужные по твоей задумке мобы(условия - какие твоя душа пожелает, примеров море в оригинальных скриптах), и(или) опять-же, при необходимости, через нет-пакет пропиши им этот самый гулаг.
 
P.S. И вообще, в нынешнее время, с учетом существующих средств работы с нет-пакетами, напрягаться вопросом "как после скриптового спавна, сделать что-то, что ранее можно было прописать только в allspawn" как-то неуместно... или от большой лени, поискать ответ.

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

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


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

@Mass

Имею маленькое уточнение: схему "remark" нельзя назначать первой активной, если в ней не прописан path_walk. Если на нее переключаться уже из других схем - проблем быть не должно.

 

P.S. Это кстати отменяет "скопипастеное" утверждение о том, что категорически нельзя назначать схему "remark" первой активной. Прописать путь - и нет проблем.

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

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


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

Вопрос по заданиям(task): активное задание можно выполнить - ...._complete, можно провалить - ...._fail, а можно ли его отменить ? Что-бы оно не попало ни в выполненные ни в проваленные ?


Прочитал статью на Вики "SoC. Respawn", возникли такие вот вопросы по работе стандартных респавнеров:
1).

Цифры после запятой, означают отношение одной секции к другой
respawn_section = ....._respawn_1,10, ....._respawn_2,5

т.е на 10 НПСов первой секции будет 5 второй ?

 

2).

max_count = колличество респавн-запросов за период времени, пока ГГ находится на локации. При переходе на другую

локацию, счётчик max_count сбрасывается.

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

 

3).

min_count = минимальное количество нпс, для экстренного респавна

имеется в виду принудительный респавн с использованием %=respawner_spawn(имя респавнера)% ?

 

4).

idle_spawn = тип спавна. Известно три типа medium, often, seldom. Обычно, используется тип medium

Статья 2011 года - может уже есть больше подробностей по типам респавна ?

 

5). ф-цию respawner_spawn(имя респавнера) можно юзать не только из логики ?

 

6).

conditions =Условие респавна

они применяются к max_spawn или к max_count ?

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


Ссылка на сообщение
По респавну надо смотреть конкретный скрипт...

А лазили в них, кажется, все, кому было не лень. И добавляли своего странного

Блин, как все не просто! У меня чистый ТЧ 1.0006 (вроде)

Конкретный скрипт - это se_respawn.script и\или xr_spawner.script ?

 

Первое. xr_spawner - это вообще нечто странное и загадочное. dc

В том se_respawn.script, что у меня, есть фрагмент:

  local spawn_section = ""

  local sum = 0

  -- Производим рандомную взвешенную выборку

  -- с учетом уже заспавленного количества человек.

  for k,v in pairs(self.respawn_section) do

--'   local tt = self.sectSpawnProps[v.section]

--'   local community_rank = tt.community.."_"..tt.rank

--'   local s_count = simMaxCount[community_rank]

--'   if s_count == nil then

--'    s_count = 0

--'   end

--'   if tt.check == false or

--'      self.item_spawn == true or

--'      sim_statistic.simNpcCount(tt.community, tt.rank) < s_count

--'   then 

    sum = sum + v.prob

--'   end

  end

  sum = math.random(0, sum)

  for k,v in pairs(self.respawn_section) do

--'   local tt = self.sectSpawnProps[v.section]

--'   local community_rank = tt.community.."_"..tt.rank

--'   local s_count = simMaxCount[community_rank]

--'   if s_count == nil then

--'    s_count = 0

--'   end   

--'   if tt.check == false or

--'      self.item_spawn == true or

--'      sim_statistic.simNpcCount(tt.community, tt.rank) < s_count

--'   then 

    sum = sum - v.prob   

    if sum <= 0 then

     spawn_section = v.section

     break

    end

--'   end

  end

 

 

эти закомментированные строки - от ПЫСов или у меня не оригинальный файл ?

Судя по закомментированым строкам таблица simMaxCount не обрабатывается ?

 

Так и есть. Не работает, и не проверяется. dc

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

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


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

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