• Просьба не публиковать сообщения с предложениями продажи модов или сборок!

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

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

Nick302

Junior Developer
Сообщения
46
Есть такой вот 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? оно все должно проверять если не ошибаюсь
 
Да без проверок работает, фиг его знает, может как то не правильно проверяю getownshareddat? что проверяет вообще getVariable? оно все должно проверять если не ошибаюсь
А что у тебя в дате idbase?
 
Тогда пробуй в консоль или в чат выводить значения, которые сравниваешь и проверяй их. Возможно у тебя где-то сравнивается 0 и "0" или что-то подобное
 
Не, я имею в виду что означает idbase. Какой-то ид который должен совпадать у меня и у другого игрока. А если друзей несколько, то у всех одинаковый idbase?
idbase = id группы - например 1 или 10 или 1502, если у друзей совпадает idbase то в этом случае отрисовывать drawtext с неймтегом, если человек не состоит в группе то idbase = -1
 
Скинь кусок кода где ты присваиваешь эти переменные (idbase)
 
Скинь кусок кода где ты присваиваешь эти переменные (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 синхронизирует дату на все клиенты или только для самого игрока?
 
Назад
Верх