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

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


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

ins33

  Цитата
if db.actor ~= nil and
if has_alife_info("doctor_one_start") and
time_news < time then

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

 

Стрелок

Ответы на Ваш вопрос:

- Вы инфо-порцию kontroler_trup прописали как положено ?

- А как Вы проверяете, что инфо-порция не выдается ?

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

Стрелоk, секцию спавнер пиши с самого начала, перед smart_terrains. И советую в спавне оставлять только секцию спавнер. А логику выносить в отдельный файл. Будет проще, легче и без лишней перепаковки. Не факт, что данный инфопоршень не выдаёться. Может ошибка там, где он что-то должень делать.

ins33, два if и два end. А где завершающий end самой функции? И зачем if после and?

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

Всем привет,

я клепал моды друг на друга(детекторы артов, арсенал, новая броня, еда и медикаменты, выброс, сон, напарники, по одежке встречают.... может еще что-то, не помню)

клепал не тупо копированием а осознано(ну и winmerge мне в этом помог)))

вообщем потом начал тестить на баги и вот один из них:

сначала не мог поговорить с сидором и со всеми остальными(сразу вылет)

попытался исправить, но стало еще хуже - вылетает после начального ролика, когда у сидора появляюсь(новая игра)

играю в тч версии 1.0004

 

  вот лог: (Показать)
Изменено пользователем Mega-Max
Ссылка на комментарий
panzyuza, ну вообще я код не менял. Этот контролер у меня был в моде и при переносе я ничего не изменил. У меня при убийстве этого контролера должно выполнится задание, но оно не выполняется.

К20

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

Starter

  code (Показать)

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

Возник такой вопрос.

На локации есть аномалия (любая), заспавненная через all.spawn.

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

Пробовал мод "Нейтрализатор аномалий" из Раритетов, но там немного не то, точнее, совсем не то. Аномалия просто нейтрализуется (obj:disable_anomaly()) до следующей загрузки уровня, после загрузки - она опять на своем месте, а мне надо ее полностью удалить из игры.

 

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

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

Какую логику нужно прописать в схеме walker, чтобы НПС бежал в панике в определённую точку, как Стрелок в ЧН? Мне кажется, дело в этих строках:

def_state_moving1 = run
def_state_moving2 = run
def_state_moving3 = run

Только при таких настройках он передвигается лёгким бегом, а мне нужно, чтобы бежал, как угорелый (извиняюсь за выражение). Заранее спасибо за помощь.

Ссылка на комментарий
Sany@Prizrak, нужно в настройке точки пути, в all.spawn, после имени точки типа name00 поставить |a=sprint Изменено пользователем KitkaT.Net

Ничто не вечно под луной.

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

wikreznow, перечитай пост.

Marafon6540, общего _хорошего_ решения нет. С аномалиями вообще сильно не разгуляешься. По конкретно твоей проблеме - можно глянуть в сторону метода inside() класса game_object. Сигнатура функции такая: bool inside(const vector& position) const, position - координаты, которые проверяются на вхождение в аномалию. Метода примерно такая: в апдейт аномалии ставишь вызов этой функции для координат нужных объектов, если inside начинает возвращать true, взводишь какой-нибудь флажок, переводишь аномалию в оффлайн и удаляешь, как обычно удаляют аномалии. Естественно, если проверяемых объектов много, такая проверка будет тормозить. Но если задача проверить чисто попадание актора в аномалию - почему бы и нет.

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

По аномалиям:

Исходный вопрос от Marafon6540 имеет два подвопроса (как я понял):

1. главный вопрос в том можно ли проследить, сработала аномалия хотя бы один раз или нет.

2. надо ее полностью удалить из игры

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

Во-первых, все методы типа callback.zone_enter или inside() все же дают результат по геометрии, т.е. "есть ли в зоне аномалии некий об'ект или нет", но срабатывание аномалии хотя и завязано тоже на геометрии, но не "как-только попал в зону" - не зря же существует "эффективный радиус", да и вспомним, бросив иной предмет - можно заставить сработать аномалию, не входя в нее ...

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

 

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

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

Ссылка на комментарий
_Призрак_, malandrinus как-то писал, что колбек работает только для ce_script_zone. Я и не стал предлагать :) А что, для аномалий работает? Изменено пользователем KD87
Ссылка на комментарий
KD87, прав malandrinus ... для аномалий в игре (со штатным движком) этот коллбэк не работает.

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

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

Но ведь нередки и случаи (особенно с актором) - когда аномалия сработала, но хита никому не нанесла.

К примеру карусель/мясорубку можно активировать и вырваться до завершения "закрутки" - аномалия сработает как полагается но никому вреда не нанесет.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

Друзья, спасибо, что откликнулись на мой вопрос.

Оптимальным решением будет подсказка камрада Artos'a

  Цитата
коллбек на хит, по которому можно определить аномалия ли сработала и нанесла хит
и практически такой же совет дал камрад Charsi мне в личке.

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

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

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

У меня такой вопрос:

Как сделать чтобы при взрыве гранаты (ручной\ подствольной\ракетной боеголовки) выделялась радиация и оставалась там некоторое время (не исчезала быстро)???

32481252.f.500.500.jpg
Ссылка на комментарий

Marafon6540 (и др.) - настоятельно рекомендую прочитать (если еще не читали) давний мануальчик: "Как правильно задавать вопросы" и в частности про "Описывайте цель, а не отдельный шаг" - тогда пользы будет больше, а времени теряться меньше ...

  Цитата по теме (Показать)
Изменено пользователем Artos

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

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

Приветствую!

Можно ли выдать определенную инфо_порцию при атаке определенного вида монстра?

Пример:

Атакует нас boar_weak и/или flesh_normal выдается порция под названием хх_name.

 

Что хочу увидеть?

Хотелось бы добавить эффектов после атак некоторых монстров.

Artos Спасибо.

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

Мой архив

Сталкером не занимаюсь.

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

amik, выдать то любой инфопоршень можно, но совершенно непонятно зачем пытаться использовать инфопоршни в твоем случае? (прочти мой предыдущий пост).

Инфопоршень удобен и востребован тогда, когда наступило некое событие и чтобы при создании сохранения игры факт наступления события восстановился - используется или инфопоршень или, например, запоминание в pstor. Во всех иных случаях вполне достаточно локальных/глабальных переменных.

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

Да и представь себе сколько инфопоршней может быть из комбинаций всяческий "видов монстров"? Десятки-сотни ... и все их собираешься перебирать?

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

Примеры определения атаки определенного класса/вида монстров в модах достаточно. Вспомни атаки собак, электро-химеры иль контролера из АМК-мода. Вот по аналогии и выбирай своих "некоторых монстров" и пляши от этого, а не от инфопоршней.

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

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

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

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

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

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

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

Войти

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

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

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