Jump to content
Korean Random

GPCracker

User
  • Posts

    2,827
  • Joined

  • Last visited

  • Days Won

    62

Everything posted by GPCracker

  1. +1 Насчет автоперевода... Есть гугл транслейт. Автоперевод будет только мешать грамотным игрокам, знающим английский, читать текст, т.к. он нервно курит в сторонке как только начинаются термины или даже неполные предложения и сложные определения. Насчет написать на двух языках - это да, однозначно правильная движуха.
  2. В связи с этим необходимо, ИМХО, ввести отдельное поле для указания автора мода.
  3. А зачем донатить? Наверняка достаточно просто написать красивое письмо. Полагаю что такие немелкие компании уже давно обо всем договорились :) Другое дело какому-нибудь админу Васе мелкого модосайта - ему да, придется нехило заморочиться на тему SEO, чтобы в топы выйти...
  4. Само собой, я тоже об этом писал, что премодерация нужна разве что для впервые размещенных модов, а также модификаций, публикуемых сторонними пользователями (т.е. не автором мода). Премодерация всех обновлений не требуется по большому счету для авторских публикаций. Лишняя трата временных и человеческих ресурсов. Вероятность каких-то случайных моментов в этом плане практически ничтожна, сомневаюсь что авторы будут специально (умышленно) так делать, т.к. поймать банан для основного аккаунта не самая прикольная перспектива.
  5. Можно просто зайти в найтлики и скачать оттуда. И не парится со сборкой.
  6. Главное не забыть упаковать в *.wotmod :) Ха, а это мысль :) Залить загрузчик, а сам мод выкачивать с гитхаба по ходу пьесы :) Главное чтобы не получилось как всегда (т.е. получилось мягко говоря не очень, но все делают вид что сделали шедевр). Между делом, в законах государств почему-то подобных пунктов не добавляют, как ни крути. Неспроста наверное :) И на случай непредвиденных обстоятельств есть вполне адекватный вариант - проанализировать возможности игрока (или скоординированной группы игроков со спецсредствами аппаратной связи) по части влияния на геймплей и другие механики и написать таки конкретнее, не такая уж и сложная задача. А так данный пункт - просто отписка по-быстрому, делал это человек, не желавший вообще заморачиваться. А потом все удивляются (точнее многие даже не удивляются уже давно) - почему к WG такое отношение у игрового сообщества...
  7. 1. В чем суть и цели премодерации, что проверяется в общих чертах, и сколько это занимает по времени? 2. Не получится ли такого, что в день выхода патча (в игре) полетят массовые багфиксы и портал станет абсолютно бесполезным, поскольку многие моды будут залиты, но недоступны ("в состоянии активной премодерации")? 3. Многие моды достаточно сложные, и полную проверку работы функционала даже авторы не проводят перед релизом. В некоторых изменение файла конфигурации зачастую сильно изменяет эффект мода (тот же XVM к примеру). Некоторые моды вообще без конфига просто практически бесполезный скрипт (тот же Реплейсор Юры, скажем). Это тоже, так скажем "создает некоторые проблемы" при проверке. 4. Напрягает несколько говоря неопределенный последний пункт в правилах насчет запрещенных модов, поскольку в него вписывается АБСОЛЮТНО ЛЮБОЙ мод. Правила должны быть конкретными и однозначно трактоваться! Но об этом уже наверное не один раз говорили. 5. Иногда есть проблема, когда последний билд содержит ошибки, проявляющиеся в определенных режимах работы. Приходится откатывать. Архивной истории на сайте как-то не увидел, а она лишней бы явно не была. 6. Markdown, если еще не впилено. Превью страницы при редактировании описаний и т.д., если еще не впилено. З.Ы. Почему бы не сделать скачивание доступным сразу после загрузки для модов, уже проходивших модерацию ранее, а после проверки просто проставлять статус "проверено"? На текущий момент наиболее адекватным местом для выкладывания модов остаются аттачи на форумах/стабильные файлообменники с прямыми ссылками либо GitHub-релизы. Данные сайт с модами (релизы на нем) пока что лично для меня выглядит лишней тратой времени для мододела, и разве что каталогом для юзвера, где можно найти ссылку на официальную тему и скачать мод оттуда. "ResMods, дубль второй, обновленный дизайн, теперь от официальной картошки. Только у нас вы можете скачать зачастую устаревшие, но зато проверенные версии модов - все это и ничего другого на wgmods.net". По крайней мере пока только так, м.б. в будущем, надеюсь, что-то изменится в лучшую сторону.
  8. В принципе с этого поста начинается дискуссия, конкретно оффтоп начинается чуть позже. Но выносить часть обсуждения будет не совсем корректным, так что согласен, лучше начиная с этого поста. Название вполне логичным было бы "Встроенный браузер - доступ к ресурсам веб-страниц внутри пакета."
  9. Если честно, я давно не удивляюсь, что у картофана то тот стандартный питоновкий модуль не фурычит, то этот. Это же картошка! Смысл был в том, что "поток" без помех в виде GIL и магии картофана на питоне можно запустить, сделав его отдельным процессом. Правда, по всей видимости придется брать для этого свой питон :( В рамках реализации описанного большую часть вообще можно (и выгоднее всего, с точки зрения производительности) реализовать отдельным процессом. Тоже давно уже обращал внимание на эти декораторы. Как раз таки в основном на различном IO висят. Смысл вопроса, если я правильно понял @CrazySys, был не в том, как создать поток, а как ускорить процесс его выполнения. Ибо 30-40 сек и 500мс это как-бы заметная разница.
  10. В ангаре в потоках вертится куда больше всякой шляпы, чем в бою. Поэтому и выполняется медленнее.Для питона - вполне возможно. Дело в том, что питон так устроен, что одновременно может выполняться только один поток. В реале потоки питона не параллельны, а поочередно частями выполняются. Есть такая штука как GIL (Global Interpreter Lock). Загугли. P.S. Таки подкину немного инфы, раз, два. Еще советую почитать про разницу между модулями threading и multiprocessing, м.б. это тоже как-то тебе поможет. Так что вполне возможно что клиент чаще выдает GIL на более критичные потоки. К примеру, выставляя критичным потокам выполнение 100 инструкций перед освобождением GIL, а некритичным 50 или типа того. C часть клиента, если она адекватно написана, данная проблема затрагивать не должна, поскольку во всех С функциях, которые не затрагивают питон, но выполняются достаточно небыстро, прописано, что в процессе их выполнения GIL освобождается, и питон может выполнять другие потоки, пока выполняется С код, и снова запрашивается, когда С код будет выполнен, для продолжения выполнения питоновского кода. Бл***ь, я в курсе, что колобки выполняются по тикам и доки я читать тоже умею. Registers a callback function to be called after a certain time, but not before the next tick. The callback is executed once and is not automatically repeated, so reset the callback again if regular updates are needed. If multiple callbacks are due to be executed within a single frame, the chronological order in which they were added is maintained. Смысл в другом! У тебя идет выполнение некоторой последовательности инструкций. Тебе нужно запустить какую-то функцию, и не ждать ее выполнения, а продолжать выполнять свои задачи. С этой точки зрения колобок можно рассматривать как поток, и хотя реальным потоком он не является, это мало кого е***, поскольку в большинстве случаев задача стоит избежать т.н. "блокировки". И в нехилой части случаев, запуск колобка происходит не из колобка, а например из какого-то ивента игры, и зачастую этот ивент и колобки выполняются игрой в разных потоках.
  11. Для этих целей лучше использовать раздел помощи. Возможно, ответы будут еще кому-то интересны. Но это единственный способ не ждать окончания выполнения команды, или запустить процесс что-то в отдельном потоке, если идет работа с движком игры. Потому как далеко не все нормально работает в потоках threading. Одно время ловились краши при попытке создать в потоке модельку например. С чисто питоновскими вещами проблем быть не должно.
  12. Если уж на то пошло, то os.path.expandvars('$APPDATA/Wargaming.net/WorldOfTanks/WoTLogger.ru') threading не совсем корректно временами работает с некоторыми C модулями игры, некоторые вызовы функций BigWorld или GUI могут крашиться внутри потока. Если нужно что-то такое запараллелить - используй колобок (BigWorld.callback()).
  13. Не угадал. Проверка займет доли секунды. Это питон, если есть мозги - можно написать быстро и красиво в несколько строчек кода всего.Там всего-то надо сделать walk по каталогу, сформировать список файлов, найти недостающие просто вычитанием сетов, и скопировать их из пакета. Все. То, что юзвер почистил временную папку - ну грузиться первый раз после этого будет чуть дольше из-за копирования файлов и все. А вообще для этого существует специальный формат упакованных веб-страниц (mhtml). Не уверен правда, получится ли их открыть во внутриигровом браузере, но в обычных работает. prefsFilePath = unicode(BigWorld.wg_getPreferencesFilePath(), 'utf-8', errors='ignore') cacheDir = os.path.join(os.path.dirname(prefsFilePath), 'dossier_cache')Это пример из скриптов картохи. Думаю, проанализировав все это дело, можно без проблем разобраться как создать там себе папочку для личных нужд.
  14. @CrazySys, все необходимые файлы находятся внутри пакета. Если функционал не может работать с VFS, или получать на вход поток двоичных данных из питона, то файл копируется из VFS во временный каталог пользователя ОС (%temp%) и используется оттуда.
  15. Проблема понятна. Но решение здесь не так просто придумать. Тут возникает такая проблема, что если блокировка будет ориентироваться на данные о цели, то она по сути бессмысленна, т.к. при любом наведении рядом с целью срабатывает захват и блокировка отключается. Подумаю над возможными путями реализации, тут вопрос в алгоритмах, а не в коде.
  16. Ну-ну, и что же они будут делать? Ну думаю очевидно, что либо сосать лапу (или еще что), либо отправятся в пеший эротический тур по бесплатной и безлимитной путевке, которую им наиболее вероятно кто-то очень по-дружески подгонит в ближайшем времени. З.Ы. Под "нормальными" людьми понимаю подразумеваются такие товарищи как ты? З.Ы.Ы. Любые адекватные люди, которых тут немало, прекрасно понимают, что им тут никто ничем не обязан, поскольку деньги они не платили и договор не заключали. Тут большинство работает на общественных началах, а посему путевки выписываются куда более оперативно, и, самое главное, абсолютно бесплатно и всем кто их явно выпрашивает.
  17. Так сам возьми и запили, или типа слабо? Тут тебе как-бы не бригада таджиков без регистрации, тут сидят правильные люди, которые могут послать, и будут правы.
  18. Я не буду пока спешить с какими-либо действиями по этому поводу, причин несколько. 1. Оно еще даже для картохи нихрена не стейбл. Там на форуме наверняка неслабая буря **вна, и картофан наверняка в ближайшее время будет делать патч. 2. Если честно, еще не до конца продумал функциональную схему данного режима, поскольку в предыдущей реализации были некоторые дыры. 3. Из некоторого общения на форуме с автором BA и анализа некоторых идей есть соображения на тему улучшения части алгоритмов. 4. Текущая реализация от картофана УГ не только внешне, но и внутренне, со скриптами там творится просто конкретный ад, писалось все явно через *опу. А подлезать нужно именно туда. 5. Дополнение к пункту 4. Реализация чего-то нормального поверх УГ технически затруднена необходимостью впиливания кучи костылей, которые при любом удобном случае отвалятся. Потребуется небольшой патч, хотя в принципе можно через отладчик сделать. P.S. Режим траектории от картофеля просто WIN! берешь управление камерой на паузе реплея... Камера на месте, прицел (прицельная сетка) перемещается по экрану. Давненько я такой лажи не видел. P.S.S. К сожалению, через отладчик не вариант, ибо нужно дописывать код обновления данных для этого режима прицеливания.
  19. По какой причине срабатывает блокировка выстрела? Она пишется в квадратных скобках в тексте над прицелом.
  20. Прикол в том, что многие клавиши слева зарезервированы под управление в самой игре... А проверки на модификаторы есть далеко не везде. Насчет в клиенте использование альта как модификатора не знаю, вроде на нее только маркеры в альт. режим переводятся, а вот моды потому и используют, что коллизии минимальны. В том-то и проблема, чтобы исключить обработку в тех случаях, когда хоткей может наложиться на управление танком к примеру, или отправку какой-то команды по хоткею, а также в тех случаях, когда команду обработать попросту невозможно. Подумаю над логикой зависимостей, поанализирую код, возможно есть какой-то способ решить проблему без лишних костылей. У картофана код уж очень мутный по этой части, разобраться в зависимостях не так уж и просто. Описаний к коду, картошка к сожалению, практически не оставляет.
  21. А зачем писать, если все уже давно написано? :) Или под понятием написать имеется ввиду закопипастить из WG-Wiki?
  22. Открепление курсора как раз таки и означает, что AIH (AvatarInputHandler, обработчик ввода пользователя) не должен обрабатывать нажатия, поскольку они предназначены не ему, а какому-то графическому функционалу, открепление срабатывает при нажатии Ctrl или активации ввода в чат. Т.е. чат и другие элементы экранного интерфейса получают фокус, а AIH его теряет, это как с окнами в винде, к примеру, какое окно в фокусе, в то и работает ввод с клавиатуры. Существует еще такое понятие, как глобальные хоткеи. Которые обрабатываются вне зависимости от фокуса, пример Ctrl+Alt+Del. Любой глобальный хоткей должен быть таким, чтобы никакой другой элемент его не использовал. Как правило, это две клавиши-модификатора как минимум. Поскольку ограничений на хоткеи в плане прямого определения что можно прописать, а что нет, ввести достаточно проблематично, определять хоткеи для работы функционала глобально некорректно, поскольку это может вызывать коллизии с локальным функционалом. Т.е. без ограничений на сочетания возможны серьезные коллизии, поскольку далеко не все понимают, что и как работает внутри. Это первая причина, по которой была введена проверка на открепление курсора, т.е. потерю фокуса, точнее был исправлен баг. Вторая, чисто логический вывод - при откреплении курсора игрок теряет управление танком с клавиатуры (часть управления реализована через аватар, поэтому при простом откреплении курсора часть управления, например движение, еще работает, а вот управление прицеливанием уже нет), и управляет графическим интерфейсом, поэтому и обозначать хоткеи в этом состоянии некорректно, поскольку хоткеи относятся к функционалу игры, а не графики. И не факт, что работать оно в таком виде будет корректно. В общем, долго объяснять, да и сам еще в некоторых моментах не до конца разобрался, но при вызове в состоянии открепленного курсора часть функционала AIH будет работать некорректно, тем самым приводя к багу. Если очень сильно упростить, то проблема не в том, что Ctrl плохая клавиша и ее не стоит использовать, а в том, что в игре на нее стоит бинд открепления курсора. Работа некоторых биндов мода в состоянии открепленного курсора может выдавать баги. Лично я не вижу в этом особой проблемы, поскольку кроме Ctrl и Shift (на него стоит бинд смены режима прицеливания) есть еще Alt и просто клавиши без модификаторов. Не думаю, что прямо настолько много модов, для которых используются бинды в настолько больших количествах, чтобы не хватало раскладки. Upd. Пересмотрел еще раз последовательность отработки хоткеев игрой, довольно таки непростая последовательность. По идее, при активном чате до AIH долетать ничего не должно, но проблему с багом некоторых хоткеев при открепленном курсоре это не решает. Вообще там нужно часть хоткеев вешать хуком на AIH (то что чувствительно к откреплению), часть на аватар (вещи типа переключения состояния, не использующие AIH при активации/деактивации и никак не связанные с ним), к первому довольно сложно прицепиться, до второго ивент в неизменном виде не доходит, что также создает некоторые проблемы. Возможно, получится найти адекватный способ вернуть Ctrl для некоторых элементов. Хотя их не так уж и много. И еще решить вопрос с наложением хоткеев на игровые, некоторые функции это допускают, некоторые нет. Из текущего списка по основе и плагинам, по части зависимости от открепления курсора. - дальномер в ручном режиме (баг, запрос текущей точки прицеливания) - дальномер в автомате, переключатель (связан, относится к системе прицеливания) - сканер целей, переключатель (связан, относится к системе прицеливания) - снайперский режим на артиллерии (баг, вызов команды переключения режима прицеливания) - SafeShot (связан, использует данные о текущей цели для прицела и маркера орудия) Вообще, если делать по-нормальному, там не все так просто, как хотелось бы. Кстати, часть биндов у картохи внутренние, и поменять их нельзя, не говоря уже о бинде двух функций на одну кнопку. Можно конечно попытаться сделать это скриптами, но в таком случае баги обеспечены. Неспроста это, однако :)
  23. Тому что все это дело могло срабатывать вместе с чатом и другими подобными вещами. И при откреплении курсора происходят некоторые вещи, которые ... в общем, на теме хоткеев с контролом при попадании его на чувствительные к откреплению курсора функции возможны баги в связи с невозможностью правильного выполнения команды в таком состоянии. Плюс есть проблема с простыми хоткеями при наборе в чате и т.д. Проблема не в самом контроле, а в откреплении курсора при его зажатии. По сути просто дописал пропущенный ранее код, поскольку AIH не обрабатывает хоткеи если он не запущен или откреплен курсор. По крайней мере это решило вопрос с багом, когда хоткеи работали на экране загрузки боя... но выполнить в этот момент функции AIH попросту невозможно. В результате веселый выхлоп в логах как минимум.
  24. Работает только на компах, на мобильниках просто пишешь [b][member="The User Name"][/b]
×
×
  • Create New...