abramcumner 1 234 Опубликовано 18 Декабря 2016 (изменено) Нет-пакет это не только сохранение, но и передача данных на сервер и получение от него ответа. Формирование и разбор нет-пакета происходит в том числе и в синглплеере. Отрезку сетевой части можно начать с замены этих нет-пакетов. Изменено 18 Декабря 2016 пользователем abramcumner 1 Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 234 Опубликовано 18 Декабря 2016 @abramcumner, если убрать нет пакет, как делать сохранение для сингла?Вообще ничего не писал про убирание нет-пакета. Я говорил о замене нет-пакетов во взаимодействии клиентских и серверных объектов в синглплеере. Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 234 Опубликовано 25 Января 2017 В ЗП в ActorVehicle.cpp закомментирована функция CActor::attach_Vehicle, так что Дизель прав - аттача ГГ не было Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 234 Опубликовано 14 Февраля 2017 (изменено) Я пошел СВОИМ алгоритмом, который, как показала практика, работает быстрее.Этого не было продемонстрировано У dsh было 300мс на ОП-2/солянке, небось еще и с сейва в середине игры. Вполне возможно, что твой алгоритм на тех же объемах будет выдавать не меньше. Ну и разница 80 vs 300 ни о чем. Там вон только луаджит 2.0 обещает работать в 10 раз быстрей Вот все и хотят услышать от тебя подробности алгоритма. Перебор 1-65534 просто не эстетичен. Если есть решение лучше, все с радостью перейдут на него. Вот ты написал - движковый итератор. А чем он лучше? На пустой игре да: вместо перебора 65534 переберет 2 объекта: актора и Сидора. А в солянке небось на старте за 32к объектов. И цикл 1-65534 и твой итератор будут перебирать приблизительно одинаковые количества объектов. Изменено 14 Февраля 2017 пользователем abramcumner Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 234 Опубликовано 15 Февраля 2017 (изменено) Проект перешел границы личного с тех пор, как стал общедоступным. Саша (Malandrinus) предупреждал нас о всех последствиях. И вот они и во всей красе. Так что не то что (имхо) пора, а уже жизненно НЕОБХОДИМО открывать все карты И то, что было интересно для нас (домашнего использования) уже не интересно для комьюнити.Боже мой. О чем ты?! Какой общедоступный, какие последствия?! Если ты о Prosectors Project. То он нифига не общедоступный, скоро уже будет полгода, как открыли тему, а в шапке одна ссылка на ваши наработки(архив на ЯДе) и та сдохла. Неудивительно, что не подключился ни один человек. Не к чему подключаться. Был такой школьный рассказ о карандашах - как будто про этот проект написан Изменено 15 Февраля 2017 пользователем abramcumner 3 Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 234 Опубликовано 15 Февраля 2017 (изменено) Как-бы так случилось, что я простой исполнитель. Но есть вполне определённый хозяин проекта. И я, есть всё-таки этика, следуя которой я не могу публиковать не согласованные с руководителем материалы. Это не закон. Это просто мои личные убеждения. А правильные они или нет - это не моя юрисдикция. Правила морали не позволяют мне опрелюднивать эти материалы. Решение полностью зависит от автора. Стоп-стоп. Я не призываю и уж тем более не заставляю публиковать какие-либо материалы ни тебя, ни хозяина проекта. Просто указал на расхождение между декларациями(общедоступный) и реальностью(доступны мегаописания и ролики на ютубе). Если общедоступный проект - это проект, чтобы получить доступ к которому, надо покопаться в сообщениях за 2015 год, то это какой-то беспощадный сюрреализм. Вы и так видите что случилось.Вообще ничего не случилось. И все-таки почитайте рассказ про карандаши Он короткий. http://lukoshko.net/story/sinie-listya.htm Надо так давать, чтобы можно было взять. А то так и будут рисовать синие листья... Изменено 15 Февраля 2017 пользователем abramcumner 1 1 Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 234 Опубликовано 3 Марта 2017 (изменено) @Kondr48, за инфу про изменение правил гитхаба спасибо, а статья напрочь желтушная. Гитхаб просто явно задекларировал то, что он все это время делал Как это в свое время сделали Микрософт и гугл. С учетом, что OpenXray основан на нелегальных исходниках, заморочки с лицензиями не должны беспокоить Изменено 3 Марта 2017 пользователем abramcumner 1 Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 234 Опубликовано 19 Ноября 2017 12 часов назад, Malandrinus сказал: В С++, кстати, полно замаскированных операторов goto: switch, break, continue, множественные return - это всё по сути операторы goto. Duff device Цитата strcpy(to, from, count) register char *to, *from; register count; { register n = (count + 7) / 8; if (!count) return; switch (count % 8) { case 0: do { *to = *from++; case 7: *to = *from++; case 6: *to = *from++; case 5: *to = *from++; case 4: *to = *from++; case 3: *to = *from++; case 2: *to = *from++; case 1: *to = *from++; } while (--n > 0); } } И ни одного гото. Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 234 Опубликовано 14 Декабря 2017 1 час назад, Dennis_Chikin сказал: Или это я чего-то не понимаю ? Вроде все, как должно быть, - корректная проверка на попадание в диапазон. Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 234 Опубликовано 7 Апреля 2018 32 минуты назад, НаноБот сказал: А можно использовать С/С++ в проекте XRayExtensions?(вставка С/С++ кода в готовый файл). Можно, линкеру все равно откуда берутся объектные файлы. Есть ли операторы типа ORG в С/С++? Они там не нужны. В с++ части extern CActor* g_actor; а ORG асмовой части. Разбираешься с манглингом имен и можно писать в хрей-экст на с++. Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 234 Опубликовано 7 Апреля 2018 5 минут назад, НаноБот сказал: @abramcumner Оператор ORG в асме, это задать адрес кода, без него всё это невозможно. Я знаю, что такое ORG, и еще раз повторю ORG в асме, в с++ extern. И плюс, у компилятора куча ограничений, не не получится, С/С++ невозможно использовать в XRayExtensions проекте. Нет у компилятора никаких ограничений, с++ может генерировать точно такие же объектники, как и асм. Ну и я как бы делал хрей-экст на с++ Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 234 Опубликовано 7 Апреля 2018 20 минут назад, НаноБот сказал: А как такая строчка в С++ будет выглядить? Эта строчка так и останется в xrgame_stubs.asm. org 105602E8h - shift g_Actor dword ? В с++ напишешь: extern CActor* g_Actor; И можешь обращаться к g_Actor из c++. Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 234 Опубликовано 9 Июня 2018 4 минуты назад, Malandrinus сказал: и с каждой версией становятся только лучше. Ну я бы так не сказал. с 15.5 до 15.6.5(а это в районе года) компилятор был сломан: выдавал ICE на float a = powf(s, 128); c 15.7 до 15.7.2 снова был сломан(в районе месяца): что-то с шаблонами. Каждая минорная версия что-нибудь ломает Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 234 Опубликовано 5 Января 2019 (изменено) 3 часа назад, dsh сказал: Кто в физике/математике разбирается, подскажите пожалуйста, как рассчитать силу, которую нужно приложить к гранате по трем осям, что бы она долетела до указанной точки? Чую, ускорение свободного падения тут участвует. Может @abramcumner подскажет? Именно силу? А то еще Галилей открыл, что гранаты летают по инерции(в полете на них не действуют никакие силы кроме силы тяжести). Граната отправляется в полет со скоростью 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 - расстояние до указанной точки. По идее в АМК должны быть те же самые формулы - там же пускали гранаты. 2 часа назад, W.A.S.P. сказал: Так что расчёты эти, как я понимаю весьма не просты. Шел 2019 год... Изменено 5 Января 2019 пользователем abramcumner 4 Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 234 Опубликовано 5 Января 2019 (изменено) 19 минут назад, dsh сказал: Не могу понять, что в формулах обозначает S? Sx = dest.x - pos.x, dest - координаты точки назначения, pos - координаты точки отправления. Sy = dest.y - pos.y, Sz = dest.z - pos.z. Просто S - это непереименованная D = dest.distance(pos). Мне кажется, что в этих формулах еще должна как-то учитываться масса гранаты? А понял, скорость по каждой оси еще нужно умножить на массу гранаты? Да, если задавать через импульс, надо еще на массу умножить. Изменено 5 Января 2019 пользователем abramcumner Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 234 Опубликовано 7 Января 2019 (изменено) Вот такой код у меня запускает гранату точно к ногам ГГ. Исправил формулу для расчета скорости И добавил разгон до этой скорости путем приложения силы. --! Запускает гранату к ногам ГГ --! @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 Января 2019 пользователем abramcumner 4 2 Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 234 Опубликовано 9 Января 2019 (изменено) 14 минут назад, dsh сказал: У меня не долетает. А ph_frequency что возвращает? Еще я на ЧН смотрел, но вроде физ. движок и не менялся во всей серии. Вечером посмотрю на ТЧ. Изменено 9 Января 2019 пользователем abramcumner Поделиться этим сообщением Ссылка на сообщение