Jump to content
Korean Random

GPCracker

User
  • Posts

    2,827
  • Joined

  • Last visited

  • Days Won

    61

Everything posted by GPCracker

  1. Не знаю, не разгребал особо, глянул начало только, из-за смещения нужно особым способом дизассемблировать, а мне и так есть чем заняться.)
  2. А в других источниках разве нет обновлений? Покопался в файлах, нашел хвосты. Можно поднять конечно, если есть необходимость, а автор оригинала длительное время не отвечает на вопросы в личку и не появляется на форуме. file name: scripts/client/helpers/drr_scale.py BigWorld.getFPS() Ну и логику написать нормальную
  3. Слово то найти в тексте можно, но проанализировать контекст, в котором его используют, проблематично. И его до кучи могут с ошибкой написать, ибо в бою не до текстового чата. Передача расширенных команд (которых нет в розе) с озвучкой на том конце возможна только при наличии "приемника". Для озвучки таких команд в текст добавляется специальный (по возможности невидимый) байт-маркер. Это я описываю возможные способы реализации такого функционала. Как и передача команд во взводный чат после недавнего патча, когда команды были переведены в отдельный канал.
  4. А есть автономный хэлп. python_client.zip
  5. Мод перехватывает обращение к флэшу, поэтому стандартная лампочка скорее всего (95%) высвечиваться не будет. Звук подтянут через XVM (ЕМНИП), поэтому он скорее всего тоже не будет воспроизводиться. И не у всех ХВМ стоит, а звук то хочется... Можешь свою либу создать, прописать путь в конфиг, все должно работать) Как говорится, до кучи, чтоб было. Кстати, мод норм работает?
  6. Если хотите маркеры на миникарту локастана, согласовывайте с ним "хвосты" для управления миникартой через DAAPI. Свои я выкладывал уже.
  7. "Некратные" смещения, "квантовую" запутанность, "фейковые" джампы и т.д. можно выпилить, если пройтись по всему дереву кода, как это сделал бы питон. Но алгоритм конечно будет... Учитывая что не одни условия в коде используются, есть еще различные loop-конструкции. По сути такое эквивалентно написанию половины питона. Но и защиту убивать будет почти наповал.
  8. Публикация данного мода в иных источниках без согласия автора запрещается. The publication of this modification elsewhere without the consent of the author is prohibited. Мод Анимированное "Шестое чувство" / Animated Sixth Sense Mod Версия клиента: 0.9.5 Версия мода: 0.0.2 Release Автор: GPCracker Описание: Мод делает "лампочку" "Шестого чувства" анимированной, а также может воспроизводить указанный звуковой эвент при срабатывании перка. См. Конфиг. Важно: Если Вы нашли баг в моде, просьба сообщать о нем в этой теме. К описанию багов необходимо прикреплять скриншоты и / или лог питона (python.log), а так же файл конфигурации мода. Лишними эти файлы не будут полюбому, а в некоторых случаях они критически необходимы. Установка: Скопировать папку res_mods в корневую папку игры Загрузчик модов необходимо скачивать отдельно (если у вас он еще не установлен). Это файлы /scripts/client/CameraNode.pyc и /scripts/client/mods/__init__.pyc. Настройка мода: Все параметры мода могут быть настроены через файл конфигурации. Кодировка файла конфигурации - windows-1251. Для редактирования не рекомендуется использовать виндовский блокнот - может "сломаться". Описание параметров - комментарии в конфиге. На русском. Не менее важно: Мод не ограничен находящимися "в комплекте" текстурами. Вы можете использовать свои. Звука в архиве нет. Только текстуры и скрипт. Скачать скрипты базовые текстуры: AnimatedSixthSense.zip Альтернативные иконки: Как устанавливать альтернативные иконки: Как создавать свои иконки: История версий: Архив версий:
  9. А я все не мог понять, как вы редактируете readonly code object... "Некратное" смещение (джамп в начале файла) идея неплохая, но больно "палевно" его поставили...
  10. Смотрел я этот модик... Там тупо взяли сорцы (пацан умеет пользоваться декомпилятором / орионом), состыковали в один мод, выпилили проверку версии, немного переназначили глобальные переменные (конфиг). Перенесли один параметр конфига, заюзали глобально пару "библиотечных" функций. Там шестерка-бета.Если такими темпами будут мутить копии модов без согласований, ссылок на официальные темы авторов и т.д., альфа 2 может задержаться... Недавно вылез один очень неприятный баг: "Немного предисловия" В связи с тем, что на моих модах используется много общего кода, баг может повторяться. Что происходит: Зажимается шифт, нажимается и отпускается второй шифт, отпускается первый. Потом то же самое с альт'ами. Вывод кейлоггера: {'key': 42, 'isDown': True, 'keyName': ['KEY_LSHIFT'], 'isRepeat': False, 'mods': 0} {'key': 54, 'isDown': True, 'keyName': ['KEY_RSHIFT'], 'isRepeat': False, 'mods': 1} {'key': 54, 'isDown': False, 'keyName': ['KEY_RSHIFT'], 'isRepeat': False, 'mods': 1} {'key': 42, 'isDown': False, 'keyName': ['KEY_LSHIFT'], 'isRepeat': False, 'mods': 1} {'key': 56, 'isDown': True, 'keyName': ['KEY_LALT'], 'isRepeat': False, 'mods': 0} {'key': 184, 'isDown': True, 'keyName': ['KEY_RALT'], 'isRepeat': False, 'mods': 4} {'key': 184, 'isDown': False, 'keyName': ['KEY_RALT'], 'isRepeat': False, 'mods': 4} {'key': 56, 'isDown': False, 'keyName': ['KEY_LALT'], 'isRepeat': False, 'mods': 4} Обратите внимание на 'mods':При нажатии клавиши (1 строка) все правильно. При нажатии второй клавиши (2 строка) mods показывает, что действие произошло при зажатом модификаторе Третья строка тоже верна. А вот в 4 отпускается сам модификатор, и он учитывается сам для себя (хотя по логике не должен бы, он должен восприниматься как отжатие обычной клавиши) #Ctrl+Shift+T {'key': 29, 'isDown': True, 'keyName': ['KEY_LCONTROL'], 'isRepeat': False, 'mods': 0} {'key': 42, 'isDown': True, 'keyName': ['KEY_LSHIFT'], 'isRepeat': False, 'mods': 2} {'key': 20, 'isDown': True, 'keyName': ['KEY_T'], 'isRepeat': False, 'mods': 3} {'key': 20, 'isDown': False, 'keyName': ['KEY_T'], 'isRepeat': False, 'mods': 3} {'key': 42, 'isDown': False, 'keyName': ['KEY_LSHIFT'], 'isRepeat': False, 'mods': 3} {'key': 29, 'isDown': False, 'keyName': ['KEY_LCONTROL'], 'isRepeat': False, 'mods': 2} #Короткое нажатие на Shift, затем Ctrl {'key': 42, 'isDown': True, 'keyName': ['KEY_LSHIFT'], 'isRepeat': False, 'mods': 0} {'key': 42, 'isDown': False, 'keyName': ['KEY_LSHIFT'], 'isRepeat': False, 'mods': 1} {'key': 29, 'isDown': True, 'keyName': ['KEY_LCONTROL'], 'isRepeat': False, 'mods': 0} {'key': 29, 'isDown': False, 'keyName': ['KEY_LCONTROL'], 'isRepeat': False, 'mods': 2} Из-за этого эффекта отжатие модификаторов не проходит по условию. Поэтому установка клавиш-модификаторов на режим зажатия может отрабатываться некорректно. Сочетания, заканчивающиеся не на модификатор, отрабатываются корректно. Это по сути баг (или фича, хз) движка. Постараюсь решить эту проблему в ближайшее время. Городить старый костыль нехорошо (появляются другие ошибки), но и в таком варианте тоже не очень. Дыру нужно залатать грамотно. Upd. Написал заплатку.
  11. Много раз хотелось выделить кусок кода в файле, и через правую мыши выполнить только его через "selected in.../exec". Облом однако( При отладке самое то для управления модом... несколько строчек с командами накидать заранее, выделять нужную и выполнять) А так приходится выделять, копировать в express script... Еще круче было бы на поле слева от строки команду "выполнить строку в ..." Временное решение этой проблемы: Создать копию WorldOfTanks.exe с другим именем. Для сэндбокса использовать ее.
  12. справа сверху от сообщения есть ссылка на него) Как раз его номер и является ссылкой... Скроллить не самая крутая идея. Если честно, я не совсем понял механику этого бага, но на всякий случай перекинул хук. Альфа 2 пока в работе. Подключение модулей к конфигу (добавление кастомизации), оптимизация алгоритмов. Ввиду значительной сложности мода проверка всего функционала при каждом обновлении займет очень много времени, поэтому тестируются только новые функции. Да. Мод несовметим с модификациями такого же типа. Это как два антивируса.
  13. Ограничение движка. Там в шапке написано. Игрок не знает ничего о вещах за пределами магического квадрата.
  14. Все параметры описаны в конфиге на русском. В чем проблема?
  15. Для арты центр квадрата отрисовки в точке, куда наведен прицел (арт режим) При переходе обратно в аркадный квадрат перемещается "под арту", поэтому наблюдаются некоторые лаги при переходе между режимами, когда светится много противников. Ибо при перемещении квадрата сервер передает туеву хучу информации об тех танках, которые "появляются" в квадрате отрисовки игрока. Направления стволов противников отключены в конфиге по умолчанию.
  16. Как минимум для арты мод показал направление. Противники, как я понял, отключены в конфиге. Указка добавлена к маркеру направления аркадной камеры... Который и используется модом. Миникарта локастана позволяет иметь только одну такую указку. Вот и объяснение чудностей. Миникарта локастана по ходу дела работает чисто на флеше, без подвязки скриптов. В плане быстродействия она скорее всего резче ХВМ, в котором все сделано скриптами, однако такой подход делает ее неудобной для адаптации мода. Для адаптации под нее мода скорее всего потребуется согласование с локастаном. По крайней мере я могу скинуть некоторую информацию, по связи скрипта с флешем со стороны питона. Возможно это поможет Вам выяснить у автора этой миникарты команды для отрисовки маркеров орудий. "Немного кода"
  17. Маркеры рисуются в пределах квадрата отрисовки. Часть карты за пределами квадрата отрисовки. Чтобы арта могла стрелять через всю карту, ей квадрат отрисовки смещается в точку прицеливания в арт режиме. Соответственно, она не может видеть маркеры рядом с собой, если смотрит в другой угол карты. Клиент не имеет никакой инфы о танках за пределами квадрата отрисовки. Маркеры на миникарте добавляются при помощи костылей от ВГ. Это уже обсуждалось в этой теме. Посмотри фпс в момент переключения. Посмотри в логи. У меня таких лагов ни разу не наблюдалось. С миникартой локастана я не играю. Поэтому непосредственно дебажить под нее не могу (это весьма длительный процесс). Я обеспечиваю работу мода в той конфигурации, с которой играю (ХВМ), плюс могу вынести какие-то калибровочные параметры в конфиг, на основе той отладочной информации (логов и скриншотов), которую вы сюда скидываете.
  18. Мод на питоне, поэтому первым делом лог питона. Если кто-то боится спалиться с читами, то можно не целиком, там нужно только блоки, содержащие сокращенное название мода (MGMMX). Трейсбэки нужно постить полностью (это блок перечисления файл, строка, метод, и в конце ошибка, начинается блок со слова Traceback). Если нет четкого понимания, что нужно выбирать, лучше запостить полностью. Скриншоты для понимания бага тоже не помешают. Логи ХВМ лишними тоже не будут, если там есть какие-либо ошибки по миникарте. Реплеи здесь смысла не имеют, информация на миникарте генерится автоматически по боевой ситуации. Возможно, в данной ситуации поможет "ремаппинг слоев", но для этого нужна подробная карта слоев ХВМ (какие zIndex заняты и чем, а какие свободны). Соответственно, располагаем необходимые 50 (примерно, столько выделено под технику) слоев в свободном диапазоне.
  19. В очередной раз повторюсь, но К описанию подобных багов необходимо прикладывать скриншоты и лог питона. З.Ы. Некоторые баги я конечно могу понять без логов и скринов (некорректная логика работы, неучтенное условие, и т.д., оно просто понятно в каком модуле возникает), но на ошибки в графическом интерфейсе, и другие "общие" ошибки необходимы логи и скрины. Потому что непонятно, откуда такая ошибка берется. Может вообще не из мода. К тому же в альфу было МНОГО чего добавлено, во второй альфе тоже норм будет, и "искать иголку в стогу сена" у меня просто нет времени. Upd. Неоднократно замечал такую вещь: как только речь заходит о скринах и логах, половина-треть тех, кто пишет, что мод у них не работает, затихают. Странно однако, ничего особо сложного вроде в этом нет... Нажать при баге принт-скрин и прикрепить к посту скрин и файлик-лог.
  20. Боевые чаты переведены в новый формат.Теперь команды в чат приходят сюда #Embedded file name: scripts/client/Avatar.py def messenger_onActionByServer_chat2(self, actionID, reqID, args):А уходят отсюда BigWorld.player().base.messenger_onActionByClient_chat2(actionID, reqID, args or messageArgs())И обрабатываются сервером.Раньше они просто шли в чат со спец. параметрами, как обычные сообщения. Поэтому все было пучком. А сейчас этим рулит сервер, и кому отправлять команды тоже решает он. Обычные сообщения идут почти как раньше, только через чат 2 Видимо разрабы, как обещали, потихоньку реализуют чат 2.0 Вполне нормально работает (проверял только для взвода) from messenger import MessengerEntry from messenger.ext.channel_num_gen import getClientID4Prebattle, getClientID4BattleChannel from constants import PREBATTLE_TYPE from messenger.m_constants import BATTLE_CHANNEL squadCC = MessengerEntry.g_instance.gui.channelsCtrl.getController(getClientID4Prebattle(PREBATTLE_TYPE.SQUAD)) teamCC = MessengerEntry.g_instance.gui.channelsCtrl.getController(getClientID4BattleChannel(BATTLE_CHANNEL.TEAM.name)) commonCC = MessengerEntry.g_instance.gui.channelsCtrl.getController(getClientID4BattleChannel(BATTLE_CHANNEL.COMMON.name)) Получаются контроллеры чатовДальше эпичная конструкция controller.sendMessage('Типа сообщение.') Есть еще PREBATTLE_TYPE.EVENT_SQUAD это видимо для гонок, футбола и т.п. В общем, кому надо тот сам дальше раскопает...Но такое работает только для обычных сообщений. Проанализировав вышесказанное, подытожу: Реализовать мод взводных команд в одностороннем порядке, как раньше, не получится. Мод будет работать нормально (видеть нормальный текст и анимацию, миникарту... вместо замаршалленного объекта) будут только те, у кого тоже установлен мод. А реализовывать мод в таком виде не особо эффективно, поскольку с теми, с кем можно договориться об установке такого мода, можно нормально договориться о тактике через голосовой чат.
  21. Я не могу воспроизвести / понять баг, на который нет подробного описания, не говоря уже о логах. Ныть все умеют, а нормально объяснить в чем проблема - единицы. Что значит Где скрины? Какая версия XVM? Где лог питона? Там же ясно написано в спойлере про баг-репорт, что нужно делать!
  22. Кажется понял прикол... захват по хукам два раза проходит, когда цель в прямой видимости. Исправлю. Спасибо. Upd. if CommandMapping.g_instance.isFired(CommandMapping.CMD_CM_LOCK_TARGET, key) and isDown: if _config_['commonAS']['enableXRayLockForAutoAim'] and BigWorld.target() is None: BigWorld.player().autoAim(XRayTargetScanner.getTarget())Странно, я этот момент сразу учел... "BigWorld.target() is None"... Upd 2. Там вызов BigWorld.player().autoAim() два раза проходит, один раз от игры, один раз от мода... вызов от игры должен проходить раньше, но видимо что-то у тебя идет не так... Надо будет перекинуть точку хука непосредственно на метод BigWorld.player().autoAim(), все равно он вызывается каждый раз при нажатии на ПКМ в снайперском и аркадном режиме. Upd 3. При повторном захвате уже захваченной цели происходит сброс. Upd 4. Поправил. Как освобожусь, добавлю еще одну мелкую функцию и выложу новую альфу.
  23. Экспериментально проверь. Если будет работать, то тебе повезло. Маппинг слоев у locastan"а мне неизвестен. Будет маппинг - подумаем про адаптацию.Вот стандартный маппинг WG /** * icons Z indexes from Minimap.pyc: * _BACK_ICONS_RANGE = (25, 49) * _DEAD_VEHICLE_RANGE = (50, 99) * _VEHICLE_RANGE = (101, 150) * _FIXED_INDEXES = {'cameraNormal': 100, * 'self': 151, * 'cameraStrategic': 152, * 'cell': 153, * 'cameraVideo': 160} */У меня под маркеры заюзано MinimapZIndexManager._GUN_RANGE = (161, 210)
  24. При запуске дочернего процесса получаем хендл. По нему можно определить статус процесса и очень много другой инфы. Ситуацию с двумя клиентами это не решает. Вероятность коллизии 50%. Было бы неплохо, если можно было выставить не только количество пробелов в качестве табуляции, но и использовать \t... И функцию "Перечитать файл с диска", желательно чтобы прога сама обнаруживала изменения в файле, как NPP например. Чтобы можно было использовать сторонние редакторы при отладке.
  25. Вслепую никак( Нужна информация) Ну да. XVM редактирует флэш. И что там они редактируют, знают только они... ну не совсем. Есть исходники в инете, только мне лень в них копаться, да и заняться есть чем)
×
×
  • Create New...