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

Проблема Вопрос с чатиком

DOSA & MIWUK

Участник портала
14 Дек 2022
246
19
68
Смотрите, сделал кастомные ивенты,и почему то чат работает некорректно, использую все правильно(все выводится) команда (/s, /b, /do) и т.д работает а вот в обычный чат когда пишу не работает,кто знает в чем проблема может быть
 

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
3,809
1,863
208
35
что значит кастомные евенты?
насколько я видел почти во всех сборках стоит один и тот же кастомный чат +-

что-то вроде

JavaScript:
chat.js
.......

var chatAPI = {
    push: (text) => {
        chat.size++;
        chat.container = $(".chat ul.chat_messages");
        if (chat.size >= 50) chat.container.children(":first").remove();
        if (chat.timestamp == 0) chat.container.append("<li>" + text + "</li>");
        else chat.container.append("<li>[" + chat.stime + "] " + text + "</li>");
        chat.container.scrollTop(9999);
    },

    clear: () => {
        chat.container.html("");
    },

    activate: (toggle) => {
        if (toggle == false && $('.footer_chat').hasClass('active')) enableChatInput(false);
        chat.active = toggle;
    },

    show: (toggle) => {
        if (toggle) chatvar.show();
        else chatvar.hide();
        chat.active = toggle;
    }
};

if (mp.events) {
    let api = { "chat:push": chatAPI.push, "chat:clear": chatAPI.clear, "chat:activate": chatAPI.activate, "chat:show": chatAPI.show };

    for (let fn in api) {
        mp.events.add(fn, api[fn]);
    }
}

и у тебя есть какой-то евент в худе или где-то ещё который обрабатывает сообщения с сервера, и вызывает чат апи

если у тебя работают команды - получается то что ты вводишь в чате уходит на сервер, но не возвращается обратно
значит тебе нужно проверить всю цепочку от своего

C#:
SafeTrigger.ClientEvent(player, "sendChat", "s", "{name} кричит: " + message, names);
до обработки на клиенте внутри этого евента сообщения и отправки в чат апи

JavaScript:
mp.events.add('sendChat', (type, msg, players) => {
....
// всякие-разные обработки
....
  mp.gui.chat.push(msg);
// или
 browser.call("chat:push", msg);
// в зависимости от того, обозначен ли у тебя чат как browser.markAsChat()
});

Если ты сделал "свои кастомные евенты" и всё перестало работать - видимо дело в них.
Но ты же их не показываешь - получается принти себе в консоль или нотифайки то, что через них проходит, чтобы понять где ты ошибся
 

DOSA & MIWUK

Участник портала
14 Дек 2022
246
19
68
к сожалению у меня стандарт "редаговский метод" с mp.events.add не будет работать ибо у меня кастомные ивенты %)
 

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
3,809
1,863
208
35
что значит кастомные евенты?
mp.events.add - это не "редаговский метод", это функция рейджа
 

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
3,809
1,863
208
35
так
и в чём проблема
ну поменяй название функции с mp.events.add на ту, которой ты её присвоил
глобально это же ничего не меняет
 

DOSA & MIWUK

Участник портала
14 Дек 2022
246
19
68
уже изменено к сожалению не работает
 

DOSA & MIWUK

Участник портала
14 Дек 2022
246
19
68
буду логировать
 

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
3,809
1,863
208
35
я просто не понимаю вопроса типа
как можно тогда что-то тебе посоветовать, если у тебя какие то свои "зашифрованные функции", которые теперь не работают
что вообще значит зашифрованные? как можно зашифровать жс, чтобы он при этом остался исполняемым?
ну типа как будто бы не хватает немножко информации

ты сделал чего-то вроде
JavaScript:
global.GenalnayaShifrovka = mp.events.callRemote
    mp.events.callRemote = null
и всё перестало работать?

или ты завёл новую глобальную функцию, типа как "апи" и убрал евенты внутрь, с замыканием и называешь это шифрованием?
или обфусцировал код?

ну непонятно же нихуя просто
как можно ответить на вопрос почему не работает - если ты не объясняешь нормально, что ты сделал

"у меня шифрованный код"
ну заебись, поэтому и не работает, ы