Перейти к содержанию

Рекомендуемые сообщения

 
 

muzafir показал бы чего там наделал ты, а то так только гадать где ошибка может быть.
 

20 минут назад, muzafir сказал:

они появятся логикой

Займут любую свободную, исключением является те случаи, в которых стоит проверка на стори_ид, профиль определённого НПС и тому подобное.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Что конкретно показать? Какую свободную, если она прописана в Custom data конкретного НПС, который убит? Я, похоже, чего-то не понимаю

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
Спойлер

Custom data смарта:

[smart_terrain]
type = sim_keep_lager
capacity = 12
;communities = keepers
squad = 1
group = 12

Custom data бойца:
[smart_terrains]
simz_keep_lager = true

Примеры логики из gulag_simeiz.ltx:

[logic@simz_keep_lager_zastava_guard2]
active = walker@simz_keep_lager_zastava_guard2
on_hit = hit@keepers_lager
on_death = death@keepers_lager

[walker@simz_keep_lager_zastava_guard2]
path_walk = zastava_guard_walk2
path_look = zastava_guard_look2
meet = meet@keepers_lager
on_info = {+simeiz_keep_lager_alert} %=killactor%


[logic@simz_keep_lager_zastava_guard3]
active = walker@simz_keep_lager_zastava_guard3
on_hit = hit@keepers_lager
on_death = death@keepers_lager

[walker@simz_keep_lager_zastava_guard3]
path_walk = zastava_guard_walk3
path_look = zastava_guard_look3
meet = meet@keepers_lager
on_info = {+simeiz_keep_lager_alert} %=killactor%

Вот так гружу ее в gulag_simeiz.script:
if type == "simz_keep_lager" then
    t = { section = "logic@simz_keep_lager_zastava_guard2",
        idle = 0,
        prior = 9, state = {0,1},
        in_rest = "", out_rest = ""
    }
    table.insert(sj, t)
    t = { section = "logic@simz_keep_lager_zastava_guard3",
        idle = 0,
        prior = 9, state = {0,1},
        in_rest = "", out_rest = ""
    }
    table.insert(sj, t)
end

У смарта только два состояния:
function load_states(gname, type)
    if type == "simz_keep_lager" then
        return function(gulag)
            if not db.actor then
                return gulag.state
            end
            if level.get_time_hours() >= 5 and level.get_time_hours() <= 22 then
                return 0  -- день
            else
                return 1  -- ночь
            end
        end
    end
end

Проверка коммьюнити присутствует(и спавню в смарте точно их):
function checkStalker(npc_community, gulag_type, npc_rank, se_obj)
    if gulag_type == "simz_keep_lager" then
        return npc_community == "keepers"
    end
    return false
end

gulag_simeiz добавил после оригинальных в xr_gulag.script

Вот то, что сделал. Что не так? Чего им еще не хватает?

Изменено пользователем muzafir
орфографическая ошибка

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

muzafir почему у тебя тут, такое название type = sim_keep_lager
а потом ниже уже другое? if type == "simz_keep_lager"

  • Жму руку 1

Внимание! Ищу любые фиксы/исправления для оригинального ТЧ.

Спойлер

Или людей, которые желают помочь с этим делом.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Спасибо огромное, уже недели 2 ковыряюсь с этим. Миллион раз исправлял, а это все же не заметил. Это была ошибка однозначно, но когда я ее исправил вернулись мои "прекрасные" вылеты без лога ?.

Появились они, когда я логику из кастом дата отдельных сталкеров собирал в gulag. ltx и gulag.script.  До этого все работало прекрасно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

muzafir много где собака зарыта может быть.
У тебя capacity = 12, в логике только 2. Или это кусочек логики?
Эти параметры прописаны?
on_hit = hit@keepers_lager
on_death = death@keepers_lager

Вот тут:
if type == "simz_keep_lager" then
    t = { section = "logic@simz_keep_lager_zastava_guard2",
Лучше сделать так:
if type == "simz_keep_lager" then
    t = { section = "logic@simz_keep_lager_guard2",
Соответственно тут:
[walker@simz_keep_lager_zastava_guard2]
path_walk = zastava_guard_walk2
path_look = zastava_guard_look2
Так:
[walker@simz_keep_lager_guard2]
path_walk = guard2_walk2
path_look = guard2_look2
Делай уже как делали разрабы, не перекручивай.

Потом, все НПС которых ты прописываешь в смарт соответствуют:
squad = 1
group = 12
?
Дальше, smart_terrain_presets настроил для локации, если она новая?
В gulag_tasks.ltx прописал?

Этот список можно долго продолжать.
Что бы не было таких проблем, делай гулаг по примеру других.
Например гулага долга на Свалке.


Внимание! Ищу любые фиксы/исправления для оригинального ТЧ.

Спойлер

Или людей, которые желают помочь с этим делом.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Да, это кусочек логики для примера все параметры hit, death, meet прописаны, в gulag_tasks.ltx инклюд есть.

У меня в смарте ровно 12 человек. Раньше было так:

squad = 1
group = 9,

т.к. трое сидят в кампе возле костра и выполняют одну работу. Когда переделывал, увидел, что работа для каждого в gulag.script грузится отдельно, поэтому изменил на 

squad = 1
group = 12

До сих пор сталкивался только с тем, что вылеты без лога случаются, когда есть косяки в названии путей (например пробел). Или грубая ошибка в конфиге (незакрытая скобка, отсутвующий  end в функции).

Все уже многократно проверял. Дело вряд ли в путях: если удалить все население смарта, игра грузится, если оставить хоть одного, вылетает на этапе синхронизации. Не представляю, как сузить круг поисков.

Вообще главный вопрос: правильно ли я понимаю, что такая организация - gulag.script, gulag.ltx - необходима для работы респавна? Т.к. повторюсь: что при моем старом (рабочем) варианте вся логика прописана НПС прямо в кастом дата и все работало отлично. У меня уже полностью готов сюжет на локации и только сейчас я понял, что нужен респавн?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

muzafir по сути дело в том, что гулаги могут постоянно наполняться сталкерами, а вот персонажи вне их уже нет. Так что по сути твоё предложение верно.

  • Жму руку 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
9 часов назад, imcrazyhoudini сказал:

 по сути твоё предложение верно.

Ok, я так и думал. Буду рад любой мысли, что еще можно проверить, куда глянуть. В Тенях Чернобыля же нет файла, где нужно регистрировать все смарты на локации, как в Зове Припяти?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

muzafir да нет вроде. Если не ошибаюсь, то всё, что нужно для гулага - gulag_***.script, gulag_***.ltx да и всё.

  • Мастер! 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Здравствуйте, как можно проверить координаты / жив или мертв NPC, заспавненный следующим образом: alife():create("esc_fake_wolf", a, level_vertex, game_vertex_id)  ?


Слишком огромная подпись.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Добавил на локацию объект с другой локации через СДК (переносил бункер сидоровича на стандартных текстурах), компилировал на средних настройках. В итоге в игре у добавленного объекта все текстуры перепутаны, отображаются некорректно, хотя в СДК все выглядит нормально. С чем это может быть связано? 

 

Спойлер

ss_devro_10-16-21_00-30-46_(escape_1935).thumb.jpg.7f8f8a40f783157c2ca02cb5a390f79e.jpg

 

Изменено пользователем Бессмертный

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

1beer координаты - у серверного объекта sobj.position у клиентского obj:position(). Жив ли - и у тех и у тех obj:alive(). Без разницы, как заспавнен, или я не понял вопроса. Смотрите файл lua_help.script, там всё есть


Дополнено 2 минуты спустя

1beer в смысле, в зоне алайфа сразу после alife():create следующей строчкой на том же апдейте? Если да - только серверный объект, на следующих апдейтах клиентская копия создастся


В беге за рассветом приближаешь свой закат

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
10 часов назад, 1beer сказал:

как можно проверить координаты

Один из способов - 

local sobj = alife():create("esc_fake_wolf", a, level_vertex, game_vertex_id)
local obj = alife():object(sobj.id)
local pos = obj.position -- позиция
local vertex = obj.m_level_vertex_id -- level_vertex
local gvertex = obj.m_game_vertex_id -- game_vertex
local is_alive = obj:alive() -- проверка, жив ли НПС?

Только зачем проверять эти координаты, если они уже есть в alife():create ?

  • Хабар 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Здравствуйте, можно ли в скрипте получить текущию ширину/высоту окна игры?


Слишком огромная подпись.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

1beer device().width, device().height

  • Мастер! 1

В беге за рассветом приближаешь свой закат

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Здравствуйте, есть ли у кого ручкой фонарик на чистый тч/ogsr engine?


Слишком огромная подпись.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

знает ли кто модец или правку на ограниченное количество одновременно подбираемых предметов? Ограничение в 1, как в жизни, но без лишних анимаций. А то в оригинале гг хватает сразу по 2-3 предмета, а то и больше.


76561198152189716.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Здравствуйте, у меня вопрос, можно ли создать для Сталкер Тень Чернобыля, скрипт который меняет текстуру рук при смене костюма? И если можно, то объясните как пожалуйста.


Проходь, не затримуйся!

Жорик.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Хард есть мод - худ рук. Посмотри там, но помимо рук там много лишнего будет.  В оригинале это кривая фича будет, в любом случае. Модель рук с оружием единое целое потому что. Одним скриптом не отделаешься 


76561198152189716.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

ian98 С чего это вдруг она кривая? Текстуру меняет - меняет. Что ещё то нужно? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

I am dead каждой пушке под каждый костюм нужен свой худ. После рук, окажется, парень захочет поставить оружейку. Вот и все ? геморрой обеспечен

Изменено пользователем ian98

76561198152189716.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

ian98 Я не понял если честно о чем ты и с чего ты решил что он текстуру рук хочет поменять? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Всем привет! При компиляции спавна на новой локации в логе такие строки:

Цитата

! [LUA]  0 : [C] [C](-1) : 
! [LUA]  1 : [main] gamedata\scripts\xr_gulag.script(10) : 
! [LUA]  2 : [C] [C](-1) : 
! [LUA]  3 : [Lua] gamedata\scripts\smart_terrain.script(372) : read_params
! [LUA]  4 : [Lua] gamedata\scripts\smart_terrain.script(152) : 
* trying to access variable gulag_simeiz, which doesn't exist, or to load script gulag_simeiz.script, which doesn't exist too
* loading script xr_logic.script

Все вроде бы понятно - не может загрузить gulag_simeiz.script, который не существует. Но прикол в том, что он существует!!! и зарегистрирован в xr_gulag.script!!! 

И xr_gulag.ltx существует и зарегистрирован в gulag_tasks.ltx

В результате, игра грузится, но гулаг не работает, НПС отпущены на волю а-лайфа. Что можно с этим сделать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
4 часа назад, muzafir сказал:

не может загрузить gulag_simeiz.script, который не существует. Но прикол в том, что он существует!!! и зарегистрирован в xr_gulag.script

может синтаксическая ошибка в нем. Проверьте прогой script Syntax Checker

 

4 часа назад, muzafir сказал:

И xr_gulag.ltx существует и зарегистрирован в gulag_tasks.ltx

 xr_gulag.ltx или опечатались и хотели написать gulag_simeiz.ltx? Или может ошибка в самом gulag_simeiz.ltx. Лучше спросите в теме по сдк, может кто сталкивался

Изменено пользователем vader_33
  • Жму руку 1

В беге за рассветом приближаешь свой закат

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу