Случайная подборка модов
Смерти Вопреки 2. Одним днем живу
3.4
«Последний Сталкер»
4.1
Сезон катастроф: Агрессия
2.7
Народная Солянка 2016
4.1
Парадокс: Начало
3.6
Радар - глухой лес
2.6
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
⚙ Модострой: Вопросница
Российская Федерация  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
Украина  Vlador
Суббота, 17.06.2017, 00:49 | Сообщение # 6886
Статус:
Опытный:
Сообщений: 1572
Награды: 12
Регистрация: 12.11.2014

Цитата Sherlok13 ()
сейчас все профи только через алл спавн работают

Профи работают в SDK. wink
Создавая точки и пути, попутно прописывая всю логику и скрипты. smile
  Злобная реклама
Суббота, 17.06.2017, 00:49
Статус:
Сообщений: 666
Регистрация: 12.11.2014
Украина  _S_k_i_F_
Суббота, 17.06.2017, 15:58 | Сообщение # 6887
Золотой Обоз
Статус:
Опытный:
Сообщений: 1311
Награды: 9
Регистрация: 09.08.2015

Такая проблема: при вызове db.actor:eat(sl_b) в коде
Код
local sl_b = db.actor:object("sleep_booster")
    for i=1,sleep_time do
  alife():create(sl_b,db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())
  if sl_b ~= nil then db.actor:eat(sl_b) end
    end

происходит вылет stack trace: В чем проблема? Если убрать эту строку - все работает. Вызываю из функции dream_callback2() в ui_sleep_dialog.script Заранее спасибо!
  Злобная реклама
Суббота, 17.06.2017, 15:58
Статус:
Сообщений: 666
Регистрация: 09.08.2015
Российская Федерация  Jeka81
Суббота, 17.06.2017, 17:56 | Сообщение # 6888
Статус:
Отмычка:
Сообщений: 125
Награды: 6
Регистрация: 02.01.2014

Как делаются задания (Зов Припяти) типа "быть в таком-то месте в такое-то время", т.е. как проверить, нахожусь ли я (ГГ) в нужном месте в промежуток времени с 13:00 до 15:00 (к примеру)?

Спасибо заранее.
Сообщение отредактировал Jeka81 - Суббота, 17.06.2017, 17:56
  Злобная реклама
Суббота, 17.06.2017, 17:56
Статус:
Сообщений: 666
Регистрация: 02.01.2014
Российская Федерация  makdm
Суббота, 17.06.2017, 18:08 | Сообщение # 6889
Время Альянса
Статус:
Опытный:
Сообщений: 1787
Награды: 19
Регистрация: 22.11.2012

_S_k_i_F_, вылет происходит потому что в этой строке

Цитата _S_k_i_F_ ()
alife():create(sl_b,db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())


что такое sl_b движок не понимает.
Ему нужна секция объекта.

Цитата Jeka81 ()
Как делаются задания (Зов Припяти) типа "быть в таком-то месте в такое-то время"

Ставится рестриктор с определёнными размерами. Рестриктору прописывается логика. В логике рестриктора проверяется, находится ли ГГ внутри рестриктора и одновременно проверяется время.
Если все условия выполнены, то происходит событие.
Сообщение отредактировал makdm - Суббота, 17.06.2017, 18:08
  Злобная реклама
Суббота, 17.06.2017, 18:08
Статус:
Сообщений: 666
Регистрация: 22.11.2012
Российская Федерация  denis2000
Суббота, 17.06.2017, 18:17 | Сообщение # 6890
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

Jeka81, Логика рестриктора:
Код
[logic]
active = sr_idle@wait

[sr_idle@wait]
on_actor_inside = {=is_game_time_13_15} sr_idle@start

[sr_idle@start]

Код
function is_game_time_13_15 (actor, npc)
    return db.actor ~= nil and level.get_time_hours() >= 13 and level.get_time_hours() < 15
end
  Злобная реклама
Суббота, 17.06.2017, 18:17
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Украина  _S_k_i_F_
Суббота, 17.06.2017, 18:22 | Сообщение # 6891
Золотой Обоз
Статус:
Опытный:
Сообщений: 1311
Награды: 9
Регистрация: 09.08.2015

makdm, я с самого начала указывал имя секции и в alife():create и в eat Так же вылетало. Да и выше переменная инициализирована.
Сообщение отредактировал _S_k_i_F_ - Суббота, 17.06.2017, 18:23
  Злобная реклама
Суббота, 17.06.2017, 18:22
Статус:
Сообщений: 666
Регистрация: 09.08.2015
Российская Федерация  Jeka81
Суббота, 17.06.2017, 18:24 | Сообщение # 6892
Статус:
Отмычка:
Сообщений: 125
Награды: 6
Регистрация: 02.01.2014

Цитата denis2000 ()
level.get_time_hours() >= 13 and level.get_time_hours() < 15
вот именно это я и не знал как проверить. Спасибо за более развернутый ответ!
  Злобная реклама
Суббота, 17.06.2017, 18:24
Статус:
Сообщений: 666
Регистрация: 02.01.2014
Российская Федерация  denis2000
Суббота, 17.06.2017, 18:32 | Сообщение # 6893
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

Sherlok13,
Код
item_in_slot = npc:item_in_slot(2)
    if item_in_slot ~= nil and
       item_in_slot:id() == item_id
    then
  if npc:story_id() == ид_волка then return false end
        item:unload_magazine()
    --' Тут надо уменьшить кондишн оружия
  item:set_condition((math.random(15)+75)/100)
        return true
    end
Сообщение отредактировал denis2000 - Суббота, 17.06.2017, 20:41
  Злобная реклама
Суббота, 17.06.2017, 18:32
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Российская Федерация  makdm
Суббота, 17.06.2017, 19:00 | Сообщение # 6894
Время Альянса
Статус:
Опытный:
Сообщений: 1787
Награды: 19
Регистрация: 22.11.2012

Цитата _S_k_i_F_ ()
я с самого начала указывал имя секции и в alife():create и в eat Так же вылетало.

У тебя изначально сам код написан с ошибкой.
Вот так попробуй:

local actor = db.actor
for i = 1, sleep_time do
if actor:object("sleep_booster") ~= nil then
actor:eat(actor:object("sleep_booster"))
else
alife():create( "sleep_booster", vector(), 0, 0, actor:id() )
end
end

Но и это, по честному, немного неправильно, так как после спавна необходимо делать задержку в скрипте, чтобы объект успел проспавниться движком.
  Злобная реклама
Суббота, 17.06.2017, 19:00
Статус:
Сообщений: 666
Регистрация: 22.11.2012
Российская Федерация  Sherlok13
Суббота, 17.06.2017, 19:39 | Сообщение # 6895
Статус:
Опытный:
Сообщений: 1367
Награды: 9
Регистрация: 08.06.2012

denis2000, не очень получается, сделал вот так:

Пробовал ниже прописывать, в сам скрипт вставлять строчку, он всё-равно с автоматом умирает
  Злобная реклама
Суббота, 17.06.2017, 19:39
Статус:
Сообщений: 666
Регистрация: 08.06.2012
Российская Федерация  makdm
Суббота, 17.06.2017, 20:04 | Сообщение # 6896
Время Альянса
Статус:
Опытный:
Сообщений: 1787
Награды: 19
Регистрация: 22.11.2012

Цитата Sherlok13 ()
Пробовал ниже прописывать, в сам скрипт вставлять строчку, он всё-равно с автоматом умирает

Открываем файл system.ltx и смотрим:

slot_persistent_1 = true ;knife
slot_persistent_2 = false ;pistol
slot_persistent_3 = false ;automatic
slot_persistent_4 = true ;grenades
slot_persistent_5 = true ;binocular
slot_persistent_6 = true ;bolt
slot_persistent_7 = false ;outfit
slot_persistent_8 = true ;pda
slot_persistent_9 = true ;detector
slot_persistent_10 = true ;torch

Вот как по вашему - в каком слоте автомат?
  Злобная реклама
Суббота, 17.06.2017, 20:04
Статус:
Сообщений: 666
Регистрация: 22.11.2012
Российская Федерация  denis2000
Суббота, 17.06.2017, 20:34 | Сообщение # 6897
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

Sherlok13, В ТЧ story_id - это число от 0 до 65535. Какой у Волка я не знаю поищите в файле game_story_ids.ltx


Цитата makdm ()
Вот как по вашему - в каком слоте автомат?

В ТЧ во втором.
Сообщение отредактировал denis2000 - Суббота, 17.06.2017, 20:39
  Злобная реклама
Суббота, 17.06.2017, 20:34
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Российская Федерация  Graff46
Суббота, 17.06.2017, 21:36 | Сообщение # 6898
Новое Время
Статус:
Бывалый:
Сообщений: 867
Награды: 7
Регистрация: 02.05.2013

  Злобная реклама
Суббота, 17.06.2017, 21:36
Статус:
Сообщений: 666
Регистрация: 02.05.2013
Российская Федерация  Sherlok13
Суббота, 17.06.2017, 21:51 | Сообщение # 6899
Статус:
Опытный:
Сообщений: 1367
Награды: 9
Регистрация: 08.06.2012

Цитата makdm ()
Вот как по вашему - в каком слоте автомат?

Цитата denis2000 ()
В ТЧ во втором.

А почему так? По идее это 3й слот, "slot_persistent_3 = false ;automatic"
Цитата makdm ()
Открываем файл system.ltx и смотрим:

Имеете ввиду что нужно 3й слот указывать? А то что я проделывал, для пистолетного слота было?
Цитата Sherlok13 ()
--' Тут надо уменьшить кондишн оружия

И я не знаю, что вот это значит^
Нужно трогать вообще?
Цитата denis2000 ()
В ТЧ story_id - это число от 0 до 65535. Какой у Волка я не знаю поищите в файле game_story_ids.ltx

Так, нашёл, это 006 ("Escape_novice_lager_volk")


Но оружие всё-равно выпало
  Злобная реклама
Суббота, 17.06.2017, 21:51
Статус:
Сообщений: 666
Регистрация: 08.06.2012
Сомали  WolfHeart
Суббота, 17.06.2017, 21:52 | Сообщение # 6900
Статус:
Опытный:
Сообщений: 3154
Награды: 18
Регистрация: 06.06.2017

Цитата aleksstalker ()
я вас прошу, скиньте гамедату Лост Альфы

Да проще самому распаковать. Вот погляди: Сообщение # 5070 и вот это если не разберешся как пользоваться: Сообщение # 5087

Сообщение отредактировал WolfHeart - Суббота, 17.06.2017, 21:57
  Злобная реклама
Суббота, 17.06.2017, 21:52
Статус:
Сообщений: 666
Регистрация: 06.06.2017
Поиск: