Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Классический пинбол, как в древнем игровом автомате или в компактной игрушке: есть пружины, шарики и препятствия. В нашем варианте можно не только зарабатывать очки: чтобы пройти уровень, придется выполнить дополнительную миссию.

Пинбол Пикабу

Аркады, На ловкость, Казуальные

Играть

Топ прошлой недели

  • CharlotteLink CharlotteLink 1 пост
  • Syslikagronom Syslikagronom 7 постов
  • BydniKydrashki BydniKydrashki 7 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

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

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Новости Пикабу Помощь Кодекс Пикабу Реклама О компании
Команда Пикабу Награды Контакты О проекте Зал славы
Промокоды Скидки Работа Курсы Блоги
Купоны Biggeek Купоны AliExpress Купоны М.Видео Купоны YandexTravel Купоны Lamoda
Мобильное приложение

Javascript

С этим тегом используют

Программирование IT HTML IT юмор Программист Frontend CSS Все
965 постов сначала свежее
28
xco1D
3 месяца назад
Web-технологии

История о любопытстве и минусах⁠⁠

Всем привет!

Решил выглянуть из ридонли ради спортивного интереса.

Для ЛЛ - как отобразить минусы с помощью расширения Chrome и кода на JS + немного CSS. Установка в конце поста.

История о любопытстве и минусах Javascript, Минусы, CSS, Кривые руки, Google Chrome, Длиннопост

Так это выглядит

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

История о любопытстве и минусах Javascript, Минусы, CSS, Кривые руки, Google Chrome, Длиннопост

Консоль разработчика видит всё и даже больше

Логично, что если минусы на самом деле имеются у каждого поста, с ними можно работать с помощью JS.

Инструмент, который я использовал (помимо того, что выдают при респауне) - User JavaScript and CSS из магазина Chrome.

История о любопытстве и минусах Javascript, Минусы, CSS, Кривые руки, Google Chrome, Длиннопост

Герой дня

На самом деле, использовать можно и что-то иное, тут каждый волен действовать как хочет.

  • Первая версия появилась на свет на зачатках знаний по JS и мастерстве гугления (Insert google meme here)

Забрать код можно тут: https://justpaste.it/gdvjm

Сначала всё это работало только после загрузки страницы и после прокрутки у новых постов не было минусов. Немного гугления и было найдено обновление по интервалу и обработчик прокрутки (его я и использовал)

В целом, всё работает и так, на этом можно было остановиться. Смущало только то, что минусы не всегда прогружались, если скролл не дошёл до конца страницы.

Тогда я обратился на тёмную сторону решил воспользоваться знаниями нейросети и появилась вторая версия с обработкой каждого поста отдельно при начальной загрузке страницы и событии подгрузки постов.

  • Вторая версия. Помимо нововведений в части JS, чуть изменил добавление контейнера для минусов, назначил класс и чуть причесал CSS.

Забирать тут: https://justpaste.it/itxj8

Установка

Использовать всё это предельно просто:

  1. Найти расширение в магазине - User JavaScript and CSS

  2. После скачивания заходим в chrome://extensions/ и активируем режим разработчика. Это требуется для доступа расширения к изменению содержимого сайтов;

  3. В настройках расширения нужно добавить сайт как на скрине - https://pikabu.ru/*

  4. Cоответственно пунктам 1 и 2 - JavaScript (JS) и CSS. Переходите по ссылкам на первую или вторую версию и копируйте весь текст между разделителями в виде знаков "=": ==========================================

История о любопытстве и минусах Javascript, Минусы, CSS, Кривые руки, Google Chrome, Длиннопост

Окно настроек расширения

При большом желании можно упаковать всё в расширение и опубликовать в магазине, но до этого я не дошёл (а также 5$ за регистрацию - это 5$)

Вряд ли кто-то будет ставить себе уже упакованное расширение от новорега, потому, ссылок на обменник не даю.


P.S. Код кривее некуда, об этом я догадываюсь. JS я не знаю и без сомнений, маэстро JS'a и CSS могут сделать более красивый и правильный вариант. Потому, за конструктивную критику и предложения по улучшению заранее благодарен! :)

P.P.S. Если пост нарушает какие-то правила, сообщите, пожалуйста. Что-то по теме сабжа ничего не нашёл.

Показать полностью 3
[моё] Javascript Минусы CSS Кривые руки Google Chrome Длиннопост
5
ITProsto
ITProsto
4 месяца назад

Как сделать переключение темы на JavaS?⁠⁠

Программирование IT Javascript Видео Вертикальное видео Короткие видео
0
7
lineage2js
lineage2js
4 месяца назад
ИТ-проекты пикабушников

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js⁠⁠

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Привет.

Я разрабатываю эмулятор сервера для Lineage 2 Chronicle 1: Harbingers of war на Node.js.

Столкнулся с проблемой синхронизации скорости персонажа на сервере с клиентом. Когда в игре вы нажимаете мышкой в то место, куда хотите перейти то происходит плавный переход с анимацией движения. На сервере в этот момент тоже происходит движение по таймеру, но не такое плавное.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост
Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

C(client) – двигается плавно из одной точки в другую. S(server) – делает прирост координат по таймеру.

Для примера я взял сборку написанную на java l2j-lisvus Сборок много. Но все они являются fork’ами проекта l2jserver https://l2jserver.com/И многое наследуется. В том числе и передвижение персонажа.

В l2j-lisvus, как и во всех сборках l2jserver перемещение персонажа на сервере идет при помощи таймера с приростом одинаковых значений.

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

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

На коротких расстояниях проблема незаметна. Нога наступает точно в монету.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

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

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

А если выкрутить скорость на максимум (900) то проблема расхождения очевидна. Это связанно с тем, что помимо скорости бега есть скорость ходьбы.

Как работает передвижение персонажа на сервере.

За основу взяты базовые характеристики персонажа. Скорость бега 126.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

126 — это количество внутренних unit’ов за секунду.

На данной схеме идет прирост координат персонажа каждые 1000мс на 126 unit’ов. Исходя из схемы выше пример кода для действий персонажем после достижения пункта назначения:

// Прироста координат нет. Просто считаем когда персонаж дойдет до конечных координат.
const distance = 1500;
const playerSpeed = 126;
const ticks = distance / playerSpeed; // 11.90
const time = ticks * 1000; // 11900mc

setTimeout(() => {
// действие персонажа после бега
}, time);

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

На коротких расстояниях.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

На длинных расстояниях.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Расхождения на коротких расстояниях.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Расхождения на длинных расстояниях.

Зеленой зоной показана точка куда должна ступить нога персонажа если бы не было расхождений.

Рост скорости при развитии персонажа.

126 — это базовая скорость. И по мере развития персонажа будет расти и скорость передвижения. А значит расхождение будет больше. Но перед тем, как создать формулу надо подтвердить теорию, что скорость ходьбы влияет на расхождение.

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

Пакет UserInfo.js 83 строчка.

writeD(player.runSpeed);
writeD(player.walkSpeed);

Базовые значения:

runSpeed: 126

walkSpeed: 88

Выставляю значения walkSpeed: 126. Если скорость ходьбы будет равна скорости бега, то расхождения должны пропасть.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост
Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Нога персонажа достигает правильной конечной точки.

Персонаж синхронизирован и начинает атаку вовремя. Теперь надо понять, как скорость ходьбы влияет на расхождения между клиентом и сервером.

Сколько же персонаж успевает пройти перед тем, как начинает бежать?

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

runSpeed: 10

walkSpeed: 600

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Ходьба быстрее бега.

При скорости шага в 600 персонаж успевает пройти 250, прежде чем начинает бежать.

600 / 250 = 2.4

700 / 291 = 2.4

800 / 333 = 2.4

Из этого вывод, что персонаж перед тем, как начать бежать успевает пройти расстояние в 2.4 раза меньше, чем его скорость ходьбы.

Значит при скорости ходьбы 88 персонаж пройдет 36 unit’ов.

88 / 2.4 = 36

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Первое деление — это начало движения (ходьба) а следующие деления — это бег.

Решение

Формула для расчета времени:

сколько_прошли_на_старте = скорость_ходьбы / 2.4

(((дистанция_между_нпц_и_игроком - сколько_прошли_на_старте) / скорость_бега) * 1000мс) + время_которое_прошли

Для примера дистанция 1500.

Из них мы 36 прошли.

1500 - 36 = 1464 расстояние для бега.

Скорость бега 126 в секунду.

1464 / 126 = 11.61 (количество отрезков, которое мы пройдем за секунду).

11.61 * 1000 = 11610мс бега.

к 11610 надо прибавить время ходьбы

Скорость ходьбы 88 в секунду.

1000 / 88 = 11.36мс за 1 unit

36 unit * 11.36мс = 408мс

11610 + 408 = 12018мс

12018мс является точным временем от начала старта и до конца.

Сравниваем со старым временем 11900мс. Разница в 118мс.

setTimeout(() => {
player.attack(npc);
}, 12018);

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Скорость бега 126.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Скорость бега 900.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Положение ноги при скорости 126.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Положение ноги при скорости 900.

Как видно выше разница положения ног при разных скоростях отсутствует, а значит решение работает.

Ссылка на проект: https://github.com/lineage2js

Ссылка на блог: https://t.me/lineage2js

Показать полностью 19
[моё] Программирование Разработка Lineage 2 Javascript Nodejs Гифка Длиннопост
6
1313
Rahlkan
Rahlkan
4 месяца назад

Наркотики зло, если что⁠⁠

Наркотики зло, если что Юмор, Наркотики, Frontend, Javascript, Длиннопост, Комментарии на Пикабу, Комментарии
Наркотики зло, если что Юмор, Наркотики, Frontend, Javascript, Длиннопост, Комментарии на Пикабу, Комментарии

#comment_338783468

Показать полностью 2
Юмор Наркотики Frontend Javascript Длиннопост Комментарии на Пикабу Комментарии
53
12
lineage2js
lineage2js
4 месяца назад
ИТ-проекты пикабушников

Все оружие в Lineage 2 C1 за 1 минуту⁠⁠

Привет.

Занимаюсь разработкой сервера для Lineage 2 C1 на JavaScript(Node.js). Копался в клиенте игры и решил сделать перебор всего оружия для теста.

Ссылка на проект: https://github.com/lineage2js

Ссылка на блог: https://t.me/lineage2js

Показать полностью
[моё] Программирование Разработка Lineage 2 Javascript Nodejs Видео Вертикальное видео Короткие видео Игры
16
59
Lepenson
Lepenson
4 месяца назад
Истории из жизни

Коммуникология⁠⁠

Решил я тут интереса ради походить на халявный онлайн-интенсив по JavaScript от одной рекрутингово-айтишной компании. "Лишним не будет", — решило моё воспалённое сознание. Но, как оказалось, воспаляться люблю не только я.

Мы довольно мило пообщались с ботом курсов в Telegram (это важно!). Потом — не менее мило — с эйчаром. Тоже в Telegram. Потом я прошёл какой-то простенький тест. Всё ещё в Telegram. Потом со мной захотел пообщаться "технический специалист". Внезапно в Skype. Якобы потому что голосом. Минутка недоумения.

Ладно, я установил Skype, которым не пользовался последние лет пять. Подключился к беседе. Честно признался, что в JS я ни в зуб ногой, а тест проходил на общей эрудиции. В итоге меня немножко поругали, немножко похвалили и пообещали сообщить о принятом решении в ближайшее время. После чего продублировали озвученное текстом. Опять-таки в Telegram.

Но время шло. Шло. Шло. Я в какой-то момент уже и забыл об этих странных курсах: увлёкся и погрузился в совсем другие вещи... Пока сегодня мне не пришло сердитое сообщение — да, конечно же, в Telegram:

— Lepenson, добрый день. Вы не посещаете лекции и не выполняете ДЗ на интенсиве JS. Вынуждены приостановить ваше обучение. Будем рады видеть вас в числе своих студентов в будущем!

Я малость подофигел и решил уточнить:

— Добрый день. Прошу прощения, а интенсив уже запущен? Никто и ни в какой форме не уведомил меня, что он уже идёт. Более того, никто и ни в какой форме не дал мне понять, что я отобран для участия в программе. Спасибо, что хоть сейчас сообщили.

В процессе беседы выяснилось, что товарищи якобы всё это время писали мне трепетные признания в любви... Но в Skype. В том самом Skype, которым воспользовались один (!) раз за всё время нашего общения. Который я больше не запускал с того самого дня. К слову, вот только что открыл — а список уведомлений пуст. "Сдаётся мне, всё таки Коля пиздит..." (с)

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

Показать полностью
[моё] Истории из жизни IT Разработка Курсы Онлайн-курсы Отбор Общение Работа HR Отдел кадров Тестирование Собеседование Javascript Skype Telegram Глупость Путаница Мат Текст
12
8
v0x0
v0x0
4 месяца назад

О важности консультантов в кино⁠⁠

Решил я тут вечерок скрасить занимательной фантастикой, желательно про космос, и чтобы хоть кого-то из актёров я знал. Смотрю, читаю аннотации и тут ВАУ, фильм 2024 года, Лоренс Фишбёрн, который Морфеус, Миллер и прочее и прочее, Томер Капон, который Французик из Пацанов, да ещё про космос! Надо смотреть.

Вместо аннотации: Будущее, космический корабль летит к Титану — крупнейшему спутнику Сатурна. Фильм Ускорение (Slingshot) 2024

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

О важности консультантов в кино Фрагмент, Обзор фильмов, Javascript, Jquery, Фантастика, Космическая фантастика

Запрос на jQuery к twitter.com (кадр из фильма)

Собственно, оказалось, что при помощи запроса к твитам, причём по старому домену (даже на момент выпуска фильма, Маск его уже на X.com перетащил), на JavaScript с библиотекой jQuery, да ещё с устаревшим объявлением переменных через var пишутся.

Или может кто-то знатно пошутил? Я смеялся, да. Но фильм потом полностью серьёзно смотреть не мог.

Показать полностью 1
[моё] Фрагмент Обзор фильмов Javascript Jquery Фантастика Космическая фантастика
10
6
Antony.kark
Antony.kark
4 месяца назад

Войти в IT⁠⁠

Всем привет!

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

У меня была мечта попасть в IT.

Дано:
- у меня нет никаких подходящих навыков
- образование электрика
- 3 года стажа на заводе
- умею разговаривать
- из техники есть мобилка Samsung серии А и динозавр ACER, который при установке Windows 8 просил убить его.

Очередное утро, чувствую, что хватит тянуть лямку на заводе, и все-таки пора попробовать воплотить в жизнь мечту. Решение нужно было принимать срочно, иначе - еще годик, еще три, еще 10 и потом и до пенсии немного останется.
Увольняюсь с завода, устраиваюсь в IT- компанию в службу поддержки оператором в чатах и звонках. Правда со второго раза, первый решил списать тестовое для спокойствия, поймали, устно ответил как будто работал там год, поняли, что просто перестраховывался и не валенок. Переработки, нервные клиенты и партнеры добивали, но перспектива завода обратно не особо привлекала. Через полгода получилось пойти на повышение до старшего смены.

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

Но стояла цель попасть в IT отдел, а чтобы до него достучаться (до небес было бы проще конечно и быстрее) нужно было начать что-то изучать.

Был выбран не самый простой путь - самообразование (какие-то уроки, задания мудрые книги и куча всего) ну и конечно ролики на You-Tube. Выбрал для себя Frontend, очень нравилось смотреть на круто сделанные сайты, и всегда хотелось начать их делать самому.

После нескольких месяцев начал уже сам писать какие-то простенькие сайты(лендинги).

Войти в IT Рекомендации, Опыт, Фриланс, Карьера, Личный опыт, Тестирование, IT, Код, Javascript, HTML, Приветствие, Длиннопост

Первый блин, почти без комочков

Войти в IT Рекомендации, Опыт, Фриланс, Карьера, Личный опыт, Тестирование, IT, Код, Javascript, HTML, Приветствие, Длиннопост

Его продолжение

Получился вот такой лендинг. Начинал с HTML, CSS. До GULP и JS в принципе еще даже не доходил, знаю много знакомых которые посвящали время только JS, а базовый HTML особо не трогали. Постепенно начал погружаться в JS. На проектах начал добавлять формы сообщений, бургер меню.

Войти в IT Рекомендации, Опыт, Фриланс, Карьера, Личный опыт, Тестирование, IT, Код, Javascript, HTML, Приветствие, Длиннопост

Мой первый бургер

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

Войти в IT Рекомендации, Опыт, Фриланс, Карьера, Личный опыт, Тестирование, IT, Код, Javascript, HTML, Приветствие, Длиннопост

На цвет клац-клац

Войти в IT Рекомендации, Опыт, Фриланс, Карьера, Личный опыт, Тестирование, IT, Код, Javascript, HTML, Приветствие, Длиннопост

Другая картинка появится тыц-тыц

Но это еще далеко не верхушка айсберга. Взял плотно в обучение GULP, REACT. В будущем планирую перейти на VUE.

Пока что я в верстке, беру небольшие проекты, кодю для себя что-то что на сайтах вижу и обучаюсь и расту дальше.

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

И если есть желающие посмотреть код, я буду рад его закинуть посоветоваться, если так можно здесь :)

Всем хорошего времени суток!

Показать полностью 5
[моё] Рекомендации Опыт Фриланс Карьера Личный опыт Тестирование IT Код Javascript HTML Приветствие Длиннопост
13
Посты не найдены
О Нас
О Пикабу
Контакты
Реклама
Сообщить об ошибке
Сообщить о нарушении законодательства
Отзывы и предложения
Новости Пикабу
RSS
Информация
Помощь
Кодекс Пикабу
Награды
Команда Пикабу
Бан-лист
Конфиденциальность
Правила соцсети
О рекомендациях
Наши проекты
Блоги
Работа
Промокоды
Игры
Скидки
Курсы
Зал славы
Mobile
Мобильное приложение
Партнёры
Промокоды Biggeek
Промокоды Маркет Деливери
Промокоды Яндекс Путешествия
Промокоды М.Видео
Промокоды в Ленте Онлайн
Промокоды Тефаль
Промокоды Сбермаркет
Промокоды Спортмастер
Постила
Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии