Случайная подборка модов
Lost World Requital
3.9
Золотой Обоз 2
3.0
Обречённый город
4.2
Winter of Death: Ultimatum
4.0
Dream Reader - The Leper Area
4.0
Gott Mit Uns - Бог С Нами
4.0
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
⚙ Модострой: Вопросница
Российская Федерация  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
Российская Федерация  atanda
Воскресенье, 12.11.2017, 10:59 | Сообщение # 8626
Статус:
Бывалый:
Сообщений: 672
Награды: 7
Регистрация: 12.07.2017

monk, согласен с товарищем Jargon, но всё же попытаюсь внести свою лепту в обсуждение данного вопроса. Как мне кажется проблема ещё и в том, что движок не может или не успевает(лучше не успевает) перенести объект из онлайна в оффлайн и наоборот. По-моему на амк этот вопрос задавали.
  Злобная реклама
Воскресенье, 12.11.2017, 10:59
Статус:
Сообщений: 666
Регистрация: 12.07.2017
Российская Федерация  Maximless
Воскресенье, 12.11.2017, 11:18 | Сообщение # 8627
Статус:
Гость:
Сообщений: 54
Награды: 1
Регистрация: 19.09.2017

zhenya4342, А сама секция sidorovich где? Должна присутствовать в конфиге. + Нужна ссылка биндер там ж для самого торговца, и сам биндер. Ну и Анимки конечно ж. Ах да и звуки... может еще что-то...

ТЧ! Кое что нашел! Есть такая функция в xr_gulag.script get_gulag_by_name. Так вот получается что работает только в онлайне, но ведь вызывается она всегда из load_states гулага, независимо где в онлайне или в оффлайне сам гулаг, и соответственно возвращает нил при оффлайне. если мы глянем функцию load_states то увидим что есть проверки например
...
if xr_gulag.getGulagPopulation("gar_hellcar_group") == 0 and has_alife_info("gar_bandits_raid")then
...

Это ж проверяет гулаг стейт и возвращает состояние гулага. Так вот в оффлйне эта проверка не сработает, потому что db.zone_by_name вызывается строго из нет спаун.

Что я сделал создал таблицу в smart_terrain.script smarts_by_names и вызвал из метода on_before_register, ну и в методе unregister присвоил таблице значение нил.

Соответственно функция в xr_gulag.script

Код
-- получить гулаг по имени смарта.
-- работает только для смартов, которые в онлайне.(Уже нет)
-- Теперь работает ВСЕГДА!!!
function get_gulag_by_name( names )
    local go_strn = db.zone_by_name[names]
    local new_strn = smart_terrain.smarts_by_names[names]
    
    --dbglog("DEBUG!!!get_gulag_by_name: go_strn %s new_strn %s ", go_strn, new_strn)
    --dbglog("2DEBUG!!!get_gulag_by_name: go_strn id %s new_strn id %s ", go_strn and go_strn:id(), new_strn.id)

    if go_strn then --' В Онлайне!!!
  local strn = alife_object( go_strn:id() )

  strn:initialize_if_needed()

  return strn.gulag
    elseif new_strn then --' В оффлайне!!!
  local strn = alife_object( new_strn.id )

  strn:initialize_if_needed()
  return strn.gulag
    else
  return nil --' Гулага нет, вернем нил.
    end
end


Также это обязательно нужно для функции changeCasualities, которая проверяет потери в гулаге, например...
Сообщение отредактировал Maximless - Воскресенье, 12.11.2017, 11:20
  Злобная реклама
Воскресенье, 12.11.2017, 11:18
Статус:
Сообщений: 666
Регистрация: 19.09.2017
Сомали  WolfHeart
Воскресенье, 12.11.2017, 11:31 | Сообщение # 8628
Статус:
Опытный:
Сообщений: 3154
Награды: 18
Регистрация: 06.06.2017

Цитата monk ()
Суть проблемы: игра виснет намертво, когда НПС пытается перейти через переход между локациями

Цитата Jargon ()
В ЗП данная фича вырезана,

А в СоС ее вернули, только для НПС и монстров сделали другие переходы (вроде-бы).

Сообщение отредактировал WolfHeart - Воскресенье, 12.11.2017, 11:36
  Злобная реклама
Воскресенье, 12.11.2017, 11:31
Статус:
Сообщений: 666
Регистрация: 06.06.2017
Российская Федерация  monk
Воскресенье, 12.11.2017, 12:01 | Сообщение # 8629
«OGSM CS 1.8 + Fixes»
Статус:
Опытный:
Сообщений: 2559
Награды: 12
Регистрация: 24.11.2012

Цитата Jargon ()
в оригинале тч чн лично наблюдал как неписи на моих глазах уходят на другую локу, это ты что-то там задел в скриптах\коде

Нет, там всё по дефолту. Да и если бы что задел, то этот завис игры был бы на всех переходах подряд, а он на одном конкретном - на переходе из ТД на Кордон. Вот и пытаюсь разобраться, что там не так.

Цитата WolfHeart ()
в СоС ее вернули, только для НПС и монстров сделали другие переходы

Придётся скачать и глянуть, что там.
Сообщение отредактировал monk - Воскресенье, 12.11.2017, 12:03
  Злобная реклама
Воскресенье, 12.11.2017, 12:01
Статус:
Сообщений: 666
Регистрация: 24.11.2012
Сомали  WolfHeart
Воскресенье, 12.11.2017, 12:10 | Сообщение # 8630
Статус:
Опытный:
Сообщений: 3154
Награды: 18
Регистрация: 06.06.2017

Цитата monk ()
Придётся скачать и глянуть, что там.

Смотри Кордон, там точно была такая-же проблема, пока не разнесли переходы.

Сообщение отредактировал WolfHeart - Воскресенье, 12.11.2017, 12:10
  Злобная реклама
Воскресенье, 12.11.2017, 12:10
Статус:
Сообщений: 666
Регистрация: 06.06.2017
Российская Федерация  denis2000
Воскресенье, 12.11.2017, 12:48 | Сообщение # 8631
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

Цитата yobakun ()
как найти все бутылки кроме целых 3/3? iterate_inventory найдет сразу все бутылки без разбору.
Платформа ЗЧ

Если степень использования предмета задается параметром condition то проверяйте его, а если это вообще отдельный параметр то не факт что без редактирования движка вам его дадут проанализировать.


zhenya4342, Как уже сказал уважаемый Maximless, для восстановления персонажа Сидоровича в ЗП понадобиться еще много телодвижений вот статейка или же смотрте как это сдалано в других модах (в Spectrum Project например Сидорович есть в двух вариантах - сидящий в бункере торговец и гуляющий по локации НПС).


Цитата monk ()
Придётся скачать и глянуть, что там.

Во первых CoC - это версия 1.60х во вторых правки там в движке. Раз у вас ЧН то и решение требуется именно для него в ТЧ и ЗП ситуация принципиально иная.
1. У вас НПС в составе сквада?
2. Как сквад с вашим НПС получает команду на переход?
Сообщение отредактировал denis2000 - Воскресенье, 12.11.2017, 14:43
  Злобная реклама
Воскресенье, 12.11.2017, 12:48
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Российская Федерация  monk
Воскресенье, 12.11.2017, 13:08 | Сообщение # 8632
«OGSM CS 1.8 + Fixes»
Статус:
Опытный:
Сообщений: 2559
Награды: 12
Регистрация: 24.11.2012

Цитата denis2000 ()
1. У вас НПС в составе сквада?

Это отряд НПС, не отдельный перс.
Цитата denis2000 ()
2. Как сквад с вашим НПС получает команду на переход?

ВГ (война группировок) "заставляет" сквады захватывать свободные смарты. То есть - это дефолтная война группировок игры СТАЛКЕР Чистое небо.
  Злобная реклама
Воскресенье, 12.11.2017, 13:08
Статус:
Сообщений: 666
Регистрация: 24.11.2012
Российская Федерация  Sander
Воскресенье, 12.11.2017, 13:34 | Сообщение # 8633
Статус:
Бывалый:
Сообщений: 764
Награды: 6
Регистрация: 18.09.2012

Добавил в character desc в спавн одному персонажу уникальный предмет, персонажа заспавнил мёртвым, при обыске предмета нету. Из за чего может быть?
  Злобная реклама
Воскресенье, 12.11.2017, 13:34
Статус:
Сообщений: 666
Регистрация: 18.09.2012
Российская Федерация  Khyzyr
Воскресенье, 12.11.2017, 13:46 | Сообщение # 8634
Статус:
Неопытный:
Сообщений: 452
Награды: 5
Регистрация: 19.06.2017

Sander, Там спавн не через конфиг, а скрипт

Эта функция должна работать, по идее.
Цитата
function spawn_killers_pda()
local id, npc
if xr_conditions.is_alive(nil,nil,{"ID_NPC"}) then
id = "ID_NPC"
npc = get_story_object_id(id)
npc = alife():object(npc)
alife():create("wpn_rpg7", npc.position, npc.level_vertex_id, npc.game_vertex_id, npc.id)
end
end
  Злобная реклама
Воскресенье, 12.11.2017, 13:46
Статус:
Сообщений: 666
Регистрация: 19.06.2017
Российская Федерация  Maximless
Воскресенье, 12.11.2017, 14:16 | Сообщение # 8635
Статус:
Гость:
Сообщений: 54
Награды: 1
Регистрация: 19.09.2017

monk, А вы вообще уверены, что сталкер переходит? Может, доходя до конца локации падает за нее? Или не сбрасывется патрульный путь...понимаю что бред, но мало-ли... Если и здесь ничего не поможет то можно попробывать взять из движка ЗП функцию телепортации нпс и вызывать. Например добавить спец рестрикторы и в биндере сталкеров проверем во вхождение этого самого нпс и телепортнем его на др локу в рандомный ВАЛИДНЫЙ вертекс например. Как то так.
Сообщение отредактировал Maximless - Воскресенье, 12.11.2017, 14:17
  Злобная реклама
Воскресенье, 12.11.2017, 14:16
Статус:
Сообщений: 666
Регистрация: 19.09.2017
Российская Федерация  denis2000
Воскресенье, 12.11.2017, 14:58 | Сообщение # 8636
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

Цитата Sander ()
Из за чего может быть?

Инвентарь мертвых НПС очищается. Спавн квестовых предметов в трупы НПС зависит от платформы.
Сообщение отредактировал denis2000 - Воскресенье, 12.11.2017, 15:01
  Злобная реклама
Воскресенье, 12.11.2017, 14:58
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Российская Федерация  sinaps
Воскресенье, 12.11.2017, 15:47 | Сообщение # 8637
Статус:
Ветеран:
Сообщений: 4757
Награды: 4
Регистрация: 02.04.2016

Цитата mmihaill ()
модель "wpn_usp45_hud.ogf" не переводится. Как мне конвертировать "wpn_usp45_hud.ogf" в .object?

Если бы можно было скачать тот файл который отказывается конвертироваться, то на этот вопрос можно было бы ответить. В принципе должна бы конвертироваться.
  Злобная реклама
Воскресенье, 12.11.2017, 15:47
Статус:
Сообщений: 666
Регистрация: 02.04.2016
Российская Федерация  zhenya4342
Воскресенье, 12.11.2017, 15:55 | Сообщение # 8638
Статус:
Отмычка:
Сообщений: 108
Награды: 0
Регистрация: 08.10.2017

buffy, в движке? 0_o
Всегда до этого указывало строку из конфига и я её исправлял :/

Maximless, секция sidorovich есть везде, где надо, вот в чём прикол. Я вообще для начала хотел сделать просто НПС с моделькой и именем Сидоровича, а потом уже пошаманить с ним. Создал НПС как всегда, только прописал ему кастомное имя и модельку. В итоге ловлю такой вылет

denis2000, я для начала хотел просто создать НПС Сидоровича как просто сталкера, хотя бы чтобы модельку посмотреть в игре, потом уже с ним шаманить. В итоге создал НПС как всегда делаю, только спавн прописал через клавишу F6 в игре рядом с ГГ. В итоге как только лока начинает грузится (лог) - ловлю этот самый вылет. Ничего не понимаю.
P.S. спавн через F6 делал по твоей инструкции с sigerous.ru
  Злобная реклама
Воскресенье, 12.11.2017, 15:55
Статус:
Сообщений: 666
Регистрация: 08.10.2017
Российская Федерация  ST_Barhan
Воскресенье, 12.11.2017, 16:11 | Сообщение # 8639
Статус:
Зевака:
Сообщений: 1
Награды: 0
Регистрация: 12.11.2017

Помогите, пожалуйста!
Платформа: СоС.
Смысл моей идеи: Добавить в игру открытую банку тушенки, закрытую. Чтобы открыть банку ГГ необходимо иметь в рюкзаке швейцарский нож(нож тоже отдельно добавлен в игру). При этом с шансом 10%(значение можно подкорректировать) нож может сломаться и банка тушенки не открывается (на экран выводится сообщение об этом). Если ГГ хочет открыть банку, но в рюкзаке нет ножа, то на экран выводится сообщение, что нет ножа.
Все я это сделал, все банки есть, нож есть, написал скрипт.
Код

        local oItem = db.actor:object("swiss")
    if(s_obj)and(s_obj:section_name()=="tushonka_close")and(oItem ~= nil)then
     local chance = math.random(1,10)
       if(chance==1)then
         db.actor:drop_item(oItem)
         alife():release(alife():object(oItem:id()), true)
         local text = game.translate_string("st_swsr")   
         alife():create("tushonka_close", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(),db.actor:id())
         SetHudMsg(text,3)
       else
         alife():create("tushonka_open", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(),db.actor:id())
         alife():create("can_script", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
         db.actor:eat(db.actor:object("can_script"))
       end
    elseif(s_obj)and(s_obj:section_name()=="tushonka_close")and(oItem == nil)then
       local text = game.translate_string("st_swsh")
       alife():create("tushonka_close", db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())    
       SetHudMsg(text,3)
    end

Но некорректно работают вот эти 2 строчки...
Код

...
alife():create("can_script", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
db.actor:eat(db.actor:object("can_script"))
...


can_script я добавил, чтобы в случае удачи(нож есть и он не сломался), ГГ получает при его "съедании" нужные эффекты( эффекты, прописанные еде в actor_effects_data, типа, вскрытие банки)
Но непорядок вот в чем: ГГ юзает закрытую тушенку, нож не ломается(если повезло), в рюкзак спавнится открытая банка тушенки и can_script, который должен сразу же использоваться но... Он не используется! Зато при повторном использовании новой закрытой банки, т.е. в рюкзаке уже есть can_script от предыдущего использования, происходит все тоже самое, но уже can_script используется, ГГ получает нужные эффекты, но в инвентаре все также лежит злополучный can_script. Что не так? Почему при 1-ом использовании из тех 2-ух строчек срабатывает 1-ая(спавн can_script), а при 2-ом использовании новой закрытой банки, срабатывают обе строчки(спавн can_script и его использование)?

Заранее благодарю за помощь!
Сообщение отредактировал ST_Barhan - Воскресенье, 12.11.2017, 16:14
  Злобная реклама
Воскресенье, 12.11.2017, 16:11
Статус:
Сообщений: 666
Регистрация: 12.11.2017
Российская Федерация  Maximless
Воскресенье, 12.11.2017, 16:18 | Сообщение # 8640
Статус:
Гость:
Сообщений: 54
Награды: 1
Регистрация: 19.09.2017

Цитата zhenya4342 ()
секция sidorovich есть везде, где надо
Вы заинклудили этот файл с секцией sidorovich например в stalker.ltx? Или секция вызывается из m_stalker.ltx? Непонятно...
Да и просто так и не получиться Сидора присобачить в игру, у него другая анимация др кости наверное, нужно также и логику дописывать по аналогии с ТЧ (xr_logic, modules).script

Цитата Sander ()
Получаю вылет
Если игра ТЧ\ЧН, то вместо get_story_object_id юзайте id_by_sid
Сообщение отредактировал Maximless - Воскресенье, 12.11.2017, 16:42
  Злобная реклама
Воскресенье, 12.11.2017, 16:18
Статус:
Сообщений: 666
Регистрация: 19.09.2017
Поиск: