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

Inoi

owner31
Команда форума
Moderator
VIP
15 Окт 2020
5,447
2,888
208
37
Привет
Извиняюсь заранее, не очень соображаю в жээс
Мне кажется, я упускаю какую-то логику проста - как всегда скорее всего что то очевидное и очень тупое
Не могу понять, почему сообщения по документ.реди - выводит, пожалуйста
Но что-то что ты сам хочешь запостить в чатик - не-а





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]);
    }
}



.......

JavaScript:
hud.js (ну допустим)

mp.events.add('sendEbobaniyChat', (type, msg, players) => {
 ....

....

//    chatAPI.push("пуш 1");
    mp.events.call("chat:push", msg);
//    chatAPI.push(msg);
   // chatAPI.push(msg);
// ещё тыща вариантов - ничо не сработает всё равно
});




Собственно вопрос

 
Последнее редактирование:
Реакции: XFlawless и Mikhayloff

UchihaMadara

Старожил
FrontEnd developer
27 Окт 2020
1,487
231
96
Код:
mp.events.call("chat:push", msg);
Это ты откуда вызываешь?


Порой кажется, что ты не умеешь без рофлов и мемов общаться))
 
Реакции: Mikhayloff

Inoi

owner31
Команда форума
Moderator
VIP
15 Окт 2020
5,447
2,888
208
37
Да не, умею конечно и на серьёзных щщах - но зачем?
(Редкий девлог в телеге почитай - вот там я вполне себе серьёзный, а тут то чего не покекать xD)

Из евента в худе, который принимает с серверки обработку того, что введено в чатик.
Он работает. Ну - всё работало до момента, пока я не решил перехуярить на клиентке весь чат.
Эти взаимодействия - я не трогал. Вообще не трогал на сервере ничего.
На клиенте убрал стандартный чат и mp.gui.execute поменял на браузер.

Ну типа
C#:
SafeTrigger.ClientEvent(player, "sendEbobaniyChat", "s", "{name} кричит: " + message, names);
JavaScript:
mp.events.add('sendEbobaniyChat', (type, msg, players) => {
....
// всякие-разные обработки, которые можно все выпилить пока тестишь (как я и сделал)
....

    mp.events.call("chat:push", msg);
});

Я могу в этом евенте в худе убрать вообще всё, и просто оставить типа

JavaScript:
mp.events.call("chat:push", "залупа");

И он всё равно не сработает
С дивами там, именами контейнера в цефке и тд - всё хорошо.
Ну, .реади сообщение он выводит же, очевидно.
 
Последнее редактирование:

UchihaMadara

Старожил
FrontEnd developer
27 Окт 2020
1,487
231
96
Так тебе нужно использовать
Код:
mp.gui.chat.push();
(Предварительно)
Код:
browser.markAsChat()

Или
Код:
browser.call("chat:push", msg)

Событие,
Код:
mp.events.call("chat:push", "залупа");
которое ты вызываешь - оно работает только внутри clientside.

А CEF - это не clientside, а clientside CEF
 
Реакции: dooj и Inoi

Inoi

owner31
Команда форума
Moderator
VIP
15 Окт 2020
5,447
2,888
208
37
А, ну да, конечно. Ты прав. ><

Я пробовал маркировать браузер как чат - но я так понимаю, что лучше тогда весь чат заводить и верстать в отдельное окно?
Ну просто из-за того что он у меня собран в худе, (видимо из-за этого, я хз) - у меня вылезает тогда два чата, если я худ маркирую как чат.
Какая-то вообще странная ебанина начинается, стили слетают и тд.
Да и в целом это выглядит как-то неправильно. (Ну не в плане методологии - а то, что я вижу на экране потом xD)
Но возможно просто мусора в клиенте дохуищща, на самом деле.

browser.call - сработало как надо, разумеется в любом случае. спасибо <3
Мог бы и сам догадаться, но че то когда пару часов втыкаешь - плывешь конечно уже просто пиздец

Спасибо ещё раз
 
Последнее редактирование:

mippoosedev

Мастер
BackEnd developer
2 Мар 2021
304
152
100
Необязательно выводить отдельным окном. Главное реализовать все евенты. Так же небольшой совет - если будут какие то дополнительные плашки/инфа в чате, то лучше прокинуть кастомный евент на отправку в чат. Т.е на сервере ты как нужно инфу собрал(например у меня это плашки админ/фракция/администрация) и отправил в сеф. А дефолтный mp.gui.chat.push или player.SendChatMessage использую только для дебаг сообщений
 
Реакции: Inoi