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

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

Заспавнил аномалию жарка на локацию «болота» из пака локаций через all.spawn, но

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

Скажите в чем проблема. Заранее спасибо.

 

Вот сама аномалия, делал по подобию «дикой территории».

 

[10332]
; cse_abstract properties
section_name = zone_zharka_static_average
name = rostok_zone_zharka_static_average_0005
position = 277.48233032227,4.7708797454834,50.111785888672
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 3519
distance = 9.09999942779541
level_vertex_id = 314615
object_flags = 0xffffff3e

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 1.98340821266174

; cse_alife_space_restrictor properties
restrictor_type = 0

; cse_alife_custom_zone properties
max_power = 0.899999976158142

; cse_alife_anomalous_zone properties
offline_interactive_radius = 30
artefact_spawn_count = 32
artefact_position_offset = 0x4624

; se_zone_anom properties

 

Изменено пользователем ColR_iT
Во-первых под спойлер, а во-вторых с тегом code!
Ссылка на комментарий

Wik, наиболее вероятно, что ошибка кроется в некорректной работой с ACDC и наименованиями параметров для шейпов аномалии.

В Неуниверсальных версиях ACDC параметры назывались: center и radius, дли универсального: offset и radius.

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

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

Artos Если я правильно понял offset нужно поменять на center , но тогда

аномалия не реагирует на ГГ , просто видно эффект гарячего воздуха.

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

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

Для того, чтобы аномалия реагировала на ГГ нужно разбираться со всеми параметрами конфига аномалии, а не только теми, которые в спавне. Заодно и в параметрах ГГ/неписей глянуть, а добавлен ли класс/clsid этой аномалии в 'SpaceRestrictionSection' и т.п.

Переходи, если еще есть вопросы по этой теме, в топик соотв. версии игры "Ковыряемся в файлах".

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

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

Кстати говоря. В ЗП по умолчанию аномалии никак не реагируют на сталкеров, это движково или как то регулируется в конфигах\скриптах? И если да, можно ли скриптово включать\выключать эту реакцию? (ЗП\ЧН)

 

Artos

Хотел спросить тебя по поводу твоей схемы net-пакетов. У меня возможно не самая новая версия (как раз та, где ты первый раз ввёл универсальную функцию, которая сама определяет тип объекта) но там ты в пакетах объектов помимо зашитых свойств также читаешь\записываешь св-ва объекта из скриптов (где функции save\load во всяких se_stalker.script и тому подобных)

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

 

Можно ли (и как правильно) заменить чтение вот таких скриптовых кусков пакета на просто запись\чтение остатка или типа того?

Ведь доступ к этим данным можно получить напрямую в св-вах объекта, не трогая его net-пакет.

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

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

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

Так, с set_state вроде разобрался - приходится каждый раз задавать указанное состояние в update самого NPC. Пробовал ставить состояние единожды, через hit_callback - никакого результата. Чего только не делал, даже запрещал обновление state_mgr, если нужное состояние уже установлено. Ничего не помогает. Неужели совсем никак нельзя сделать так, чтобы состояние не сбрасылалось, без вмешательства в эвалуаторы?

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

Подскажите мне насчет респавна, у меня 2 вопроса по нему:

1. Как убрать респавн Сталкеров на Свалке возле Беса? Убрал секции respawn в all.spawn'е, но Сталкеры всё равно появляются.

2. Через 2 дня по игровому времени у меня почему-то некоторые НПС меняют формы, даже бандит может сменить костюм на Экзоскелет. Такое было и в оригинале, или я случайно установил лишний пак?

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

*Shoker*, последнюю версиюмодуля m_net_utils можно взять в топике по языку Lua (там приведена ссылка), но в этой версии есть привязка к конкретному моду, которую несложно убрать.

По твоему вопросу о 'своих' данных для 'se_stalker' иль иному:

Нет-пакеты объектов имеют строгую последовательность, вмешательство в которую исключает применение общих читалок/писалок, т.е. обуславливает необходимость унесения учитывать подобные 'свои' изменения/добавления.

Можно добавлять свои данные в конец пакетов, но ... для большинства классов у меня в нынешнем варианте 'хвосты' не читаются.

Конкретно для сталкеров/монстров после прочтения основной части пакето (до job) - далее читается все до конца, но помещается в бинарный остаток (left_chunk), откуда по необходимости можно и прочитать.

 

Сейчас, версия m_net_utils замораживается. Почитай топик "Язык Lua. Общие вопросы программирования.". Мною будет сделан новый кросс-платформенный (для трех версий игры) вариант на базе универсального ACDC (by KD87) и xs_netpk (by xStream). Это позволит читать полностью пакеты всех объектов, доступных для операций с нет-пакетами. Вот тогда и будет возможность читать все свои данные из 'хвостов'.

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

Я бы, без нужды НЕ писал бы все потребное напрямую в нет-пакет. Для этого есть и та же кастом-дата иль pstor.

Так же, в той же теме (по Lua) идет речь и о хранилище ... в которое можно вообще переместить большинство моддмейкерских потребностей по хранению.

 

Добавлено через 4 мин.:

Meller, уже по респавнерам не один раз тут за последний месяц-два говорилоось ... Респавнеры работают на всю Зону, а не на конкретное место/гулаг. Запретив в одном месте - все равно, если аналогичные респавнеры есть на др.локациях, в это свободное место подтянутся неписи с других локаций.

 

Переодевания НПС в оригинальной игре нет, это вероятно работает схема переодевания от xStream или ее модификация.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

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

Как можно получить информацию о текущей погоде для использования в секциях логики?

Ссылка на комментарий
iDreD, level.get_weather() вернет имя секции текущей погоды, дальше считывай параметры погоды из конфигов с помощью ini_file. Впрочем, еще есть level.rain_factor(), но не думаю, что сильно поможет. Изменено пользователем KD87
Ссылка на комментарий

Как выглядит функция таймера?

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

 

Выглядит ... как функция. Очень странный вопрос если честно.

Если тебя интересует, как работает или как сделана, то можешь глянуть на примере, все того же, АМК да и вообще, уже наверно в каждом моде используется та или иная интерпретация таймеров. Только ты не обольщайся - это не одна строка, придется немного пораскинуть мозгами...

ColR_iT

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

Как узнать под какой скриптовой схемой сейчас находится НПС? И как расшифровать полученную информация.

 

Ленимся листать топик? #3637 --/Artos

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

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

Ссылка на комментарий
Как выглядит функция таймера?

В теме "Язык Lua. Общие вопросы программирования." - дополнительно к АМК-таймерам (тихий ужас, если честно) выложено аж несколько реализаций этого добра. С помощью тех библиотек таймеры можно сделать в виде пары строк.

Все, кто стоит на моем пути: идите нахрен и там погибните! ©

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

Ребята, возник вопрос касательно функции load_job, что в файлах гулагов для локаций, а именно таблица t с описанием работы.

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

Итак... Привожу таблицу со всеми найденными и используемыми свойствами в оригинале ТЧ 1.0006, а также небольшое описание, возникшее в результате поиска, исследований и догадок:

t = {
    section = "logic@",             -- секция логики в файле config\misc\gulag_название_уровня.ltx;
    idle = ,                        -- пауза между выполнением данной работы;
    prior = ,                       -- приорите на работу. Чем больше значение, тем быстрее будет занята работа;
    state = {},                     -- состояние гулага. Необходимо для функции load_states где определяется это состояние, 
                                    -- т.е. какая из работ (с определенным состоянием) будет занята;
    squad = ,                       -- сквад;
    group = groups[],               -- будет выбран из массива groups, который задан в custom data. Массив индексируется начиная с 1;
    in_rest = "", out_rest = "",    -- разрешено / запрещено входить в указанные рестрикторы;
    info_rest = "",                 -- задается имя рестриктора и все денжеры снаружи этого рестриктора не попадают внутрь для человека, 
                                    -- находящегося на этой работе;
    predicate = ,                   -- условие приема на работу;
    position_threshold = ,          -- расстояние до места работы при котором персонаж в онлайне считается достигшим места работы.
    timeout    = ,                  -- время по окончании которого работа освобождается/становиться недоступна;
    online = ,                      -- если true, то на этой работе персонаж всегда в онлайне;
    idle_after_death =              -- в течении этого времени, после смерти предыдущего "работника", данная работа будет недоступна.
    }

Некоторые описания являются дословными цитатами найденными на просторах интернета, так что не судите строго.

Теперь собственно вопросы касательно этого:

  1. Свойство idle. Определяет паузу перед тем, как НПС начнет выполнять работу вновь. Собственно вопрос: что происходит во время паузы? Переходит ли персонаж под какую-либо секцию, либо выполняет туже работу, например, если указан walker, но со значениями по умолчанию?
  2. squad. Что именно определяет этот параметр. Понятно, что если не задан, то будет значение из профиля НПС, но в целом, для чего нужен squad?
  3. group. Также не ясно. Каким образом данный параметр влияет на поведение НПС?
  4. info_rest. Описание нашел в интернете, но, к сожалению, кроме путаницы мне в голову ничего не привносит. Я так понимаю, что в радиус данного рестриктора, для НПС на данной работе, враги заходить не будут. Так ли это?
  5. position_threshold. Понимаю это так: если НПС на расстоянии ближе чем указанно, то гулаг уже начинает искать ему работу. Хотя мне почему-то казалось, что гулаг изначально резервирует место, т.е. занимает работу под найденного НПС.
  6. timeout. Время вроде идет в миллисекундах, но это не суть важно, важно другое - после того, как вышло время, что становиться с работой? Возможно ли заново её занять?
  7. online. Два возможных значени - true и false. Если быть честным, то недопонимаю для чего данный параметр.
  8. idle_after_death. Единицы измерения вроде как тоже мсек. Изначально не понял для чего, потому как увидел его в работе для Макса, на Арм складах... странно то, что исходя из описания непонятно для чего она там была нужно, так как в работе стоит условие на приём именно Макса.
  9. Ну и последний интересующий меня вопрос - есть ли еще какие либо свойства, которые можно определять через данную таблицу?

P.S. Извините за такое количество вопросов, но разделять их было (ИМХО) также глупо.

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

Парни, здраствуйте.

Возможно ли в Сталке. ТЧ.

Реализовать логику для любого сталкера. (что бы он выполнял - в разных местах, при различных боевых ситуациях- разные схемы).

1. Переход из одной локации на другую, с последующим продвежением в лагерь.

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

2. При переходе работа ли бы такие схемы:

Ищет артефакты. - Собиратель.

Скрытно продвигается от куста к кусту. -Разведчик.

Снайпер (если есть нужное оружие).

Охотник.

3. Сталкеры не стреляют через толстые стены и двери, но стреляют через заборы по ГГ.

 

Всем пока я верю в вас!
Ссылка на комментарий

Keng.

1. Да, можно. Простой пример - Волк. После выполнения ГГ задания в Темной Долине, он идет аж на Арм Склады. На счет выполнения рандомной работы ... ммм думаю - да, вполне возможно организовать.

2. В принципе возможно.

3. А вот это вряд ли. Для НПС любая геометрия - это ... геометрия. На одном из этапов компиляции АИ карты, необходимо компилировать с учетом геометрии карты, для того чтобы НПС считали стены и заборы, деревянные в том числе, укрытием. При этом, как мне кажется, свойств материалов они не учитывают.

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

ColR_iT

position_threshold не влияет на то, будет ли NPC искать себе работу, а задаёт расстояние, при котором NPC считается "приступившим к выполнению обязанностей". :) Поиск работы происходит ещё до вызова register_npc в смарте.

 

info_rest отсекает реакцию на события, происходящие снаружи заданного рестриктора. По-хорошему их следовало бы разделить также на in и out, но почему-то этого не сделали.

 

Насколько я понял, параметры squad и group определяют, будет ли NPC вообще зарегистрирован в смарте. Сравнивается с соотв. параметрами самого NPC, но смысла в этом я не вижу никакого.

 

online - попытка запрета (ИМХО - также бессмысленная) перехода в оффлайн.

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

ColR_iT, Некоторые параметры остались просто из исключенных схем,сквады и группы насколько я знаю нужны для респавнера и в некоторых логических схемах(патрол или фоловер).А работа онлайн или офлайн-может быть этот параметр отвечает за то что Толик в НС5 спокойно себе доходит до фабрики без ГГ,а Боров в солянке виснет как только доходит до границы онлайна.

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

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

Помогите я заспавнил НПС через all.spawn на болотах поставил логику чтобы стояли на месте они стоят но когда на них идет враг они после него не идут на свое место какая логика тогда нужна )))

Создал новую группировку и нпс новых как сделать так чтобы после смерти непися новые неписи спавнились вместо тех и вставали на их место )))

 

Строгое предупреждение от модератора Cyclone
Никакие предупреждения я гляжу не помогают. Режим чтения на 7 суток, пункт 2.5.

Пункт 3.

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

ColR_iT спасибо за ответ, в некоторых случаях последнее очень портит игру - НПС "проталкивает" оружие сквозь дверь/тонкую стенку и стреляет.

Я думал что после выполнения определенного задания ГГ,Волк удаляется с Кордона и затем спавнится на Армейских складах.

Всем пока я верю в вас!
Ссылка на комментарий

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

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

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

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

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

Войти

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

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

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