Jump to content
Korean Random

kharlashkin

User
  • Posts

    829
  • Joined

  • Last visited

  • Days Won

    7

Everything posted by kharlashkin

  1. Сделал перерыв небольшой (голова пухнет от непонимания, что надо делать). Надо доставать опять книги по Python ;) Пришла вот такая идея относительно управления. Разве надо делать эмулятор клавиатуры/мыши через геймпад? Думаю что нет. Сравнивая скрипты от WoWP и WoT, кажется нашел именно то, что нужно. 'X:\Games\World_of_Warplanes\res\scripts\client\InputMapping.pyс' 'X:\Games\World_of_Tanks\res\scripts\client\CommandMapping.pyc' А в этих файлах есть все необходимые кнопки геймпадов: 'X:\Games\World_of_Warplanes\res_bw\scripts\client\Keys.pyc' 'X:\Games\World_of_Tanks\res_bw\scripts\client\Keys.pyc' Вывод - WoT (сам exe-файл) должен понимать кнопки/стики/триггеры геймпадов и джойстиков. Нужно просто сказать ему выполнять команды по нажатию кнопок не на клавиатуре/мышке. Добавление нужных геймпадовских кнопок в файлик command_mapping.xml, ни к чему не привело. Я думаю что из-за отсутствия скрипта подключения геймпада к игре. Блин, прямо руки опускаются - неужели те, кто знает и понимает python не хочет помочь, хоть советом, хоть направлением, хоть куском кода. Я сам не потяну создание этого всего, в связи с чем и предлагаю денег за реализацию.
  2. Пока не нашел в скриптах где-то ещё изменение минимального разрешения. Выкладываю тут скрипты снова (с измененными минимальными значениями): 'X:\Games\World_of_Tanks\res\scripts\client\gui\graphicsresolutions.pyc' 'X:\Games\World_of_Tanks\res\scripts\client\gui\shared\utils\graphics.pyc' Данные скрипты позволяют выбрать разрешение меньше чем стандартные 1024х768, но при нажатии кнопки применить нужное разрешение сбрасывается. Насколько я понимаю, в этих скриптах так же идет проверка выставляемых значений с родными для BigWorld значениями. Подскажите где подчистить чтобы эта проверка не проходила.
  3. Очень хочется пояснений. Потому как это "картохины" скрипты.
  4. Убил вечер, но есть некоторые результаты которыми стоит поделиться. Ниже скриншот успехов ;) Итак по порядку. 1. Огромная благодарность уважаемому inj3ct0r - подсказал как разделить вибрацию от каждой копии игры на два геймпада. Сделал два мода, каждый из них висят на разных портах и отдают вибрации в 1-й и 2-й геймпад (в Xinput 0-й и 1-й). 2. С помощью Vitrual Display Manager разделил экран на два "виртуальных". Должен сказать, что решение очень кривое и при первой же возможности надо уйти от него. 3. В Sandboxie запустил второй клиент WoT и покатался в тренировочном бою сам с собой. К сожалению, дело к ночи - к тому же для полноценной пробы нужен второй "фанатик" (типа меня). В связи с этим управление пока не настраивал - надо к этому серьезно подойти. На правой половине сриншота видны очень интересные настройки (разрешение 800х600 и выше). При чем они высвечиваются всегда и при запущенном Vitrual Display Manager даже применяются, но при выборе их в обычном режиме разрешение сбрасывается в 1024х768. Я так думаю что это последствия добавления прямых значений в скрипты "X:\Games\World_of_Tanks\res\scripts\client\gui\graphicsresolutions.pyc" и "X:\Games\World_of_Tanks\res\scripts\client\gui\shared\utils\graphics.pyc" путем тупого компилирования и замены констант. Соответственно копать в ту сторону буду.
  5. Неужели ни у кого нет никаких идей?
  6. Ну я из вежливости. Хотя сам один раз попадал в команду подставную автодобором - было невесело и "осадок" остался.
  7. Я разве сказал, что Вы что-то нарушаете? По моему мнению нет. Но мало информации в запросе дают "полет для мыслей", а тема Ваша в запросе - наподобие этой. В которой нелестно отзывались сами разработчики модов. Например в моей теме я конкретно указываю что мне нужно и пытаюсь всеми силами помочь. Описывайте все что Вам надо детальней и много сэкономите времени всем. Не ужели трудно в личке у автора приведенной мною темы спросить что как и к чему сначала - ему ведь кто-то сделал нужный Вам мод, взвесить все "за" и "против". И если уже не найдете ничего - тогда заводить отдельный топик ведь 1,5k рублей - недорого. Просто немного раздражает что плодятся темы однотипного характера, вопросы которые в них поднимаются уже решены, мне кажется, есть люди которые на этом неплохо зарабатывают (в их понимании) и с подобными вопросами к ним. Я прошу прощения - если вдруг я что-то написал обидчивое для Вас.
  8. Я бы на месте моредераторов начал бы предупреждения выдавать за такие темы. "Оплачиваемые заказы" превращаются в "Подставные бои/роты/прочее". Жаль.
  9. Если не внимательно читали, то проблем с запуском двух клиентов WoT у меня нет. Но все равно спасибо! Кстати, пришел к одному выводу - можно попробовать сделать это все "малой кровью". Относительно вывода двух окон было сообщение в самом начале (цена вопроса 35$), все управление вторым танком можно повесить на клавиатуру (без мыши), кнопок на клавиатуре больше чем в игре используется - хватит, Xpadder поддерживает одновременно много геймпадов, мод вибрации перепишу специально для второго экземпляра игры - второй геймпад. В итоге можно сказать, что проблема решена. По моему мнению, это корявое и временное решение все равно надо опробовать - по результатам отпишусь.
  10. Скрипт SettingsInterface интересный, там все есть - обработка нажатий кнопок, настройки мыши. Публикую его полностью: 'SettingsInterface' В этом сообщении уважаемый sirmax, говорил о добавлении отдельных методов, не трогая оригинальные скрипты. Возможно сюда стоит добавить метод который будет брать значения кнопок/стиков/триггеров и предоставлять их как кнопки клавиатуры/мыши.
  11. Да пусть обрабатывает, нужно чтобы он правильно обрабатывал - нужные нажатия, а не все подряд.
  12. Спасибо за поддержку . В принципе, по логике вещей, ответ где-то рядом. Мое видение данного мода такое - таким же образом как в "вибромоде" вызываем системный python, с помощью pygame берем данные о нажатии кнопок/перемещении стиков, переназначаем их в соответствии с управлением в игре (я довольно долго экспериментировал с удобством игры на геймпаде - моя тема на оф.форуме), и отдаем команды непосредственно в игру. Вот с последним моментом пока проблема - ищу.
  13. Да, согласен. Если при написании мода для "вибрации" - было понятно куда копать, то в данном случае не понятно. Необходимо сначала найти решение, а потом уже писать мод. В скрипте X:\Games\World_of_Tanks\res\scripts\client\gui\Scaleform\SettingsInterface.py вот это меня заинтересовало 'SettingsInterface.py' Насколько я понимаю это настройки для мышки. Может как то это можно использовать... Только заметил, что не опубликовал код тестовый для pygame, исправил это в сообщении про pygame.
  14. Нашел скрипт управления курсором в игре 'cursor.py' Знающие люди помогите! Кто может рассказать и объяснить что к чему в скрипте. Общее понятие у меня есть о том что к чему, но хочется убедиться в правильности предположений. Нашел интересную темку, которая возможно сможет помочь в направлении использования стиков вместо мыши: Ошибка мода, пропадает обзор мышью. Нет там в теме ничего, что может помочь. В принципе раскомпилировал уже всю игру - но не вывешивать же весь код сюда ;)
  15. Начал методично декомпилировать скрипты из игры и проверять. наткнулся на срипт graphicsresolutions.py в папке X:\Games\World_of_Tanks\res\scripts\client\gui\ 'graphicsresolutions.py' Простая замена MIN_HEIGHT = 1024 и MIN_WIDTH = 768, на MIN_HEIGHT = 800 и MIN_WIDTH = 600 ничего не дала (я как бы и не надеялся, что взлетит - но решил попробовать), но по крайней мере есть хоть какое-то направление :) Так же пробовал одновременно запускать тестовую программку pygame и скрипт вибрации - не мешают друг другу, pygame отлавливает нажатия кнопок и перемещение стиков/триггеров и одновременно геймпад вибрирует.
  16. Невнимательно читаете, уважаемый inq. Как раз до игры на геймпаде я был "крабом" и "оленем". Играл на нетбуке 12' и не заморачивался вообще ни со стратегией, ни с логикой игры - только "Оло-ло раш! Пыщь-пыщь! И слив в первые пару минут". Так был отыгран почти год (думаю, что около 5k боев). Хочу так же напомнить, что на низких уровнях до 5 уровня включительно - попробуйте наносить хотя бы 300 урона среднего. С автоприцелом я никогда не играл, даже сейчас на AMX1375 с геймпадом (!) не использую автоприцел (121 бой на 15.03.2014, 50% побед, знак классности 2)
  17. Между прочем мой первый "воин" (как и все остальные) был получен именно на геймпаде, до сих пор помню дрожь в руках. "Скриншот результатов" Все танки 6 лвл и выше игрались только на гемйпаде. 49% из более 10k боев "тащила команда" - Вы хоть понимаете о чем говорите? В общем прошу Вас не флудить в теме - идите на оф.форум и заведите свою тему по поводу кол-ва "крабов" в игре, иначе придется подать на Вас жалобу модераторам.
  18. На официальном форуме есть мой гайд с игрой в танки на геймпаде. Там же выложены мои мысли относительно управления в WoT в сравнении с шутерами. "Стата" - лучшее доказательство возможности так играть. Я не "цифродрочер" и играю без премиума, так что мои показатели ничем не лучше и не хуже других игроков. А Вы из тех, кто считает всех игроков "ракообразными", играющих для "пыщь-пыщь"?
  19. Вчера вечером пробовал pygame, тестовый скрипт из раздела документации без проблем определил геймпад, захватывал значения стиков/тригеров нажатия кнопок. Если я правильно понял - pygame использует библиотеку SDL, которая, в свою очередь, имеет реализацию для Python. К тому же с версии 2.0 поддерживается так же вибрационная связь с геймпадами. Направление наверное уже точно определено ;) Можно с помощью XPM заменить нужный метод и игра будет принимать значения от геймпада как от клавиатуры/мыши. Просьба к форумчанам - кто нибудь подскажите, где лежат скрипты для клавиатуры/мыши в WoT? P.S. Тестовый код для проверки работы pygame с геймпадами: 'testpygame.py'
  20. Нашел несколько интересных проектов, которые могут позволить подключать геймпады напрямую в WoT. Разумеется требуется "доработка напильником" но направления интересные. 1. ioHub. 2. python_xbox_controller. 3. Using XInput to access an Xbox 360 Controller in Managed Code. 4. Xbox 360 Controller Input in C++ with XInput. Начинаю склоняться в сторону написанию своего эмулятора на Python, для вызова непосредственно в WoT способом который использовался для "мода вибраций".
  21. Скачал, распаковал, попробовал - фигня :( fps при худших текстурах тот же, два клиента не запускается (я глубоко не копал, жду ответа от разаботчика), хотя использует функционал Sandboxie. Пробовал в виртуальной машине создать свою портативную версию танков с помощью VMWare ThinApp. На голой Windows 7 все сделал, получился монстр в 12,5 ГБ. Я правда выбрал виртуализировать все приложения, что нашла утилита создания. Надо протестировать и потом уже пробовать сокращать размер "портативных танков thinapp". Тестировал эмулятор FreePIE. От неё осталось какое-то двойственное впечатление. 1. За пару часов почти все настроил, кстати делюсь своим "черновым" скриптом: 'xboxtest1.py' Прошу прощения сразу код делался простым копипастом, из обрывков кода на форумах, необходимо добавить комбинации клавиш (лечение. ремонт, выбор снарядов), поменять алгоритм работы стиков (более правильное поведение мыши), прокомментировать. 2. Так же можно явно указывать для какого геймпада какие команды (в квадратных скобках номер геймпада). 3. Проект бесплатен и довольно активно развивается. 4. Программа при запуске отъедает более 50 МБ, что не есть хорошо (тот же Xpadder кушает в 10 раз меньше). 5. Пока не понял каким образом сделать автоматический запуск, есть ссылки на консольную версию эмулятора, что может пригодиться. Пока все выложил, что есть нового у меня. Пробовал запустить "монстра" thinapp, две копии приложения не захотели запускаться. Возможно надо сделать отдельное "тонкое приложение" под другим именем. Из плюсов - прорисовка картинки никак не отличалась от локально запущенного клиента. Пробовал запустить один клиент как обычно, второй в "песочнице", могу сказать что можно играть на моем ноутбуке (A4-4300M, 4 ГБ ОЗУ 1600 Mhz). Настройки в минимум, клиенты запущены в оконном режиме с разрешением 1024х768, обычный клиент 15-25 fps, "песочный" 10-20 fps. Думаю что на домашнем A10-5700, 8 ГБ ОЗУ 1866 Mhz с SSD и более быстрым WD Black будет веселее. Таким образом, могу сказать, что проблема запуска двух клиентов для одновременной игры решена. Я как бы и сразу полагался на этот способ ;) В принципе и цена не такая пугающая - 15 евро, два месяца не донатить Wargaming.
  22. "И опыт, сын ошибок трудных" - А.С.Пушкин © Как бы пост писался "сгоряча" - согласен, что моя ошибка. К тому же, уже потом, было выяснено очень много деталей, которые очень подогрели бы интерес - но запал прошел у меня. Думаю, что будет версия 2 :)
  23. Кстати я давно в гости к знакомому хожу с ноутбуком, проводным геймпадом и HDMI-кабелечком. Причем я играю на его ТВ в гостиной, он же скрючивается за ПК в соседней комнате. Уже начинает привыкать играть на контроллере - начинаем меняться местами. Для таких "покатушек" и держу танчики 1-2 уровня.
  24. Спасибо за ссылку! Гуглил на днях портативный клиент - на эту тему не попадал. Протестирую - отпишусь.
  25. Доброе время суток, уважаемые форумчане! "С восторгом предаюсь в руки родной милиции форума, надеюсь на нее него и уповаю." - Иван Васильевич Бунша © В прошлом году мною было опубликована "хотелка", которая блестяще была решена с помощью inj3ct0r, sirmax и другими. Должен сказать, что данный мод был довольно холодно воспринят интернет-сообществом (публикация на habrahabr хоть и набрала более 10k просмотров, но в минусе), после обновления 0.8.11 и обновления системного python в игре, ко мне достаточно много человек постучалось с просьбой поделиться обновленным модом. С этой целью я написал на официальном форуме подробную инструкцию. Таким образом хочу снова выразить огромную благодарность всем, кто участвовал в создании. Теперь перейдем к новым "хотелкам". На официальном форуме WoT в теме "корпоративная игра на 1м танке" меня посетила мысль об игровом режиме "Разделенный экран", т.е. одновременной игре вдвоем на одном экране во взводе/роте/команде. Разумеется ни о каком "нагибе", "подставных ротах" и прочем речь не идет, только "игра для фана" и "пыщь-пыщь" под пивасик с другом на геймпадах. Теория была мною опробована на виртуальных ПК под VMWare Player: Все заработало - геймпады пробросились в ВМ, картинку настроил в портретный режим, вибрации работают. Но неиграбельно - fps в среднем в каждой ВМ от 8 до 15. Более детальное изучение всех составляющих для танков вдвоем на ТВ привело к следующему: 1. Настроить клиент игры для возможного запуска двух копий 2. Необходимо разделить экран телевизора на два виртуальных. 3. Решить проблему отправки нажатий кнопок/отклонения стиков с геймпада в неактивное окно. 4. Отправить вибрацию в разные геймпады с разных клиентов. 1. Запуск 2-х клиентов. По-умолчанию, разработчики из Wargaming убрали возможность одновременного запуска двух копий. Не буду описывать все прелести «песочницы» — Sandboxie Вам в помощь. 2. Разделение экрана телевизора на две части. «WoT» в оконном режиме может иметь минимальное разрешение 1024х768, в случае разделения FullHD телевизора пополам, необходимо разрешение каждого окна минимум 960х1080, а учитывая рамки окна и заголовок и того меньше. Т.е. стандартными «горячими клавишами» через Snap разнеся окна в разные стороны мы получаем частичное перекрытие окон. Любые другие утилиты для разделения рабочего стола на две части используют похожий функционал и никаким образом не могут повлиять на минимальное разрешения игры по ширине. Перепробовав огромное количество, натолкнулся на Virtual Display Manager, подкупило отсутствие в названии слова desktop. Утилита сделала нужное — добавив конфигурацию двух виртуальных дисплеев и перемещая окно в нужный — игра принимает нужное нам значение, а именно занимает ровно половину экрана. 3. Отправка нажатий клавиш в неактивное окно. Это решение было для моего ума самым сложным. Два клиента запущены, окна разнесены в стороны и не перекрывают друг-дружку, но одно из окон активно, соответственно принимает нажатия кнопок и перемещения мышки, а вот второе не активно со всеми вытекающими. К решению этой проблемы меня подтолкнуло знакомство с AutoHotkey. 'Первый скрипт, позволяющий даже иногда ездить в бою' Причины, почему скрипт срабатывал, мне так и остались неизвестны. После многих безуспешных попыток, решение нашлось. Через SendMessage сообщать окну, что оно активно и отправлять нажатия клавиш. Такой своеобразный обман. 'Скрипт отправляет стрелки, WASD и пробел (переназначеный на выстрел в игре) в неактивное окно' Дальше пошло веселее, особенно хочу выразить благодарность Серому форуму, и отдельно модератору teadrinker. Спасибо!!! 'WoT Split Screen' Разумеется, играть перед ТВ никто не собирался на клавиатурах/мышах. Управление танками происходит с помощью двух геймпадов от Xbox360. За основу было выбрано управление от версии для Xbox 360. В общем, у меня получилось как-то так. Выбор типа снарядов переключением — один раз нажал — 1-й тип, второй — 2-й, третий — третий и сброс в начало (1-2-3). снаряды применяются сразу — AHK отдает двукратное нажатие в игру. Меню приказов — сочетание левого бампера и правого стика, лечение и ремонт кнопки «Х» и «В» в сочетании с левым стиком. Видео геймплея 4. Настройка вибраций для геймпадов. Так как данная модификация игры использует веб-сервис для отправки вибраций, то для отправки во второй геймпад, нужно было просто изменить порт Flask. Но, для игры в «Разделенном экране» на вибрирующих геймпадах нужно запускать в «песочнице» полную копию клиента (скопировать папку рядом с другим именем) со своим отдельным модом, также скопировать в «песочницу» Python27. Хочу отдельно выразить особую огромнейшую благодарность inj3ct0r, за всесторонние консультации и помощь, а так же всем участвовавшим! Спасибо Вам всем, без Вашей помощи, подсказок и поддержки у меня ничего не получилось бы. Думается, что данное решение можно попробовать применить ко многим играм. Решение получилось очень неудобным — много всяких «но». Но могу сказать что игра для «фана» удалась. Удачи всем в боях! Во вложении моды для основного/"песочного" клиентов и скрипт. WoTSplitScreen.7z
×
×
  • Create New...