• Из-за обновления GTA 5 (был добавлен новый патч) может временно не работать вход в RAGE Multiplayer.

    Ошибка: Ваша версия Grand Theft Auto V не поддерживается RAGE Multiplayer.
    ERROR: Your game version is not supported by RAGE Multiplayer.

    Данная ошибка говорит о том, что GTA V обновилась до новой версии (GTA Online тоже). Вам необходимо обновить саму игру в главном меню вашего приложения (Steam / Epic Games / Rockstar Games).
    Если после этого RAGE:MP все равно не работает - вам нужно дождаться выхода патча для самого мультиплеера (обычно это занимает от нескольких часов до нескольких дней).

    Новости и апдейты Rockstar Games - https://www.rockstargames.com/newswire/
    Статус всех служб для Rockstar Games Launcher и поддерживаемых игр: https://support.rockstargames.com/ru/servicestatus


    Grand Theft Auto 5 (+ GTA Online) последний раз были обновлены:

Проблема [.Net] ExecuteJs - не вызываеться функция CEF

Edward Esteban

Новый участник
11 Ноя 2020
12
1
60
С серверной части на клиент присылаю Guid, на самой CEF форме есть input с типом hidden, в который и пытаюсь присвоить Guid.
Сервер и клиентcкая часть на .Net.

Клиент:
C#:
_createPlayerForm.ExecuteJs($"SetUserId({args[1]})");

CEF:
JavaScript:
function SetUserId(userId){
    $("#user-Id").val(userId);
    mp.console.logInfo(userid, true, true);
}
С формы приходят вот такие данные:
1661956614889.png

ID должен быть таким:
1661956720977.png

Кто знает подскажите где я ошибся или что делаю не так?

PS:
На другой форме функция без параметров вызываеться и на CEF приходит сообщение
C#:
_loginRegistrationForm.ExecuteJs("InvalidPassword()");
 

DaVilka

Старожил
BackEnd developer
16 Сен 2020
759
276
128
вызывай через .Call
C#:
public static void ExecuteFunction(string function, params object[] args)
{
    // Call the function with the parameters
    CustomBrowser.Call(function, args);
}
 

Edward Esteban

Новый участник
11 Ноя 2020
12
1
60
вызывай через .Call
C#:
public static void ExecuteFunction(string function, params object[] args)
{
    // Call the function with the parameters
    CustomBrowser.Call(function, args);
}
Вызывать
Код:
_createPlayerForm.Call("SetUserId", args[1]);
или
_createPlayerForm.Call("SetUserId(id)", args[1]);
И вместо той функции использовать?
Код:
mp.events.add("SetUserId", args =>{
    //TODO:
})
Т.к попробовал оба варианта не отсылает на CEF
 

DaVilka

Старожил
BackEnd developer
16 Сен 2020
759
276
128

Edward Esteban

Новый участник
11 Ноя 2020
12
1
60
Посмотреть вложение 4846
судя по этому скрину у тебя три аргумента, у а йдишника индекс 2
Не совсем, так, вот тут это уже с учетом адишника, у меня есть Юзер которого я создаю, на одной форме и конкретный игрок на другой, и айди юзера надо привязать игроку, я пытаюсь в <input type="hidden"> засунуть айди и после этого отправляю эти три аргумента на клиент -> сервер
 

DaVilka

Старожил
BackEnd developer
16 Сен 2020
759
276
128
Не совсем, так, вот тут это уже с учетом адишника, у меня есть Юзер которого я создаю, на одной форме и конкретный игрок на другой, и айди юзера надо привязать игроку, я пытаюсь в <input type="hidden"> засунуть айди и после этого отправляю эти три аргумента на клиент -> сервер
не понял, для того что бы вызвать функцию в цеф из клиент используется ExecuteJs либо Call, для того что бы вызвать функцию из цеф в клиенте, на клиенте надо создать ивент и вызывать из цеф его
C#:
public Browser()
{
    Events.Add("destroyBrowser", DestroyBrowserEvent);
}
public static void DestroyBrowserEvent(params object[] args)
{
    CustomBrowser.Destroy();
    CustomBrowser = null;
}
 

Edward Esteban

Новый участник
11 Ноя 2020
12
1
60
не понял, для того что бы вызвать функцию в цеф из клиент используется ExecuteJs либо Call, для того что бы вызвать функцию из цеф в клиенте, на клиенте надо создать ивент и вызывать из цеф его
C#:
public Browser()
{
    Events.Add("destroyBrowser", DestroyBrowserEvent);
}
public static void DestroyBrowserEvent(params object[] args)
{
    CustomBrowser.Destroy();
    CustomBrowser = null;
}
Я с сервера отправляю данные на клиент
C#:
NAPI.ClientEvent.TriggerClientEvent(player, "ShowCreatePlayerForm", true, user.Id);

В клиенте вызываю следующий код:
C#:
Main(){
    Events.Add("ShowCreatePlayerForm", ShowCreatePlayerCef);  
}

private void ShowCreatePlayerCef(object[] args)
{
   
    bool isActive = (bool)args[0];
    _createPlayerForm.Active = isActive;
   
    _createPlayerForm.ExecuteJs($"SetUserId({args[1]})");   // Не отправляет на CEF
}

Через ExecuteJs пытаюсь вызвать эту функцию передав args[1] и она не вызывается через .Call тоже не получилось
JavaScript:
function SetUserId(userId){
    $("#user-Id").val(userId);
}
 

DaVilka

Старожил
BackEnd developer
16 Сен 2020
759
276
128
Я с сервера отправляю данные на клиент
C#:
NAPI.ClientEvent.TriggerClientEvent(player, "ShowCreatePlayerForm", true, user.Id);

В клиенте вызываю следующий код:
C#:
Main(){
    Events.Add("ShowCreatePlayerForm", ShowCreatePlayerCef); 
}

private void ShowCreatePlayerCef(object[] args)
{
  
    bool isActive = (bool)args[0];
    _createPlayerForm.Active = isActive;
  
    _createPlayerForm.ExecuteJs($"SetUserId({args[1]})");   // Не отправляет на CEF
}

Через ExecuteJs пытаюсь вызвать эту функцию передав args[1] и она не вызывается через .Call тоже не получилось
JavaScript:
function SetUserId(userId){
    $("#user-Id").val(userId);
}
кинь весь c# клиентку, и попробуй указать тип данных args[1]
 

Edward Esteban

Новый участник
11 Ноя 2020
12
1
60
кинь весь c# клиентку, и попробуй указать тип данных args[1]
Если функцию вызываю без параметров то ExecuteJs работает
C#:
private void SetUserId(object[] args)
        {
            _createPlayerForm.ExecuteJs("SetUserId()");
        }
JavaScript:
function SetUserId(){

    $("#message-id").text("Called function");

    $("#user-Id").val("TEST");   
}

но если подставляю параметр то уже не работает
C#:
private void SetUserId(object[] args)
        {
            _createPlayerForm.ExecuteJs($"SetUserId(args[0])");
        }
JavaScript:
function SetUserId(id){

    $("#message-id").text("Called function");

    $("#user-Id").val(id);   
}
 

Edward Esteban

Новый участник
11 Ноя 2020
12
1
60
Все. Получилось, разобрался, через .Call все пришло, спасибо за помощь.
 
Реакции: DaVilka