Случайная подборка модов
Clear Sky - Remake
3.8
Волей Случая
3.5
Lost World Condemned
3.5
Смерти Вопреки 2. Одним днем живу
3.4
Судьба Зоны 0.5
3.9
DMX MOD 1.3.5
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
Российская Федерация  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
Поиск: