Unity3D Массивы в JavaScript | Проблема со скриптом

Программирование на Юнити.

Unity3D Массивы в JavaScript | Проблема со скриптом

Сообщение FirstGameMaker 04 май 2020, 19:52

Несколько дней бьюсь уже с этой проблемой. Пытаюсь написать таблицу лидеров с помощью джавы, но так как я с этим языком не особо знаком, то получается очень слабо.
Есть скрипт с урока по созданию, который висит на сайте pubnub.com:
Синтаксис:
Используется javascript
export default (request) => {
    const db = require("kvstore");
    const pubnub = require("pubnub");
    var json = JSON.parse(request.message);
    console.log(json);
    let { username, score } = json;
    //let { username, score } = request.message;
    var scorearray1 = <img src="./images/smilies/unmarked.gif" alt="[]" title="Запланировано" />;
    var scorearray2 = <img src="./images/smilies/unmarked.gif" alt="[]" title="Запланировано" />;
    var usernamearray1 = <img src="./images/smilies/unmarked.gif" alt="[]" title="Запланировано" />;
    var usernamearray2 = <img src="./images/smilies/unmarked.gif" alt="[]" title="Запланировано" />;
    //db.removeItem("data"); //reset the block
    db.get("data").then((value) => {
        if(value){
            console.log("value", value);
            let i = 0;
            value.score.some(item => {
                if(parseInt(item) < parseInt(score)){ //Parse into int since variables are currently strings
                    //Score
                    scorearray2 = value.score.slice(0, i);
                    scorearray1 = value.score.slice(i, value.score.length);
                    console.log("values", scorearray2, scorearray1);
                    scorearray2.push(score);
                    var newList = scorearray2.concat(scorearray1);
                    newList.splice(-1,1);
                   
                    //Username
                    usernamearray2 = value.username.slice(0, i);
                    usernamearray1 = value.username.slice(i, value.score.length);
                    console.log("values", usernamearray2, usernamearray1);
                    usernamearray2.push(username);
                    var newList2 = usernamearray2.concat(usernamearray1);
                    newList2.splice(-1,1);
                   
                    value.score = newList;
                    value.username = newList2;
                    db.set("data", value);
                   
                    return true; //break out of the loop using Array.prototype.some by returning true
               }
                i++;
            });
            pubnub.publish({
                "channel": "my_channel2",
                "message": value
            }).then((publishResponse) => {
                console.log("publish response", publishResponse);
            });
        } else {
            db.set("data", {
                "username":["unset","unset","unset","unset","unset"],
                "score":["0","0","0","0","0"]});
        }
    });
    return request.ok();
};
 

Проблема в том, что можно отправлять json с одним и тем же username и score сколько хочешь раз, и каждый раз он будет заноситься в массив, и я не имею ни малейшего понятия как с этим бороться, поэтому прошу помощи у вас. Буду рад любому отклику. Если нужна доп информация пожалуйста пишите.
Последний раз редактировалось FirstGameMaker 05 май 2020, 18:44, всего редактировалось 4 раз(а).
FirstGameMaker
UNец
 
Сообщения: 39
Зарегистрирован: 29 апр 2019, 11:57

Re: Unity3D Таблица лидеров на JavaScript | Проблема со скриптом

Сообщение FirstGameMaker 05 май 2020, 15:02

Пробовал заменять по индексу, но ничего не выходит
Синтаксис:
Используется javascript
 
                    var idx = usernamearray2.indexOf(username);
                    usernamearray2.splice(idx, 1, username);          
                    scorearray2.splice(idx, 1, score);                    
 
FirstGameMaker
UNец
 
Сообщения: 39
Зарегистрирован: 29 апр 2019, 11:57


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 2