Случайная подборка модов
Народная Солянка 2016
4.1
Путь человека: Шаг в неизвестность
3.8
История снайпера: Ловушка Судьбы
2.9
АльтернативА 1.3.2
3.2
SRP mod
3.9
Время Альянса 3. Связь Времен
3.4
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
⚙ Модострой: Вопросница
Российская Федерация  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
Поиск: