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

Вопрос Почему не срабатывает TriggerEvent.

dereksjq

Участник портала
17 Июн 2023
64
10
20
Столкнулся с проблемой, что player.TriggerEvent просто не передает информацию, тоесть не вызывает даже функцию.

Client-Side:
C#:
        [Command("addAccount")]
        public void CreateAccount(Player player, string social, string nickName, string Password, string Email, int RecoveryCode)
        {
            player.TriggerEvent("SendMySQL", social, nickName, Password, Email, RecoveryCode);
        }

Server-Side:
JavaScript:
mp.events.add("SendMySQL", (social, nick, pass, email, recovcode) => {
    connection.query(`INSERT INTO accounts (SocialClubID, Nick, Password, Email, RecoveryCode) VALUES ('${social}', '${nick}', '${pass}', '${email}', '${recovcode}')`, function (error, results) {
        console.log(results);
        if (error) {
            console.log(error);
        }
    });
});
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
3,004
1,739
211
28
Предположу, что ты что-то перепутал.
Чтобы вызвать серверный ивент с клиента тебе нужен вот такой метод:
C#:
RAGE.Events.CallRemote(string eventName, params object[] args);

Так же, на клиенте нет атрибута Command, это серверный атрибут.
Метод TriggerEvent - тоже серверный, его нет на клиенте.
 
Реакции: dereksjq

dereksjq

Участник портала
17 Июн 2023
64
10
20
Не совсем правильно ты меня понял, я перепутал местами сервер и клиент-сайд или хз, короче - прикол в том, что у меня по синтаксису нет RAGE.Events.CallRemote(string eventName, params object[] args); , даже после импорта RAGE. Я как-то обходился через триггеры, но не помню как.

Тоесть нужно вызвать ивент из C# в JS.
 

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
4,231
2,083
208
35
Последнее редактирование:
Реакции: dereksjq

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
3,004
1,739
211
28
Так я неверно понял или ты перепутал?
Это в корне разные вещи.

У тебя снизу написано серверсайд, он же отправляет данные в MySQL базу данных, поэтому полагаю, что снизу ты написал верно.
Сверху же у тебя ещё один сервер-сайд, только теперь на C#, который отправляет данные на клиент-сайд.
Клиентского же скрипта в твоём примере нет вообще.
Клиентский C# используется путём импортирования rage-sharpN.dll в проект и, ещё раз скажу, там нет TriggerEvent метода (он серверный) и атрибута Command, которые ты используешь в "клиентской стороне" в примере. Bootstrapper.dll используется только для серверного C# и подключать его к клиентским скриптам не нужно.
 
Реакции: dereksjq