Карта положения онлайн-игрока в игре?

  • Автор темы Автор темы klikker
  • Дата начала Дата начала
Не очень понял вопрос. я делал чтобы просто посмотреть визуально на карте где точки респавна и рестарта и все =)

 
ну ничего не мешает вызов какой нибудь api прикрутить и рисовать игроков =)
Или всех боссов с плашкой таймера до респауна, но кэшировано и с задержкой или кто сделает на opencv парсер и бота, будут 24/7 фармить
 
да что угодно, на что фантазии хватит
 

странно, без впн ниоткрываеццо...


это из ООГ бота вроде )

Размер больше и без названий на карте

найс) но походу обработанно нейросеткой
 
Или всех боссов с плашкой таймера до респауна
А чем это будет отличаться от того что в статистике на сервере показывают живой или мертвый бос и время до респа?
Координаты их и так все знают +-

найс) но походу обработанно нейросеткой
руками (обеими) рисовал!!!
 
Реакции: Nixy
Та просто кому как удобнее.
С другой стороны, это действительно не нужно когда можно прям внутри получить информацию о спавне и статус рб.
 
Делал у себя на вебе подобную карту
Формула для скейлинга координат в контейнере

JavaScript:
const x = Math.round((116 + (char.locX + 107823) / 200));
const y = Math.round((2580 + (char.locY - 255420) / 200));

Для контейнера width: 1808px; height: 2616px;

Если честно почему именно такие цифры я уже не помню, где-то записывал себе это и про*бал


 
Было бы здорово, если бы вы могли нанести на него аналогичное наложение на свою карту. Очень хорошая работа!
 

скорее всего цифры из коэффицента размера мира через делитель 200 к размеру картинки карты + смещение начала координат
 
Оверпостинг
Для контейнера width: 1808px; height: 2616px;
Если карта (размер изображения) больше, тогда надо и скейлинг менять. Ок, понял.

Размер больше и без названий на карте
Если брать это изображение, 7908х10480
А так же за основу (считаем его рабочим)
const x = Math.round((116 + (char.locX + 107823) / 200)); const y = Math.round((2580 + (char.locY - 255420) / 200)); Для контейнера width: 1808px; height: 2616px;
И заюзать читкод на бессмертие, что бы не расчитывать самому

JavaScript:
const scaleX = 7908 / 1808;
const scaleY = 10480 / 2616;

const x = Math.round((116 * scaleX) + ((char.locX + 107823) / 200) * scaleX);
const y = Math.round((2580 * scaleY) + ((char.locY - 255420) / 200) * scaleY);
Возможно такой финт ушами и пройдет
 
Последнее редактирование:
ну для картинки 7908х10480
у меня вышло примерно так

659 это длина стороны квадарата (7908 / 12 квадратов), offset_x offset_y по сути смещение где находиться 0, 0 карты на картинке.
5 кол-во квадратов по x до 0
8 кол-во квадратов по y до 0

JavaScript:
var mult = 659;
var offset_x = mult * 5;
var offset_y = mult * 8;

function Round(n){
    return Math.round(Math.round(n * 10) / 10)
}

function transformCoords_tol2(e) {
    var x = (e.latlng.lng - offset_x) * (32768 / mult); // Преобразование по оси X
    var y = (e.latlng.lat - offset_y) * (32768 / mult) * -1;  // Преобразование по оси Y
    return [Round(x), Round(y)];
}

function transformCoords_toMap(latlng) {
    var x = (latlng[0]) / (32768 / mult) + offset_x; // Преобразование по оси X
    var y = ((latlng[1]) / (32768 / mult) * -1) + offset_y;  // Преобразование по оси Y
    return [Math.round(x), Math.round(y)];
}

 
Последнее редактирование:
по y правда неверно немного судя по всему.. картинка чутка не пропорциональная
 
Смотреть там на эту тему в основном файлы __base__/scripts/func.map.php и __base__/templates/func.map.tpl
А там все верно?
А то есть момент
Код:
POS_X=>round(($chars[$x]["xloc"]+131072)/(32768*11/1024)-2),
POS_Y=>round(($chars[$x]["yloc"]+262144)/(32768*11/1024)-2),
Но сама картинка не 1024х1024, а
Код:
images/map.jpg); background-repeat: no-repeat; width: 1024px; height: 1483px
 
Насколько помню да - это же просто вычисление отношения размера изображения и размера мира в игре, т.е. условно говоря сколько примерно игровых единиц расстояния влазит в один пиксель картинки мапы.
и можно высчитать как по ширине, так и по высоте картинки - отношение в любом случае будет примерно одно и то же.
 
ага а если затянет ? Будут сидеть смотреть всей семьей как игру в кальмара... А время от времени можно из катапульты шмальнуть рандомно по карте как в морском боеи в игре прилетает метеорит в то место по которому шмальнул на карте при ударе ресаются мобы начинается лютый замес с красивым Dropp в чате печатается аннонс об лютом замесе с предложением сразу тпшнутся на эту опасную землю.. Ну и все продолжение следует
 
Реакции: Nixy
Данный сайт использует cookie. Вы должны принять их для продолжения использования. Узнать больше…