В стандартном решении, на сколько я помню, нет передачи напрямую на сервер.Привет всем. Решил понемногу делать сервер в связке JS+JS. Возник вопрос как условный логинпароль из окна регистрации передать на серверную часть
// cef
mp.trigger("ui:server:event", "login", ["login", "password"])
// client-side
mp.events.add("ui:server:event", (eventName, data) => {
if (eventName === "" || !data[0]) {
return mp.console.logInfo("[ui:server:event] the arguments do not meet the requirements")
}
mp.events.callRemote(eventName, data)
})
// server-side
mp.events.add("login", (data) => {
})
А как это смешать с vue?В стандартном решении, на сколько я помню, нет передачи напрямую на сервер.
Ты можешь использовать, либо RPC, либо написать свой эвент на клиенте, который принимает в виде аргумента название эвента и массив данных. Далее по этому названию сразу триггерить на сервере эвент.
JavaScript:// cef mp.trigger("ui:server:event", "login", ["login", "password"]) // client-side mp.events.add("ui:server:event", (eventName, data) => { if (eventName === "" || !data[0]) { return mp.console.logInfo("[ui:server:event] the arguments do not meet the requirements") } mp.events.callRemote(eventName, data) }) // server-side mp.events.add("login", (data) => { })
Не понимаю твоего вопроса, на vue тебе нужно просто использовать mp.trigger или другой метод, который передаст на клиент данные.А как это смешать с vue?
Можешь пожалуйста дать пример кода с mp.trigger, как это может выглядеть в реальности?Не понимаю твоего вопроса, на vue тебе нужно просто использовать mp.trigger или другой метод, который передаст на клиент данные.
Можешь пожалуйста дать пример кода с mp.trigger, как это может выглядеть в реальности?
Не пробовал обрабатывать через JSON.parse или JSON.stringify (мало ли сработает)
если эвент "mp.events.add("register")", то первым аргументом всегда идет игрок на сервере.Появилась новая проблема: Вместо логина и пароля -
Посмотреть вложение 14358
JavaScript:mp.trigger("ui:server:event", "register", [username, password]);
JavaScript:mp.events.add("register", (data) => { console.log(data) })
Можешь дать пожалуйста, как это должно выглядеть?если эвент "mp.events.add("register")", то первым аргументом всегда идет игрок на сервере.
UPD. Опять я хуйню сморозил, исходя из консоли, это 100% сервер. В таком случае, ты первым аргументом получаешь игрока и называешь его data. В таком случае ты должен сначала принимать player (игрок, который инициировал эвент) и data (массив данных, которые ты передал). Ребят, хватит все на форум постить. Про pendingRPC я нашел ответ в другой теме.
mp.events.add("register", (player, data) => {})Можешь дать пожалуйста, как это должно выглядеть?
Спасибо, всё работает, но когда пытаюсь получить пароль, а это наверное data[1] вылезает undefinedmp.events.add("register", (player, data) => {})
no no no, listen listen...mp.events.add("register", (player, data) => {})
Вадим, это же обычный JS исходя из примеров. Так то я с C# не слазию, поэтому про типизацию помним всегда.no no no, listen listen...
Данил, где типизация?
А тебе нужно через JSON.stringify перевести массив в строку и в консоли посмотреть содержание. А еще лучше не отвлекать на протяжении получаса, я доте хочу выиграть((Спасибо, всё работает, но когда пытаюсь получить пароль, а это наверное data[1] вылезает undefined
Понял, GL))Вадим, это же обычный JS исходя из примеров. Так то я с C# не слазию, поэтому про типизацию помним всегда.
А тебе нужно через JSON.stringify перевести массив в строку и в консоли посмотреть содержание. А еще лучше не отвлекать на протяжении получаса, я доте хочу выиграть((
mp.trigger("ui:server:event", "register", login, password);
mp.events.add("register", (player, data) => {
try {console.log(JSON.stringify(data))} catch (e) {console.log(e)}
})
mp.events.add("register", (player, data) => {
try {console.log(JSON.stringify(data[0]))} catch (e) {console.log(e)}
})
mp.events.add("register", (player, data) => {
try {console.log(JSON.stringify(data[0].login))} catch (e) {console.log(e)}
})
mp.events.add("register", (player, data) => {
try {console.log(JSON.stringify(data.login))} catch (e) {console.log(e)}
})
mp.events.add("register", (player, data) => {
try {console.log(JSON.stringify(data.login), JSON.stringify(data.password))} catch (e) {console.log(e)}
})
а ты проверь на CEF, что ты именно передаешь в переменной password.Короче тут я передаю login и password в data
JavaScript:mp.trigger("ui:server:event", "register", login, password);
А тут я пытаюсь их достать
JavaScript:mp.events.add("register", (player, data) => { try {console.log(JSON.stringify(data))} catch (e) {console.log(e)} }) mp.events.add("register", (player, data) => { try {console.log(JSON.stringify(data[0]))} catch (e) {console.log(e)} }) mp.events.add("register", (player, data) => { try {console.log(JSON.stringify(data[0].login))} catch (e) {console.log(e)} }) mp.events.add("register", (player, data) => { try {console.log(JSON.stringify(data.login))} catch (e) {console.log(e)} }) mp.events.add("register", (player, data) => { try {console.log(JSON.stringify(data.login), JSON.stringify(data.password))} catch (e) {console.log(e)} })
Но ни-ши-ша, достаётся только логин(Везде, где я написал только для login подразумевается что и для пароля тоже было(Например data.login, data.password))
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?