Случайная подборка модов
SRP mod
3.9
Последний день
3.5
Old Story
4.1
Lost World: Origin
4.1
Большая Зона
3.4
Aliens Time: Глава 1
3.7
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
⚙ Модострой: Вопросница
Российская Федерация  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
Поиск: