Как создать фейк в ВК: сделать левую страницу без номера телефона

На что обратить внимание при настройке сta-кнопок?

Теперь, после того, как мы определились с целями, типами и текстами кнопок, самое время перейти к настройке CPA-кампании. Стоит заметить, что здесь есть ряд нюансов, поэтому мы решили вам о них рассказать.

Не будем останавливаться на настройках таргетинга и выборе ставок, переходим сразу же к работе с рекламной записью.

Итак:

  1. Заходим в рекламный кабинет (раздел «Таргетинг») и выбираем тип рекламы «Запись в сообществе». «ВКонтакте» предложит нам создать новый пост или выбрать уже готовый. При этом рекламировать можно только запись того сообщества, администратором которого вы являетесь.

Кстати, не многие знают, что во «ВКонтакте» можно продвигать записи, не публикуя их в сообществе (скрытые рекламные записи). Их будет видеть только целевая аудитория рекламного объявления, а на стене сообщества и в новостных лентах подписчиков отображаться они не будут.

2. Допустим, у нас уже есть пост, который хорошо зарекомендовал себя вирально (то есть получил хороший отклик у подписчиков и без рекламы). Копируем его ссылку в окно и открываем для редактирования.

3. Нажимаем на «Добавить ссылку» (третья иконка под рекламной записью) и прописываем ссылку, которая должна быть релевантна ожидаемому нами целевому действию. В нашем случае это будет переход к диалогу с сообществом. Сохраняем и переходим на следующий этап.

b_58516ce63bb67.jpgb_58516cf1cfe6c.jpgb_58516d0e12000.jpgb_58516d1fdc533.jpgb_58516d2c3e15a.jpgb_58516d3a7d190.jpg

Что ж, «ВКонтакте» оказался довольно строгим к формату CTA-рекламы.

4 совета по выбору аватарки

  1. Следите за тем, как аватар выглядит на миниатюре. Если вы хотите разместить на аватарке текст, то он должен быть достаточно крупным, чтобы его можно было прочитать на миниатюре.

Хорошо

Аватарки для сообщества: примеры и антипримеры

Минималистичная аватарка магазина ювелирных украшений EFREMOV

Плохо

Аватарки для сообщества: примеры и антипримеры

Неразборчивая аватарка магазина ювелирных украшений «Аметист»

  1. Слишком блеклый и скучный аватар может теряться на фоне более ярких аватарок конкурентов.

Хорошо

Аватарки для сообщества: примеры и антипримеры

Яркая аватарка магазина товаров для детского творчества «Мульти-Пульти»

Плохо

Аватарки для сообщества: примеры и антипримеры

Блеклая аватарка школы юных леди и джентльменов Beauty secret

  1. Современной аватарке лучше не содержать большого количества текста, цветов и лишних элементов.

Хорошо

Аватарки для сообщества: примеры и антипримеры

Уместная стильная аватарка магазина тканей Polotno

Плохо

Аватарки для сообщества: примеры и антипримеры

Пёстрая аватарка магазина тканей NatTex

  1. Следите за тем, чтобы аватар был в одном стиле с обложкой.

Хорошо

Аватарки для сообщества: примеры и антипримеры

Вписавшаяся в стиль обложки аватарка спортивного гипермаркета «Декатлон»

Плохо

Аватарки для сообщества: примеры и антипримеры

Выбивающаяся из стиля аватарка базы отдыха «Кулига-Парк»

4 совета по выбору обложки

  1. Меняйте обложки под инфоповод. Не держите одну обложку вечность, ведь это отличное место для доведения полезной информации до подписчика. На обложке вы можете разместить важные актуальные новости компании, поэтому менять ее можно с запуском новой акции, анонсом курса, началом конкурса.

Хорошо

Обложка для ВК: как выбрать (с примерами)

Актуальный анонс концертов от R3HAB

Плохо

Обложка для ВК: как выбрать (с примерами)

Неинформативная обложка музыкального лейбла MALFA

  1. Сдерживайте порывы разместить вообще всю информацию о бренде на обложке. Это дешево смотрится.

Хорошо

Обложка для ВК: как выбрать (с примерами)

Прекрасная арт-обложка кафе «Бакенбарды», которая даёт понять без слов, где находится кафе

Плохо

Обложка для ВК: как выбрать (с примерами)

Нечитабельная обложка кафе «Мануфактура»

  1. Обратите внимание на динамические обложки! Это обложки с набором виджетов, которые отображают информацию в режиме реального времени. Вы можете настроить виджет так, чтобы он показывал самого активного пользователя, приветствовал нового подписчика по имени, отсчитывал время до запуска конкурса или выводил любой текст, который указан по URL – актуальную статистику или меняющуюся фразу.

Это классный инструмент, который доступен всем, но используют его немногие. А ведь он позволяет запомниться пользователю! Приятно обнаружить себя на обложке любимого магазина, который ценит твою активность. Создать динамическую обложку можно с помощью сервиса Letscover.

Хорошо

Обложка для ВК: как выбрать (с примерами)

Обложка мебельного магазина показывает самых активных подписчиков

Обложка для ВК: как выбрать (с примерами)

Обложка городского паблика показывает актуальный прогноз погоды

Не плохо, но бесполезно

Обложка для ВК: как выбрать (с примерами)

Неинформативная и не вписывающаяся в стиль обложка городского паблика

  1. Обратите особое внимание на живые обложки. Это 5 коротких видео или фото, которые показываются только в мобильных приложениях. Грузятся в настройках, в том же разделе, что и обычные обложки. Живые обложки крупнее обычных шапок в несколько раз – они замечательно привлекают внимание и запоминаются.

Обложка для ВК: как выбрать (с примерами)

Живая обложка BEFREE проигрывает видео с весенней коллекцией

Не плохо, но бесполезно

Обложка для ВК: как выбрать (с примерами)

Не подходящая под мобильный формат обложка Xbox

Бонус 2: изменение состава семьи

Комбинируя различные коды с людьми и чувствами, можно получить новые emoji. Используя этот принцип, можно менять состав семьи. Все варианты комбинаций, работающих ВКонтакте, представлены в таблице.

Вид Код Состав семьи
👨‍👩‍👦 👨‍👩‍👦 Мама, папа, сын
👨 ‍ 👩 ‍ 👧 👨 ‍ 👩 ‍ 👧 Мама, папа, дочка
👨 ‍ 👩 ‍ 👧 ‍ 👦 👨 ‍ 👩 ‍ 👧 ‍ 👦 Мама, папа, сын, дочка
👨 ‍ 👩 ‍ 👦 ‍ 👦 👨 ‍ 👩 ‍ 👦 ‍ 👦 Мама, папа и два мальчика
👨 ‍ 👩 ‍ 👧 ‍ 👧 👨 ‍ 👩 ‍ 👧 ‍ 👧 Мама, папа и две девочки
👩‍👩‍👦 👩‍👩‍👦 Две женщины и один мальчик
👩‍👩‍👧 👩‍👩‍👧 Две женщины и одна девочка
👩‍👩‍👧‍👦 👩‍👩‍👧‍👦 Две женщины, мальчик и девочка
👩‍👩‍👦‍👦 👩‍👩‍👦‍👦 Две женщины и два мальчика
👩‍👩‍👧‍👧 👩‍👩‍👧‍👧 Две женщины и две девочки
👨‍👨‍👦 👨‍👨‍👦 Двое мужчин и мальчик
👨‍👨‍👧 👨‍👨‍👧 Двое мужчин и девочка
👨‍👨‍👧‍👦 👨‍👨‍👧‍👦 Двое мужчин, мальчик и девочка
👨‍👨‍👦‍👦 👨‍👨‍👦‍👦 Двое мужчин и два мальчика
👨‍👨‍👧‍👧 👨‍👨‍👧‍👧 Двое мужчин и две девочки

Вы можете менять цвет кожи членов семьи.

Жесты

👍 👍 Большой палец вверх (супер, отлично)
👎 👎 Большой палец вниз (дизлайк, не нравится)
☝ Палец, указывающий вверх (внимание)
✌ Виктория (победа, мир)
👌 👌 Окей (все в порядке)
👏 👏 Аплодисменты
👊 👊 Кулак (удар)
✊ Поднятый кулак (поддержка)
✋ Открытая ладонь (стоп)
🙏 🙏 Сложенные руки
👆 👆 Палец, указывающий вверх
👇 👇 Палец, указывающий вниз
👈 👈 Палец, указывающий влево
👉 👉 Палец, указывающий вправо
💪 💪 Бицепс (сила)
🙌 🙌 Руки вверх
🤝 🤝 Рукопожатие (договорились)
👐 👐 Открытые ладони в стороны
👋 👋 Машет ладонью (приветствие)
🤘 🤘 Рокерская коза
🖖 🖖 Живи долго и процветай
🖐 🖐 Растопыренные пальцы
✍ Пишущая рука с ручкой
🖕 🖕 Средний палец (факью)
🤞 🤞 Скрещенные на удачу пальцы
🤙 🤙 Позвони мне / приветствие (шака)
🤛 🤛 Кулак, направленный влево
🤜 🤜 Кулак, направленный вправо

И еще чуть-чуть интересного: не для бизнеса, но тоже полезно

Я обещала дать приложения, которые расширят функционал сообщества, продвигающего бизнес? Я их дала, устанавливайте и пользуйтесь на здоровье. Но это далеко не всё, что предлагает ВКонтакте. Есть еще несколько прикольных инструментов, которые не для решения бизнес-задач, но все равно классные, поэтому я вкратце о них расскажу, вдруг вы придумаете, как их применить именно у вас.

  • Пожертвования

    Конечно, это главным образом сделано для благотворительных организаций и проектов. У ВК достаточно надежная финансовая система, чтобы обеспечить безопасный сбор денег.

    Иногда приложениями для пожертвований пользуются некоммерческие проекты, собирающие средства на различные нужны. Это называется донатами. Например, всё тот же мой любимый «ангельский» паблик просит подписчиков по желанию донатить на кофе админам и на билеты на концерт Дженнифер Лопес. :)) Вот как это реализовано в сообществе:

    пример работы приложения для пожертвований

    Приложений для сбора денег несколько, выбирайте любое, какое вам больше нравится:

    приложения для сбора пожертвований

  • Чат

    Приложение для сообществ, где идет очень активное общение пользователей, и они даже сбиваются в группки по интересам.

    А еще в чатик можно добавлять, например, VIP-клиентов, и раньше всех сообщать им о скидках, новинках и акциях.

  • Тесты

    Небольшое развлечение для аудитории. Тесты очень любят и положительно на них реагируют. Мы вот частенько запускам подобные активности и по себе знаем, что аудитория не прочь узнать, в каком состоянии их бизнес, разбирается ли она в маркетинге и знает ли Инстаграм. :))

  • Вакансии

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

  • Афиша

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

    Вот приложение:

    А вот пример его использования в официальном сообществе группы Би-2:

    Как создать фейк в ВК: сделать левую страницу без номера телефона

Идеограммы

🈚 🈚 Бесплатно, отсутствие (идеограмма-7121)
🈯 🈯 Зарезервированный, указание пальцем (идеограмма-6307)
🈲 🈲 Запрещенный, запрет (идеограмма-7981)
🈳 🈳 Доступно, вакантно (идеограмма-7А7А)
🈴 🈴 Проходной балл, согласие (идеограмма-5408)
🈵 🈵 Невакантно, недоступно (идеограмма-6Е8)
🈶 🈶 Наличие, небесплатно (идеограмма-679)
🈷 🈷 Месяц, ежемесячный взнос (идеограмма-678)
🈸 🈸 Запрос, заявка (идеограмма-7533)
🈹 🈹 Скидка, дисконт (идеограмма-5272)
🈺 🈺 Открыт для бизнеса, работа (идеограмма-55В6)
🉐 🉐 Выгода (удачная сделка)
🉑 🉑 Принять (принятие)
㊗ Поздравить (поздравление, праздник)
㊙ Секрет

Как подключить раздел «товары»

  1. Идёте по пути: Управление → Настройки → Разделы → Товары

Раздел Товары в ВК

Первый шаг в подключении раздела «Товары»

  1. Выбираете режим работы – базовый или расширенный (обе опции бесплатные). Заполняете основную информацию: валюту, регионы доставки, контакты для связи и дополнительную информацию.

«Базовый» дает вам доступ к оформлению витрины и карточкам товаров. Подписчики смогут изучать характеристики товара, писать или звонить вам, открывать форму сбора заявок или переходить на внешний сайт.

Раздел Товары в ВК

Форма базового заполнения раздела «Товары»

«Расширенный» предоставляет вам возможности витрины, карточек товаров, корзины, заказов, доставки и оплаты, автоматизации.

Раздел Товары в ВК

Форма расширенного заполнения раздела «Товары»

Оба режима работы позволяют оформить карточки товаров так, чтобы они отображались на странице. Но при подключении настроек «Расширенного» у вас появится раздел «Магазин», в котором вы сможете управлять товаром, следить за заказами, принимать оплату внутри соцсети.

  1. По одному добавляете продукцию в раздел «Товары». Добавляете снимки и задаёте параметры: категорию, название, описание, свойства и стоимость

Раздел Товары в ВК

Форма заполнения раздела «Товары»

  1. Подключаете или не подключаете опции доставки и оплаты.

Доставка. Доставлять товары можно Почтой России, через Boxberry, СДЭК или другими курьерскими службами. Автоматически рассчитать стоимость доставки можно, указав в карточке товара вес и габариты.

Раздел Товары в ВК – опции доставки

Форма заполнения раздела «Товары» – «Доставка»

Оплата. Юридические лица принимают оплату картами или через VK Pay, а физические лица – только через VK Pay.

Раздел Товары в ВК – опции оплаты

Форма заполнения раздела «Товары» – «Оплата»

Как создать фейк в вк с компьютера

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

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

Для регистрации фейка рекомендуется обзавестись еще одним телефонным номером, который до этого не использовался для привязки во ВКонтакте.

Процедура создания фейка состоит из последовательных пунктов:

  1. Выйти из своего основного профиля в ВК, вызвав выпадающее меню под аватаркой.
    1 risunok feik strvk 73808
  2. Оказавшись на странице регистрации, выбрать моментальную форму заполнения.
    2 risunok feik strvk 46842
  3. Вписав ненастоящие данные в поля, кликнуть на «Продолжить регистрацию».
  4. Указать телефонный номер, на который придет код подтверждения.
    3 risunok feik strvk 65767
  5. Придумать пароль, и заполнить разделы анкеты выдуманными данными.

Полезная статья — Все что нужно знать о смайлике синее сердце чтобы не попасть в просак

Оптимизация клиента

Итак, я всё-таки решился поплотнее почитать про синусы-косинусы и впервую очередь избавиться от отдельных расчетов для отрисовки и реальных координат. Тут рассказывать особо нечего, но код стал явно получше.

this.draw = function(t){
	this.x2 = this.x;
	this.y2 = this.y;
	this.s2 = this.s;
	this.r2 = this.r;
	this.cosa2 = this.cosa;
	this.a2 = this.a;
	this.timeK = (t > 40) ? 1 ((t-40)/40) : 1;
	this.x  = this.timeK*this.koef*this.s*Math.sin((90-this.ra)*this.PI/180);
	if(isNaN(this.x)) this.x = this.x2 (2*(this.timeK*this.koef*this.s*Math.sin((90-this.ra)*this.PI/180)));
	this.y -= this.timeK*this.koef*this.s*Math.sin(this.ra*this.PI/180);
	if(isNaN(this.y)) this.y = this.y2-(2*(this.timeK*this.koef*this.s*Math.sin(this.ra*this.PI/180)));
	this.s -= this.timeK*(this.koef*Math.sin(this.ra*this.PI/180))*(this.wspeed/(this.y/this.wspeed))/4.5;
	if(isNaN(this.s)) this.s = this.s2-(2*(this.timeK*(this.koef*Math.sin(this.ra*this.PI/180))*(this.wspeed/(this.y/this.wspeed))/4.5)); 
	if(this.s <= 0) this.s = this.koef*0.0001;
	this.r = this.timeK*this.s*50/this.wradius;
	if(isNaN(this.r)) this.r = this.r2;
	if(this.r == 0) this.r = this.koef*0.000000001;
	this.cosa = this.timeK*(this.r*this.r this.r*this.r-this.s*this.s)/(2*this.r*this.r);
	if(isNaN(this.cosa)) this.cosa = this.cosa2;
	this.a = this.timeK*this.koef*Math.acos(this.cosa)*180/this.PI;
	if(isNaN(this.a)) this.a = this.a2;
	for(var i = 0; i < weapons.all.length; i  ){
		if(this.id && this.per[weapons.all[i]] <= this.tper[weapons.all[i]]){
			this.per[weapons.all[i]]  = (t > 40) ? t 40 : 40;		//время выстрела (наращивается с каждым кадром)
		}
	} 
	if(this.id){
		this.opacity = (this.per.M < this.tper.M) ? 0.6 : 1;
		if(this.debaff.M.per != 1) this.debaff.M.per  = (t > 40) ? t 40 : 40;
		if(this.debaff.E.per <= this.debaff.E.tper) this.debaff.E.per  = (t > 40) ? t 40 : 40;
	}
	if(this.x > 700 this.w) this.x = -this.w;
	if(this.x < -this.w) this.x = 700 this.w;
	if(this.key == 'up') this.ra  = this.a
	else if(this.key == 'down') this.ra -= this.a;
	if(isNaN(this.x) || isNaN(this.y) || isNaN(this.r) || isNaN(this.a) || isNaN(this.ra) || isNaN(this.s) || isNaN(this.cosa) || isNaN(this.timeK)){
		this.x = (par.side == 'left') ? 40 : 660;		
		this.y = 450;
		this.s = this.wspeed;
		this.r = this.s*50/this.wradius;
		this.cosa = (this.r*this.r this.r*this.r-this.s*this.s)/(2*this.r*this.r);
		this.a = 0;
		this.ra = this.a;
	}
	if(this.opacity >= 0.5){
		ctx.globalAlpha = this.opacity;
		ctx.save();
		ctx.translate(this.x, this.y);
		ctx.fillStyle = '#f00';
		ctx.strokeStyle = '#000';
		ctx.fillRect(-34,-40,(this.life/100)*67,4);
		ctx.strokeRect(-34,-40,67,4);
		ctx.rotate(-this.ra*this.PI/180);
		ctx.drawImage(this.image, -this.w/2, -this.h/2, this.w, this.h);
		ctx.restore();
	}
}

Тут вроде всё понятно кроме имён переменных, расскажу про проверки на NaN. Одним из игроков был обнаружен (и позже проверен мной) неприятный баг — самоёт резко оказывается в левом верхнем углу и всё, можно выходить из игры. Всё из-за того, что при просчете некоторые переменные с небольшой долей вероятности становились === 0, а потом на них приходилось делить, и получалась такая лажа. После вкропления в код проверки на NaN баг изчез и все довольны.

if(this.opacity >= 0.5){…} код именно отрисовки на канвасе выполняется только в случае, если самолёт не находится в режиме невидимости (да, есть и такой бонус)

Еще момент — функция принимает параметр t. Он по сути нужен для слабых компьютеров/планшетов. Тоесть в этом параметре содержится инфа о том, сколько по времени рисуется кадр, и если это больше 40мс (всё работает на скорости 25 кадров в секунду), то все передвижения самолёта необходимо пропорционально увеличить. Эти изменения сократили время отрисовки примерно на 2-3мс, что уже не плохо.

Читайте также  Китайские символы для ников | 汉语 Учу китайский!

Следующим шагом стала оптимизация дыма от самолёта, т.к. больше всего памяти и процессора кушал именно он. О том как реализован дым, я писал в этой статье. Для оптимизации я сделал другую картинку — меньше в размере и которую не надо вращать (серый круглый градиент), и один раз отрисовал его на невидимом канвасе (буфер), а потом копировал с него.

Потом нашлась самая большая дырка — в отрисовке показателя перезарядки и количества для каждого оружия. В бою это выглядит так:

Стрелками показаны штуки, отрисовка которых была наиболее сложной (arc). Я решил, что т.к. большинство оружия бОльшую часть времени находится в полной перезарядке (или с отсутствием патронов (нижняя полосочка)), то можно просто нарисовать эти состояния на отдельной канве, и при необходимости просто рисовать готовое (не рисовать вообще). Самое интересное — что оптимизация этих 32 полукругов дала наибольший эффект — аш 5-6мс. И теперь миссия выполнена. При максимально возможном дыме у обоих игроков (чем меньше жизней тем больше дыма), кадр стал рисоваться 1-2мс, а без дыма вообще меньше 1мс (0.2-0.3 если брать среднее). Все цифры для Chrome 32.

Переломный момент.

Думаю многим известна история успеха игры «Гонки на клавиатурах»? (ссылку на статью не нашёл, буду рад вставить). Когда я узнал, сколько зарабатывают разработчики УСПЕШНЫХ приложений в социальных сетях, мне, наверное, как и другим захотелось создать свою игру для социальной сети.

И я начал активную работу над этим. Узнал, что еще и юнити проект можно собрать под веб… Замысел игры был относительно простой — своя линейка с чем нибудь и куртизанками. Чтобы было чем страдать в юнити, я даже уже было начал переговоры с дизайнером, который сможет отрисовать для игры мобов, карты и т.д.

Конечно, на голом энтузиазме никто работать не захотел, и я принял решение сделать что нибудь «попроще», чтобы набить карман для первоначального бюджета более серьёзного проекта. Этим «попроще» стала идея сделать онлайн гонки 2d на HTML5, только не тот онлайн, в котором нажимаешь на соперника, ждешь, и «ты выиграл!/проиграл =(», а реальный онлайн с управлением автомобиля на трассе.

Чтобы еще больше облегчить себе жизнь, гонки решил делать драговыми =) Ну а что… никаких поворотов, меньше физики… Короче говоря, спустя пол года всё закончилось тестовой версией с 20 автомобилями. Я уже выдохся искать все параметры для машин, т.к. пытался сделать реалистичную (даже 2d) физику, нужны были такие параметры, как аэродинамическое сопротивление, графики крутящего момента и прочие характеристики, которые, как оказалось, не так легко найти.

Но эти гонки были для меня чем-то обучающим. Я изучал всё новые новые технологии, придумывал велосипеды из костылей, натыкался по нескольку раз на свои грабли… И зато за эти пол года сложился некоторый идеальный для меня скелет клиент-сервера. Если говорить конкретно, то на клиента canvas, на сервере nodejs socket.io.

Банально, криво, зато работало. А если работает, значит не трогай =) В основном проблемы я испытывал из-за незнания языка, и даже самые простые ф-ии, уже встроенные в JS я велосипедил сам, не зная об их существовании. Примерно так выглядел небольшой кусок серверной части:

io =  require('socket.io');
mysql = require('mysql');
players = []; //массив, содержащий игроков. Каждый игрок - объект.
races = []; //массив гонок, где каждый элемент - массив объектов 4 игроков
//тут какая-то инициализация чего-то
...
io.sockets.on('connection', function(socket){
   socket.on('message', function(msg){
      msg = JSON.pars(msg);
      switch(msg.type){
         case 1:
            ...
         break;
            ...
      }
   }
}

(Кому уже не интересно читать а хочется посмотреть — ссылка в конце статьи)

Внутри swith был код, отправляющий определённый ответ пользователю. Кстати о том, что в case можно писать не только цифры я еще не знал, по этому приходилось держать в голове все типы сообщений, которых было ни много ни мало — около 50. Среди них и авторизация, и начало гонки, и конец гонки, и чат, и разные разные внутриигровые события.

Я знал, что для сокета вместо использования switch конструкции можно сразу писать socket.on(‘тип сообщения’…), но такой подход создаёт лишнюю порцию спагетти, и не сильно большое удобство написания кода, по этому непосредственно серверная часть конечной игры написана именно так.

То-есть скелет такой, позже то я всё таки узнал что в case можно писать что вздумается =). На клиенте конструкция один в один, только нету массива всех игроков, есть только объект самого себя (причем глобальный), и огромный набор функций (тоже глобальных), берущих на себя роль обработчиков входящих сообщений.

Постепенно я узнавал возможности JS, NodeJS и socket.io. Помню первый успешно-провалившийся тест максимального количества подключений. При 10к – 250 коннектов socket.io терял отзывчивость и не принимал новые подключения. После долгой возни помогла вот эта статья. Там всё подробно описано так что повторяться не буду.

Как я уже говорил, с гонками я бодался пол года, и на большее сил не хватило. Про идею с 3d игрой я уже совсем забыл, и от неё остался лишь ватман на комнатной двери со структурой БД. И вот, так как гонки оказались для меня слишком сложными, я решил еще больше упростить себе задачу, и сделать самолётики, летающие в воздухе и просто стреляющие друг в друга.

Работа над ошибками


Пораскинув мозгами о том, что

кладут в шампунь для волос

не так, решил что дело в свистелках, перделках и отсутствии социального спама на стенах (законного разумеется, от имени приложения). И как вы думаете что я сделал? Не угадали. Я снова стал переписывать игру. Начал снова с дизайна.

Ошибка 1. Я думал что из меня выйдет неплохой дизайнер.Решил упростить ещё сильнее, сделал огромные кнопки с некрасивыми надписями — это чудо я тоже не хочу показывать из религиозных соображений.

Ошибка 2. Мало свистелок (оружия, обвеса, как хотите)Тут была проделана огромная работа (над ошибками, конечно). Кроме того, что я добавил 12 новых видов оружия/бонусов, я сделал для каждого из них «спецэффект» при попадании — кстати смотрелось ничего.

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

То стало вот так: клиент нажимает клавишу, на сервер передаётся код клавиши, сервер смотрит — на какое оружие назначена у игрока эта клавиша, проверяет перезаряжено ли оружие, есть ли оно вообще, можно ли им пользоваться на этом самолёте (самолётов тоже добавил, у каждого свои преимущества, в том числе какое оружие можно использовать), и ещё куча мелких условий.

В случае, если не было ни одного false, данные о выстреле отправлялись обоим игрокам. Если false все таки нашелся, то у стрелявшего вежливо (красными большими буквами) показывалось сообщение вроде «ПЕРЕЗАРЯДКА!….». Собственно, если интересно то вот так:

case 'shot':
	if(Date.now() < players[socket.id].per[msg.typeW]){
		console.log('перезарядка');
	}
	else if(players[socket.id].weapons[msg.typeW] <= 0){
		players[socket.id].weapons[msg.typeW] = 0;
		console.log('закончились боеприпасы');
	}
	else if(weapons[players[socket.id].plane].weapons.indexOf(msg.typeW) < 0 && weapons.weapons.indexOf(msg.typeW) >= 0){
		console.log('оружие недоступно');
	}
	else if(weapons[players[socket.id].plane].bonuses.indexOf(msg.typeW) < 0 && weapons.bonuses.indexOf(msg.typeW) >= 0){
		console.log('бонус недоступен');
	}
	else{
		if(players[socket.id].wrate != weapons[players[socket.id].plane].rate   players[socket.id].rate && Date.now() >= players[socket.id].per.P){
			players[socket.id].wrate = weapons[players[socket.id].plane].rate   players[socket.id].rate;
		}
		if(weapons.weapons.indexOf(msg.typeW) >= 0){
			msg.per = weapons[msg.typeW].rate*1000/players[socket.id].wrate;
			players[socket.id].per[msg.typeW] = Date.now()   msg.per;
			players[socket.id].weapons[msg.typeW] -= 1;
			players[socket.id].pot[msg.typeW]  = 1;
			msg.hit = weapons[msg.typeW].radius;
			msg.speed = weapons[msg.typeW].speed;
			msg.val = players[socket.id].weapons[msg.typeW];
			msg.side = players[socket.id].side;
		}
		else if(weapons.bonuses.indexOf(msg.typeW) >= 0){
			msg.per = weapons[msg.typeW].rate*1000*players[socket.id].wdamage;
			players[socket.id].per[msg.typeW] = Date.now()   msg.per; 
			players[socket.id].weapons[msg.typeW] -= 1;
			players[socket.id].pot[msg.typeW]  = 1;
			msg.val = players[socket.id].weapons[msg.typeW];
			msg.side = players[socket.id].side;
			switch(msg.typeW){
				case 'I':
					players[socket.id].life  = 10;
					msg.life = Math.ceil(players[socket.id].life);
					if(players[socket.id].life > 100){
						players[socket.id].life = 100;
						msg.life = 100;
					}
				break;
				case 'J':
					players[socket.id].wsuspension  = 2;
				break;
				case 'L':
					players[socket.id].kamikadze = true;
				break;
				case 'P':
					players[socket.id].wrate = 100000;
				break;
			};
		}
		socket.json.send(msg);
		io.sockets.socket(players[socket.id].oppSocket).json.send(msg);
	}
break;

Немного пояснения к коду. players — массив всех игроков и с идентификацией по socket.id. Каждый элемент массива — это объект игрока, который создается сразу при входе в игру, методом присваивания того, что вернула MySQL. На самом деле, между каждым else if стояла отправка ошибки юзеру, но я этот код не нашёл. weapons — это массив параметров оружий и бонусов.

Просчет попадания я сделал по хитрому: просчитывает оппонент. Как бы это описать дальше… после успешного выстрела 1 игрока, 2 игрок отрисовывает у себя ракету и смотрит, не попала ли она в него (в себя). Если попала, то отправляет мэссадж на сервер с содержанием «что попало и в каком месте на экране».

Сервер высчитывает урон, и отправляет обоим игрокам. При этом рисуется сказочный спецэффект и ракета исчезает. Заодно на сервере проверяется сколько там чего осталось, жизней и т.д. — и если жизней вдруг у игрока 2 стало меньше 0, то записываем всё в БД, отправляем игрокам инфу о том кто выиграл а кто проиграл и все счастливы.Если интересно, то вот клиентский код рассчета попадания:

for(var i = 0; i < weapons_1.length; i  ){
	if(weapons_1[i].draw({t:avatars[0].time2, x:avatars[0].x, y:avatars[0].y, ra:avatars[0].ra}) == 'coordLimit'){
		weapons_1.splice(i,1);
	}
	else if(weapons_1[i].s && Math.abs(avatars[0].x-weapons_1[i].x) < 80 && Math.abs(avatars[0].y-weapons_1[i].y) < 80){
		var dl = Math.sqrt(((avatars[0].x-weapons_1[i].x)*(avatars[0].x-weapons_1[i].x)) ((avatars[0].y-weapons_1[i].y)*(avatars[0].y-weapons_1[i].y)));
		if(dl < (avatars[0].w/4 weapons_1[i].w/4) weapons_1[i].hit){
			sock.send($.toJSON({type: 'hit', typeW: weapons_1[i].typeW, i: i}));
			weapons_1.splice(i,1);
		};
	}
}

weapons_1 — ничто иное как массив всех выпущенных оппонентом ракет. Как видно, чтобы не грузить память, когда ракета покидает пределы канваса, она удаляется из массива.

Второй кусочек — небольшая оптимизация. Я не знаю, на сколько это полезно, но вот чтобы не считать каждый кадр гипотенузу (в треугольнике ракета — самолёт), сначала идет небольшой расчет абсолютного положения на экране. И если ракета по приблизительным меркам слишком далеко, то и гипотенузу считать незачем.

avatars[0] и avatars[1] — это объекты игроков. После прочтения этой статьи, почему-то решил назвать это аватарами, так и повелось.

«Событие» попадания на клиенте выгладит так:

case 'hit':
	avatars[0].life = msg.life;
	if(avatars[0].life <= 0) avatars[0].life = 0;
	if(avatars[0].life > 100) avatars[0].life = 100;
	$('#life span, #life2 span').html(msg.life);
	if(msg.damage <= 0){
		particles.push(new Effect({type: 'message', text: ('ПРОМАХ!'), x: avatars[0].x, y: avatars[0].y, t: 1000}));
	}
	else{ 
		particles.push(new Effect({type: 'message', text: ('-' (Math.ceil(msg.damage))), x: avatars[0].x, y: avatars[0].y, t: 1000}));
	}
	switch(msg.typeW){
		case 'C':
			avatars[0].ra -= msg.damage*msg.damage*avatars[1].koef;
		break;
		case 'E':
			avatars[0].debaff.E.per = Date.now();
			avatars[0].debaff.E.tper = Date.now() (msg.damage*500);
			particles.push(new Effect({type: 'message', text: ('Управление заблокировано!'), x: 350, y: 350, t: 2000}));
		break;
	}
	particles.push(new Effect({type: msg.typeW, x: avatars[0].x, y: avatars[0].y, side: 0, damage: msg.damage}));
break;
case 'pop':
	avatars[1].life = msg.life; 
	if(avatars[1].life <= 0) avatars[1].life = 0;
	if(avatars[1].life > 100) avatars[1].life = 100;
	if(weapons_0.length > msg.i){
		weapons_0.splice(msg.i,1);
	}
	if(msg.damage <= 0){
		particles.push(new Effect({type: 'message', text: ('ПРОМАХ!'), x: avatars[1].x, y: avatars[1].y, t: 1000}));
	}
	else{
		particles.push(new Effect({type: 'message', text: ('-' (Math.ceil(msg.damage))), x: avatars[1].x, y: avatars[1].y, t: 1000}));
	}
	switch(msg.typeW){
		case 'C':
			avatars[1].ra  = msg.damage*msg.damage*avatars[1].koef;
		break;
		case 'E':
			particles.push(new Effect({type: 'message', text: ('Прямое попадание! Управление соперника заблокировано!'), x: 300, y: 220, t: 2000}));
		break;
	}
	if(msg.typeW == 'F') msg.damage = 1;
	particles.push(new Effect({type: msg.typeW, x: avatars[1].x, y: avatars[1].y, side: 1, damage: msg.damage}));
break;

Тут case ‘pop’ — ничто иное как перевод слова «попал», так что те кто не может похвастаться знанием языка может меня поймут. particles — массив частиц (спецэффектов). Тут и прокомментировать нечего. Событие выстрела происходит по аналогии, только вместо частиц используются массивы weapons_0 (мои ракеты) и weapons_1 (его ракеты), с напихиванием в них новеньких объектов.

Ошибка 3. Множество багов.Если не считать мелких падений сервера из за резкого отсутствия каких-либо переменных, то основной проблемой для меня стал пинг. Так случилось, что на работе с патч-корда слетел коннектор, а в запасе как то не оказалось, и пришлось сидеть по wifi.

На работе он гниленький, так что задержки были обеспечены качественные (150-200мс вместо 18-20 привычных). Тестируя очередное оружие, заметил что через некоторое время в двух окнах браузера картина расположения самолётов совсем не одинаковая. А как оказалось, виной тому wifi, а точнее пинг а то и вовсе потери пакетов. Как решил — читаем дальше если не устали.

Текстовые символы для ников и социальных сетей

  • ˍ

    Модификатор буквы нижний макрон

  • Конец доказательства

  • Плюс в квадрате

  • Минус в квадрате

  • Умножение-крест в квадрате

  • Оператор точка в квадрате

  • Операция ромб

  • Программно-функциональный символ

  • Символ очистить экран

  • Верхняя половина блока

  • Нижняя одна восьмая блока

  • Нижняя одна четверть блока

  • Нижние три восьмых блока

  • Нижняя половина блока

  • Нижние пять восьмых блока

  • Нижние три четверти блока

  • Нижние семь восьмых блока

  • Полный блок

  • Левые семь восьмых блока

  • Левые три четверти блока

  • Левые пять восьмых блока

  • Левые пять восьмых блока

  • Левая половина блока

  • Левые три восьмых блока

  • Левая одна четверть блока

  • Левая одна восьмая блока

  • Правая половина блока

  • Легкое затемнение

  • Среднее затемнение

  • Темное затемнение

  • Верхняя одна восьмая блока

  • Черный квадрат

  • Белый квадрат

  • Белый квадрат с закругленными углами

  • Белый квадрат содержащий маленький черный квадрат

  • Квадрат с горизонтальным заполнением

  • Квадрат с вертикальным наполнением

  • Квадрат с ортогональным штриховым заполнением

  • Квадрат с верхним левым и нижним правым заполнением

  • Квадрат с верхним правым и нижним левым заполнением

  • Квадрат с диагональным штриховым заполнением

  • Маленький черный квадрат

  • Маленький белый квадрат

  • Черный прямоугольник

  • Белый прямоугольник

  • Черный вертикальный прямоугольник

  • Белый вертикальный прямоугольник

  • Черный параллелограмм

  • Белый параллелограмм

  • Черный указатель направо

  • Черный указатель налево

  • Черный алмаз

  • Белый алмаз

  • Белый алмаз содержащий маленький черный алмазик

  • Инвертированный маркер списка

  • Инвертированная окружность

  • Верхняя половина инвертированной окружности

  • Нижняя половина инвертированной окружности

  • Черный треугольник снизу справа

  • Черный треугольник снизу слева

  • Черный треугольник сверху слева

  • Черный треугольник сверху справа

  • Квадрат с левой черной половиной

  • Квадрат с правой черной половиной

  • Квадрат с верхней левой черной половинной диагональю

  • Квадрат с нижней правой черной половинной диагональю

    Читайте также  Дикие лебеди — Андерсен Г. Х. слушать онлайн или читать
  • Белый квадрат с вертикальной биссектрисой

  • Белая фигура сёги

  • Черная фигура сёги

  • Незакрашенный квадрат, отбрасывающий тень вниз вправо

  • Незакрашенный квадрат, отбрасывающий тень вверх вправо

  • Незакрашенный квадрат с правой нижней тенью

  • Незакрашенный квадрат с правой верхней тенью

  • Закрашенный ромб со вписанным внутрь внутрь незакрашенным крестом

  • Тонкая вертикальная черта

  • Средняя вертикальная черта

  • вертикальная черта

  • Ромб

  • Конечная разность

  • Прямоугольный треугольник

  • Черный треугольник с вершиной вверх

  • Белый треугольник с вершиной вверх

  • Маленький черный треугольник с вершиной вверх

  • Маленький белый треугольник с вершиной вверх

  • Черный треугольник с вершиной направо

  • Белый треугольник с вершиной направо

  • Маленький черный треугольник с вершиной направо

  • Маленький белый треугольник с вершиной направо

  • Черный указатель направо

  • Белый указатель направо

  • Черный треугольник с вершиной вниз

  • Белый треугольник с вершиной вниз

  • Маленький черный треугольник с вершиной вниз

  • Маленький белый треугольник с вершиной вниз

  • Черный треугольник с вершиной налево

  • Белый треугольник с вершиной налево

  • Маленький черный треугольник с вершиной налево

  • Маленький белый треугольник с вершиной налево

  • Черный указатель налево

  • Белый указатель налево

  • Черный треугольник снизу справа

  • Черный треугольник снизу слева

  • Черный треугольник сверху слева

  • Черный треугольник сверху справа

  • Белый треугольник с вершиной вверх и точкой

  • Треугольник с вершиной вверх и черной левой половиной

  • Треугольник с вершиной вверх с правой черной половиной

  • Оператор набла

  • `

    Апостроф

  • ˊ

    Модификатор буквы акут ударение

  • Канадская слоговая письменность последний акут

  • Дефис

  • Неразрывный дефис

  • Цифровое тире

  • Горизонтальная линия

  • Дефис маркер списка

  • Строго эквивалентный

  • Двойное подмножество

  • Двойное супермножество

  • Двойное пересечение

  • Двойное объединение

  • Дуга

  • Верхний левый угол

  • Верхний правый угол

  • Нижний левый угол

  • Нижний правый угол

  • Горизонтальная линия вытянутая

  • легкая горизонтальная

  • горизонтальная

  • легкая вертикальная

  • вертикальная

  • легкое тройное тире горизонтальное

  • жирное тройное тире горизонтальное

  • легкое тройное тире вертикальное

  • жирное тройное тире вертикальное

  • легкое четверное тире горизонтальное

  • жирное четверное тире горизонтальное

  • легкое четверное тире вертикальное

  • жирное четверное тире вертикальное

  • легкая вниз в направо

  • легкая вниз и направо

  • вниз и легкая направо

  • вниз и направо

  • легкая вниз и налево

  • легкая вниз и налево

  • вниз и легкая налево

  • вниз и налево

  • легкая вверх и направо

  • легкая вверх и направо

  • легкая вверх и направо

  • вверх и легкая направо

  • вверх и направо

  • легкая вверх и налево

  • легкая вверх и налево

  • вверх и легкая налево

  • вверх и налево

  • легкая вертикальная и направо

  • легкая вертикальная и направо

  • легкая вертикальная и направо

  • вверх и легкая направо и вниз

  • вниз и легкая направо и вверх

  • вертикальная и легкая направо

  • легкая вниз направо и вверх

  • легкая вверх и направо и вниз

  • вертикальная и направо

  • легкая вертикальная и налево

  • легкая вертикальная и налево

  • вверх и легкая налево и вниз

  • вниз и легкая вверх и налево

  • вертикальная и легкая налево

  • легкая вниз и вверх и налево

  • легкая вверх и налево и вниз

  • вертикальная и налево

  • легкая вниз и горизонтально

  • налево и легкая направо и вниз

  • направо и легкая налево и вниз

  • легкая вниз и горизонтально

  • вниз и легкая горизонтально

  • легкая направо и налево и вниз

  • легкая налево и направо и вниз

  • вниз и горизонтально

  • легкая вверх и горизонтально

  • налево легкая направо и вниз

  • направо и легкая налево и вверх

  • легкая вверх и горизонтально

  • вверх и легкое горизонтально

  • легкая направо и налево и вверх

  • легкая налево и вверх и направо

  • вверх и горизонтально

  • легкая вертикальная и горизонтальная

  • налево легкая вертикально и направо

  • направо легкая вертикально и налево

  • легкая вертикальная горизонтальная

  • вверх легкая горизонтально и вниз

  • вниз легкая горизонтально и вверх

  • вертикально легкая горизонтально

  • вверх и налево легкая вниз и направо

  • вверх и направо легкая вниз и налево

  • вниз и налево легкая вверх и направо

  • вниз и направо легкая вверх и налево

  • легкая вниз горизонтально и вверх

  • легкая вверх вниз горизонтально

  • легкая направо вертикально и налево

  • легкая налево вертикально и направо

  • вертикально и горизонтально

  • легкое двойное горизонтальное тире

  • жирное двойное горизонтально тире

  • легкое двойное вертикальное тире

  • жирное двойное вертикальное тире

  • двойная горизонтальная

  • двойная горизонтальная

  • вертикальная

  • вниз одинарная и направо двойная

  • вниз и одинарная направо

  • вниз и направо

  • вниз и направо

  • вниз и направо

  • одинарная вниз налево

  • одинарная вниз налево

  • вниз и одинарная налево

  • вниз и одинарная налево

  • вниз и налево

  • вниз и налево

  • одинарная вверх направо

  • вверх и одинарная направо

  • вверх и направо

  • вверх и направо

  • одинарная вверх налево

  • одинарная вверх налево

  • вверх и одинарная налево

  • вверх и одинарная налево

  • вверх и налево

  • вверх и налево

  • вертикальная одинарная и направо двойная

  • вертикальная двойная и одинарная направо

  • вертикальная двойная и одинарная направо

  • вертикальная и направо

  • вертикальная одинарная налево

  • вертикальная одинарная налево

  • вертикальная двойная и одинарная налево

  • вертикальная двойная и одинарная налево

  • вертикальная и налево

  • вертикальная и налево

  • одинарная вниз горизонтально

  • одинарная вниз горизонтально

  • вниз и одинарная горизонтально

  • вниз и одинарная горизонтально

  • вниз и горизонтально

  • вниз и горизонтально

  • одинарная вверх горизонтально

  • одинарная вверх горизонтально

  • вверх и одинарная горизонтально

  • вверх и одинарная горизонтально

  • вверх и горизонтально

  • вверх и горизонтально

  • одинарная вертикально горизонтально

  • одинарная вертикально горизонтально

  • вертикально и одинарная горизонтально

  • вертикально и горизонтально

  • вертикально и горизонтально

  • легкая дуга вниз и направо

  • легкая дуга вниз и налево

  • легкая дуга вверх и вверх и налево

  • легкая дуга вверх и направо

  • легкая диагональ с верхнего правого в нижний левый

  • легкая диагональ с верхнего левого в нижний правый

  • легкий диагональный крест

  • легкая слева

  • легкая вверх

  • легкая направо

  • легкая вниз

  • налево

  • вверх

  • направо

  • вниз

  • легкая налево и направо

  • легкая вверх и вниз

  • налево и легкая направо

  • вверх и легкая вниз

  • Левая одна восьмая блока

  • Правая одна восьмая блока

  • Дуга в верхнем левом квадранте

  • Дуга в среднем правом квадранте

  • Дуга в нижнем правом квадранте

  • Дуга в нижнем левом квадранте

  • Верхняя половина круга

  • Нижняя половина круга

  • Триграмма для небес

  • Триграмма для озера

  • Триграмма для огня

  • Триграмма для гром

  • Триграмма для ветра

  • Триграмма для воды

  • Триграмма для гор

  • Триграмма для земли

  • Знак умножения

  • Идентичный, тождество

  • Потолок числа, левая скобка

  • Пол числа, левая скобка

  • Длинное тире

  • Потолок числа, правая скобка

  • Пол числа, правая скобка

  • Минус

  • Черта деления

  • Оператор точка

  • Оператор круг

  • Оператор звездочки

  • Равно

  • Тире

  • рыбий глаз

  • Белый круг

  • Пунктирный круг

  • Круг с вертикальным заполнением

  • Бычий глаз

  • Черный круг

  • Круг с левой черной половиной

  • Круг с черной правой половиной

  • Круг с черной нижней половиной

  • Круг с черной верхней половиной

  • Круг с черным верхним правым квадрантом

  • Черный круг с левым верхним белым квадрантом

  • Левая половина черного круга

  • Правая половина черного круга

  • Прозрачный маркер списка

  • Большой круг

  • Незакрашенный оттенённый круг

  • ⦿

    Шайба

  • Плюс

  • Умножение-крест

  • Шрифт Брайля точки-12345678

  • Шрифт Брайля точки-123456

  • Шрифт Брайля точки-23456

  • Шрифт Брайля точки-13456

  • Шрифт Брайля точки-3456

  • Шрифт Брайля точки-12456

  • Шрифт Брайля точки-2456

  • Шрифт Брайля точки-1456

  • Шрифт Брайля точки-456

  • Шрифт Брайля точки-12356

  • Шрифт Брайля точки-2356

  • Шрифт Брайля точки-1356

  • Шрифт Брайля точки-356

  • Шрифт Брайля точки-1256

  • Шрифт Брайля точки-256

  • Шрифт Брайля точки-156

  • Шрифт Брайля точки-56

  • Шрифт Брайля точки-12346

  • Шрифт Брайля точки-2346

  • Шрифт Брайля точки-1346

  • Шрифт Брайля точки-346

  • Шрифт Брайля точки-1246

  • Шрифт Брайля точки-246

  • Шрифт Брайля точки-146

  • Шрифт Брайля точки-46

  • Шрифт Брайля точки-1236

  • Шрифт Брайля точки-236

  • Шрифт Брайля точки-136

  • Шрифт Брайля точки-36

  • Шрифт Брайля точки-126

  • Шрифт Брайля точки-26

  • Шрифт Брайля точки-16

  • Шрифт Брайля точки-6

  • Шрифт Брайля точки-12345

  • Шрифт Брайля точки-2345

  • Шрифт Брайля точки-1345

  • Шрифт Брайля точки-345

  • Шрифт Брайля точки-1245

  • Шрифт Брайля точки-245

  • Шрифт Брайля точки-145

  • Шрифт Брайля точки-45

  • Шрифт Брайля точки-1235

  • Шрифт Брайля точки-235

  • Шрифт Брайля точки-135

  • Шрифт Брайля точки-35

  • Шрифт Брайля точки-125

  • Шрифт Брайля точки-25

  • Шрифт Брайля точки-15

  • Шрифт Брайля точки-5

  • Шрифт Брайля точки-1234

  • Шрифт Брайля точки-234

  • Шрифт Брайля точки-134

  • Шрифт Брайля точки-34

  • Шрифт Брайля точки-124

  • Шрифт Брайля точки-24

  • Шрифт Брайля точки-14

  • Шрифт Брайля точки-4

  • Шрифт Брайля точки-123

  • Шрифт Брайля точки-23

  • Шрифт Брайля точки-13

  • Шрифт Брайля точки-3

  • Шрифт Брайля точки-12

  • Шрифт Брайля точки-2

  • Шрифт Брайля точки-1

  • Шрифт Брайля чистый

  • Заключение

    При создании и оформлении сообщества ВКонтакте, используйте все возможности страниц для бизнеса. Это позволит сделать продвижение более эффективным. В частности сделайте кнопку действия, добавьте все адреса и графика работы.

    Сайт «ВКонтакте» очень популярен, в силу чего на нем зарегистрированы не только обычные люди, но и звезды шоу-бизнеса, певцы и актеры. Они известные и узнаваемые лица, не обделены поклонниками как наяву, так и в социальной сети. Количество их настоящих друзей «ВКонтакте» не так велико, а вот что делать с остальными заявками, в которых предлагают дружбу?!

    Данная услуга доступна для всех желающих и не требует никаких дополнительных затрат и особых обременительных действий. Известно несколько способов создания подписки на свою страницу.

    Люди, которые на вас подписаны, – это ваши подписчики. Их количество просматривается чуть ниже главной фотографии страницы. Эти люди вас как бы «читают» – в их ленте показаны ваши изменения и новости.

    Люди и страницы, на которые подписаны вы, отображаются с левой стороны чуть ниже списка друзей. Вы также можете просматривать в своей ленте их новости и обновления. В любой момент, если вам что-то не понравилось, можно отписаться от любого вида информации, поступающей от них.

    Как создать подписку «В Контакте» удалением?

    Для того чтобы сделать данную процедуру, достаточно просто зайти раздел с вашими друзьями и удалить тех товарищей, которых вы хотите переместить в подписчики. Удаленные друзья станут автоматически подписавшимися на ваши обновления. Метод распространенный, но не очень эффективный. Ведь стараясь приобрести как можно больше подписчиков, вы можете удалить из друзей важного для вас человека.

    Как создать подписку «В Контакте» при заявках в друзья?

    К любому, даже не самому общительному и популярному пользователю соцсети поступают заявки в друзья от других людей. К кому-то реже, к кому-то чаще. Это могут быть товарищи, просто знакомые и неизвестные люди. Лишь от вас зависит, кто станет вашим другом.

    Как сделать подписку «В Контакте» таким образом? Да совершенно просто! Когда в следующий раз к вам поступит заявка от лица, которое не представляет для вас интереса, перед вами будут две кнопки: «принять в друзья» и «оставить в подписчиках». Выберите второй вариант – и человек автоматически перейдет в ваши подписчики.

    Как создать подписку «В Контакте», используя настройки?

    Такой вариант подходит для людей, которые не любят совершать лишних манипуляций. Зайдите у себя на странице в меню настроек и перейдите в раздел «приватность». Из всего предложенного найдите графу под названием «кто может добавлять меня в друзья» и исправьте положение на «друзья друзей».

    От количества подписавшихся на вас пользователей соцсети зависит ваше место в поиске среди людей. От переведения в подписчики не застрахован никто, поэтому существует и такая функция, как «отписаться» от человека.

    Как создать событие «В Контакте»?

    Для того чтобы организовать «ВКонтакте» встречу, собрание или поход на какое-либо событие, достаточно зайти в раздел «мои группы», который находится слева в меню пользователя. Откроется список ваших групп и встреч. В верхнем правом углу существует надпись «создать группу/сообщество», вот ее и следует нажать.

    https://www.youtube.com/watch?v=zreUT2jMR2k

    Никаких строгих ограничений по создаваемым группам и мероприятиям нет. Однако, если ваш «контент» будет содержать информацию, которая заведомо вредит пользователям, ее попросту закроют или удалят. В любом случае, все, что происходит в социальной сети «ВКонтакте», не должно выходить за рамки закона.

    Понравилась статья? Поделиться с друзьями:
    ТВОЙ ВК
    Добавить комментарий

    Adblock
    detector