Случайная подборка модов
New Level Changer 6.0. Начало
4.0
Prosectors Project
4.0
Old Episodes. Epilogue
3.2
Oblivion Lost Remake
4.1
Another Zone Mod. Пролог
4.2
The Second Sun
2.9
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
⚙ Модострой: Вопросница
Российская Федерация  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
Поиск: