Перейти к контенту

abramcumner

Жители
  • Число публикаций

    1 883
  • Регистрация

  • Последнее посещение

  • Дней в топе

    15
  • AMKoin

    17,013 [Подарить AMKoin]

Весь контент пользователя abramcumner

  1. Ну из коллбека на смерть удалить, оставить вызов только в мяснике. "Умные_запчасти" умно считает запчасти. "Мясник" спавнит посчитанные запчасти, если подошел с правильным инструментом.
  2. По идее нет, отслеживаются хиты по костям моба и если хит в неудачную кость, количество частей уменьшается. Результаты этого подсчета наверное хранятся в таблицах m_tD и m_Tbl.
  3. @Капрал Хикс, тебе по идее вообще с пстором не надо заморачиваться. Если я правильно понял скрипт мясника, то когда ты юзаешь монстра и у тебя есть ножик, то спавнятся запчасти от монстра. По идее тебе надо следующий код из мясника: self.item = read_if_exist("s",nil,self.object:section(),"Spawn_Inventory_Item_Section",nil) if self.item then self.item_count = read_if_exist("f",nil,self.object:section(),"Spawn_Inventory_Item_Amount",1) else return end for i=1, self.item_count do alife():create(self.item, who:position(), who:level_vertex_id(), who:game_vertex_id(), who:id()) end заменить на вызов функции скрипт_реальных_частей.spawn_parts(self.object) из скрипта реальных частей монстра. Эта функция заспавнит, сколько ей надо запчастей.
  4. abramcumner

    [SoC] Вопросы по SDK

    Может быть конфиги: converter.ini и fsconverter.ltx?
  5. А ph_frequency что возвращает? Еще я на ЧН смотрел, но вроде физ. движок и не менялся во всей серии. Вечером посмотрю на ТЧ.
  6. Вот такой код у меня запускает гранату точно к ногам ГГ. Исправил формулу для расчета скорости И добавил разгон до этой скорости путем приложения силы. --! Запускает гранату к ногам ГГ --! @param id - id гранаты function throw_to_actor(id) local obj = level.object_by_id(id) local target = db.actor:position() local obj_pos = obj:position() local mass = obj:mass() local D = obj_pos:distance_to( target ) local g = 2 * 9.81 local Sx = target.x - obj_pos.x local Sy = target.y - obj_pos.y local Sz = target.z - obj_pos.z local mul = math.sqrt( g / (2 * D) ) local Vx = Sx * mul local Vz = Sz * mul local Vy = Sy * mul + g / mul / 2 -- Чтобы разогнать гранату до нужной скорости прикладываем к гранате силу на один шаг просчета физики local fixed_step = 0.01 -- шаг расчета физики, обратное значение можно получить из консольной команды ph_prequency local fx = Vx / fixed_step * mass local fy = Vy / fixed_step * mass local fz = Vz / fixed_step * mass local pshell = obj:get_physics_shell () pshell:apply_force( fx, fy, fz ) end
  7. abramcumner

    Разговоры о модах

    Если не брать сталкер, то таких игр тысячи и в них играют миллионы. И в сталкере это был бы интересный режим. Умираешь, твой трупик так и остается лежать на месте смерти, воскресаешь сталкером новичком на кордоне, дойдешь до трупика, подберешь все обратно. А как игрок ты знаешь нычки предыдущего сталкера и всю остальную инфу. Надо только продумать, как получить наследство в виде квестов, репутации и прочего от предыдущего персонажа. Почему новая игра? Какая разница, кто принес документы из х-18 или отключил выжигатель. Новый сталкер может идти дальше, опершись на плечи своих погибших товарищей. Добавить зал славы - вообще шикарно будет.
  8. Sx = dest.x - pos.x, dest - координаты точки назначения, pos - координаты точки отправления. Sy = dest.y - pos.y, Sz = dest.z - pos.z. Просто S - это непереименованная D = dest.distance(pos). Да, если задавать через импульс, надо еще на массу умножить.
  9. Именно силу? А то еще Галилей открыл, что гранаты летают по инерции(в полете на них не действуют никакие силы кроме силы тяжести). Граната отправляется в полет со скоростью V, которую приобретает за время маха. Можно задать через импульс(m * V). По x и z равномерное движение со скоростями Vx и Vz, формула S = V * t -> t = S / V По y равноускоренное движение S = V * t - g * t * t / 2 -> t = V +- sqrt(V * V - 2 * g * S) / g В точке назначения граната должна оказать одновременно по все трем осям одновременно, получается: Sx / Vx = Sz / Vz = Vy -+ sqrt(V * V - 2 * g * Sy) / g Выбираешь значение скорости по любой оси и вычисляешь значения для остальных двух. Если задать условие, чтобы запускать гранату с наименьшей скоростью, у меня получилось такие формулы: Vx,z = Sx,z * sqrt(g / D) / 2, Vy = (Sy + 2 * D) * sqrt(g / D) / 2, где D - расстояние до указанной точки. По идее в АМК должны быть те же самые формулы - там же пускали гранаты. Шел 2019 год...
  10. Без правки скрипта волкера или сохранения логики НПЦ всегда визуально будут разбегаться и с прописыванием в active и с добавлением on_info. То есть нужная секция волкера может и активируется правильно, но сам волкер заставит сначала явиться в начальную точку пути и только потом уже следовать по маршруту. С короткими путями волкеров игрок этого не замечает - пока игрок пробежит онлайн радиус НПЦ и начальную точку посетит и весь маршрут пройдет. С длинными путями всегда будет такая ерунда. Только держать такого НПЦ все время в онлайн или переводить на несколько гулагов.
  11. abramcumner

    [SoC] Вопросы по SDK

    То есть стоят все флаги, кроме 0х40 [quote]flOfflineNoMove = 0x00000040; //По идее должен отвечать за отсутствие движения в //оффлайне, но не используется[/quote]
  12. abramcumner

    [SoC] Вопросы по SDK

    1 + 2 + 4 + 8 = 0xf 1 + 2 + 8 = 0xb
  13. Просто ты кроме правки чисел делаешь что-то еще, например добавляешь/удаляешь фигурные скобки. В результате получается ошибочный файл, о чем движок тебе и сообщает. Еще смущает "62 страница" - возможно портит файл программа, в которой ты его редактируешь.
  14. abramcumner

    [SoC] Вопросы по SDK

    Если идти в прямом направлении(сдк->храи->игра), то сдк сохраняет графпоинты в левел.спавн, храи выбирает графпоинты из левел.спавна и создают левел.граф, а потом и гейм.граф. Конвертер, чтобы восстановить имя графпоинта, пытается графпоинту из гейм.графа подобрать исходный из левел.спавна. Если в СДК после декомпиляции видишь нормальное имя, значит без левел.спавна не обошлось. В гейм-графе никаких имен графпоинтов нет, только номера. Ну и, насколько я помню, конвертер на самом деле объединяет графпоинты из левел.спавна и гейм.графа и удаляет дубликаты, которые сумеет обнаружить. Нет, левел.графы конвертером не используются.
  15. abramcumner

    [SoC] Вопросы по SDK

    Не было другого инструментария, именно на этом ГСЦ и делали сталкер. Возможно в том числе и поэтому разработка на столько затянулась
  16. abramcumner

    [SoC] Вопросы по SDK

    Инструментарий был ровно тот же, никакого иного "совершенного" инструментария не было. Существенное отличие только в том, что у ГСЦ были исходники локаций, а не декомпилированные. Нефинальные левел.спавны, конвертер, который по всей видимости не совсем корректно синхронизирует левел.спавн с гейм.графом, = лишние графпоинты.
  17. abramcumner

    [SoC] Вопросы по SDK

    Вообще в процитированных строчках нет указаний, что именно левелченжер не на аи-сетке. Это может быть любой объект, у которого стоти "use ai location". Пройдись вдоль границ(ориентировочно вдоль восточной границы) аи-сетки.
  18. abramcumner

    Разговоры о модах

    Несомненно. Все моды на твоем харде уже вышли. Так что вывод очевиден.
  19. abramcumner

    [SoC] Вопросы по SDK

    Давно решено вообще-то, просто компиляторами/сдк под ТЧ никто заниматься не хочет.
  20. Вот собранный движок с твоими дефайнами: https://yadi.sk/d/jfiHMO1JRBQpBw
  21. Со сборкой не должно быть проблем. Надо выполнить 3 пункта: Можешь написать, какие дефайны надо добавить? Попробую вечером собрать.
  22. @DoberBull, а сборки отсюда не подходят? https://github.com/KRodinn/OGSR-Engine/releases
  23. @Space.Marine, Не стесняйся, прямо ткни в меня цитатой Григоровича.
  24. Предположим ждет и что? Какая разница, тратились ли ресурсы на просчет того, как вертолет растрелял группу сталкеров, или скрипт заспавнил уже полуживого сталкера, и запустил звук с вертолета, чтобы грохнуть и ГГ, если игрок не видел предыстории ни того ни другого, а пришел уже к финалу. Удивительно конечно, но мир сталкера жил и до Стрелка. Это где такое в сталкере? Можно хоть сразу к монолиту топать. Предположим, видел. А если посчитать размер с учетом "на что-нибудь наткнешься", билдовые локации вообще мизер. Ну совсем уж загоняться не надо. У сурвариума не американская цена, на ура берут рубли, и никаких подобных линий там нет. И опять - какое отношение имеет сурвариум к с2? Ну-ка, небалабол, покажи пример балабольства Григоровича! Болтать, не мешки ворочать.
  25. 1. Речь шла про коридорность. Все игры линейки ТЕС не были коридорными, полная свобода перемещения - иди куда хочешь. Говорящие про коридорность скайрима, явно имеют в виду что-то свое. Ну и в морровинде с семействами и домами была куча неочевидных условий. И если хотел стать архимагом или начальником воров, у тебя появлялся вполне себе туннель. 2. По урезанию хорошо бы пару примеров урезания в линейке Мор-Обл-Скай. Опять же под свободой действий явно имеется в виду что-то свое(типа отказа от ужасной системы прокачки в морровинде). Свобода действий - это как игрок может взаимодействовать с миром. Она только расширяется: можно ездить на лошадях, появился фасттревел, крики, ко взлому добавилась миниигра, можно построить свое поместье, романсить, заводить детей и т.д. и т.п. Еще странно применять аналогии из других игр к сталкеру. От игре к игре локации в сталкере только увеличивались в размерах. Коридорные локации типа даркскейпа, милрада и прочие были вырезаны еще перед релизом ТЧ. Релизы ГСЦ не откладывала(явно путаница с другой студией), в политических играх ГСЦ замечена не была. Те же тайники из "нажмите F для обыска" превратились вполне себе в схроны.
×
×
  • Создать...