почему не хочет работать?

  • Автор темы Автор темы Nick302
  • Дата начала Дата начала

Nick302

Junior Developer
Есть такой вот tagbro.js на клиенте, чтоб видеть друзей - но почему то не видно, в дате данные точно есть
Код:
const maxDistance = 50 * 50;
const width = 0.020;
const height = 0.0015;
const border = 0.001;
var localplayer = mp.players.local;

const color = [51, 102, 0, 255];

mp.nametags.enabled = false;

mp.events.add('render', (nametags) => {
    const graphics = mp.game.graphics;
    const screenRes = graphics.getScreenResolution(0, 0);

    nametags.forEach(nametag => {
        let [player, x, y, distance] = nametag;
        if (distance <= maxDistance) {
            let scale = (distance / maxDistance);
            if (scale < 0.5) scale = 0.5;
            y -= scale * (0.004 * (screenRes.y / 1080));
             if(player.getVariable('idbase') != null && localplayer.getVariable('idbase') != null) {
            if(player.getVariable('idbase') == localplayer.getVariable('idbase')){
            graphics.drawText(player.name.replace('_', ' '), [x, y],
                {
                    font: 4,
                    color: color,
                    scale: [0.35, 0.35],
                    outline: true
                });

        }
}}}
    )
})
 
А в nametags? Просто я не в курсе что оно такое. Если там все ок, то попробуй свои проверки убрать - проверить вообще рабочий код или нет. Если работает, то надо разбираться с проверками.
 
Да без проверок работает, фиг его знает, может как то не правильно проверяю getownshareddat? что проверяет вообще getVariable? оно все должно проверять если не ошибаюсь
 
Тогда пробуй в консоль или в чат выводить значения, которые сравниваешь и проверяй их. Возможно у тебя где-то сравнивается 0 и "0" или что-то подобное
 
Не, я имею в виду что означает idbase. Какой-то ид который должен совпадать у меня и у другого игрока. А если друзей несколько, то у всех одинаковый idbase?
idbase = id группы - например 1 или 10 или 1502, если у друзей совпадает idbase то в этом случае отрисовывать drawtext с неймтегом, если человек не состоит в группе то idbase = -1
 
Скинь кусок кода где ты присваиваешь эти переменные (idbase)
Чекнул через f11, себя проинициализировал нормально мне выводило - мой idbase а вот idbase - игрока который брался от nametags - то писало undefiend
Код с инициализацией
Код:
метод загрузки акка {
player.SetOwnSharedData("idbase",user.idbase);
+ вызов метода на полную инициализацию
}

метода полной инициализации {
     if (player.GetOwnSharedData<int>("idbase") <= 0) return;
            using (var db = new DatabaseConBase())
            {
                BaseEntity? group =
                    db.baseentite.FirstOrDefault(x => x.id == player.GetOwnSharedData<int>("idbase"));
                if (group != null)
                {
                    player.SetOwnSharedData("havegroup", true); // bool
                    player.SetOwnSharedData("userleadergroup", group.socialnumber); // ulong
                    player.SetOwnSharedData("userleaderid", group.userleader);
                    player.SetOwnSharedData("namegroup", group.namesgroup); // string
                    player.SetOwnSharedData("idbase", group.id); // name
                }
            }
}
 
Ну так себе, LINQ, дженерики, setownshareddata, ну и возможность присвоить null - ```BaseEntity?``` тип и знак вопроса, потупил есть ли такое в JS но на ум приходит из похожих операторов только нулевого слияния, но я не мастер JS), ну и using промолчу, насчет var ладно допустимо - хоть в JS и не принято уже.
 
У тебя стоит проверка на ("idbase") <= 0), может такое быть, что у игрока idbase = 0? И эта проверка не пропускает 0
Короче, после каждой строчки пропиши консоль лог и проверяй, где не проходит
 
Последнее редактирование:
У тебя стоит проверка на ("idbase") <= 0), может такое быть, что у игрока idbase = 0? И эта проверка не пропускает 0
Короче, после каждой строчки пропиши консоль лог и проверяй, где не проходит
Выше писал что у игрока undefiend а у меня все ок
 
Может еще у тебя player, не совсем player на клиенте. Проверь есть у него свойство player.remoteId?
И кстати SetOwnSharedData синхронизирует дату на все клиенты или только для самого игрока?
 
Назад
Верх