Случайная подборка модов
NLC 7: Я - Меченный
3.8
Пространственная Аномалия 4.1
4.5
Dead City Breakthrough
3.7
Old Episodes. Episode 2. War of Zone.
3.1
Эпизоды жизни Мерка
3.0
Новое Время. Судьба наемника
2.3
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
⚙ Модострой: Вопросница
Российская Федерация  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
Российская Федерация  Asfagan
Вторник, 28.06.2016, 17:12 | Сообщение # 2176
Статус:
Бывалый:
Сообщений: 929
Награды: 12
Регистрация: 01.02.2014

ins33, этот вариант не подходит, как помню в том уроке было по другому, то вариант был подходящим
  Злобная реклама
Вторник, 28.06.2016, 17:12
Статус:
Сообщений: 666
Регистрация: 01.02.2014
Российская Федерация  ins33
Вторник, 28.06.2016, 17:17 | Сообщение # 2177
Dream Reader Mod
Статус:
Опытный:
Сообщений: 2269
Награды: 1
Регистрация: 17.01.2012

Asfagan,
Цитата Asfagan ()
этот вариант не подходит
Обоснуй.
Я что то даже не могу представить более удачный вариант.
Хотя бог его знает, как в ЗП. Найдёшь, поделись ссылкой, интересен альтернативный вариант.
  Злобная реклама
Вторник, 28.06.2016, 17:17
Статус:
Сообщений: 666
Регистрация: 17.01.2012
Российская Федерация  Asfagan
Вторник, 28.06.2016, 17:18 | Сообщение # 2178
Статус:
Бывалый:
Сообщений: 929
Награды: 12
Регистрация: 01.02.2014

ins33, если сам не путаю biggrin но вроде бы было по другому...
  Злобная реклама
Вторник, 28.06.2016, 17:18
Статус:
Сообщений: 666
Регистрация: 01.02.2014
Российская Федерация  ins33
Вторник, 28.06.2016, 17:21 | Сообщение # 2179
Dream Reader Mod
Статус:
Опытный:
Сообщений: 2269
Награды: 1
Регистрация: 17.01.2012

Asfagan, А по другому = правильно?
Хоть я и не утверждаю, что мой способ идеален.
  Злобная реклама
Вторник, 28.06.2016, 17:21
Статус:
Сообщений: 666
Регистрация: 17.01.2012
Российская Федерация  Asfagan
Вторник, 28.06.2016, 17:23 | Сообщение # 2180
Статус:
Бывалый:
Сообщений: 929
Награды: 12
Регистрация: 01.02.2014

ins33, вот наконец таки нашел, как видно только через биндер...

Код
Функция: actor_binder:update(delta)

local pos = db.actor:position()
    for id = 1, 65535 do
        local obj = level.object_by_id(id)
        if obj then
            local campfire = obj:get_campfire()
            if campfire and obj:position():distance_to(pos) <= 3 then
                if campfire:is_on() then
                    db.actor.health = 0.001
                end
            end
        end
    end


я ж говорил cool
  Злобная реклама
Вторник, 28.06.2016, 17:23
Статус:
Сообщений: 666
Регистрация: 01.02.2014
Украина  _S_k_i_F_
Вторник, 28.06.2016, 17:26 | Сообщение # 2181
Золотой Обоз
Статус:
Опытный:
Сообщений: 1311
Награды: 9
Регистрация: 09.08.2015

Asfagan, через bind_campfire в метод update в самом конце
Код
local pos = self.object:position():distance_to_sqr(db.actor:position()) <= 3

и дальше действия.
  Злобная реклама
Вторник, 28.06.2016, 17:26
Статус:
Сообщений: 666
Регистрация: 09.08.2015
Российская Федерация  Asfagan
Вторник, 28.06.2016, 17:27 | Сообщение # 2182
Статус:
Бывалый:
Сообщений: 929
Награды: 12
Регистрация: 01.02.2014

_S_k_i_F_, уже разобрался biggrin
  Злобная реклама
Вторник, 28.06.2016, 17:27
Статус:
Сообщений: 666
Регистрация: 01.02.2014
Российская Федерация  makdm
Вторник, 28.06.2016, 17:29 | Сообщение # 2183
Время Альянса
Статус:
Опытный:
Сообщений: 1787
Награды: 19
Регистрация: 22.11.2012

Цитата Asfagan ()
 for id = 1, 65535 do

Для всех любителей перебирать на апдейте актора все объекты игры пишу второй раз:

В ЗП есть биндер костров. Файл bind_campfire.script
Вот на его апдейте и нужно делать проверку на расстояние до ГГ.
И ничего перебирать не нужно!!!

local story_actor = get_story_object("actor")
if self.campfire:is_on() and story_actor then
if self.object:position():distance_to_sqr(story_actor:position()) <= 3*3 then
story_actor.health = 1
story_actor.radiation = -1
story_actor.bleeding = 1
end
end
  Злобная реклама
Вторник, 28.06.2016, 17:29
Статус:
Сообщений: 666
Регистрация: 22.11.2012
Российская Федерация  Asfagan
Вторник, 28.06.2016, 17:31 | Сообщение # 2184
Статус:
Бывалый:
Сообщений: 929
Награды: 12
Регистрация: 01.02.2014

makdm, спс smile
  Злобная реклама
Вторник, 28.06.2016, 17:31
Статус:
Сообщений: 666
Регистрация: 01.02.2014
Российская Федерация  ins33
Вторник, 28.06.2016, 17:35 | Сообщение # 2185
Dream Reader Mod
Статус:
Опытный:
Сообщений: 2269
Награды: 1
Регистрация: 17.01.2012

Asfagan, Теперь УТВЕРЖДАЮ! Мой способ корректней, правда есть правка касательно ЗП:
Код
for id = 1, 65535 do --  прошерстили всё
        local obj = level.object_by_id(id) -- определили все костры
        if obj then  -- убедились, что оно есть
дальше спавни рестриктор любым удобным способом по координатам
obj:position(), obj:level_vertex_id(), obj:game_vertex_id()
и радиусом 6

В логике рестриктора напиши так:
Код
[logic]
active =  sr_idle

[sr_idle]
on_actor_inside = %=add_health%
В xr_effects.script добавь ф-ию
Код
function add_health()
db.actor.health = 0.001
end


Ф-ию спавна рестрикторов запусти один раз при старте игры.
Сообщение отредактировал ins33 - Вторник, 28.06.2016, 17:48
  Злобная реклама
Вторник, 28.06.2016, 17:35
Статус:
Сообщений: 666
Регистрация: 17.01.2012
Российская Федерация  Asfagan
Вторник, 28.06.2016, 17:38 | Сообщение # 2186
Статус:
Бывалый:
Сообщений: 929
Награды: 12
Регистрация: 01.02.2014

ins33, видишь ли опять проверка через логику, + эффектор, все же тот вариант проще как и вариант от makdm, но это считай 3 варианта, выбор хороший smile
  Злобная реклама
Вторник, 28.06.2016, 17:38
Статус:
Сообщений: 666
Регистрация: 01.02.2014
Российская Федерация  ins33
Вторник, 28.06.2016, 17:42 | Сообщение # 2187
Dream Reader Mod
Статус:
Опытный:
Сообщений: 2269
Награды: 1
Регистрация: 17.01.2012

Про бинд костров не знал, отталкивался от
Цитата Asfagan ()
Функция: actor_binder:update(delta)

Всёж ЗП местами технологичней.

Добавлено (28.06.2016, 17:42)
---------------------------------------------
makdm, Кстати, а с какой периодичностью срабатывает bind_campfire, неужто реже рестриктора?

  Злобная реклама
Вторник, 28.06.2016, 17:42
Статус:
Сообщений: 666
Регистрация: 17.01.2012
Российская Федерация  makdm
Вторник, 28.06.2016, 17:50 | Сообщение # 2188
Время Альянса
Статус:
Опытный:
Сообщений: 1787
Награды: 19
Регистрация: 22.11.2012

ins33, первым всегда работает биндер . А уже из биндера передаётся управление файлу xr_logic.script на апдейт логики.
Так что биндер костра будет работать быстрее, чем логика рестриктора, установленного на месте костра.
  Злобная реклама
Вторник, 28.06.2016, 17:50
Статус:
Сообщений: 666
Регистрация: 22.11.2012
Российская Федерация  ins33
Вторник, 28.06.2016, 18:08 | Сообщение # 2189
Dream Reader Mod
Статус:
Опытный:
Сообщений: 2269
Награды: 1
Регистрация: 17.01.2012

makdm, быстрей = оптимальней?
  Злобная реклама
Вторник, 28.06.2016, 18:08
Статус:
Сообщений: 666
Регистрация: 17.01.2012
Беларусь  Krachkovskii
Вторник, 28.06.2016, 18:17 | Сообщение # 2190
Статус:
Отмычка:
Сообщений: 149
Награды: 4
Регистрация: 21.11.2015

Как создать callback в ЗП? Есть ли урок по созданию и использованию callbackов?
  Злобная реклама
Вторник, 28.06.2016, 18:17
Статус:
Сообщений: 666
Регистрация: 21.11.2015
Поиск: