Jump to content
Korean Random

GPCracker

User
  • Posts

    2,827
  • Joined

  • Last visited

  • Days Won

    61

Everything posted by GPCracker

  1. +1 Как минимум наличие класса документа снимает необходимость перемещать DAAPI на другие объекты.
  2. Нехорошо это. Лежал себе никого не трогал, а теперь взяли и выпилили... +100500 DAAPI и ExternalInterface могут не справиться с такой частоты запросов... Зачастую хватает и циферок в принципе... Не стоит забывать про вызовы DAAPI или ExternalInterface для передачи данных из Python в ActionScript. Данные из AS берутся редко, чаще всего они считаются питоном. Насколько мне известно, GUI обновляется с интервалом всего 0,03 сек (ЕМНИП), это где-то 30 к/с. Но там в основном числа передаются. Насколько быстро будет идти сериализация/десериализация строк при передаче, не тестил. А что за multithreading.dummy заместо контейнеров BW? Хммм... А что мешает добавить в трансмиттер декодер? Передать ему параметром кодировку локали редактора и выполнять вместо exec script exec script.decode('<locale>')? Ну бинарный режим и Marshaled Code Object не предлагаю, ибо у тебя нет питоновской стороны в редакторе, и пилить ее ты вряд ли будешь... З.Ы. Попробую, отпишусь))
  3. Т.е. получается, что если строку из редактора переправить в питон, и там выполнить что-то типа str.decode('<locale>').encode('utf-8') получится нормальная строка на юникоде?
  4. Так вроде же можно русские буквы вводить... А что на выхлопе при получении текста из окна редактора получается, если русский заюзать?
  5. В первую очередь, это основа для моих модов, которую я просто выложил с простейшим описанием в паблик, попутно запилив себе резервную копию. И в первую очередь, она упрощает жизнь мне. А примеров и так достаточно, скрипты картохи декомпильнуть если))) Я не вижу особых причин разводить здесь очередной срач, как ты любишь, и выложил это исключительно в ознакомительных целях. А насчет обнов - там так и написано - можете подождать, можете пропатчить сами. З.Ы. Подобный репозиторий есть на BitBucket, на текущую версию, только он в привате висит. Из плюсов BitBucket для меня это приватные репозитории и авторизация, на гите более удобный интерфейс и есть т.н. релизы, т.е. возможность размещения готовых сборок. З.Ы.Ы. Сейчас вместо работы над модами или еще чего полезного сижу пишу посты...) Хотя поработать нормально вряд ли получится, ибо сегодня ну абсолютно не рабочий день. Посижу еще немного и пойду шашлычки жарить.
  6. В том-то все и дело... Но с другой стороны, если есть конфиг, то почему бы не вынести локализацию туда...? А поддержку UTF-8 в окне редактирования / быстрого выполнения можно реализовать... Или уже есть? А то по старинке все через сериализацию или другие левые форматы типа HEX гоняю... Хотя если честно, я русским редко пользуюсь, по причине того что не работаю с GUI особо... Хотя многим это понравится))
  7. Есть там смысл. Либо замутные пути к нужным объектам, которые в контексте юзать не очень удобно и не вспомнишь сходу, либо какие-то дополнительные проверки, либо ссылочно-конструкторно-деструкторный контроль, говоря по простому, алгоритм автоматической уборки мусора. Потому как работать с большим объектом и держать в голове что тебе нужно перед удалением объекта ручками почистить какие-то вещи, при этом работая на другом уровне и думая об абсолютно других вещах... я не любитель. По мне так все должно работать так, чтоб оно работало само, без пинков и как надо, как знаменитый АК. А местами с виду не особо нужный код приводит формат данных к более удобному виду и заменяет 10 строк кода одной, позволяя закинуть данные пачкой. Если там чего-то есть, значит в этом есть смысл, а сходу его и я не всегда могу поймать. Тем более что писал уже относительно давно. Ну к примеру, тот же класс Callback позволяет вместо выполнения руками проверки, зачистки, контроля ссылок на объекты в 5-10 строк в каждом месте делать это в одном и в упрощенном режиме типа. s = Callback(..., Callback.getMethodProxy(...), ...) дешево и сердито. Только вот под этим простым кодом идет отмена предыдущего колобка, получение слабой ссылки на метод и установка нового колобка. И в том же духе. И оно очень серьезно уменьшает количество кода в некоторых случаях. Опять же, помогает избегать дублирования кода и получасового поиска по старым модам в стиле "б***, как я это раньше пилил, полюбас где-то должно быть...".
  8. Компилятор при компиляции переводит имена __checkLive в _имякласса__checkLive. Поскольку в getattr используется строковая константа, она не патчится компилятором. Отсюда и ошибка. Нужно либо это в обфускаторе править, либо игнорить такие методы. Походу первый вариант не прокатит. Просто не нужно пихать локализацию в скрипт, если ты собираешься его компилировать. Это в корне неправильно. Для этого есть А. ResMgr и WideString (кодировка файла UTF-8 w/o BOM) Б. Файлы mo и gettext
  9. Хрен вам, а не хп на миникарте. x16 пропускает половину эвентов как минимум. Иногда вылетает даже на такой скорости. Больше x8 ничего тестить нормально нельзя. Может просто картоха не отдает необходимые данные. Оптимизация у них из всех щелей, но не там где надо.
  10. Потому что это запрос боевого интерфейса, а точнее его питоновской части. Запусти реплей, поставь на паузу и тести с отладчика, например с того же Ориона. В ангаре понятное дело ты и будешь получать None. Я не использую никакой способ, я просто разобрался в свое время во всей этой шляпе и запилил гайдец. Там в комментариях написано что, где и как лучше юзать. Там комментов в несколько раз больше чем кода. Читай, поймешь что и зачем. Работа флешки не зависит от способа ее загрузки. Боевой интерфейс предпочтительно грузить как UI, корневые флешки больше подходят для кросс-интерфеса (ангар+боевой), к примеру что-то типа мессенджера или чего-то в этом роде. В комментах там все это прописано. Что, где, зачем и как, что и почему от какого класса наследуется и т.д. Ангарный интерфейс можно собрать унаследовав нужные классы, если тебе не нужно окно, можно просто заюзать не window класс, а корневой UI, что-то типа daapiModule или чего-то в этом духе. Копайте код уже самостоятельно, базу я вам скинул. Хотя может потом еще чего интересного кину. Времени пока немного, но есть кое-какие мысли по части использования AS3 вместо AS2 в боевом интерфейсе, надо будет проверить что и как. Найду чего интересного - скину.
  11. Ну вобщем-то да. Это основа для AAS. Библиотека для выполнения вызовов к различным элементам и методам игры. Поверх нее строится половина модулей, например захват цели BB считается с помощью модуля Geometry этой либы. Артоснайперский режим еще использует VehicleMath. По сути это переработанная местами либа, используемая в наст. время в AAS. Конфиг тоже читается этой либой, модуль, несложно догадаться, ConfigReader. И не только в AAS она используется. А это и не надо качать. Это репозиторий. Для тех кто хоть немного понимает в коде и имеет интерес к процессу разработки. Мода как такового там нет.
  12. Не ну можно хитрый лоадер из архива запилить, но установщик загнется собирать оный. И работать будет, по крайней мере стартовать, мягко говоря небыстро.
  13. По поводу ботов (а это ничем другим быть не может) обращаться сюда почти бесполезно, тут ботов не жалуют. И харе уже игру портить в рандоме видите ли ботов мало, теперь в командные хотят засунуть. Банить за такое надо и перманентом.
  14. Так вроде ночную оборону закрыли... И зачем такой скрипт - чтобы ботов в укрепы посылать? В рандоме их видите ли мало стало...
  15. 1. Отключить ненужные сообщения можно забив пустые строки в нужные эвенты в xml в папке gui. Там два файлика, notifications и sounds в одном из них по-любому. Найдёшь сам, судя по посту, соображаешь. Если в папке с модами их нет, разбери исходники из архивов в res, софта навалом. 2. Отрезать кусок от звука можно только переборкой FMOD проекта либо очень сложной Калибровской скриптов. Первое проще и без костылей. Если получится пересобрать без ручного обрезания куска звука (установить старт и финиш в проекте) считай тебе повезло. Нужен FMOD определённой версии, по бесплатное, качается с офсайта. Инструкция на форуме есть, как пользоваться. 3.Тут придётся править скрипты. Без этого никак. 4. Поменять звуки в звуковых банках и пересобрать проект или просто собрать свой банк и перенаправить эвенты в xml. 5. Факт выстрела артиллерии можно спалить только когда она светится и находится в квадрате отрисовки. А такое крайне редко бывает. Но все кроме артаводов хотят такую фичу.
  16. В соседней темке про флеш в ангаре киданул по просьбе населения примеры на боевой флеш. Если интересно, можешь почитать. Предупреждают сразу - с отладкой за&$#÷©®.
  17. У него спросить.) В прямом смысле - взводный ставит мод, отправляющийся тебе инфу. По другому я не знаю, как отследить кто по кому стреляет. Можно посчитать урон совзводных суммарно, как xvm выделяет другим цветом, ищи коды, но только видимый для тебя. Точнее можно посчитать только на их стороне.
  18. Для тех, кому особо интересно... Немного переписанная основа для AAS и не только. Вообще пилилась под 0.9.9, но тут выкатили 9.10 с перекрученными классами app_loader... Фикс допилил, но м.б. чего и забыл. Потом в процессе адаптации AAS и остального допилю немного. В текущей версии это -X папка, куда скриптом сборки копируются файлы перед компиляцией. Это код, используемый не только AAS, но и другими модами. Хитрый трюк, чтобы не было нескольких копий одного и того же кода, ибо пофиксить в одном месте проще, чем в 5ти. Но куча коммитов "XModLib update." не есть хорошо. Концепция сборки мода пока в разработке, сборка будет идти примерно так же как и здесь, сразу билд-файлы (для тестирования) и релиз-архив. Англоговорящий товарищ просил сделать мод модульным (из соображений стабильности по отношению к деструктивности картохи), пока не могу сказать, насколько такое реализуемо без костылей и велосипедов. Разберусь с этим, буду потихоньку переносить код. На основную версию будут пока только хот-фиксы, если они будут нужны, и если картоха в новой обнове не перевернет все с ног на голову, что будет проще с нуля запилить, чем фиксить. Накатил себе Debian на внешний SSD, сижу с конвертера SATA-USB, подлагивает временами, видимо USB временами отваливаются, надо будет глянуть цепи питания на предмет дохлых конденсаторов, ибо ноут далеко не новый, инструментов только пока нет. Зато по крайней мере Git (система контроля версий, то, через что на GitHub и Bitbucket заливаются обновления кода) на Unix'ы встает без проблем, в отличие от венды, где все робит через урезанную версию MinGW (ЕМНИП) и эмуляцию bash... А нормально работать с большим проектом без этой штуки довольно сложно, ибо как минимум это крутой бекап, всегда можно откатиться на нужную версию. С танками правда танцы с бубном, но через Wine нормально стартуют, если немного пошаманить с префиксом и поставить нужные либы. FPS правда в районе 20, но это по причине работы через интегрированную в процессор видеокарту, ставить дрова (optimus) лень, ибо для поиграть есть винда, а для потестить на реплеях хватит. Кому интересно, ищите гайдец 15 года на офф. форуме.
  19. Запилил таки гайдец. Оформить тему вряд ли, ибо все на инглише и в комментариях к коду, но так оно ИМХО понятнее. Перепечатывать в тему долго и муторно, поэтому просто выкладываю архивчик с файлами. На вопрос - а где гайд - еще раз скажу - в комментариях к коду. Там два файла со скриптами, as и py, флеш-проект fla и пример собранной флешки. Питон тестил через отладчик. Что касаемо варианта с FlashDevelop - я в нем вообще не особо умею, да и думаю грамотные люди разберутся что и как надо поменять. У меня и так вариантов много получилось. Что касаемо картохиных скриптов - их там НЕТ. Убрал. Их берете (нужные вам классы) из декомпильнутой battle.swf. Они могут меняться со временем, ибо у картофана нет ничего стабильного. Чем декомпилить - в другую тему, есть на этом форуме гайды. Я сотником работал, с AS2 флешками вполне спокойно справляется. Для AS3 нужно брать что-то помощнее типа JPEXS. Учитывайте выходную версию файлов, ибо ваш флеш может из попросту несхавать. Еще раз скажу - внимательно читайте комментарии. Не нужно тупо копировать код - 99% что он у вас работать не будет. Постарайтесь прочитать и понять что там написано. Там вобщем-то подробно и популярно написано, что и для чего надо и как оно работает. Для кого-то из новичков наверняка потребуется переводчик, опытные думаю и сами прочитают. Хотя новичкам сильно не советую лезть в это дело, лучше потренируйтесь на чем-то более простом и одноязычном. Ибо отладка взаимодействия флеша и питона - одна из самых сложных и муторных вещей в этом процессе, ибо логов практически нет, и если вы накосячили, система вам ничего не подскажет, в отличие от питона, который и трейс даст, и ошибку распишет. Тут если краш не словили, считайте повезло. Для этой темы вам как минимум понадобятся знание Python на уровне "могу написать что хочу, пусть и костылями, и понимаю что написали другие" и не меньший уровень с ActionScript. Разберитесь с языками отдельно, перед тем как лезть в этот кросс-интерфейс. Отладчика тут нет! Я все это пишу потому, что сам немало потратил времени на понимание всего этого. Это не самая простая вещь даже в плане логики, не говоря уже об отладке. При отладке того же DAAPI (в особенности из AS в Python) клиент вылетал без объяснения причин не раз и не два. И тут далеко не все очевидно и понятно. И далеко не все так стабильно как хотелось бы. Ну думаю все поняли, с чем придется иметь дело, поэтому выкладываю сами файлы. Flash Interaction.zip
  20. В-общем, есть портяночка с теорией на русском. Вообще, скорее всего, гайд будет большим комментарием к коду, и 99% что на английском, ибо перевести на русский, во-первых, проще, чем с русского (автоматический перевод понятнее получается), тут не только русские сидят, во вторых далеко не всем потребуется, ибо большинство адекватных программистов знают английский хотя бы на уровне чтения со словарем. "Короче, вот сама портяночка" Ко всему этому добавлю, что ExternalInterface в WoT используется через класс gfx.io.GameDelegate (ActionScript), являющийся по сути оберткой. Со стороны Python - метод call объекта, используемого в качестве корневого для интеграции флешки, являющегося экземпляром класса gui.Scaleform.Flash.Flash Вообще, флешка в WoT инородный элемент, интегрированный через Scaleform. По сути, флешка состоит из двух элементов - BigWorld GUI контейнера и экземпляра Scaleform movie, впихнутого в этот контейнер. Upd. Жалко скринов не сохранилось... Так бы может еще чего полезного добавил в гайд. Вобщем, отдебажил код более-менее, теперь надо приводить его к человеческому виду и дописывать/править комменты)). Два варианта загрузки/выгрузки флешки, двухсторонние DAAPI и ExternalInterface, примерчики по части управления и некоторая другая полезная информация.
  21. Норм)) Тоже есть такой агрегат. Насчет того, что нет толковых макросов - напиши сам. Там есть такая волшебная инструкция перехода GOTO которая может и вечный цикл запилить. Есть условие IF - задаешь условие выхода из цикла, например, если зажата клавиша (мне влом открывать сейчас редактор макросов). Если там не запилена защита от вечных иклов (нубопрогеров) все должно норм работать. Заодно и проверишь. Только не забудь флаг на вызов запилить, чтобы не было параллельных вызовов, т.е. в два потока невесело будет, подерутся. Ну или можешь макрос вручную запускать через редактор, судя по видео, можно.
  22. Мауса себе нормального купи, с макросами) будет тебе кликер) Там и от клавы кнопки кликать можно. В языке поразбираться придется но эффект железный, в том плане что на программном уровне никаких костылей, команды идут от мыши))
  23. Есть такой формат CSV. Дешево и сердито. И скрипт простой, и эксель понимает. Я так делал, когда нужно было графики построить. Дамп в CSV, экселем конвертирую в XLS и там же строю графики (для сохранения с графиками CSV не потянет). А так то прикольно, можно сделать дамп с реплея и в экселе посчитать например средний дамаг...
  24. Зачетная картинка)) Смотреть надо. От блеска аж глаза режет. Наверное блики забыл выключить. И в дали картинка какая-то немного замыленная. Хотя и в оригинальном WoT картинка не айс. Upd. Вот код хука корректировки арт-режима. При первичном получении точки прицеливания учитывается параметр игнора танков, без учета enabled. Потом он повторно считается, когда прицел находится на танке. Алгоритмы работы я писал выше, сопоставишь с кодом - поймешь.
×
×
  • Create New...