Jump to content
Korean Random

kharlashkin

User
  • Posts

    829
  • Joined

  • Last visited

  • Days Won

    7

Everything posted by kharlashkin

  1. Наконец-то дельное объяснение работы этого всего "хозяйства". Так вот же исходники. Но думаю что полностью переписывать .dll нет необходимости. Надо только показать игре, что накидка подключена, VibroManager.pyc уже будет сам отрабатывать скрипты прямо на геймпад, когда BigWorld будет их вызывать для накидки. Может просто попробовать вырезать проверку подключения вибронакидки в VibroManager.pyc? Ну это единственный аналог, для переписки подобного: Продолжаю читать Лутца :)
  2. Если имеется ввиду работа xpadder, то да. Геймпад подключен к ПК, в xpadder настроен перехват геймпада, в IDLE запускаю скрипт - он отрабатывает нормально. При этом жмакаю на кнопки и прочее - xpadder перехватывает нажатия и эмулирует мышу/клаву.
  3. Это уже непосредственно API вибронакидки.
  4. Не совсем так... Вот тут есть о создании proxy.dll. исследовав библиотеку uwApi.dll на предмет экспортируемых функций с помощью утилиты dumpbin у меня получилось: То есть в библиотеке используется всего 4 функции и они никак не связаны с скриптами в игре. Я думаю что они просто сообщают игре о подключенной вибронакидке. Попробовав подменить 2-ю функцию может удастся обмануть WoT и запускать скрипты без наличия вибронакидки в системе. Есть SDK полный на вибронакидку - ссылка выше. В архиве очень много всего (включая сырцы на С++ для тестовых программ отладчиков). Это понятно. надо сделать "файл.pyc" и просто класть его в нужную папку с игрой. time.sleep() - Ничего более подходящего не нашел, если есть мысли - буду рад услышать. Зато можно делать циклические вибрации - 1 секунда максимум, 5 раз по 0,2 секунды на уменьшение, 1 секунда максимум и выключение вибраций на геймпаде.
  5. Получилось с помощью вышеупомянутого скрипта на python задавать не только силу но и время работы вибрации в геймпаде (добавлением time.sleep ()). Соответственно можно теперь сопоставить необходимо время работы и силу двигателей для каждого эффекта (в документе от производителей их 24). Подскажите куда их и каким образом вставлять эти скрипты. Я и не думал что будет просто ;) Вопрос вот в чем - каким образом игра понимает что накидка подключена? Думаю что с помощью вот этой библиотеки в папке игры uwApi.dll. Если не взлетит переписанный скрипт vibroeffect.pyc, из-за того что BigWorld.WGVibration() не будет видеть наличие вибронакидки и не выполнять скрипты. Можно попробовать через proxy.dll подсунуть нужное значение основному объекту. Я правильно понимаю?
  6. Скрин настроек из игры Если у кого есть вибронакидка объясните пожалуйста, каким образом игра понимает что накидка подключена? В саму игру вставлен модуль для работы накидки или же через ПО игра отправляет сигналы в неё. Надо ли запускать ПО, идущее в комплекте с накидкой для определения её игрой?
  7. Код вроде нашел в фале vibromanager.pyc, геймпад готов подарить человеку. кто поможет. Дополнительно могу после выполнения работы заплатить обоснованную сумму денег. Под спойлером код, может закомментируете что откуда и куда. Я начал книгу читать по Python, но пока осилил треть, возможно к концу прочтения буду лучше понимать.
  8. Сразу прошу прощения - я не программист и для меня все темный лес. Мои навыки программирования остались на школьном уровне в Бейсике 20-летней давности. Про какой именно девайс идет речь? Гемпадов у меня более чем достаточно, вибронакидку покупать не хочется. В SDK вибронакидки есть очень много всего (включая исходники для тестовых программок). Можно поподробнее что значит написать плагин к XPM?
  9. Прошло два дня - расскажу, что мне удалось, может кто-то меня подтолкнет к нужным мыслям. Полазив в папках самой WoT нашел папку с скриптами, написанными на python, которые относятся именно к вибронакидке "X:\Games\World_of_Tanks\res\scripts\client\vibroeffects" Декомпилировав файлы из папки, показал этот код программисту. Мне сказали - что так будет удобнее получить нужный мне функционал. Не подменой dll От вибронакидки, а непосредственным вызовом вибраций из игры. Первое, что мне надо было сделать разобраться с вибрацией геймпада из python. В интернета нашелся нужный код. Из редактора IDLE все работает - то есть запуская этот модуль, геймпад действительно начинает вибрировать в зависимости от заданной скорости моторов. SDK для вибронакидки уже вдоль и поперек излазил, но понимание общей картины не получается.
  10. Показал все что было мною найдено программисту, который очень хорошо разбирается в коде. Нужен человек имеющий навыки программирования на Python. Откликнитесь кто-нибудь!
  11. Вышел на разрабочиков. Пробую у них попросить добавление данного функционала или хотя бы исходников ПО для накидки с целью добавить туда нужный функционал.
  12. Покопав тему глубже, нашел следующие вводные данные: 1. На сайте производителей "виброжопки" есть SDK, т.е. очень просто понять что, как и почему работает. 2. Там же есть и стандартные эффекты для WoT, открывая которые обычным тестовым редактором понятно, как именно сделаны виброэффекты. 3. На сайте Microsoft, есть описание API для работы с геймпадом от Xbox 360. Наверное будет очень проблематично добавить поддержку геймпада в саму игру WoT - для этого придется очень много перелопатить кода WoT. По моему мнению будет проще написать программу, которая будет перехватывать команды из WoT для виброжопки и отдавать их специальные аналоги посредством XInput в геймпад. Прошу совета у сообщества - реально это сделать? Так же прикладываю ссылку на проект где уже есть открытый код с использованием библиотеки libusb, для контроллера Xbox 360. От себя могу подтвердить, что данная модификация работает с эмулятором xpadder и позволяет играть в WoT на геймпаде.
  13. Добрый день, уважаемые форумчане! К сожалению, заказ мода на официальном форуме игры не привел ни к чему, публикую свои "хотелки" здесь. Существуют специальные вибронакидки для игры в WoT, которые официально поддерживаются разработчиками. Соответственно, под эти вибронакидки есть уже готовый модуль в игре для передачи обратной связи. Можно ли исправить этот модуль, находится вроде в папке World_of_Tanks\res\scripts\client\vibroeffects, для передачи данных не в вибронакидку а в контроллер от Xbox360? В нем так же два вибромотора. P.S. Могу на данный момент заплатить 50$ хоть завтра, если будет правильное обоснование в сторону увеличения, можно увеличить бюджет. В принципе, довольно много есть интересующихся (кто играют на геймпадах), можно поднять вопрос и скинуться сообща. P.P.S. Есть готовый мод, который берет данные для вибраций из файлов для вибронакидки .uwv, с помощью коэффициентов преобразовывает их и передает данные для двигателей xinput геймпада. Работают смешивание (одновременное воспроизведение нескольких эффектов), нет никаких задержек (все вибрации отрабатываются вовремя), я понял почему разработчики хвалятся тем, что эффекты делал звукорежиссер (пожар только чего стоит - как биение сердца), работают "ползунки" в настройках игры для вибронакидки (можно увеличить вибрации/уменьшить/отключить), настройки для передачи вибраций в геймпад вынесены в отдельный xml файл. Теперь по порядку: 1. Необходимо установить Python версий 2.6.х (у меня стоит 2.6.1), в принципе можно перекомпилировать файлы под любую версию. 2. Установить Flask, качаем файл distribute_setup.py в папку "C:\temp" (например), запускаем консоль "Win+R" - cmd и выполняем команды: C:\Python26\python.exe C:\temp\distribute_setup.py C:\Python26\python.exe C:\Python26\Scripts\easy_install-2.6-script.py Flask C:\Python26\python.exe C:\Python26\Scripts\easy_install-2.6-script.py Jinja2 C:\Python26\python.exe C:\Python26\Scripts\easy_install-2.6-script.py Werkzeug C:\Python26\python.exe C:\Python26\Scripts\easy_install-2.6-script.py Virtualenv 3. Распаковать мод в нужную папку. 4. Играть. В файле GPsettings.xml уже прописаны путь к системному python "c:/python26/pythonw.exe" со скрытым запуском, коэффициенты передачи эффекта, нужная dll ( для Windows 7/Vista), для XP нужно прописать xinput1_1, для 8-ки - XInput9_1_0.
×
×
  • Create New...