This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Вопрос Как достать игрока, как объект не передавая его ранее

dereksjq

Участник портала
Автор темы
17 Июн 2023
64
10
20
JavaScript:
rpc.register("sendToReport", (value) => {
    const player = mp.players.local;
    mysql.InsertData("reports", ["SenderLogin", "Message"], [`'${player.name}'`, `'${value}'`], true)
    mp.players.forEach(target => {
        if (GetPlayerAdmin(target) < 1) return;
        target.outputChatBox(`!{#FF0000}REPORT++ | !{#FFFFFF}Новое обращение: ${value} [/ans]`);
    });
})

Вот у меня есть метод, который должен получить объект игрока, для будущего использования.
Я понимаю, чтобы это сделать - нужно переписать участки кода, которые идут в последовательности до sendToReport, и в них тоже передавать сразу-же player.
Честно, я не хочу это переписывать, т.к обнаружу еще сотню багов. Можно-ли как то получить объект игрока, если ранее не передавал его по функциям?
Ну тоесть, чтобы небыло ошибки:
Код:
TypeError: Cannot read property 'name' of undefined

Весь код, если нужен - оставлю в спойлере.

JavaScript:
// reportMenu.js , который вызывает CEF

mp.events.add("rpcSend", (value) => {
    browser.execute('hideReport2();')
    rpc.callServer("sendToReport", value)
});

// index.js в CEF

let value = 'Unknown Value'

function SendToAdmin() {
    if (!value) return;
    value = document.getElementsByClassName('textInput')[0].value
    mp.events.call("rpcSend", (value))
    document.getElementsByClassName("textInput")[0].value = "";
}]

// server-side - events.js

rpc.register("sendToReport", (value) => {
    const player = mp.players.local;
    mysql.InsertData("reports", ["SenderLogin", "Message"], [`'${player.name}'`, `'${value}'`], true)
    mp.players.forEach(target => {
        if (GetPlayerAdmin(target) < 1) return;
        target.outputChatBox(`!{#FF0000}REPORT++ | !{#FFFFFF}Новое обращение: ${value} [/ans]`);
    });
})
 

FireFeed

Модератор
Команда форума
17 Дек 2020
102
48
127
mp.players.local работает только на клиенте. Посмотри что у тебя находится в value на сервере
 
Реакции: dereksjq