Jump to content
Korean Random

Dragon armor

User
  • Content Count

    416
  • Joined

  • Last visited

  • Days Won

    3

Everything posted by Dragon armor

  1. Опять настало время задавать вопросы. Проблемы мелкие, а решить их не могу. В 3d совсем не понимаю. Есть башня и орудие. Есть их положение в виде векторов. Есть точка, на которую орудие должно быть направлено. Как узнать угол между точкой и башней и между точкой и орудием? Просто угол между векторами не даст нужного результата, потому что и башня, и орудие поворачиваются в одной плоскости (каждый в своей). К примеру, координаты. Башня 0.000000, 1.382792, -1.968760 Орудие 0.000000, 2.807242, -2.682675 Точка наведения -600.0, 11.7943, 35.0167999 Начальное положение танка в нулевых координатах. Правильно понимаю, что в данном случае можно не переводить координаты в локальные для танка?
  2. Тогда вопрос отпадает сам собой. У меня выбор си был вызван тем, что мне нравится этот язык. Но это было, не в полной мере, но несколько ошибочно. Хотя бы с++ надо, надоедает базовые вещи реализовывать самому (типа контейнеров, векторов и прочее, что есть уже реализовано в стандартной библиотеке). Зато в нём всё просто и понятно, в отличие от с++. Только это немножко, слегка так, тяжеловато сделать. Там есть сетевой протокол свой собственный с реализацией (утрированно) TCP на UDP. Контроль целостности, ретрансмитты, шифрование. Его надо сделать. На питоне. А потом надо в дизассемблере подсмотреть, что клиент ожидает от сервера и повторить у себя.
  3. А какой смысл в нём? В исходниках BigWorld больше полезной информации, чем в jts. Ну да, мне опять лень. Когда что-то долго не получается, интерес теряю.
  4. Ну ты же его сначала из бинарного вида в текстовый перевёл? PjOrion тебе в помощь, если не понял написанного.
  5. @Kustarnik В логах есть что-то? У меня именно так и сделано, вылетов нет.
  6. Да. Именно здесь и задаются списки серверов и то, как они будут отображаться в клиенте. Слишком мало информации, чтобы предположить, что случилось. Что именно ты хотел сделать? Какая версия клиента?
  7. Вне зависимости от версии, все механики реализуются на сервере. На клиенте лишь визуальное отображение. Всё, что отправляет клиент, проверяется на сервере так же.
  8. @SoprachevAK Это надо такую работу проделать. При этом, опять. Реализация сетевого протокола, ведь клиент уже существующий. Загрузка моделей, карт. Особенность движка BigWorld и танков в частности - создание отдельной арены для боя. Ещё и питон надо будет той же версии, что и в клиенте (2.7.15). И там можно свой сетевой протокол реализовать? Тут проблема не столько в самом сервере, как в трудностях, возникающих в процессе создания. Сколько только с сетью возился, ещё и не закончил, хотя уже работает нормально. А вот этого не будет. Просто у меня на си, а часть на плюсах.
  9. @Kustarnik Разобрался с сетевым протоколом и сделал свою реализацию сервера. Кроме ангара, так же есть возможность выйти в бой. Скрины есть в теме. Делал так. Хотя бы вперёд/назад ездить начал. В общем-то, демка для начала очень неплохая, если её повторить. А там что-нибудь придумать можно.
  10. @DrWeb7_1 Нет, так проблему не воспроизведёшь. У меня вьювер максимально приближен к тому, что на сервере. А тут ты меняешь всего лишь направление движения.
  11. @DrWeb7_1 В демке не надо менять ничего местами, там то, как раз, всё работает как надо. У меня не получается перенести пример в эмулятор. Система координат, видимо, другая. В BigWorld это xzy. А в демке xyz. Вот с координатами и надо разобраться. А что менять местами. увы, не знаю.
  12. @DrWeb7_1 Строка 1095, это уже позже добавили. На сервере так же катаются. Сейчас видео найду. Вот, у них так же. https://youtu.be/-vO7qdL9Xh8?t=224 У меня не хочет стоять платформа на месте. Более того, работает нестабильно. Где-то ошибка грубая. Зато катки на месте, как и положено для данной модели.
  13. Ещё строку можешь заменить NewtonBody* const floor = CreateHeightFieldTerrain(scene, HEIGHTFIELD_DEFAULT_SIZE, HEIGHTFIELD_DEFAULT_CELLSIZE, 4.0f, 0.1f, 200.0f, -130.0f); вместо NewtonBody* const floor = CreateLevelMesh (scene, "flatPlane.ngd", true); и убрать генерацию объектов в строке 1108, заменив 1 на 0. А также убери создание гуслей в конструкторе класса dExcavatorModel, закомментируй оба вызова MakeThread. И будет збс.
  14. @DrWeb7_1 Release запусти. В debug куча проверок.
  15. https://github.com/MADEAPPS/newton-dynamics/blob/master/newton-3.14/applications/demosSandbox/sdkDemos/demos/ConstructionVehicle.cpp VisualStudio 2015 понадобится для сборки.
  16. Что-то фильм сразу вспомнился. Реплика - муляж. Эмуляция оригинального сервера с реализацией какого-то количества (или всех) возможностей, собственно, оригинального сервера. Просто слово "эмуляция" вводит в заблуждение. И всё-равно не понимаю, что неправильно скопировал. В демке, из которой взят пример, трактор даже не движется, когда на склоне стоит. У меня катится в сторону уклона.
  17. Эмулятор сервера. На русском это не совсем корректно звучит, но это реализация оригинального сервера. Поэтому нет, всё как в оригинале. Все механики на стороне сервера. Физика, стрельба, обнаружение и прочее, что есть в оригинальной игре.
  18. @DrWeb7_1 Да любая поверхность. На данный момент, чтобы не было проблем, специально убрал ландшафт и сделал плоскость. Только вперёд и назад едет, даже если влево/вправо нажимать. До этого, вообще никуда не ехал, долго думал и решил, что это из-за осей координат. Поменял координаты, стал ездить. Надо ещё что-то менять. Просто мне сложно понять, в чём проблема. return new dCustomDifferentialGear___(EXCAVATOR_GEAR_GAIN, engineMatrix.m_front.Scale(-1.0f), engineMatrix.m_up, tireMatrix.m_front/*m_right*//*.Scale(1.0f)*/, engine, tire); Закомментировано - было в примере. Поменял - поехал. Ни в лево, ни в право. Только прямо. Что забавно, у меня кое-как работало до примера, даже поворачивать можно было, но с трудом (у dCustomHinge есть возможность включать вращение). А теперь поломал где-то, когда интегрировал пример в тестовый стенд. CUSTOM_JOINTS_API dCustomDifferentialGear___(dFloat gearRatio, const dVector& diffPin, const dVector& parentPin, const dVector& childPin, NewtonBody* const diffBody, NewtonBody* const axleOutBody); Pin - это типа ось. dCustomHinge - это joint, ось вращения. Есть всякие разные. http://newtondynamics.com/wiki/index.php/Category:Joint_functions
  19. Мне чат в игре забанили. Не представляете, насколько это обидно. И это при том, что сам собеседник начал с оскорблений, множество оскорблений в мой адрес в процессе диалога, а от меня в его адрес не было ни единого матного слова, старался вести себя максимально корректно. А за что мне чат забанили? А вот за это: Да, в цпп посчитали, что это завуалированный мат. Просто настолько обидно за подобное. Сегодня же пофармить решил пару часиков, пока халявный прем есть. На СУ-130ПМ за одиннадцать боёв две победы (настрел ~1500). А за последние 7 дней на ней же из 32-х боёв 40% побед. О как союзникам мешаю, стоял бы афк, было бы хотя б 45%. Просто невероятно обидно. Тогда опять к эмулятору вернусь. Двигаться танк начал, теперь бы осмысленно его ездить заставить, а то только вперёд и назад может. С векторами проблема, а это что-то для меня слишком сложно, особенно в физическом движке. В примере, из которого взят алгоритм движения, как мне удалось понять, система координат другая (xyz, у меня же xzy).
  20. @RX_GG Есть исходники BigWorld 1.9 и 2.0, судя по таблице флагов, они уже скачаны. Сетевая часть не сильно изменилась с тех пор. В исходниках есть pdf с описанием всего используемого в BigWorld, в том числе и сетевой протокол. Все вопросы там рассмотрены. А это в скриптах надо смотреть. Что-то сжимается, а что-то как cPickle без сжатия идёт.
  21. В сообщении createBasePlayer. Создаётся энтити Account. Смешанный тип. Есть cPickle, есть строки.
  22. PEiD утверждает, что тут UPolyX v0.5. Так и есть, исполняемый файл защищён. Какой протектор требовательный. И виртуальная машина ему не нравится, и запущенный рядом дебаггер, и дату переведи ему на правильную. Вот что это означает. Теперь ясно-понятно. Да, это оно. Ещё и про-лицензия. Всё так же, константы в одном месте, код в другом, вызов через функцию в третьем месте.
×
×
  • Create New...