Блог пользователя awoo

Автор awoo, история, 7 лет назад, По-русски

Отвечаю сразу: теперь реальность! Почти.

Для нетерпеливых сразу ссылка на юзерскрипт.

Всем привет!
Очевидно, вселенная несправедлива. К счастью, не все несправедливости неисправимы. И не так давно я нашел способ сделать этот мир чуточку лучше!

Представляю вашему вниманию плагин, который поможет многим людям выбраться из сложных жизненных ситуаций и спасти уверенность в себе!
Наверняка, каждый из активных участников местного сообщества сталкивался с ситуацией, когда смело потянувшись к зеленой стрелочке, столь же резко промахиваешься и лепишь жирный красный минус отличному комменту. И ведь даже не исправить это досадное недоразумение!

Так вот, посидев пару часов за изучением проблемы (а заодно и jquery), я склепал небольшой скрипт, который немного меняет концепцию подтверждения голосования за комментарий. Теперь, пока вы находитесь на странице, вы можете сколько угодно изменять свой голос за любой комментарий, на котором до перехода на эту страницу не стояло вашего голоса. Применение изменений же произойдет только в момент выхода со страницы (любым способом, даже закрытие браузера сохраняет голоса).

Не уверен, почему такое происходит, но иногда не все голоса сохраняются при закрытии страницы (особенно когда пытаешься поставить сразу много голосов), так что добавил дополнительно кнопку для сохранения. Она находится на панельке с количеством новых комментариев или на ее месте, если новых комментариев нет.

Продублирую ссылку на скрипт, если кто пропустил в самом начале. Это обыкновенный юзерскрипт, работает как в chrome-based браузерах (с помощью плагина tampermonkey), так и в firefox (greasemonkey), и в opera младших версий (violentmonkey).

О найденных багах и возможных предложениях пишите в лс или в комментарии.

Всех с наступающим!

Полный текст и комментарии »

  • Проголосовать: нравится
  • +158
  • Проголосовать: не нравится

Автор awoo, история, 9 лет назад, По-русски

Вступление

Всем привет! Недавно я решил "вспомнить молодость" и поиграть в Gravity Defied на своем телефоне. Нетрудно было найти порт этой некогда культовой игры на более современные платформы. Изначально написанная на J2ME, она быстро завоевала популярность у школьников прошлого десятилетия. Простейший геймплей (мотоциклист, преодолевающий различные трассы с высокими горами и глубокими ямами), замечательная физика (возможность вращения в воздухе) и простота модифицирования — вот секрет успеха Gravity Defied. И я мало того, что просто просиживал часы за прохождением новых дополнений, так еще и зарабатывал на помощи менее мастеровитым игрокам! Это уже позже пришло время миссии с вертолетом в GTA Vice City, трудностей Far Cry и HOMM 3...

Немного предыстории

И вот она снова на моем аппарате! Конечно, не оригинал — лишь ремейк для Android, но великолепная атмосфера передана в полном объеме. Игра настолько увлекла меня, что я представлял гордого мотоциклиста каждый раз, когда видел какую-нибудь ломаную линию, похожую на трассу из GD. После очередного контеста на Codeforces я сидел, ожидая пересчета своего рейтинга, смотрел на график в своем профиле... Да, ну и как вы догадались, у меня родилась идея использовать этот график в качестве уровня. Захотелось пережить вновь все успехи и неудачи, накопленные за полтора года пребывания в среде спортивного программирования...

Разработка

Одним прекрасным уже летним вечером я сел писать код и осознал, что не смыслю абсолютно ничего ни в моддинге в целом, ни в особенностях структуры Gravity Defied. Полез, естественно, бороздить просторы интернета в поисках необходимой информации. Узнал для начала, что в разных версиях GD для Android (есть официальная от Codebrew и неофициальная от разработчиков ВКонтакте, которая лично мне больше нравится) используется разный формат для файлов уровней. И если .gdlevel для официальной дался легко (Используется крайне подходящий для такого формат JSON), то вот с .mrg из неофициальной (также он использовался в той самой J2ME-игре) пришлось помучиться. Дело в том, что форумов, с которых можно что-то вытащить, очень немного (я нашел всего один и еще одну полезную вики). И когда наконец перевел всю информацию, написанную там, с лунного на понятный мне язык, ушел реализовывать. Небольшой скрипт на Python 3, получая через Codeforces API список проведенных раундов для указанных пользователей, создает список точек трека по изменению рейтинга и времени между соседними раундами. Использует только встроенные библиотеки (os, sys, time, urllib, json). Работает из консоли, притом может считывать ники, как из файла, так и из командной строки. Советы по установке и сам скрипт можете найти здесь.

Немного скриншотов результатов работы скрипта:

О найденных багах в скрипте и неточностях в данном посте пишите, пожалуйста, в личные сообщения.

Удачи и приятной игры!

Полный текст и комментарии »

  • Проголосовать: нравится
  • +245
  • Проголосовать: не нравится