Случайная подборка модов
Путь Человека: Возвращение
4.1
STALKER: [O.F.F.L.I.F.E.]
4.1
Конец Света 2: Последний Восход
3.2
Lost Alpha DC
3.9
Объединенный Пак - 2
3.7
Путь человека: Шаг в неизвестность
3.8
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
⚙ Модострой: Вопросница
Российская Федерация  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
Российская Федерация  denis2000
Вторник, 26.09.2017, 13:00 | Сообщение # 8176
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

Graff46, Список строк. Без каких то особенностей.
Сообщение отредактировал denis2000 - Вторник, 26.09.2017, 13:01
  Злобная реклама
Вторник, 26.09.2017, 13:00
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Украина  _S_k_i_F_
Вторник, 26.09.2017, 16:47 | Сообщение # 8177
Золотой Обоз
Статус:
Опытный:
Сообщений: 1311
Награды: 9
Регистрация: 09.08.2015

Такая проблема: написал функцию для замены визуала НПС
Код
function wf_a3_set_npc_zombied(actor, npc, p)
local visual = npc:get_visual_name()
npc:set_character_community("zombied", 0, 0)
npc:set_visual_name(tostring(visual.."_zombied"))
end

Но при вызове НПС сворачиваются вот в это (то есть если я правильно понял - у них сбрасываются текущие анимации)

Как восстановить им нормальное состояние? Пробовал сразу после set_visual_name вызвать
Код
function stop_animation(actor, npc,p)
local state_mgr = db.storage[npc:id()].state_mgr
    if state_mgr == nil then return end

    local planner = npc:motivation_action_manager()

    state_mgr.animation:set_state(nil, true)
    state_mgr.animation:set_state() --set_control()
    state_mgr.animstate:set_state(nil, true)
    state_mgr.animstate:set_state() --set_control()

    state_mgr:set_state("idle", nil, nil, nil, {fast_set = true})

    state_mgr:update()
    state_mgr:update()
    state_mgr:update()
    state_mgr:update()
    state_mgr:update()
    state_mgr:update()
    state_mgr:update()

    npc:set_body_state(move.standing)
    npc:set_mental_state(anim.free)
end

Но результата не дало. Заранее спасибо!
  Злобная реклама
Вторник, 26.09.2017, 16:47
Статус:
Сообщений: 666
Регистрация: 09.08.2015
Российская Федерация  STALKER_Game
Вторник, 26.09.2017, 17:23 | Сообщение # 8178
Статус:
Отмычка:
Сообщений: 84
Награды: 6
Регистрация: 16.02.2016

Как полностью отключить респавн(обновление популяции) NPC и мутантов?
Платформа: сталкер ТЧ 1.0006
  Злобная реклама
Вторник, 26.09.2017, 17:23
Статус:
Сообщений: 666
Регистрация: 16.02.2016
Российская Федерация  makdm
Вторник, 26.09.2017, 17:40 | Сообщение # 8179
Время Альянса
Статус:
Опытный:
Сообщений: 1787
Награды: 19
Регистрация: 22.11.2012

Цитата _S_k_i_F_ ()
Такая проблема: написал функцию для замены визуала НПС

Методы движка работают корректно при переходе НПС из OFFLINE в ONLINE
Прописываются в скриптах в методах net_spawn(sobject)

Поэтому я делал по другому:
НПС "ждал", когда ГГ "отвернется". Тогда быстрый перевод НПС в offline и возврат в online с заиеной визуала и группировки.

З.Ы. И не забывайте, что движковый метод set_visual_name "писался" разрабами под кат-сцены с ГГ. Поэтому такая смена визуала у НПС автоматом включает его бессмертие.
Сообщение отредактировал makdm - Вторник, 26.09.2017, 18:21
  Злобная реклама
Вторник, 26.09.2017, 17:40
Статус:
Сообщений: 666
Регистрация: 22.11.2012
Украина  _S_k_i_F_
Вторник, 26.09.2017, 19:04 | Сообщение # 8180
Золотой Обоз
Статус:
Опытный:
Сообщений: 1311
Награды: 9
Регистрация: 09.08.2015

makdm, сделал с переводом в он/офф-лайн, вылетает без лога stack trace:
Код
function wf_a3_set_npc_zombied(actor, npc, p)
local visual = npc:get_visual_name()
alife():set_switch_offline(npc.id, true)
alife():set_switch_online(npc.id, false)
npc:set_character_community("zombied", 0, 0)
npc:set_visual_name(tostring(visual.."_zombied"))
alife():set_switch_online(npc.id, true)
alife():set_switch_offline(npc.id, false)
end

Если написать так, то не вылетает, но и не переводит в он/офф-лайн
Код
function wf_a3_set_npc_zombied(actor, npc, p)
local visual = npc:get_visual_name()
alife():set_switch_offline(npc:id(), true)
alife():set_switch_online(npc:id(), false)
npc:set_character_community("zombied", 0, 0)
npc:set_visual_name(tostring(visual.."_zombied"))
alife():set_switch_online(npc:id(), true)
alife():set_switch_offline(npc:id(), false)
end
Сообщение отредактировал _S_k_i_F_ - Вторник, 26.09.2017, 19:16
  Злобная реклама
Вторник, 26.09.2017, 19:04
Статус:
Сообщений: 666
Регистрация: 09.08.2015
Российская Федерация  xr_Sanya
Вторник, 26.09.2017, 21:52 | Сообщение # 8181
Статус:
Бывалый:
Сообщений: 876
Награды: 4
Регистрация: 19.08.2015

ЗП. Можно ли както получить информацию о деньгах НПС в ОФФЛАЙНЕ? Насколько я знаю инфа о деньгах НПС запакована в net packet, МБ есть способ получения денег нпс без нет пакета?
Сообщение отредактировал xr_Sanya - Вторник, 26.09.2017, 21:52
  Злобная реклама
Вторник, 26.09.2017, 21:52
Статус:
Сообщений: 666
Регистрация: 19.08.2015
Российская Федерация  makdm
Среда, 27.09.2017, 14:02 | Сообщение # 8182
Время Альянса
Статус:
Опытный:
Сообщений: 1787
Награды: 19
Регистрация: 22.11.2012

Цитата _S_k_i_F_ ()
сделал с переводом в он/офф-лайн, вылетает без лога stack trace:

_S_k_i_F_, немного не так.
Вот так пишите в xr_effects.script:



А в xr_motivator.script в метод motivator_binder:net_spawn(sobject) пишите:



Еще раз говорю, что метод set_visual_name написан для кат-сцен. Там ведь как, проспавнили чувака, поменяли его визуал на визуал ГГ, отыграли сцену и удалили чувака.
Поэтому метод меняет только UPDATE часть нет-пакета. После сейв\лоад у чувака будет старый визуал.
Для изменения визуала "навсегда" нужен другой подход : перевод НПС в оффлайн, перепаковка STATE части нет-пакета, возврат НПС в онлайн.
Но... это совсем другие скрипты.

Добавлено (27.09.2017, 14:02)
---------------------------------------------
Цитата xr_Sanya ()
МБ есть способ получения денег нпс без нет пакета?

xr_Sanya, Нет такого способа.
А вас что, смущает нет-пакет?
Не нужно его бояться. Нужно просто приложить усилие и разобраться в нем.
Получение денег у НПС по его story_id:
Где-то в каком-то скрипте получаем количество денег у НПС со story_id = stalker_has_story_id :

local money = get_money_by_story_id("stalker_has_story_id ")

В _G.script пишем функцию:



Вот и всех делов - то.
Сообщение отредактировал makdm - Среда, 27.09.2017, 14:04
  Злобная реклама
Среда, 27.09.2017, 14:02
Статус:
Сообщений: 666
Регистрация: 22.11.2012
Российская Федерация  atanda
Среда, 27.09.2017, 15:24 | Сообщение # 8183
Статус:
Бывалый:
Сообщений: 672
Награды: 7
Регистрация: 12.07.2017

Нашёл метод для тушения костра в зп, написал кое какой код, вставил в actor_binder:update и при заходе в игру ловлю вот такой вот вылет:
Код

Expression    : !m_error_code
Function      : raii_guard::~raii_guard
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line          : 748
Description   : No such operator defined


Вот, собственно, код:
Код

for i = 1, 65535 do
    local s = alife():object(i)
    if s then
  local o = level.object_by_id(s.id)
  if o then
   local cf = o:get_campfire()
   if cf and o:position():distance_to(db:actor():position()) < 5 then
    cf:turn_off()
   end
  end
    end
end
  Злобная реклама
Среда, 27.09.2017, 15:24
Статус:
Сообщений: 666
Регистрация: 12.07.2017
Российская Федерация  denis2000
Среда, 27.09.2017, 15:55 | Сообщение # 8184
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

buffy, Зачем писать настолько кривой код если достаточно в скрипте bind_campfire.script расскоментировать строки отвечающие за управление кострами? И сделать этот код таким каким тебе нужно.
Сообщение отредактировал denis2000 - Среда, 27.09.2017, 15:59
  Злобная реклама
Среда, 27.09.2017, 15:55
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Российская Федерация  atanda
Среда, 27.09.2017, 16:07 | Сообщение # 8185
Статус:
Бывалый:
Сообщений: 672
Награды: 7
Регистрация: 12.07.2017

denis2000,
Да я так для теста написал, ну ладно и на этом спасибо. Так в чём собственно была то ошибка, как я понял какого-то оператора нет.

Добавлено (27.09.2017, 16:07)
---------------------------------------------
denis2000,
И да, а где происходит инициализация этого метода campfire_binder:__init? ну а точнее есть ли экземпляр этого класса?

  Злобная реклама
Среда, 27.09.2017, 16:07
Статус:
Сообщений: 666
Регистрация: 12.07.2017
Российская Федерация  denis2000
Среда, 27.09.2017, 16:32 | Сообщение # 8186
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

buffy, Всякий ли объект имеет такой метод: local cf = o:get_campfire()? Скорее всего не каждый. Что будет если вызвать отсутствующий метод? Правильно - вылет.
  Злобная реклама
Среда, 27.09.2017, 16:32
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Российская Федерация  atanda
Среда, 27.09.2017, 16:45 | Сообщение # 8187
Статус:
Бывалый:
Сообщений: 672
Награды: 7
Регистрация: 12.07.2017

denis2000,
Хм, у меня что-то нет идей как раелизовать проверку на то, что объект например нпс или тот же самый костёр wacko
  Злобная реклама
Среда, 27.09.2017, 16:45
Статус:
Сообщений: 666
Регистрация: 12.07.2017
Российская Федерация  denis2000
Среда, 27.09.2017, 16:58 | Сообщение # 8188
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

Цитата buffy ()
что объект например нпс

Уже сделано за вас GSC в _g.script:
Код
function IsStalker (object, class_id)
  local id = class_id or get_clsid(object)
  return stalker_classes[id] == true
end

Для костров делаете по аналогии. У костров clsid.zone_campfire = 206 (см. lua_help.script)
Сообщение отредактировал denis2000 - Среда, 27.09.2017, 17:01
  Злобная реклама
Среда, 27.09.2017, 16:58
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Украина  VovanFitisov
Среда, 27.09.2017, 21:08 | Сообщение # 8189
Статус:
Неопытный:
Сообщений: 532
Награды: 2
Регистрация: 07.07.2016

Ребята, хелпуйте. Нужна оригинальная gamedata со всеми файлами для ЗП
  Злобная реклама
Среда, 27.09.2017, 21:08
Статус:
Сообщений: 666
Регистрация: 07.07.2016
Сомали  WolfHeart
Среда, 27.09.2017, 21:19 | Сообщение # 8190
Статус:
Опытный:
Сообщений: 3154
Награды: 18
Регистрация: 06.06.2017

Цитата VovanFitisov ()
Нужна оригинальная gamedata со всеми файлами для ЗП

А сам распаковать, не можешь?
Вот распаковщик: S.T.A.L.K.E.R. Universal Extractor 2.0
Там все подробно расписано.

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