Вопросы

Новичок

Всем доброго времени суток ! Я пишу мод с нуля, дело дошло до подключения cef интерфейсов, я от слова совсем не понимаю как в моде прописать подключения cef.
Пробовал конечно же подключать, создавал браузер через "cef_create_browser(playerid, 0x12345, "ссылка", false, false);", но ничего не получалось.
Я только начинаю изучать работу данного языка, извиняюсь за то что я тупоголовый. Хочу попросить помощи у специалистов, будьте добры объяснить написание данной системы с отображением cef пожалуйста =(
Если нужен будет мой код, я могу его предоставить. 

Поделиться сообщением


Ссылка на сообщение

3 ответа на этот вопрос

  • 1
27 минут назад, gracevandrej5 сказал:

Для подключения CEF (Chromium Embedded Framework) в моде нужно:

  1. Инициализация CEF:
    • Убедись, что плагин CEF (например, samp-cef) установлен на сервере и загружен в server.cfg (строка plugins sampcef).
    • В моде подключи библиотеку: #include <sampcef>.
  2. Создание браузера:
    • Используй cef_create_browser(playerid, browserId, url, hidden, focused) правильно:
    • 
      cef_create_browser(playerid, 0x12345"http://example.com"falsetrue);
      

       

    • playerid: ID игрока.
    • browserId: Уникальный ID браузера (например, 0x12345).
    • url: Ссылка на HTML-страницу (локальная или внешняя, например, "file:///ui/index.html" для локального файла).
    • hidden: false — показывать сразу, true — скрыть.
    • focused: true — фокус на интерфейсе, false — без фокуса.

3. Обработка событий:

Реализуй коллбэки для управления CEF:


public OnCefBrowserCreated(playerid, browserId, status) {
    if(status == 0) {
        printf("Браузер %d успешно создан для игрока %d", browserId, playerid);
    } else {
        printf("Ошибка создания браузера %d для игрока %d", browserId, playerid);
    }
    return 1;
}

Добавь обработку закрытия/взаимодействия:


public OnCefBrowserKey(playerid, browserId, key, status) {
    if(key == 27 && status == 0) { // Esc для закрытия
        cef_destroy_browser(playerid, browserId);
    }
    return 1;
}

4. Локальный HTML-файл:

  • Создай папку cef в корне сервера, помести туда index.html:

<!DOCTYPE html>



<html>
<head>
    <title>test RolePlay UI</title>
    <style>
        body { background: #1A2526color: whitefont-family: Arial; }
        h1 { color: #A100A1; }
    </style>
</head>
<body>
    <h1>test to test RolePlay!</h1>
    <button onclick="cef.emit('button:clicked')">Click Me</button>
</body>
</html>

Подключи его: cef_create_browser(playerid, 0x12345, "file:///cef/index.html", false, true);.

5. Взаимодействие с Pawn:

  •  

Для общения между CEF и Pawn используй события:
public OnCefEvent(playerid, browserId, eventName[], eventArgs[]) {
    if(!strcmp(eventName, "button:clicked")) {
        SendClientMessage(playerid, -1"Кнопка нажата!");
    }
    return 1;
}

6. Тестирование:

  • Запусти сервер с плагином sampcef.
  • Подключи игрока и проверь, отображается ли интерфейс.
  • Если не работает, проверь логи сервера (ошибки плагина) и убедись, что URL корректен.

 

 

 

 

 

 

Молодец, конечно, только chatGPT не во всех случаях выручает. Тут все есть. Включая сам CEF:

https://github.com/Pycckue-Bnepeg/samp-cef

Поделиться сообщением


Ссылка на сообщение
  • 0
Новичок

Для подключения CEF (Chromium Embedded Framework) в моде нужно:

  1. Инициализация CEF:
    • Убедись, что плагин CEF (например, samp-cef) установлен на сервере и загружен в server.cfg (строка plugins sampcef).
    • В моде подключи библиотеку: #include <sampcef>.
  2. Создание браузера:
    • Используй cef_create_browser(playerid, browserId, url, hidden, focused) правильно:
    • cef_create_browser(playerid, 0x12345"http://example.com"falsetrue);
      

       

    • playerid: ID игрока.
    • browserId: Уникальный ID браузера (например, 0x12345).
    • url: Ссылка на HTML-страницу (локальная или внешняя, например, "file:///ui/index.html" для локального файла).
    • hidden: false — показывать сразу, true — скрыть.
    • focused: true — фокус на интерфейсе, false — без фокуса.

3. Обработка событий:

Реализуй коллбэки для управления CEF:

public OnCefBrowserCreated(playerid, browserId, status) {
    if(status == 0) {
        printf("Браузер %d успешно создан для игрока %d", browserId, playerid);
    } else {
        printf("Ошибка создания браузера %d для игрока %d", browserId, playerid);
    }
    return 1;
}

Добавь обработку закрытия/взаимодействия:

public OnCefBrowserKey(playerid, browserId, key, status) {
    if(key == 27 && status == 0) { // Esc для закрытия
        cef_destroy_browser(playerid, browserId);
    }
    return 1;
}

4. Локальный HTML-файл:

  • Создай папку cef в корне сервера, помести туда index.html:
<!DOCTYPE html>



<html>
<head>
    <title>test RolePlay UI</title>
    <style>
        body { background: #1A2526color: whitefont-family: Arial; }
        h1 { color: #A100A1; }
    </style>
</head>
<body>
    <h1>test to test RolePlay!</h1>
    <button onclick="cef.emit('button:clicked')">Click Me</button>
</body>
</html>

Подключи его: cef_create_browser(playerid, 0x12345, "file:///cef/index.html", false, true);.

5. Взаимодействие с Pawn:

  •  
Для общения между CEF и Pawn используй события:
public OnCefEvent(playerid, browserId, eventName[], eventArgs[]) {
    if(!strcmp(eventName, "button:clicked")) {
        SendClientMessage(playerid, -1"Кнопка нажата!");
    }
    return 1;
}

6. Тестирование:

  • Запусти сервер с плагином sampcef.
  • Подключи игрока и проверь, отображается ли интерфейс.
  • Если не работает, проверь логи сервера (ошибки плагина) и убедись, что URL корректен.

 

 

 

 

 

Отредактировано пользователем gracevandrej5

Поделиться сообщением


Ссылка на сообщение
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • От OPCODERSSSS
      Прописал уже все инклуды,он мне все равно вот эту дрянь ну емае
       
       
      other.amx
      other.pwn
      hgsystem.amx