Jump to content
Korean Random

GPCracker

User
  • Posts

    2,827
  • Joined

  • Last visited

  • Days Won

    61

Everything posted by GPCracker

  1. Потому что правильные пацаны делают хорошо для всех, а читеры только для себя.
  2. Публикация данного мода в иных источниках без согласия автора запрещается. The publication of this modification elsewhere without the consent of the author is prohibited. Версия 0.0.2 Alpha (WoT Client 0.9.5). - логика мода кардинально переработана. - добавлен "маппинг" - в одной текстуре может быть много кадров. - добавлена возможность использовать loop (воспроизводить одну последовательность несколько раз). - изменен способ позиционирования на экране. Координаты теперь считаются от центра экрана. BL = (-1, -1), TR = (1, 1). - оптимизированы некоторые алгоритмы. - значительные изменения в файле конфигурации. - часть параметров теперь хранится вместе с текстурами (маппинг и анимация). - текстуры теперь загружаются при загрузке боя. "Как обновляться" "Как создавать свои иконки" "Об альфа-версии" Скачать: AnimatedSixthSense.zip "На форуме работает склейка, оригинальное сообщение"
  3. Нужно сделать смену картинки с частотой больше 50 раз в секунду (interval < 0.02). Для тестирования вычислительной нагрузки мода. Степень влияния определяется по просадке игрового фпс. Надеюсь, понятно объяснил. Нужно проверить, будет ли в таком "жестком" режиме проседать фпс и на сколько.
  4. Нужно именно "под соточку" фпс (частоту смены картинок анимации) разогнать, чтобы посмотреть, нет ли просадок по алгоритму. 2 раза в секунду компу не в напряг само собой, а вот 50-100... И интересует первый засвет после запуска игры, нет ли там заметных просадок по сравнению с остальными засветами. Картинки под это делать не надо, копипаст + групповое переименование. Конфиг поправить интервал, количество. Просто сделать лампочке бешеный фпс. Неважно как оно выглядеть будет, это чисто тест фпс. И посмотреть что будет) Просто сам я сейчас не могу такое провернуть(
  5. Только сначала мне надо будет доработать скрипт. Основная проблема в данном случае не в коде, а в самих алгоритмах. Как сделать мод адаптируемым под большинство "хотелок" "графиков". Смысл показать возможности и логику алгоритма. Но дорабатывать еще много чего надо... Просадки по ФПС на высокоскоростных (>40-50-70fps) анимациях есть? (тест на прогрузку текстур, алгоритмы смены картинки). При первом засвете? (тест на кеширование текстур в оперативе).
  6. Всмысле... Ничего я не путал... Маленькая просьба к тем кто умеет) Делать гиф-анимации на свои лампочки)
  7. Еще круче хочу сделать. Маппинг и список координат для каждой картинки, как-то так, посмотрим, что получится)
  8. Мод отключает стандартную лампу и показывает свою) Время горения анимации = interval * quantity В текущей реализации тебе понадобится 2 кадра (в сек) 10 секунд = 20 кадров, причем четные одинаковые, нечетные тоже) Четные одно состояние, нечетные другое) У тебя анимация повторяется) Так что у тебя будет по 10 копий одного файла и 10 другого. Но разных фалов всего 2. Если с маппингом - одна текстура с двумя изображениями и хитрый конфиг. Пока думаю, как такое сделать. Маппинг освоил, думаю над конфигом. Для того, чтобы зажечь одну картинку на 10 сек (статическая лампочка), interval = 10.0, quantity = 1. Одна текстурка с индексом 0. В принципе должно работать. Проверьте)
  9. нумерация файлов [0..q-1] По логике, все файлы должны быть правильными изображениями) То что выложено в шапке, я не сам делал, так что... Нулевой показывается сразу, 1 через interval, 2 через 2*interval... Через quantity * interval анимация прячется) Да, только ФПС будет 2.4. Не многовато ли?) Специально написал с единицами, чтобы физику вспомнил)
  10. Лол) {0:03} это прочитай в Python String Format (поищи ссылку выше в моих постах или погугли) Это форматирование строки (читай макрос) заменяемый переданной переменной с индексом 0 (первый ноль), второй ноль заполнитель, 3 - количество знаков. То есть переданное число 3 преобразуется в строку 003, 10 в 010, 15 - 015, 278 - 278. quantity - это количество кадров. Сколько всего картинок. Это НЕ ФПС! interval - с каким интервалом меняются кадры. ФПС = 1 / interval! То есть, чтобы анимацию из 60 кадров растянуть на 3 сек: quantity = 60 (60 картинок) interval = 3 сек / 60 кадров = 1 / 20 = 0.05 сек / кадр тогда ФПС будет 1 сек / 0.05 = 20 кадров / сек аналогично ФПС = 60 картинок / 3 сек = 20 кадров / сек Специально же целый пост написал.
  11. Тоже завал. Никак не получается приаттачить GUI к WorldMatrixProvider. Чтобы оно само за танком бегало) А вручную гонять (апдейт) = хана твоему ФПС. MP прикольная штука. И есть почти у всех объектов в игре. Обновляется динамически. Походу картофан сломал класс. Потому что там даже пример на эту тему есть... Не знаю, может как-то по-другому получится... Но апдейт точно не вариант. Посчитать позицию на экране для глобальной точки не проблема, вопрос в ФПС.
  12. Вообще есть планы сделать маппинг текстур (много изображений в одной), только времени пока нет. Так что исходники не удаляйте, пригодятся) По 4 кадра "душ танков" в PNG, м.б. кто через XVM прикрутит) TankSoulsPng.zip Не нужно клонировать файлы. Если у тебя не повторяется анимация. Просто количество и интервал в конфиге поставь правильно.
  13. Там кто-то про сниппеты говорил... а через них смену картинки релизовать? Там их всего 4) Скину чуть позже
  14. Это невозможно, я сразу это сказал А вот shoot можно попробовать повызывать и интервалом 5-6 секунд для какой-нить топовой небарабанной пт. Это команды связи с сервером. См. доки BW. Entity Оно самое Сервер также может "вызывать" методы на клиенте, некоторые, например, находятся в avatar.py.
  15. С чего ты решил, что я его слушаю? Я и написал, что "стандартные" читы в танках неосуществимы. Известная константа) Эти 100мс компенсируют разницу в пинге неслабо так... Не совсем. Сервер принимает команды от игрока и выполняет их. На движение там точно команды. self.base.vehicle_moveWith(flags) avatar.py. ЕМНИП флаги определяют процент мощности двигателя и направление. Можешь покопаться, если интересно. А вот выстрел: self.base.vehicle_shoot(). base и cell - сишные модули, об этом в доках BW написано) Кстати, не факт, что сервер все команды перепроверяет... Этим занимается клиент. Можно попробовать в трене повыполнять различные core-вызовы.
  16. Очень жаль... Удобная штука, ибо значительно меньше лагает, чем всякие там редакторы. Когда знаешь BB получить нужный результат через них проще и быстрее, чем подбором форматирования. Plain режим очень нужная вещь.
  17. TankSouls.rar/TankSouls/Вертолет/influx/data.pkg/data/SpecialEffects/textures/eff_tex.dds В правом нижнем углу эти текстуры Надо бы их как-то вырезать или разобраться с "выбиранием квадрата" текстуры Буду читать доки BW... Разрешение текстуры при масштабировании раза в 3-4 меньше реального... "Квадратизация" лютая. Отрезал кусок, вроде норм) "Тест текстуры" Текстуру дробить на изображения необязательно! они могут быть в одной текстуре. Например, так eff_tex.zip Тогда нужно указывать координаты отображаемой области. Не знаю почему, но текстуры разрешением больше где-то либо 512х512, либо 1024х1024 (точно определить не удается) почему-то уменьшаются по разрешению. Проблема как-то связана с самой текстурой, пересохранил в фотошопе - все норм, разрешение нормальное. Возможно будет возможность использовать маппинг одной текстуры вместо кучи отдельных. Посмотрим, как такое можно реализовать. И как конфиг под такое дело грамотно адаптировать. Выражаясь более понятно, вместо папки с текстурами использовать одну большую со всеми изображениями. Пересохранил текстуру-исходник 4096х4096, замаппил все изображения и одно: Вполне себе масштабируется) Буду думать, как это прикрутить к танкам) А цвет такой, потому что simpleGUIComponent.colour = (255, 0, 255, 255) Рандомно 0 поставил, белый в зимнем ангаре было плохо видно. По-нормальному - все 255 - белый / без изменения. Цвет накладывается на цвет текстуры. Она белая. ЕМНИП красная текстура + синий цвет будет фиолетовый. Надо будет цвет тоже выносить в конфиг. Приаттачить нормально к танку не получается. Bounding Box не дает нужного эффекта, а GuiAttachment почему-то не робит. Хотя там дан явный пример, как аттачить GUI к WorldMP. Почему не робит - хз, походу опять картофан сломал. Сначала было со свойством color TextGUIComponent (хорошо обход остался), теперь походу весь класс по****ли. Посмотрю конечно, может я чего не так делаю.... но вроде переписывал пример 1 к 1 из документации BW. Пока не найду способ приаттачить SimpleGUI (текстуру) к модели танка ("апдейт" не вариант, в ближнем бою лагать адско будет, нужен именно аттач по MP), "души" сделать не получится... Вроде все по инструкции делаю, а не робит...
  18. А где можно увидеть список всех доступных на форуме BB-кодов? Как, например, вручную создать таблицу? Различные разделительные линии, выравнивание текста относительно изображений и т.п.
  19. Одно время я встречал такой мод в видео, пишут, что эффект был связан со взрывом танка при уничтожении. Это говорят было а апреле от WG? Если у кого завалялось), скиньте анимацию этой "улетающей души", посмотрю что с ней можно сделать. Движение по экрану реализуется без проблем, как и смена картинки в иконке, но нужны сами текстуры для анимации. Ну или хотя бы сама анимация.
  20. Тебе с такими предложениями лучше обращаться на другой известный форум... Интересно, как такое работает... Если все обсчитывается на сервере. Весь питон-код связан с сишным движковым через вызовы .base и .cell. И насколько я помню, там идет команда типа moveVehicle с аргументами-флагами. Я конечно не знаю, что творится в сишной части, но по крайней мере спидхак, качественный aimbot и т.п. "мощные" читы на питоне не напишешь. Если их вообще можно создать. Засвет считается на сервере, поэтому wallhack не сделать точно, стены простреливать тоже не получится, разве что разрушаемые, про которые грамотные игроки знают и не используют как укрытие. Не стоит забывать тот факт, что онлайн-игры бывают двух типов времени: клиентского и серверного. В первом случае читерить намного проще, ибо можно специально создавать лаги, двигаться рывками и т.д. Например, в CoD используется для этих целей банально торрент-клиент. Если игра идет в серверном времени, то все лаги играют против игрока. И читерить можно разве что за счет каких-либо ошибок или недоработок разработчиков. Поэтому если разрабы BW и WG нормально написали протокол обмена, то "неграфический" чит написать не получится. Ну конечно использование лагов оппонента в своих целях никто не отменял (может товарищ это подразумевает под такого рода "читерством"?). Может поэтому и не пишется пинг игроков в WoT. Хотя для сокомандников писать не мешало бы. Чтобы видеть, кого дисконектнуло, а у кого реальные лаги. Я не говорю про то, что в отличие от чисто "клиентского" чита, чит связанный с обменом данными "палится" по "типу поведения", и если таких читеров будет реально приличное количество, их будут банить, ибо отловить их будет намного проще. З.Ы. При дисконнекте инета танк становится неподвижным (локально), а сервер продолжает выполнять последнюю команду на движение, то есть при сильных лагах танк становится попросту неуправляемым.
  21. Я бы сказал даже очень похожи. Только копать в эту сторону я смогу не раньше, чем сдам сессию)
  22. mutex`ы я так понимаю для синхронизации чтения / записи буферов, чтобы чтение не начиналось раньше времени и не затирались непрочитанные данные? Ну что я и говорил) Memory-mapped file Я так понимаю, все проходит по такой схеме: В stdout запихивается "поток для ловли". С некоторым интервалом делается READ(). Если данные не пустые, отправляются в буфер передачи (файл). Далее орион с некоторым интервалом проверяет буфер-файл. Если данные там изменились он их парсит и кидает в "лог"? З.Ы. Надо будет как-нить написать по-нормальному передачу данных между питон-процессами / потоками в общем виде (класс) через mmap. С флагами и mutex`ами)
  23. Вот что реально стоит доработать, так это сохранение лога в файл при работе клиента через Орион... Я так понимаю, логи подбираются через хук на sys.stdout... Неплохо бы их дальше пробрасывать... Чтобы логи как положено писались в файл. Да и контроль потока как-то странно работает... Иногда приходится отправлять принт чтобы "зависшие в буфере" данные "прописались". Через что кстати потоки между процессами пробрасываешь? MMap? Интересно как... Проверяют чек-сумму объекта?
×
×
  • Create New...