Вопросы

breznov
Новичок

Всем доброго времени суток ! Я пишу мод с нуля, дело дошло до подключения 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
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 корректен.

 

 

 

 

 

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

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


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

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

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

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

      Loaded log file: "server_log.txt".
      ----------
      SA-MP Dedicated Server
      ----------------------
      v0.3e, (C)2005-2012 SA-MP Team
      [02:24:42] 
      [02:24:42] Server Plugins
      [02:24:42] --------------
      [02:24:42]  Loading plugin: crashdetect.so
      [02:24:42]   CrashDetect plugin 4.19
      [02:24:42]   Loaded.
      [02:24:42]  Loading plugin: sscanf.so
      [02:24:42] 
      [02:24:42]  ===============================
      [02:24:42]       sscanf plugin loaded.     
      [02:24:42]          Version:  2.8.3        
      [02:24:42]   (c) 2018 Alex "Y_Less" Cole  
      [02:24:42]  ===============================
      [02:24:42]   Loaded.
      [02:24:42]  Loading plugin: streamer.so
      [02:24:42] 
      *** Streamer Plugin v2.9.4 by Incognito loaded ***
      [02:24:42]   Loaded.
      [02:24:42]  Loading plugin: mysql_static.so
      [02:24:42]  >> plugin.mysql: R39-6 successfully loaded.
      [02:24:42]   Loaded.
      [02:24:42]  Loading plugin: pawncmd.so
      [02:24:42] Pawn.CMD plugin v3.2.0 by urShadow has been loaded
      [02:24:42]   Loaded.
      [02:24:42]  Loading plugin: mapandreas.so
      [02:24:42]   Loaded.
      [02:24:42]  Loading plugin: YSF.so
      [02:24:42] This version of YSF doesn't support SA-MP 0.3z
      [02:24:42] Update to 0.3.7! http://sa-mp.com/download.php
      [02:24:42] Error: Unknown Linux server version (0x08076FC0)
      [02:24:42] Error: Big part of YSF will be unusable for you
      [02:24:42]   Loaded.
      [02:24:42]  Loading plugin: CLA.so
      [02:24:42]   Loaded.
      [02:24:42]  Loading plugin: pawnbots.so
      [02:24:42] Pawn.Bots plugin v0.2.1 by urShadow loaded
      [02:24:42]   Loaded.
      [02:24:42]  Loading plugin: LauncherAddon.so
      [02:24:42] 
      [02:24:42]  ========[ LauncherAddon 1.3 ]========
      [02:24:42]    
      [02:24:42]    Версия сервера: Unknown
      [02:24:42]    Операционная система: Linux
      [02:24:42]    
      [02:24:42]    (c) - legendabrn -
      [02:24:42]    crack by vk.com/legendabrn
      [02:24:42]    
      [02:24:42]    Проверка активации...
      [02:24:42]    Проверка активации успешно пройдена
      [02:24:42]  ===============================
      [02:24:42]   Loaded.
      [02:24:42]  Loading plugin: pawnraknet.so
      [02:24:42] [Pawn.RakNet] plugin v1.6.0 loading...
      [02:24:42] [Pawn.RakNet] 
          | Pawn.RakNet 1.6.0 | 2016 - 2023
          |--------------------------------
          | Author and maintainer: katursis

          | Compiled: Feb 12 2023 at 19:35:06
          |--------------------------------------------------------------
          | Repository: https://github.com/katursis/Pawn.RakNet
          |--------------------------------------------------------------
          | Wiki: https://github.com/katursis/Pawn.RakNet/wiki
      [02:24:42]   Loaded.
      [02:24:42]  Loading plugin: FCNPC.so
      [02:24:42] 
      [02:24:42] -------------------------------------------------
      [02:24:42]      FCNPC - Fully Controllable NPC v2.0.9
      [02:24:42]             GNU/Linux SA-MP Unknown
      [02:24:42]            Apr 17 2024 at 09:11:36
      [02:24:42] 
      [02:24:42]   Author:       OrMisicL (2013 - 2015)
      [02:24:42]   Continued by: ziggi    (2016 - present)
      [02:24:42] 
      [02:24:42]   See full credits in the README.md file
      [02:24:42] -------------------------------------------------
      [02:24:42] 
      [02:24:42] Loading...
      [02:24:42] 
      [02:24:42] -------------------------------------------------
      [02:24:42]    ColAndreasv1.4.0
      [02:24:42] 
      [02:24:42]    Created By:
      [02:24:42]      [uL]Chris42O
      [02:24:42]      [uL]Slice
      [02:24:42]      [uL]Pottus
      [02:24:42] -------------------------------------------------
      [02:24:42] 
      [02:24:42] Loading...
      [02:24:42] ColAndreas v1.4.0 Loaded.
      [02:24:42]   Loaded.
      [02:24:42]  Loading plugin: md5.so
      [02:24:42]   MD5 v1.2 by BJIADOKC loaded
      [02:24:42]   Loaded.
      [02:24:42]  Loaded 13 plugins.
      [02:24:42] 
      [02:24:42] Filterscripts
      [02:24:42] ---------------
      [02:24:42]   Loading filterscript 'hgsystem.amx'...
      [02:24:42] [Launcher Addon]: Warning - В загружаемом AMX не подключен инклуд LauncherAddon.inc
      other.amx
      other.pwn
      hgsystem.amx