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

Prostomod

Разработчики
  • Публикаций

    1 685
  • Зарегистрирован

  • Посещение

  • Победитель дней

    14

Сообщения, опубликованные Prostomod


  1. No Name5 Я к тому, что претензии слишком общие. Какой смысл обвинять в этом Discord, если такое распространено повсеместно? Тут или всё надо обвинять (только какой выхлоп от этого?), или молчать (тоже такое себе), ну или попытайся сделать свой "дискорд", где всех этих минусов не будет (удачи).


  2. imcrazyhoudini А какой именно 3д редактор?

    Про макс я не скажу, не пользуюсь. Недавно мог бы видео одно кинуть, но его уже удалили.

    Спойлер

    В блендере это делается через Sharp Edges. Я делал всё в блендере 2.93, но принцип одинаков везде.

    Для начала, в Object Data Properties во вкладке Normals надо выставить галочку Auto Smooth и значение 180 градусов.
    Если уже есть Sharp Edges, то их можно очистить, выбрав все рёбра и, открыв ПКМ контекстное меню, выбрать Clear Sharp.
    Потом в режиме рёбер во вкладке select выбрать Select Sharp Edges. После в контекстном меню выбрать Mark Sharp. В принципе, это всё. Возможно, какие-то рёбра придётся вручную домаркировать (как правило, это шарпы на границах секторов). Мне такое помогло починить тени.

     

    • Спасибо 1

  3. Toplol4ik В оригинальном ЗП вырезаны такие анимации смартов как sit_knee и sit_ass. Либо замени на другие анимации, либо нужно их восстанавливать (где-то на просторах инета есть уже заготовленные скрипты для их восстановления в ЗП).


  4. Toplol4ik Открой файл _g.script, найди функцию function abort(fmt, ...), там есть закомментированная строчка
    "--error_log(reason)", ее и надо раскомментировать, должно получиться вот так:

    function abort(fmt, ...) 
      local reason = string.format(fmt, ...) 
      error_log(reason) 
    end

    После чего при вылете у тебя будут более понятные логи


  5. 7 минут назад, Paracetamol сказал:

    Ух как замудренно

    Вроде бы ничего не напутал. Только что написал, сам ещё не использовал.

    function is_looking_in_restr(restr) --есть метод inside
    	local actor_pos = db.actor:position()
    	local actor_dir = db.actor:direction()
    	local restr_pos = restr:position()
    	local dir_point = actor_pos:add(actor_dir:mul(actor_pos:distance_to(restr_pos)))
    	return restr:inside(dir_point)
    end
    
    function is_looking_in_restr_noinside(restr_pos, restr_size) --нет метода inside
    	local actor_pos = db.actor:position()
    	local actor_dir = db.actor:direction()
    	local dir_point = actor_pos:add(actor_dir:mul(actor_pos:distance_to(restr_pos)))
    	return dir_point:distance_to(restr_pos) <= restr_size
    end

     

    • Хабар 1

  6. Paracetamol А, придумал проще.

    Это нормальный спейс рестриктор (т.е. можно вызвать метод inside)? Если да, то попробуй такое:

    1. Получить координаты игрока и его направление, а так-же расстояние до спейса в данный момент времени.
    2. Умножь расстояние на направление игрока и прибавь позицию игрока (получим координаты точки по направлению игрока на расстоянии, равном расстоянию между игроком и спейсом).
    3. Вызывай на спейсе метод inside и передавай туда полученные на п2 координаты.
    4. Результат - ответ на вопрос "Смотрит ли игрок в спейс".

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

    А даже если не нормальный, то тогда п3 проверяем не методом inside, а сравнением расстояния между точкой из п2 и координатами спейса с радиусом сферы. Если больше - значит не в него смотрит. Но тогда такое будет работать только со сферой.

    • Лайк 1

  7. Paracetamol Ну на движущийся... По идее можно попробовать реализовать через скрипты такое, если можешь получать позицию спейса в пространстве (конкретные координаты рестриктора в определённый момент времени), но придётся математику вспоминать (а если это не сфера, то... придётся ломать говору вдвойне) и проверять такое на апдейте.
    Если что, я не знаю примеров, где такое реализовывалось хоть как-то.


  8. 1 час назад, Крим сказал:

    Откуда инфа? 

    В группе ВК разрабов того мода есть список разрабов, где значится некий "Крим Кримов" как квестер. Чтобы так родители назвали кого-то я никогда не встречал... Не, мб я обознался...

    Если хочешь, можешь не подтверждать или опровергать, я не настаиваю.

    (И да, меня "сталкером" можно назвать исключительно в рамках понятия "фанат игры S.T.A.L.K.E.R." и ни в каком другом)

    • Спасибо 1

  9. 1 час назад, Крим сказал:

    ЧКДЗ: Последние дни Долга откладывается на неопределенный срок

    Я уже запутался: ЧКДЗ:ПдД == ЧКДЗ:Rebuild или нет? И откладывание связано с Master of Puppets?

    1 час назад, Крим сказал:

    На шоукейсе не ждите.

    Жаль.


  10. 1 час назад, Meханик сказал:

    Всю игру под тотальный контроль не поставить.

    А всю и не нужно.
    Та же ОПа: античита нет, можно играть с любыми правками и ничего не будет тебе от игры. Но при этом есть система, которая как-то определяет, что установлены несанкционированные правки, и разрабы точно узнают, были правки или нет. И вся система в движке зашита. В итоге, не взломано т.к.: а) в движке так просто ничего не поменять. б) не мешает играть с правками (главный стимул хакать отсутствует).

    Вопрос только в разработке и реализации алгоритма (либо в том, чтобы достучаться до разрабов ОП2.2 и получить исходники движка).


  11. Dolboeb151 Скрин папки, куда игра устанавливалась, в студию!


    Дополнено 0 минут спустя
    Только что, AziatkaVictor сказал:

    Возможно даже антивирус.

    Антивирус мод не установит, а он тут явно есть, судя по логу.


  12. Dolboeb151 Купил в стиме и вылетает? Хех.

    Ну перво-наперво сделай проверку файлов. Скорее всего, что-то побилось.

    Если не поможет, зайди в папку с установленной игрой (не ярлык где), потом в папку _appdata_\logs и сюда пришли файл xray_<username>.log.


  13. Policai Не, я не говорил, что DCSR зашифрован (да и ОПа тоже не зашифрована). Я написал способ, который на практике применялся и которым можно и себе помочь (отсеять всех с правками), и другим не мешать.


  14. 14 минут назад, Policai сказал:

    Тут разговор не в притензии блогерам за прохождение, а то что игроки, сами думать не хотят, ищут по стримам где что жирное найти... Это вина самих игроков а не блогеров..))) Если ты не хочешь думать, а просто желаешь повторить чьё то прохождение, то какой смысл в игре?

    Я тут подумал...
    Вот Старый написал такое:

    1 час назад, StariyStalkKRG сказал:

    разработчики презирают всех игроков и делают моды для себя любимых. (Это 4ектор вставил диалог в последнем своём моде Ловец снов)

    И в какой-то мере с таким утверждением можно согласиться. Как минимум, что моды делаются так, чтобы самому разработчику было комфортно и интересно играть.

    Я сейчас никого не обвиняю и не хочу никого оскорбить, просто интересно наконец-то понять, из-за чего это всё:
    Policai, стоит ли волноваться за то, как проходят твой мод? 

    Дело в том, что, фактически, игроки сами себя и наказывают за такое "рельсовое прохождение во фриплее". Одно дело, если бы тут сюжет ломался бы при любом чихе, но тут такого вообще не замечено. Главное - мод сделан таким, какой он тебе нравится, и в нём нет какого-то маразма, на который абсолютно все бы ругались, а так-же ты выложил свои комментарии о том, как его проходить, чтобы получить максимальное удовольствие (да, я про "не используйте гайды и читы, играйте сами").

    Насчёт правок (в частности, читов)... Я понимаю, что бесит, когда лезут с просьбой помочь с проблемой, которая вызвана сторонними правками. Но, как по мне, идеальное решение такой проблемы нашли разработчики ОП2.2: зная, что наверняка их мод будут править несмотря ни на что, они встроили в игру определитель сторонних правок, но при этом определитель не только не мешает играть, но и позволяет без проблем распаковать архивы мода (=ничего не зашифровано, можно использовать наработки того мода в своих модах). И теперь, если кто-то жалуется на проблемы, они просто просят сейв и, если обнаруживается факт любых правок (а определяется это просто - 1 раз попробовать запустить сейв и посмотреть, есть ли в логе уведомление "Запущено в режиме разработчика"), они просто, в лучше случае, отказывают в техподдержке, сохраняя себе нервы.
    Думаю, что если бы ты договорился с mortan, он мог бы тебе подобное в моде реализовать (я пока что сам думаю, как такое провернуть т.к. исходники движка ОП2.2 мне недоступны).

    Сделать мод для всех невозможно, а мод "не для всех" (коим DCSR позиционируется) всё-равно будут пробовать все и, закономерно, жаловаться на то, о чём их предупреждали. И те, кто так жалуется, либо лесом идут, либо пусть сами сделают так, как надо. (только не путать с багрепортами)


    Дополнено 4 минуты спустя
    49 минут назад, Policai сказал:

    Утерян точно не будет... Билд на всякий пожарный лежит у друзей, да и  в конце концов билд всё равно утекёт  в сеть... Кто нибудь выложит.

    Ну, шанс утечки не нулевой, но всё-равно как-то не очень, мне кажется.

    51 минуту назад, Policai сказал:

    сейчас просто проходят на тесте

    ЗБТ это другое, не говорю же релизить сию секунду. Я именно про релиз сказал.


  15. 8 часов назад, Policai сказал:

    не считаю это сюжетом, по прежнему для меня это направление при старте.

    Хотя и получается тоже самое, только другими словами. Ладно, у меня нет цели переубедить - только попытался объяснить, что утверждение "в моде есть сюжет" не означает, что все проходят всё в строгом порядке по гайдам т.к. интерес пропадает.

    8 часов назад, Policai сказал:

    Были коменты по прохождению в группе, спрашивали те или иные моменты, но их мало, 5-10%  остальные коменты, 90-95% типо таких...

    Не знаю, как обстоят дела в группе ВК (ссылка даже у тебя в подписи не работает - Page not found), но я сомневаюсь, что абсолютно каждый член этой группы оставил комментарий (а скорее всего - приличное количество людей только в read only в ней). Плюс явно в статистику не пойдут все те, кого нет в группе.
    Не, возможно опасения и могут подтвердиться, если опросить абсолютно каждого, кто играл в мод, но точно так-же ситуация может оказаться и противоположной.

    17 часов назад, Policai сказал:

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

    Ок, это волнует меня больше всего. Особенно за исходники: если в моде есть уникальный контент, то он просто будет утерян для сообщества. А так, вдруг это будет именно то, что нужно другому модмейкеру, который, например, кодит хорошо, но в моделлировании полный 0? Тем более, я помню, в этом моде были очень хорошие локации (молчу про лифты и прочую динамику). А ведь и сам знаешь, что чтобы сделать хотя бы одну хорошую локацию, надо практиковаться в этом очень долго.


  16. Кажется, я понял, почему некоторые жалуются на IN default рестрикторы...

    Есть у меня отряд, который состоит из нескольких мутантов с уникальными story_id.

    Спойлер

    [labb_boss_polter_1]:m_poltergeist_normal_tele

    story_id = labb_boss_polter_1

     

    [labb_boss_polter_2]:m_poltergeist_normal_tele

    story_id = labb_boss_polter_2

     

    [labb_boss_polter_3]:m_poltergeist_normal_tele

    story_id = labb_boss_polter_3

     

    [labb_boss_polter_4]:m_poltergeist_normal_tele

    story_id = labb_boss_polter_4

     

    [labb_boss_polter_5]:m_poltergeist_normal_tele

    story_id = labb_boss_polter_5

     

    [labb_boss_polter_6]:m_poltergeist_normal_tele

    story_id = labb_boss_polter_6

    Спойлер

    [labb_boss_polter_squad]:online_offline_group

    faction = monster

    npc = labb_boss_polter_1, labb_boss_polter_2, labb_boss_polter_3, labb_boss_polter_4, labb_boss_polter_5, labb_boss_polter_6

    target_smart = labb_boss_polter_smart

    spawn_point = labb_boss_polter_smart_spawn

    story_id = labb_boss_polter_squad

    Территория определена так: смарт, в котором находится 6 уникальных работ.

    Спойлер

    [smart_terrain]

    sim_avail = false

    arrive_dist = 100000

     

    [exclusive]

    polter_1 = labb\smart\polter_bossfight\polter_1.ltx

    polter_2 = labb\smart\polter_bossfight\polter_2.ltx

    polter_3 = labb\smart\polter_bossfight\polter_3.ltx

    polter_4 = labb\smart\polter_bossfight\polter_4.ltx

    polter_5 = labb\smart\polter_bossfight\polter_5.ltx

    polter_6 = labb\smart\polter_bossfight\polter_6.ltx

    Спойлер

    [logic@polter_1] ;аналогично для остальных, только цифра меняется

    suitable = {=target_squad_name(labb_boss_polter_squad) =check_npc_name(labb_boss_polter_1)} true

    monster_job = true

    prior = 150

    active = mob_home@polter_start

     

    [mob_home@polter_start]

    path_home = spawn

    home_min_radius = 15

    home_max_radius = 20

    out_restr = labb_boss_polter_out_restr

    aggressive = true

    Расположено так: смарт находится в самом центре территории на изолированном участке АИ-сетки, который отделён от остальной сетки IN default рестриктором (нигде не прописан). В то же время, вся территория покрыта ещё одним IN default рестриктором labb_boss_polter_out_restr, который уже прописан в работах как out_restr.

    Спойлер

    febd3811ebf6f01baf736714027858d7.png


    Весь отряд спавнится в центре на изолированном участке, после чего через небольной промежуток времени телепортируются на вейпоинты, расположенные на основной АИ-сетке.

    Спойлер

    [sr_idle@spawn_anomalies]

    on_game_timer = 50 | sr_idle@spawn_polters %=create_squad(labb_boss_polter_squad:labb_boss_polter_smart) =disable_anomalies(labb_boss_polter_1_anomaly:labb_boss_polter_2_anomaly:labb_boss_polter_3_anomaly:labb_boss_polter_4_anomaly:labb_boss_polter_5_anomaly:labb_boss_polter_6_anomaly) =stc_boom(anomaly_blow)%

     

    [sr_idle@spawn_polters]

    on_game_timer = 20 | nil %=teleport_npc_by_story_id(labb_boss_polter_1:labb_boss_polter_1_spawn) =teleport_npc_by_story_id(labb_boss_polter_2:labb_boss_polter_2_spawn) =teleport_npc_by_story_id(labb_boss_polter_3:labb_boss_polter_3_spawn) =teleport_npc_by_story_id(labb_boss_polter_4:labb_boss_polter_4_spawn) =teleport_npc_by_story_id(labb_boss_polter_5:labb_boss_polter_5_spawn) =teleport_npc_by_story_id(labb_boss_polter_6:labb_boss_polter_6_spawn)%

    И вроде бы, логика вся срабатывает, все функции вызываются, но мутанты ни в какую не хотят телепортироваться из изолированного участка. Функция телепортации вызывается, но ничего не происходит. Спавн пытался пересобирать - не помогает.


  17. 1 час назад, Policai сказал:

    большинство играет по ютубу, поэтому у них одинаковое прохождение, которое по ошибке считают сюжетом..))

    Не согласен:

    1. Сюжетом называют именно тот промежуток от направления, которое даётся в начале игры, до получение плашки "завершить игру", а то каким он будет - это другой вопрос. Во всяких СоС тебя просто кидают в игровой мир и всё - развлекайся. Тут же тебе и в начале говориться, что надо делать, и даже есть что-то типа концовки (помню: собрал доки, сделал дела в лабе, и появляется окно "закончить игру или продолжить" - чем не концовка с возможностью продолжить играть в полном фриплее?). Но совсем другое дело - путь до концовки. В оригинале так-то тоже: тебе говорится ситуация (вертушки упали - узнай почему), есть концовка (спасли вояк и выбрались из Зоны), но вот как ты до неё доберёшься - очень хороший вопрос, так как свобода действий там высокая (напролом идти по нужным вертухам сразу к Б28 или постепенно все осмотреть, узнать о точке сбора из чёрного ящика или из записки и т.д.). Как по мне - сюжет есть, но характер у него - фриплейный, и, как по мне, это даже хорошо (всё-таки сталкер - не CoD какой-то).
    2. Откуда информация про "большинство играет по ютубу"? Как по мне, тут чуть ли не ситуация, которая называется "ошибка выжившего": те, кто стопарятся из-за ютуба или ещё почему-то естественно задают вопросы и как-то себя обозначают, а те, кто играет сам, не сталкиваются с такими проблемами, и им нечего спрашивать (=себя они никак не обозначают, поэтому в статистику не идут).

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

    • Жму руку 1

  18. 3 часа назад, Skala сказал:

    Геймдаты я то заливал на гугл диск, а вот файлы уровней от СДК нет

    А разве декомпилировать спавн из билда своего мода не вариант? Меня такое как-то раз спасло.

    3 часа назад, Skala сказал:

    Теперь такое

    Ок, а в основном (движковом оригинальном) логе как дела?

    AziatkaVictor Только сейчас заметил. Я на сигероусе видел туториал по получению подробного лога вылета (в этой теме), однако на практике увидел, что очень много кто (особенно начинающие) не знают о нём и "гадают на кофейной гуще" с обычных логов. Предлагаю добавить это в шапку, мб побольше людей будут использовать.

    Спойлер

    Открываем файл _g.script и ищем такую функцию: function abort(fmt, ...)
    Там есть заккомментированная строчка "--error_log(reason)", ее и надо расскомментировать, должно получиться вот так:

    
    function abort(fmt, ...)
    	local reason = string.format(fmt, ...)
    	error_log(reason)
    end

    Вот для примера два одинаковых вылета, первый с функцией по умолчанию, второй - с поправленной функцией

    Первый:

    
    Expression    : !m_error_code
    Function      : raii_guard::~raii_guard
    File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
    Line          : 748
    Description   : ....a.l.k.e.r. - Зов Припяти\gamedata\scripts\_g.script:478: bad argument #2 to 'format' (string expected, got nil)

    Второй:

    
    Expression    : 0
    Function      : ErrorLog
    File          : D:\prog_repository\sources\trunk\xrServerEntities\script_engine_script.cpp
    Line          : 49
    Description   : 'Attempt to read a non-existant string field 'path_walk' in section 'walker@mechanic'

     

     


  19. 1 час назад, Skala сказал:

    я не удивлюсь если после этого ещё вылет будет.

    Будет обязательно, сейчас все косяки, которые были совершены ранее вылезут наружу. Но уж лучше сейчас так их чинить, чем потом ломать голову над тем, что сломалось. Да и в релиз выйдет более стабильный мод.


  20. Skala А блин, недосмотрел то, что там написано, сорян.

    Короче, теперь почини функцию abort, она находится в _g.script. Найди её и раскоментируй всё, что находится внутри неё. У тебя игра будет более чувствительна к косякам, но при этом будет проще чинить вылеты.