Jump to content
Korean Random

StranikS_Scan

Premium Member
  • Posts

    7,774
  • Joined

  • Last visited

  • Days Won

    237

Everything posted by StranikS_Scan

  1. Вы когда кнопку "В буй!" нажимаете, то попадаете в очередь на игру. Если она длинная, то сидите и ждете, когда вас в бой кинет. При этом можно эту же кнопку нажать и выйти из очереди в ангар. Так вот мод, когда вы жмете кнопку, автоматически жмет отмету и опять жмет кнопку в бой. Получается что вы как бы встали в очередь - вышли из очереди - и опять встали в очередь. Зачем это нужно? Это для игроков с фольгой на голове, создает иллюзию, что таким образом они обманули сервер, который "хотел" их кинуть в плохую команду. А еще игроки из другой категории - те которые видят невидимое, говорят, что так их быстрее в бой сервер кинет. Как-то так.
  2. Я перепутал с подпапкой с номером. Отсутствие лицензии не разрешает, но и не запрещает. Если ты не собираешься менять правовой статус, то беспокоится тебе не о чем, т.к. автор, хоть и не обозначил свою позицию, однако выложил он в общественный доступ (код на гитхабе виден без регистрации и гуглится). Тем самым он уже вступил в правовые отношения с интернет общественностью. Да, автор может в любой момент изменить статус или обратится к тебе с требованием, убрать например из проекта. Но в этом ничего страшного нет. А учитывая, что репо висит три года, то вероятность что автор проснется близка к 0. У меня вопрос, зачем ты создал тему для обсуждения и вопросы написал, если не собираешься слушать советов более опытных людей? Писать надо сейчас в саппорт, а не когда проделаешь кучу работы.
  3. Вообще ни разу, ни каких привилегий он не просит, читает и пишет в память стандартными апи-функциями винды, которым сто лет в обед. Код выложен в общий доступ на общественном хранилище. Лицензия не нужна, если ты не собираешься присваивать себе авторство или юзать в коммерческих продуктах. Автор кода когда его выкладывал на гитхабе соглашался с условиями его распространения через гитхаб. Гитхабовцы уже за нас позабитились об этом. Так что отсутствие лицензии в данном случае - это не проблема. Вот если бы она была и там было написано про ограничения - вот тогда да. Два нюанса, первый - ВГ не шибко радуется таким манипуляциям в их клиенте игры, если собираешься этот мод позиционировать как "разрешенный ВГ", то тебе стоит в саппорте спросить об этом. Второе - если класть туда, то качаться будет каждый микропатч и каждый раз как юзвер снесет моды. Однако хотелось бы чтоб наоборот - качнулось один раз и пусть себе лежит на компе до очередной переустановки винды. Отсюда лучше скачать в c:\Users\.....\AppData\Roaming\Wargaming.net\WorldOfTanks\ и дальше твоя подпапка. Путь туда можно получить через BigWorld.wg_xxx и там есть атрибут нужный, не помню как называется.
  4. И вот опять Черный Плащ спешит на помощь - https://github.com/dph119/PyDDS. Cможешь разобраться как пользоваться? Там примеры есть png -> dds и обратно. Не знаю какой там у кого опыт, однако.... ты как собирался юзать exe? Наверно положить в wotmod, затем при запуске игры его извлечь в какую папочку и запустить? Это увы типичное поведение, на которое сегодня агрятся многое дешевые антивирусы, когда одна программа достает из-за пазухи exe и его запускает. Далеко тут ходить не нужно. Где-то лет 5 назад в Орионе был вариант протектора pyc файлов с инжектором. Работал он по описанной выше схеме - инжектор был exe и прятался внутри pyc. Закончилось это начинание быстро - через полгода все антивирусы с вирусостотала начали блочить и Орион и инжектор. Даже Mr13 тогда обнаружил, что из-за выложенного в теме Ориона форум попал в лист опасных сайтов. Такие вот дела с этими exe. PS: Еще одна подсказка, потом поймешь зачем нужна - png.py
  5. Тебе очередной Подвальный оппозиционер личинку в уху отложил? А то ты тут так и сыпешь опарышами всякими.
  6. Чего там читать-то. Примеры см. в коде клиента игры. А свойства увидеть и опробовать можно через Орион.
  7. Надеюсь всех, кто учинял погромы, найдут и посадят. Расплодилось бездельников, работать не хотят, хотят только деньги получать.
  8. Нэээ. Должно быть что-то типа такого: import AtlasManager AtlasManager.addTexture(arg1=str, arg2=str, ...) AtlasManager.addTextures(arg=[{arg1: str, arg2: str, ...}, ...]) AtlasManager.Textures -> property Что касается аргументов, то ни каких названий wotmod-файлов. Эти названия не статичны, т.к. содержат версию в имени и внутри самого себя моду совершенно не нужно знать в каком он там wotmod-файле. Нужно оперировать внутренними путями в пайтоне, он видит смонтированную ФС, где все внутренности всех wotmod-файлов объединены в виртуальные каталоги. Доступ к виртуальной ФС идет через ResMgr. Ниже коленочный пример, как это всё может выглядеть #Пусть есть пакет с такой картинкой #VasyIconMod_1.0.0001.wotmod\res\MyTex\Black\battleLoadingFormBgTable.png #Регистрация картинки import AtlasManager AtlasManager.addTexture(textureName='battleLoadingFormBgTable', #Это имя иконки в файле battleAtlas.xml textureFile='MyTex/Black/battleLoadingFormBgTable.png', #Это относительный пукт к картинке в виртуальной ФС replaceOnMatch=True) #Чтение картинки из виртуальной ФС import ResMgr dataSection = ResMgr.openSection('MyTex/Black/battleLoadingFormBgTable.png') bFile = dataSection.asBinary #\x01\x01\x03\x01\x0e\x01\x0.... #Чтение атласа из виртуальной ФС (приоритет поиска источника тут такой: сначала res_mods\, затем mods\ и только после этого res\, так что можно прочитать и не оригинал) dataSection = ResMgr.openSection('gui/flash/atlases/battleAtlas.xml') for item in dataSection.items(): #<SubTexture> name = item[1]['name'].asString #<name> battleLoadingFormBgTable </name> x = item[1]['x'].asInt #<x> 0 </x> ... dataSection = ResMgr.openSection('gui/flash/atlases/battleAtlas.dds') bFile = dataSection.asBinary #\x01\x01\x03\x01\x0e\x01\x0.... #Чтение атласа из res\ напрямую import os import ResMgr from zipfile import ZipFile def getPkgFile(pkgNamePart, fileNamePart): def getPkgNames(namePart): pkgNames = [] pathsXML = ResMgr.openSection('../paths.xml') for path in pathsXML['Paths/Packages'].values(): name = path.asString if namePart in name: pkgNames.append(os.path.basename(name)) return pkgNames pathRes = ResMgr.resolveToAbsolutePath('') pathRes = os.path.dirname(os.path.dirname(pathRes)) + '/res/packages/' for pkgName in getPkgNames(pkgNamePart): with ZipFile(pathRes + pkgName, 'r') as z: for name in z.namelist(): if fileNamePart in name: with z.open(name) as f: return f.read() xmlFile = getPkgFile('/gui-', 'flash/atlases/battleAtlas.xml') #<root> <SubTexture> <name> battleLoadingFormBgTable.... bFile = getPkgFile('/gui-', 'flash/atlases/battleAtlas.dds') #\x01\x01\x03\x01\x0e\x01\x0.... Как-то так надо.
  9. Обычно да. О не просто заблокирован, к нему идёт нативный доступ. Попытки влезть туда извне в винде будут приводить к крашам игры. А чего не устраивает перезапуск клиента игры командой в пайтоне?
  10. Если под свободой понимается анархия, то тогда да, картопельный дядька - сущий диктатор.
  11. В интернете так много безработных дурачков, которые диагнозы раздают.
  12. Это уже ответ на вопрос. Грузится нативно, еще до пайтона. Всё. Значит только через перезапуск клиента игры.
  13. У меня нет ни каких дел с дурачками, я даже близко к таким как ты не подхожу чтоб рядом с дурачком как-то выглядеть.
  14. Быть в теме влажных историй всяких дурачков - не мой способ времяпрепровождения.
  15. Историю про то какой ты дурачок, она кстати уже полным ходом идёт. Преамбула прошла, сейчас идет развитие событий. Давай продолжай.
  16. Обойдешь и этим. А что за форум и почему там кто-то дежурит? Расскажи свою влажную историю.
  17. А эта DDS когда и как грузится клиентом? Делается перезапуск клиента игра. Что в сумме придает еще больше геморроя при реализации всего этого.
  18. Очередное интернет-чудо всегда готовое что-то рассказать другим о них.
  19. Там косяк вроде есть, если в самом Орионе выбрать попку для распавки xml. А вот если через контекстное меню мыши на попке (вызов через ком.строку будет) то - без косяков.
×
×
  • Create New...