Jump to content
Korean Random

kharlashkin

User
  • Content Count

    829
  • Joined

  • Last visited

  • Days Won

    7

Everything posted by kharlashkin

  1. Доброе время суток, просмотрел код - у меня возник вопрос. Пытаюсь, по возможности, решить проблему подключения к игре сторонних девайсов (сам в python новичок). Хочется прицепить в WoT геймпад Xbox 360 без сторонних программ, типа xpadder и т.п. Чтобы команды напрямую принимались игрой как бы от клавиатуры/мыши. В коде уважаемого cep62rus, вроде есть нужное направление. Если я правильно понимаю, то игра может принимать команды, но они не назначены, соответственно бесполезны. Есть идеи?
  2. Вибрация не вибронакидки, вибрация для геймпада - пошлют они меня "за картошкой". Насколько я понимаю, они поменяли какой-то метод, но понять что именно пока умишком слаб. Вот код из версии 0.8.09
  3. После обновления 0.8.11 при использовании "вибромода", стали сыпаться ошибки: 'python.log' Декомпилировав игровые скрипты - выкладываю код. 'VehicleAppearance' 'VehicleAppearance' 'ControllersManager' 'TrackBreakingController' 'TrackBreakingController' Ошибки на вибрацию в игре никак не влияют, но мое мнение что это не есть хорошо. Может кто-то из форума откликнется и укажет нубу в python как и что сделать для правильной работы "вибромода".
  4. Вряд ли я кому-то открою глаза, но существуют специальные вибронакидки для игры в WoT, которые официально поддерживаются разработчиками. Соответственно, под эти вибронакидки есть уже готовый модуль в игре для передачи обратной связи. Покопав тему глубже, нашел следующие вводные данные: На сайте производителей "виброжопки" есть SDK, т.е. очень просто понять что, как и почему работает. Там же есть и стандартные, и усиленные эффекты для WoT, открывая которые обычным тестовым редактором понятно, как именно сделаны виброэффекты. Полазив в папках самой WoT нашел папку с скриптами, написанными на Python, которые относятся именно к вибронакидке "X:\Games\World_of_Tanks\res\scripts\client\vibroeffects". В интернетах нашелся нужный код. Из редактора IDLE все работает - то есть запуская этот скрипт, геймпад действительно начинает вибрировать в зависимости от заданной скорости моторов. При этом отработка скрипта никак не влияла на работу Xpadder. С помощью этого форума была "запилена" обратная вибросвязь для геймпада, ссылка. Выражаю огромнейшую благодарность sirmax, inj3ct0r, В итоге все получилось - данные для двигателей берутся из родных файлов для вибронакидки *.uwv, работает смешивание эффектов (одновременная вибрация, например пожар/выстрел/рикошет), работают "ползунки" в настройках игры для вибронакидки (можно увеличить вибрации/уменьшить/отключить). Должен сказать, что играть стало намного интереснее и теперь не нужны многие вспомогательные картинки (руками чувствуется когда зарядилось орудие, когда по тебе попали и каким снарядом). Я кстати понял, почему разработчики хвалятся тем, что эффекты делал звукорежиссер (пожар только чего стоит - как биение сердца). Для установки вибромода для геймпада нужно: 1. Необходимо установить Python версий 2.7.х (у меня стоит 2.7.6). 2. Необходимо установить Flask, я делал по этой инструкции. Качаем файл distribute_setup.py в папку "C:\temp" (например), запускаем консоль "Win+R" - cmd и выполняем команду C:\Python27\python.exe C:\temp\distribute_setup.py наблюдаем процесс загрузки нужных файлов в папку "C:\Python27\Scripts", далее в консоли запускаем команды по очереди и наблюдаем их выполнение: C:\Python27\python.exe C:\Python27\Scripts\easy_install-2.7-script.py Flask C:\Python27\python.exe C:\Python27\Scripts\easy_install-2.7-script.py Jinja2 C:\Python27\python.exe C:\Python27\Scripts\easy_install-2.7-script.py Werkzeug C:\Python27\python.exe C:\Python27\Scripts\easy_install-2.7-script.py Virtualenv 3. Распаковать мод в нужную папку. 4. Играть. Всем удачи в боях!
  5. Доброй ты души человек ;) Тему закрываю, только в первый пост добавлю решение как и что куда - кому лень читать ветку.
  6. Прошу прощение за задержку, рождественские праздники, знаете ли... Итак, протестировав обновленный мод, могу сказать, что уважаемый inj3ct0r потрудился на славу: 1. Виброэффекты действительно работают как родные (не зря разрабы хвалились, что эффекты делал звукорежиссер). 2. Мной не замечено никаких абсолютно задержек, все вовремя. 3. Есть смешивание эффектов. 4. Ползунки в настройках игры работают (можно уменьшить/добавить/отключить). Как будет свободное время буду пробовать изменять коэффициенты в xml файле. Огромное спасибо всем, кто участвовал (словом, советом, делом) в написании этого мода! P.S. Разумеется inj3ct0r получил подарок "под ёлочку" (чтобы меня не обвинили в недобросовестности).
  7. При запуске в консоли Windows скрипты ругались на несответствие версий python. Переустановил версию на 2.6 - все взлетело :) Буду теперь тестировать и допиливать эффекты.
  8. Доброе время суток. Распаковал скрипт в нужную папку, указал путь к системному питону, указал нужную dll (xinput1_3) и сразу промах - при запуске игры не появляется окошко python, соответственно дальше ничего не работает. Пробовал с учетом регистра указать путь - ничего не получилось. Расковырял код, копаюсь...
  9. Выкладываю обновленный вариант эффектов. Добавил виброэффекты повреждений (гусля, пожар, контузия и прочее), сделал скрытый режим запуска скриптов. Что пока не работает - нет смешивания эффектов (при пожаре и затем попадании, пожар перестает вибрировать); наблюдаю немного запаздывания (около 0,5 секунды) не всегда, но есть. Но в общем скрипт работает и получается более полное погружение в игровой процесс. Наверное попробую сегодня/завтра скомпилировать файл GPService.py в GPService.pyc, в связи с этим должно немного повыситься быстродействие скрипта. что должно ускорить срабатывание вибраций. res_mods.7z
  10. Скрипт отрабатывает, выдает "Exit" и всё, наверное надо стопорить скрипт для ожидания ввода команды с клавиатуры. Или надо как-то необычно его запускать? Выкладываю на тестирование "модифицированный вариант", первоначального скрипта на python, куда добавил разные эффекты при выстреле и повреждения. Распаковать в папку "Х:\Games\World_of_Tanks", путь к системному python прописан как "C:\Python27\python.exe". Код скрипта GPService.py: P.S. Эффекты надо бы ещё доработать, но играть так стало намного интереснее ;) res_mods.7z
  11. Да, согласен. Надо будет так же добавить вот это: K_LEFT = 0xE00 // Левая сторона накидки K_RIGHT = 0x00E // Правая сторона накидки K_SIT = 0x202 // Сиденье K_BACK_LOW = 0x404 // Низ спины K_BACK_MID = 0x808 // Середина спины K_ALL_ZONES = 0xE0E // Все зоны Но вот ещё момент, разбирая эффекты обнаружил две незадокументированные зоны - zones="C" и zones="C00", которые крутят Спина справа/Спина слева (оба двигателя).
  12. Утро вечера мудренее. Запросил у разработчиков схему режимов работы двухмотороной вибронакидки или же разъяснений каким образом ээффекты делят на два мотора, накидка из первого поста. Для понимания работы вибро в ней - думаю будет правильным отталкиваться от них. Тем более хвастаются, что эффекты писал звукорежиссер специально под девайс.
  13. Надо спать идти ;) Всё гораздо прозаичнее - значения вибронакидки делим на 255 и умножаем на 65535
  14. Интересно, что игра как бы видит вибронакидку (появились её настройки, в настройках WoT), inj3ct0r заметил данный факт. Я пока разбираю все родные эффекты на составляющие (зона/время/сила вибрации), чтобы можно было проверить реальность ощущений и брать данные из родных файлов .uwv..
  15. Итак, наверное стоит по щагово описать процесс инсталляции тестовых вибраций для геймпада. 1. Необходимо установить Python (я ставил последнюю версию), папка пусть будет по-умолчанию "C:\Python27". 2. Необходимо установить Flask, я делал по этой инструкции. Качаем файл distribute_setup.py в папку "C:\temp" (например), запускаем консоль "Win+R" - cmd и выполняем команду "C:\Python27\python.exe C:\temp\distribute_setup.py" наблюдаем процесс загрузки нужных файлов в папку "C:\Python27\Scripts", далее в консоли запускаем команды по очереди и наблюдаем их выполнение: C:\Python27\python.exe C:\Python27\Scripts\easy_install-2.7-script.py Flask C:\Python27\python.exe C:\Python27\Scripts\easy_install-2.7-script.py Jinja2 C:\Python27\python.exe C:\Python27\Scripts\easy_install-2.7-script.py Werkzeug C:\Python27\python.exe C:\Python27\Scripts\easy_install-2.7-script.py Virtualenv 3. Распаковываем архив из вложения в папку с игрой "X:\Games\World_of_Tanks" (запаковал из своей игры). После запуска Игры появляется окошко консоли Python, которая будет говорить нам о правильности запуска. В самое игре при выстреле будет работать вибрация на Xinput геймпадах следующим образом - 0,25 сек правый двигатель на максимум, левый на 50%, 0,3 сек правый двигатель на 8%, левый на 4%. P.S. Хочу выразить огромнейшую благодарность уважаемым sirmax и особенно inj3ct0r, без них не было бы даже этой начальной бета-версии. res_mods.7z
  16. Подскажи пожалуйста версия Python какая нужна, под 2.7 поставил не отрабатывает, под 2.6 не могу поставить и все.
  17. 1. Наверное надо все таки скомпилисть GPService.py? Или так должен отрабатывать, потому как у меня окошко python не выскакивает. (чуть позже дочитал, исправлять не стал, скомпилю сейчас) 2. Исправил немного код, поставил нужную dll, добавил номер геймпада, добавил import time. 3. При попытке запустить скрипт - выдает сообщение про отсутствие Flask, наверное надо его куда-то положить? Вроде получилось установить Flask, по крайней появилась "C:\Python27\Scripts\flask\". В ней лежит свой python, может в xml надо указать путь к нему? Не отрабатывает мод. Не выскакивает окошко системного питона и все.
  18. Давайте по порядку, у меня квалификации не хватает чтобы "на лету", подобно Вам, понимать происходящее (sirmax так умеет). 1. Написанный GamePadVibration, использует ресурсы WoT для выполнения скриптов? 2. Если установить дополнительно python нужной версии и отправить выполнение именно скрипта вибрации в него (sirmax наверное об этом говорил), так будет получатся? Чуть опоздал :) Уважаемый sirmax ткните носом пожалуйста на подобную реализацию, не могу ничего нагуглить - не хватает специализации... Мне кажется ответ где-то на поверхности. Прихожу вот к какому выводу - скрипт же отрабатывается в python без проблем. Делаем два скрипта StarVibration.py и StopVibration.py, с соответствующим кодом. Кладем их в папку где надо с игрой, и вместо добавления и компилирования скриптов в GamePadVibration, сделать их вызов. Код в таком случае будет отрабатываться уже не игрой, а установленным в ОС python? (заранее прошу прощения за столь глупые высказывания)
  19. Простое копирование папки "C:\Python26\Lib\ctypes" в папку с игрой не поможет (или поможет)? Может попробовать перебрать файлы в папке "X:\World_of_Tanks\res_bw\scripts\common\lib\ctypes" на соответствие и различия? Буду смотреть сейчас.
  20. Прошу прощения за "ламерский вопрос", а почему не просто "import ctypes", как в найденном мною скрипте?
  21. Вот здесь есть информация, что движки в геймпаде разные (Note that the right motor is the high-frequency motor, the left motor is the low-frequency motor. They do not always need to be set to the same amount, as they provide different effects.), соответственно просто по разному их раскручивая - получаем разные эффекты. 'Цитата из SDK вибронакидки' Сколько игр прошел на геймпаде (Halo, Portal, AC, Batman и др.) никто никогда не заморачивался так, как Варгейминг, все используют это для лучшей передачи игровой атмосферы, а не для массирования ягодиц :)
  22. "Это не бага - это фича" - разрабы возможно, делают эти эффекты постоянно работающими, но постоянно их тормозят. Если танк двинется (например на медленном ходу) то нужный эффект перестают тормозить.
  23. Ну вот что в файле виброэффектов: Соответственно вибронакидка по разному вибрирует все эти 0,8 секунды. Низ спины (vibration_1) - 80 мс, середина спины - (vibration_2) - 480 мс и все сиденье всего 10 мс (ну или как то так, мне непонятен последний параметр).
  24. У-ух... Пока лог дочитал - вечность прошла))) Должен признать, что поражен!!! 1. В коде всего две переменные - цифра (0-65535) оборотов для левого двигатели и правого. Может проще файлы .uwv переписать - чтобы оттуда считывать эти переменные? 2. Могу попробовать запустить два разных экземпляра скрипта запуска вибрации на геймпаде (для проверки), если ничего страшного не произойдет то "забить". 3. ... Мне вот что кажется - идея с постоянно жжужащим геймпадом не совсем наверное правильная, для вибронакидки может и гуд, а вот для девайса с которого играешь нет. По логам видно что постоянно работает вибрация от "танкового двигателя" (малые обороты/средние, движение вперед/назад). С целью создания самодельной вибронакидки - это понадобится, а на геймпаде нужна возможность не запускать вибро при движении.
  25. Доброе время суток! Я смотрю - дела идут как то у Вас ;) Показывал код программисту знакомому (жаль что к python не имеет никакого отношения). Просмотрев всё, показал мне вот что - очень много эффектов вызываются через OnceController. Можно вместо неё попробовать вызывать вот тот код который умеет "жжужать джойстиком" (дословно). Всё остальное (которое не относися к этой функции) попробовать вырезать из кода, запаковать обратно в .pyc и попробовать так запустить - мне кажется что в этом рациональное звено есть. Учитывая, что кодить на Вашем уровне я не могу - буду пробовать, а что - интересно :)
×
×
  • Create New...