Случайная подборка модов
Тёмное Братство – Проклятые Зоной
3.1
R.M.A. Atmospheric Addon 3.0
4.0
Смерти Вопреки 2. Одним днем живу
3.4
Thorny Way
3.5
Время Перемен 2.5
4.0
Oblivion Lost Remake 2.0
4.1
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
⚙ Модострой: Вопросница
Российская Федерация  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
Российская Федерация  ins33
Воскресенье, 18.09.2016, 23:08 | Сообщение # 3886
Dream Reader Mod
Статус:
Опытный:
Сообщений: 2269
Награды: 1
Регистрация: 17.01.2012

Подскажите, за что отвечают >>эти<< настройки?
И подскажите, есть ли возможность, при генерации аи сетки, запретить ей накладываться на почти >>отвесные<< места.
И есть ли какие то правила наложения аи сетки на локе.
Сообщение отредактировал ins33 - Понедельник, 19.09.2016, 13:43
  Злобная реклама
Воскресенье, 18.09.2016, 23:08
Статус:
Сообщений: 666
Регистрация: 17.01.2012
Российская Федерация  Overfirst
Воскресенье, 18.09.2016, 23:15 | Сообщение # 3887
Статус:
Бывалый:
Сообщений: 1081
Награды: 19
Регистрация: 11.06.2015

Цитата ins33 ()
за что отвечают >>эти<< настройки?

Draw Nodes - вкл/выкл отображение нодов в СДК.
Visible Radius - дальность прорисовки сетки в СДК.
Brush Size - кол-во нодов при одном нажатии, т.е. если выставить значение, например, 5, то при клике поставится 5 аи-нодов. Очень удобно, кстати, и быстро, если прокладываешь вручную с зажатой клавишей Alt.
Can Up и Can Down - тут всё очевидно.
Цитата ins33 ()
есть ли возможность, при генерации аи сетки, запретить ей накладываться на почти отвесные места

Почитай эту тему.
  Злобная реклама
Воскресенье, 18.09.2016, 23:15
Статус:
Сообщений: 666
Регистрация: 11.06.2015
Российская Федерация  Suhar_
Понедельник, 19.09.2016, 16:11 | Сообщение # 3888
Статус:
Новичок:
Сообщений: 283
Награды: 3
Регистрация: 11.03.2016

Скрипты.
Функция create возвращает серверный обеъект. После ее использования необходимо применение другой функции, обращающейся к объекту игровому. Как осуществить этот самый переход от серверного к игровому объекту?
Сообщение отредактировал Suhar_ - Понедельник, 19.09.2016, 16:12
  Злобная реклама
Понедельник, 19.09.2016, 16:11
Статус:
Сообщений: 666
Регистрация: 11.03.2016
Российская Федерация  makdm
Понедельник, 19.09.2016, 16:21 | Сообщение # 3889
Время Альянса
Статус:
Опытный:
Сообщений: 1787
Награды: 19
Регистрация: 22.11.2012

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

local client_object = level.object_by_id( id )
Сообщение отредактировал makdm - Понедельник, 19.09.2016, 16:26
  Злобная реклама
Понедельник, 19.09.2016, 16:21
Статус:
Сообщений: 666
Регистрация: 22.11.2012
Российская Федерация  Suhar_
Понедельник, 19.09.2016, 16:28 | Сообщение # 3890
Статус:
Новичок:
Сообщений: 283
Награды: 3
Регистрация: 11.03.2016

makdm, я прекрасно знаю, как получить объекты через айди. Но у меня нет его айди. Есть только серверный объект (sobj), возвращаемый функцией create. Есть способ получить id через sobj?
Сообщение отредактировал Suhar_ - Понедельник, 19.09.2016, 16:32
  Злобная реклама
Понедельник, 19.09.2016, 16:28
Статус:
Сообщений: 666
Регистрация: 11.03.2016
Российская Федерация  makdm
Понедельник, 19.09.2016, 16:49 | Сообщение # 3891
Время Альянса
Статус:
Опытный:
Сообщений: 1787
Награды: 19
Регистрация: 22.11.2012

Цитата Suhar_ ()
Есть способ получить id через sobj?

Читайте как настольную книгу файл lua_help.script
В нём есть почти всё, что вам понадобится при модостроении.
В вашем случае:

local id = sobj.id
  Злобная реклама
Понедельник, 19.09.2016, 16:49
Статус:
Сообщений: 666
Регистрация: 22.11.2012
Российская Федерация  Suhar_
Понедельник, 19.09.2016, 18:30 | Сообщение # 3892
Статус:
Новичок:
Сообщений: 283
Награды: 3
Регистрация: 11.03.2016

makdm, этим способом пользовался в том числе.
obj = level.object_by_id(sobj.id)
В итоге obj == nil, дабы не возникало вопросов, sobj~=nil, sobj.id~= nil, sobj.id>0

Добавлено (19.09.2016, 18:19)
---------------------------------------------
Может ли быть так, что obj:id() ~= sobj.id, если sobj и obj - это серверный и игровой объект одного же предмета? Полагаю, что нет.
Может ли быть получен объект по айди, если он в оффлайне?
Сообщение отредактировал Suhar_ - Понедельник, 19.09.2016, 19:21
  Злобная реклама
Понедельник, 19.09.2016, 18:30
Статус:
Сообщений: 666
Регистрация: 11.03.2016
Российская Федерация  denis2000
Понедельник, 19.09.2016, 18:59 | Сообщение # 3893
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

Цитата Suhar_ ()
obj = level.object_by_id(sobj.id)
В итоге obj == nil,

Очевидно, что объект в оффлайне.
Цитата Suhar_ ()
может ли быть получен объект по айди, если он в оффлайне?

Серверный и так у вас есть, а клиентский вам для чего если он в офлайне?
  Злобная реклама
Понедельник, 19.09.2016, 18:59
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Российская Федерация  makdm
Понедельник, 19.09.2016, 19:47 | Сообщение # 3894
Время Альянса
Статус:
Опытный:
Сообщений: 1787
Награды: 19
Регистрация: 22.11.2012

Цитата Suhar_ ()
Проверка sobj.online выдает true. Разве он в оффлайне?

Вы в этом уверены?
Лучше покажите вашу функцию, чтобы было понятно, что вы там делаете и быстрее получите ответ на это недоразумение.
  Злобная реклама
Понедельник, 19.09.2016, 19:47
Статус:
Сообщений: 666
Регистрация: 22.11.2012
Российская Федерация  Suhar_
Понедельник, 19.09.2016, 20:06 | Сообщение # 3895
Статус:
Новичок:
Сообщений: 283
Награды: 3
Регистрация: 11.03.2016

makdm, целенаправленно проверил.
sobj = alife():create(wpn _section,...[в инвентаре гг]...)
obj = level.object_by_id(sobj.id)
local current_ammo = obj:get_ammo_total() - obj:get_ammo_in_magazine()
alife():release(sobj,true)
Если некий фейковый ствол юзает всего один тип патронов, то эти самые патроны можно подсчитать таким образом.
Проблема в том, что при попытке подсчета лог ругается на nil в переменной obj.
  Злобная реклама
Понедельник, 19.09.2016, 20:06
Статус:
Сообщений: 666
Регистрация: 11.03.2016
Российская Федерация  makdm
Понедельник, 19.09.2016, 20:35 | Сообщение # 3896
Время Альянса
Статус:
Опытный:
Сообщений: 1787
Награды: 19
Регистрация: 22.11.2012

Цитата Suhar_ ()
sobj = alife():create(wpn _section,...[в инвентаре гг]...)
obj = level.object_by_id(sobj.id)

Для создания клиентского класса объекта нужно время.
А вы тут же пытаетесь его получить. Естественно он равен NIL. Движок просто не успел его ещё создать.

З.Ы. И вообще, если вы хотите постоянно знать сколько определённого вида патронов есть в рюкзаке ГГ, то непонятно, зачем вы удаляете это фейковое оружие после спавна.
Сообщение отредактировал makdm - Понедельник, 19.09.2016, 20:43
  Злобная реклама
Понедельник, 19.09.2016, 20:35
Статус:
Сообщений: 666
Регистрация: 22.11.2012
Российская Федерация  Suhar_
Понедельник, 19.09.2016, 20:58 | Сообщение # 3897
Статус:
Новичок:
Сообщений: 283
Награды: 3
Регистрация: 11.03.2016

makdm, на как долго может затянуться этот процесс?
Можно и не удалять, но не хочется, чтобы всякий хлам в рюкзаке валялся. Разумеется, можно сделать его невидимым, но все же.
Обращение к функции будет происходить не так часто, поэтому ради соблюдения чистоты и этикета будет лучше удалить.
Сообщение отредактировал Suhar_ - Понедельник, 19.09.2016, 21:03
  Злобная реклама
Понедельник, 19.09.2016, 20:58
Статус:
Сообщений: 666
Регистрация: 11.03.2016
Российская Федерация  makdm
Понедельник, 19.09.2016, 21:03 | Сообщение # 3898
Время Альянса
Статус:
Опытный:
Сообщений: 1787
Награды: 19
Регистрация: 22.11.2012

Цитата Suhar_ ()
Можно и не удалять, но не хочется, чтобы всякий хлам в рюкзаке валялся.

Что значит валялся?
Делаете фейковое оружие с уникальной секцией.
Прописываете ему вес = 0.
Все координаты иконки и её высоту и длину выставляете в 0
После начала игры, когда всё оружие уже в слотах, проспавниваете в рюкзак ГГ.
Игрок при открытии инвентаря не видит этот ствол и вес его не влияет на вес рюкзака.
О том, что что-то лежит в рюкзаке знает только двигало и вы.
Дальше в любой момент времени получаем количество патронов в рюкзаке.
Вас конкретно что смущает?
Вы что за движок переживаете, что у него там лишний объект обрабатывается?
  Злобная реклама
Понедельник, 19.09.2016, 21:03
Статус:
Сообщений: 666
Регистрация: 22.11.2012
Российская Федерация  Suhar_
Понедельник, 19.09.2016, 21:18 | Сообщение # 3899
Статус:
Новичок:
Сообщений: 283
Награды: 3
Регистрация: 11.03.2016

makdm, как скрыть объект в инвентаре гг мне ведомо. Да и по поводу одного лишнего объекта соглашусь. Просто стараюсь придерживаться порядка и не создавать лишнего там, где можно без него обойтись. Это касается всего: конфиги, объекты и прочее. Не до крайностей конечно, если ситуация требует, то будут применены все необходимые срндства. Но в результате такого подхода везде удобство и порядок. Самому удобно и тем, кто пользоваться наработками будет. Не раз приходилось рыться в ресурсах, где все запутано так, что черт ногу сломит. Не смертельно, но напрягает. В общем, дело вкуса.
  Злобная реклама
Понедельник, 19.09.2016, 21:18
Статус:
Сообщений: 666
Регистрация: 11.03.2016
Российская Федерация  makdm
Понедельник, 19.09.2016, 21:34 | Сообщение # 3900
Время Альянса
Статус:
Опытный:
Сообщений: 1787
Награды: 19
Регистрация: 22.11.2012

Цитата Suhar_ ()
Просто стараюсь придерживаться порядка и не создавать лишнего там, где можно без него обойтись.

Я вам предложил самый постой способ получения в любой момент игры клиентского класса объекта:

Код
local client_object = db.actor: object("секция_объекта")


Ну, а для поддержания вашего порядка, вам придётся решать задачу отслеживания перехода объекта в онлайн для получения данных.
  Злобная реклама
Понедельник, 19.09.2016, 21:34
Статус:
Сообщений: 666
Регистрация: 22.11.2012
Поиск: