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

Nick302

Junior Developer
Сообщения
33
Есть такой вот 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
                });

        }
}}}
    )
})
 

Lev Angel

Developer
Команда форума
Скриптер
Сообщения
826
А в nametags? Просто я не в курсе что оно такое. Если там все ок, то попробуй свои проверки убрать - проверить вообще рабочий код или нет. Если работает, то надо разбираться с проверками.
 

Nick302

Junior Developer
Сообщения
33
Да без проверок работает, фиг его знает, может как то не правильно проверяю getownshareddat? что проверяет вообще getVariable? оно все должно проверять если не ошибаюсь
 

Lev Angel

Developer
Команда форума
Скриптер
Сообщения
826
Да без проверок работает, фиг его знает, может как то не правильно проверяю getownshareddat? что проверяет вообще getVariable? оно все должно проверять если не ошибаюсь
А что у тебя в дате idbase?
 

Tavern_Master

Trainee
Сообщения
11
Тогда пробуй в консоль или в чат выводить значения, которые сравниваешь и проверяй их. Возможно у тебя где-то сравнивается 0 и "0" или что-то подобное
 

Nick302

Junior Developer
Сообщения
33
Не, я имею в виду что означает idbase. Какой-то ид который должен совпадать у меня и у другого игрока. А если друзей несколько, то у всех одинаковый idbase?
idbase = id группы - например 1 или 10 или 1502, если у друзей совпадает idbase то в этом случае отрисовывать drawtext с неймтегом, если человек не состоит в группе то idbase = -1
 

Nick302

Junior Developer
Сообщения
33
Скинь кусок кода где ты присваиваешь эти переменные (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
                }
            }
}
 

Nick302

Junior Developer
Сообщения
33
Ну так себе, LINQ, дженерики, setownshareddata, ну и возможность присвоить null - ```BaseEntity?``` тип и знак вопроса, потупил есть ли такое в JS но на ум приходит из похожих операторов только нулевого слияния, но я не мастер JS), ну и using промолчу, насчет var ладно допустимо - хоть в JS и не принято уже.
 

Verdiji

Junior Developer
Скриптер
Сообщения
32
У тебя стоит проверка на ("idbase") <= 0), может такое быть, что у игрока idbase = 0? И эта проверка не пропускает 0
Короче, после каждой строчки пропиши консоль лог и проверяй, где не проходит
 
Последнее редактирование:

Nick302

Junior Developer
Сообщения
33
У тебя стоит проверка на ("idbase") <= 0), может такое быть, что у игрока idbase = 0? И эта проверка не пропускает 0
Короче, после каждой строчки пропиши консоль лог и проверяй, где не проходит
Выше писал что у игрока undefiend а у меня все ок
 

Lev Angel

Developer
Команда форума
Скриптер
Сообщения
826
Может еще у тебя player, не совсем player на клиенте. Проверь есть у него свойство player.remoteId?
И кстати SetOwnSharedData синхронизирует дату на все клиенты или только для самого игрока?
 
Верх