Случайная подборка модов
Альтернатива 1.3.1
4.0
Путь во мгле
4.5
Новое Время
3.2
Путь Человека: Возвращение
4.1
ReBorn 2.50 «Артефакты смерти»
3.5
Clear Sky - Remake
3.8
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
⚙ Модострой: Вопросница
Российская Федерация  Wolfstalker
Среда, 24.02.2016, 00:25 | Сообщение # 1
Статус:
Легенда:
Сообщений: 2258
Награды: 15
Регистрация: 05.04.2010

В данной теме вы можете задавать любые вопросы касательно S.T.A.L.K.E.R. моддинга


• Не флудить
• Предварительно просматривайте раздел, ведь ответ на ваш вопрос может быть там
• В своем вопросе указывайте платформу моддинга — Тень Чернобыля, Чистое небо или Зов Припяти




F.A.Q

  Злобная реклама
Среда, 24.02.2016, 00:25
Статус:
Сообщений: 666
Регистрация: 05.04.2010
Российская Федерация  denis2000
Среда, 13.09.2017, 19:41 | Сообщение # 8056
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

Цитата Han_Kostenlo ()
остановить ее, допустим, другой функцией?

level.enable_input()
  Злобная реклама
Среда, 13.09.2017, 19:41
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Российская Федерация  Han_Kostenlo
Пятница, 15.09.2017, 17:16 | Сообщение # 8057
Группа Кровавой Дороги
Статус:
Отмычка:
Сообщений: 96
Награды: 0
Регистрация: 31.05.2017

denis2000, О, спасибо. Вот еще такой вопрос, чтобы никого больше не доставать, не знаешь где можно достать большой сборник функций? Ну, и так, чтобы в один пост, мне нужна еще функция удаления НПС в зоне видения ГГ(типо как в фотографе пропадал наблюдатель, или в ЗШ исчезали монолитовцы).
  Злобная реклама
Пятница, 15.09.2017, 17:16
Статус:
Сообщений: 666
Регистрация: 31.05.2017
Украина  exDeMODER
Пятница, 15.09.2017, 21:24 | Сообщение # 8058
SFZ Project
Статус:
Отмычка:
Сообщений: 746
Награды: 11
Регистрация: 05.07.2014

Han_Kostenlo
Цитата Han_Kostenlo ()
функция удаления НПС в зоне видения ГГ

Всегда так делал:
  Злобная реклама
Пятница, 15.09.2017, 21:24
Статус:
Сообщений: 666
Регистрация: 05.07.2014
Российская Федерация  makdm
Пятница, 15.09.2017, 22:51 | Сообщение # 8059
Время Альянса
Статус:
Опытный:
Сообщений: 1787
Награды: 19
Регистрация: 22.11.2012

Цитата XMODER ()
Всегда так делал

Всё можно сделать "красивее" и без тормозов в игре:

В файл _G.script добавить:

stalkers_by_section = {}
function remove_stalker_by_section(section)
alife():release( stalkers_by_section[section], true )
end

В файле se_stalker.script в метод on_register() добавить:
_G.stalkers_by_section[ self:section_name() ] = self
А в метод on_unregister() добавить:
_G.stalkers_by_section[ self:section_name() ] = nil

Теперь чтобы удалить НПС - сталкера по его секции, достаточно в удобное для вас время вызвать функцию remove_stalker_by_section , например:

remove_stalker_by_section("stalker_sakharov")

Удалили Сахарова.
  Злобная реклама
Пятница, 15.09.2017, 22:51
Статус:
Сообщений: 666
Регистрация: 22.11.2012
Российская Федерация  Han_Kostenlo
Суббота, 16.09.2017, 06:27 | Сообщение # 8060
Группа Кровавой Дороги
Статус:
Отмычка:
Сообщений: 96
Награды: 0
Регистрация: 31.05.2017

XMODER, makdm, При использовании обеих функций вылетает, с сылкой в логе на "попытку вызвать поле". Похоже, что подобную функцию не привязать к space restrictor`у. Хотя, может я чего не знаю....

Добавлено (16.09.2017, 06:27)
---------------------------------------------

Цитата Han_Kostenlo ()
При использовании обеих функций вылетает, с сылкой в логе на "попытку вызвать поле". Похоже, что подобную функцию не привязать к space restrictor`у.
Попытался переместить функцию из одного скрипта в xr_effects и, хоть и не вылетает, но функцию не читает. НПС просто стоит там, где стоял, и ничего не происходит.
  Злобная реклама
Суббота, 16.09.2017, 06:27
Статус:
Сообщений: 666
Регистрация: 31.05.2017
Российская Федерация  makdm
Суббота, 16.09.2017, 07:44 | Сообщение # 8061
Время Альянса
Статус:
Опытный:
Сообщений: 1787
Награды: 19
Регистрация: 22.11.2012

Цитата Han_Kostenlo ()
Похоже, что подобную функцию не привязать к space restrictor`у

А чего там привязывать?

В файле xr_effects.script пишите:

function remove_stalker_by_sect(actor, obj, p )
if p and p[1] then
remove_stalker_by_section(p[1])
end
end

Из рестриктора вызываете функцию:

on_info = {-info} %+info =remove_stalker_by_sect(srction)%
  Злобная реклама
Суббота, 16.09.2017, 07:44
Статус:
Сообщений: 666
Регистрация: 22.11.2012
Российская Федерация  Overfirst
Суббота, 16.09.2017, 07:58 | Сообщение # 8062
Статус:
Бывалый:
Сообщений: 1081
Награды: 19
Регистрация: 11.06.2015

Цитата Han_Kostenlo ()
Попытался переместить функцию из одного скрипта в xr_effects и, хоть и не вылетает, но функцию не читает.

В функции скрипта xr_effects, как правило, передаются такие аргументы: actor, npc и p. В actor передается наш ГГ, в npc передается непись, из логики которого вызывают функцию или же любой другой объект. Параметр p — параметр, который задаёт пользователь, он и читается из логики:
Цитата makdm ()
on_info = {-info} %+info =remove_stalker_by_sect(section)%

section передаётся в p и дальше юзается в функции.

Цитата makdm ()
function remove_stalker_by_sect(actor, obj, p )
if p and p[1] then
remove_stalker_by_section(p[1])
end
end

Как видишь, обычные функции приходится чуть переделать, чтобы юзать из логики.
  Злобная реклама
Суббота, 16.09.2017, 07:58
Статус:
Сообщений: 666
Регистрация: 11.06.2015
Российская Федерация  Han_Kostenlo
Суббота, 16.09.2017, 14:16 | Сообщение # 8063
Группа Кровавой Дороги
Статус:
Отмычка:
Сообщений: 96
Награды: 0
Регистрация: 31.05.2017

BoBaH_671, makdm, Секунду... А где в функции, собственно, ссылка на НПС? То есть, я не заметил, где вставлять данные НПС.
  Злобная реклама
Суббота, 16.09.2017, 14:16
Статус:
Сообщений: 666
Регистрация: 31.05.2017
Российская Федерация  Overfirst
Суббота, 16.09.2017, 14:25 | Сообщение # 8064
Статус:
Бывалый:
Сообщений: 1081
Награды: 19
Регистрация: 11.06.2015

Цитата BoBaH_671 ()
on_info = {-info} %+info =remove_stalker_by_sect(section)%

Где section - секция твоего непися.
  Злобная реклама
Суббота, 16.09.2017, 14:25
Статус:
Сообщений: 666
Регистрация: 11.06.2015
Украина  BozKurt
Суббота, 16.09.2017, 15:04 | Сообщение # 8065
Статус:
Опытный:
Сообщений: 1753
Награды: 3
Регистрация: 25.05.2012

А можно вопрос к отвечающим? Как ваши функции помогут в
Цитата Han_Kostenlo ()
удаления НПС в зоне видения ГГ
?
  Злобная реклама
Суббота, 16.09.2017, 15:04
Статус:
Сообщений: 666
Регистрация: 25.05.2012
Российская Федерация  makdm
Суббота, 16.09.2017, 16:10 | Сообщение # 8066
Время Альянса
Статус:
Опытный:
Сообщений: 1787
Награды: 19
Регистрация: 22.11.2012

Цитата BozKurt ()
А можно вопрос к отвечающим? Как ваши функции помогут в

А что такое "В зоне видения"?
1. ГГ Видит НПС
2. НПС видит ГГ
3. ГГ видит НПС и НПС видит ГГ
4. НПС в зоне а-лайф.

Когда будет разъяснено, тогда и нарисуем код. Причем легко и непринужденно.
  Злобная реклама
Суббота, 16.09.2017, 16:10
Статус:
Сообщений: 666
Регистрация: 22.11.2012
Украина  BozKurt
Суббота, 16.09.2017, 16:13 | Сообщение # 8067
Статус:
Опытный:
Сообщений: 1753
Награды: 3
Регистрация: 25.05.2012

Если я правильно помню геометрию, то вот такое решение получит всех НПС попавших в угол обзора (по факту FOV игры), но без учёта прямой видимости:
Код
local actorPosition = db.actor:position();
local vectorToActorDirection = device().cam_dir;
for id = 1, 65534 do
    local npc = level.object_by_id(id);
    local npcPosition = npc:position();
    local vectorToNpcPosition = vector():set(npcPosition.X - actorPosition.X, 0, npcPosition.Z - actorPosition.Z);
    local scalar = (vectorToActorDirection.X * vectorToNpcPosition.X + vectorToActorDirection.Z * vectorToNpcPosition.Z)
    local angleCos = scalar / (math.sqrt(vectorToActorDirection.X^2 + vectorToActorDirection.Z^2) * math.sqrt(vectorToNpcPosition.X^2 + vectorToNpcPosition.Z^2));
    if math.ceil(math.acos(angleCos * 180 / math.pi)) <= device().fov then
  --/ npc попал в угол зрения ГГ, но без учёта прямой видимости. Удаляем если не важно видим ли мы его физически.
    end
end

P.S. Угол (FOV) учитывается только в плоскости земли, если мы перед НПС поднимим камеру вверх, то НПС всё равно будет удалён.
Сообщение отредактировал BozKurt - Суббота, 16.09.2017, 16:16
  Злобная реклама
Суббота, 16.09.2017, 16:13
Статус:
Сообщений: 666
Регистрация: 25.05.2012
Российская Федерация  Han_Kostenlo
Суббота, 16.09.2017, 16:30 | Сообщение # 8068
Группа Кровавой Дороги
Статус:
Отмычка:
Сообщений: 96
Награды: 0
Регистрация: 31.05.2017

Цитата makdm ()
А что такое "В зоне видения"?
Я имел ввиду, когда ГГ находиться рядом с НПС. То есть, НПС в зоне а-лайф.
BozKurt, Мне, кстати, не совсем обязательно, чтобы ГГ смотрел прям на него. Если он его не заметил, то он все равно должен быть удален. В любом случае, за помощь спасибо.
Сообщение отредактировал Han_Kostenlo - Суббота, 16.09.2017, 16:42
  Злобная реклама
Суббота, 16.09.2017, 16:30
Статус:
Сообщений: 666
Регистрация: 31.05.2017
Беларусь  sektor_aka
Суббота, 16.09.2017, 18:14 | Сообщение # 8069
Статус:
Опытный:
Сообщений: 1343
Награды: 6
Регистрация: 07.03.2016

Цитата Graff46 ()
Пропадает звук шагов

Писал тут Graff46: http://ap-pro.ru/forum/21-11239-1078433-16-1503835781

Скорее всего дело было в этом: https://www.gameru.net/forum....1623033
Цитата macron ()
связь то ли материала костей, то ли материала в конфиге. В итоге эффекты (звуки/пыль из-под копыт) тоже берутся из gamemtl.xr, но потом дополнительно в конфиге обрабатывается секцией step_params с учетом конкретных анимаций/временнЫх интервалов и вручную прописываемой силы эффекта. Для НПСей, кстати, такая же лабуда. Только недавно заметил, что в нпси OLR бегают бесшумно, пришлось дорабатывать таблицы в [stalker_step_manager].
Сообщение отредактировал sektor_aka - Суббота, 16.09.2017, 18:14
  Злобная реклама
Суббота, 16.09.2017, 18:14
Статус:
Сообщений: 666
Регистрация: 07.03.2016
Российская Федерация  sinaps
Суббота, 16.09.2017, 18:15 | Сообщение # 8070
Статус:
Ветеран:
Сообщений: 4757
Награды: 4
Регистрация: 02.04.2016

Почему 3Ds Max не отображает текстуры и пишет что они missing?

Где он добавляет это второе расширение .dds.dds?
Скрипты эти.
Сообщение отредактировал sinaps - Суббота, 16.09.2017, 19:19
  Злобная реклама
Суббота, 16.09.2017, 18:15
Статус:
Сообщений: 666
Регистрация: 02.04.2016
Поиск: