[{{mminutes}}:{{sseconds}}] X
Пользователь приглашает вас присоединиться к открытой игре игре с друзьями .

Форум «Программное обеспечение» / chrome ext - автоплей и другие фичи

Senua Сообщение #1 8 июня 2012 в 04:31
Профи
3
Всем добрый день (или там ночь или еще чего=). Решил выложить расширение, которое писал еще в феврале. Оно сырое и недопиленное, но мне хватает. Расширение представляет собой несколько разных фич в одном целом без возможности отключения частей. Кроме того, я не знаю насколько оно совместимо с другими пользовательскими скриптами. Просто вдруг я зажимаю то, что кому-то может и пригодиться. Сразу оговорюсь, что сейчас допиливать я ничего не буду, может быть после 28ого, если кто-то заинтересуется.

Еще одно важное замечание: не поддерживается режим марафона.

На клавонгонки я пришел с typeracer.com, решив, наконец, выучить русскую клаву. В этой (да и не только, наверное) связи, меня в режиме игры раздражали несколько вещей:
1) Много всяких лишних(имхо) штук (например, окно настроек). Здесь я не говорю о рекламе - ее Adblock замечательно убирает.
2) Из-за слишком крупного виджета с машинками и пункта (1) видно (у меня на ноуте не очень большое разрешение экрана - 1280x800) или только свою машинку или вообще никаких.
3) cpm. (привык к wpm)
4) Спидометр показывает не среднюю скорость.
5) Нет отображения скорости других игроков.

Все это я "пофиксил".
Вот как оно в итоге выглядит:


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


Скорости игроков. (здесь кто-то доехал)


Светофор слева.


Кнопки для отметки ведомых/лидера. (см. далее)

Итак, в центре - текст, под ним виджет с машинками, с убранными людьми (чтоб на дороге не мешали =). Слева - светофор, инфа об игре и время до начала, после старта это все исчезает. Справа - меню.
Что в меню?

не особо интересное:
1) Ссылка, открывающая настройки (те которые были) - очень не пафосно открываются, но если вдруг пондобятся - сойдет.
2) В тойже строке - ссылка-переключатель wpm/cpm. В начале может отображаться как undefined - это не страшно.
3) Ссылка на игру в таком же режиме - плохо работает.
4) Ссылка на список игр.
5) Ссылка на главную страницу.

интересное:
Переключатель режима autoplay: none/lead/follow.

Дело в том, что (ну, может и не только в этом), когда есть возможность, хочется погонять не со случайными незнакомыми людьми (или не только с ними), но, например, с другом. И, конечно, проехать не один заезд а несколько. Можно придеживаться, например, следующей схемы: тот кто доехал первым ждет другого, потом они вместе нажимают ссылку "Играть еще раз". При этом, однако, могут возникнуть неприятные вещи:
1) Можно попасть в разные игры.
2) Могут сбиться настройки игры - например ограничение уровней, что неприятно, если хочется погонять без мегакрутых гонщиков.

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

Как использовать автоплей?
1) Нужно определится кто будет лидером группы (это вовсе не означает что он должен быть самым быстрым), остальных назовем ведомыми. (Кстати если в группе только один человек, то-есть вы хотите просто использовать автоплей без друзей, то конечно лидером должен быть он (то есть вы =)). Остальных участников группы назовем ведомыми.
2) Нужно войти в одну игру.
3л) Лидеру нужно справа вверху выбрать ражим autoplay: lead.
3в) Ведомым нужно справа вверху выбрать ражим autoplay: follow.
4) Дождаться пока появятся ссылки-кнопки "leader" или "wait" справа от "беговых дорожек" каждого игрока (кроме вас и гостей). Они появляются примерно за пару секунд до начала игры, если кто-то вошел позже этого времени - то около начала игры.
5л) Лидеру нужно покликать по ссылкам-кнопкам "wait" справа от всех ведомых. Автоплей будет ждать их перед переходом в новую игру. Повторный клик по ссылке "выключает" ведомого. Ваш выбор запоминается - в следующий раз вам не придется отмечать ваших друзей, разве что при переустановке браузера, или очистки localStorage браузера от данных этого расширения другими методами.
5в) Ведомым нужно лишь кликнуть по кнопке-ссылке "leader" напротив лидера. Автоплей будет перебрасывать вас в ту игру, в которую перейдет лидер.
6) Печатать печатать и печатать. После того, как все из группы доехали до финиша (могут при этом быть другие участники, не имеющие к вам и вашему автоплею отношения, их не ждем) - после этого всех из группы перебрасывает в следующую игру. Не нужно ни нажимать "Играть еще раз", ни обновалять страницу, ни чего бы то ни было подобного.

Примечание: повторюсь, автоплей можно использовать и одному - нужно просто выбрать режим autoplay: lead. Это равносильно тому что вы сами, каждый раз, после того как доедете до финиша создаете новую игру с такими же параметрами. Только не нужно ничего нажимать.

Спасибо за внимание и "sorry for my bad english" =). Особенно запятые, чет я забываю где их ставить, а где нет.. Как только диплом писать..

======================================================
Скачать расширение.
PS: после установки расширения, нужно конечно начать новую игру. В текущей если оно и подействует то не полностью.
Последний раз отредактировано 8 июня 2012 в 05:27 пользователем Senua
Fenex Сообщение #2 9 июня 2012 в 11:34
Клавомеханик
49
Автоплей порадовал )

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

Для кроссплатформенности можно было делать юзерскриптом, имхо. И ещё, ты два раза грузишь библиотеку jquery
(почему бы не использовать уже имеющийся prototype?)
Последний раз отредактировано 9 июня 2012 в 11:43 модератором Fenex
Senua Сообщение #3 9 июня 2012 в 21:01
Профи
3
Спасибо за проверку совместимости)
А что, была такая кнопка? Сейчас поиграл без расширения вроде нету. В премиуме чтоль только? Я убрал div в котором про ошибки и реклама премиума.

Ой да там все полный кошмар, надо будет - сделаю нормально. Там ведь еще часть просто в экстеншене, а часть (большую) я пихаю в location="java script:.. , так как мне нужны данные которые в джаваскрипте на странице. Можно и все впринципе целиком туда завернуть. Отсюда наверное и дважды загруженная jquery. Юзерскрипты будут выполнятся в контексте страницы или отдельно? Ну а к jquery привык просто более менее, проще ее подгрузить чем с прототайпом разбираться.
Fenex Сообщение #4 10 июня 2012 в 17:27
Клавомеханик
49
Контент-скрипты - это и есть по сути юзерскрипты, поэтому UserJS будут иметь доступ ко всем данным страницы. А вот от jquery лучше отказаться изначально, поскольку может возникнуть конфликт библиотек. (вообще удивлён, как оно работает сейчас)
Юзерскрипты зачастую грузятся раньше инициализации некоторых объектов (например, game или chat), поэтому придётся программно ожидать загрузки этих объектов.

Эта кнопка:
Последний раз отредактировано 10 июня 2012 в 17:26 модератором Fenex
Senua Сообщение #5 10 июня 2012 в 22:21
Профи
3
А ну да, точно, вспомнил. Все убрал что кричало про премиум. Нет никаких конфликтов и не должно быть, вся jquery завернута в букву J (вместо обычного доллара), и не пересекается с prototype'ом (ну в смысле, я надеюсь что никто больше J не юзает). Вообще у jquery даже есть jQuery.noConflict() для таких целей, но в данном случае я вручную все поменял.
Да вот нет, контент скрипты изолированы от джаваскрипта страницы - это и в api написано да и, в общем, так оно и есть. К DOM доступ есть, а к переменным пользовательским - нету.
Ладно, я так понял что пост с таким количеством букв и так оформленный врядли привлечет обычного пользователя, дойдут руки - может отделю автоплей отдельно.

ps. та jquery, которая в манифесте указана, выполняется в контент скрипте, поэтому не конфликтует ни с каким джаваскриптом на странице, а в той, которая инсертится в location="java script:... , я какраз заменил $ на J.
Последний раз отредактировано 10 июня 2012 в 22:29 пользователем Senua

Чтобы писать в форуме, нужно зарегистрироваться.


Связаться
Выделить
Выделите фрагменты страницы, относящиеся к вашему сообщению
Скрыть сведения
Скрыть всю личную информацию
Отмена