Пользователь
- Регистрация
- 24 Окт 2023
- Сообщения
- 52
- Автор темы
- #1
Всем привет !
Сегодня расскажу как работать с CEF
Установка
Ссылка на GTA: https://disk.yandex..../JQM0l8ZZ8YIWbA ( Вам нужно обновить только client файлы ( можно скачать ниже ) )
Чисто клиент и сервер : https://disk.yandex..../YbVqn7td4lxsng
Функции:
События:
Browser API:
Автор: SRIPTER MODOV ( vk.com/weckek )
Сегодня расскажу как работать с CEF
Установка
Ссылка на GTA: https://disk.yandex..../JQM0l8ZZ8YIWbA ( Вам нужно обновить только client файлы ( можно скачать ниже ) )
Чисто клиент и сервер : https://disk.yandex..../YbVqn7td4lxsng
Функции:
Форматирование (BB-код):
1. cef_create_browser(player_id, browser_id, const url[], hidden, focused)
Создает браузер в игре и показывает его человеку.
player_id - в данном случае кому будет показан браузер
browser_id - ID браузера ( может быть даже с буквами "0x56" )
url[] - Ссылка на ваш интерфейс
hidden - скрыт браузер или нет ( false - нет , true - Да )
focused - будет ли приниматься ввод мышки и клавиатуры , нельзя открыть чат , вообщем делает браузер сфокусированным.
2. cef_destroy_browser(player_id, browser_id)
удаляет браузер у игрока.
player_id - у кого будет удален браузер
browser_id - ID браузера
3.cef_hide_browser(player_id, browser_id, hide)
скрывает браузер у игрока
player_id - у кого будет скрыт браузер
browser_id - ID браузера
hide - скрыт ли браузер или нет ( true - да , false - нет, аналогично что и в функции cef_create_browser )
4.cef_emit_event(player_id, const event_name[], args…)
отправляет/вызывает событие у клиента ( браузера )
player_id - ID игрока, от кого будет отправлено событие
event_name - название ивента ( Примеры будут ниже тут я не хочу что-то размещать )
args - аргументы ( Поддерживаемые типы аргументов: string, integer, float )
5.cef_subscribe(const event_name[], const callback[])
подписывается на событие от браузера
event_name - событие на которое будет осуществлена подписка
callback - будет передано событие сюда для обработки ( Сигнатура функции колбека: Callback(player_id, const arguments[]) )
6.cef_player_has_plugin(player_id)
Есть ли у игрока плагин
player_id - у кого будет осуществлена проверка
7.cef_create_ext_browser(player_id, browser_id, const texture[], const url[], scale)
Создает браузер как и в первом случае, но с пометкой, что он будет отображаться на объектах на определенной текстуре. Параметр scale указывает во сколько раз нужно увеличить стандартную текстуру. Например, если стандартная текстура имеет размер
250x30 будет иметь размер 1250x150 при переданном параметре в 5 единиц.
player_id - ID игрока кому будет создан браузер
browser_id - ID браузера
texture - текстура на которую будет наложено изображение
url[] - ссылка на видео
scale - размер изображения
8.cef_append_to_object(player_id, browser_id, object_id)
Заменяет текстуру переданного объекта на изображение браузера у клиента. Браузер должен быть создан с помощью cef_create_ext_browser, а так же должна присутствовать текстура, указанная при создании, для корректного отображения.
player_id - ID игрока кому будет заменено изображение
browser_id - ID браузера
object_id - ид обьекта у которого будет заменена текстура
9.cef_remove_from_object(player_id, browser_id, object_id)
Удалит текстуру изображения и вернет нормальную.
player_id - ID игрока кому будет заменено изображение
browser_id - ID браузера
object_id - ид обьекта у которого будет заменена текстура
10.cef_toggle_dev_tools(player_id, browser_id, enabled)
включает консоль разработчика
player_id - ID игрока кому будет заменено изображение
browser_id - ID браузера
enabled - включено ли ( true - да, false - нет )
11.cef_set_audio_settings(player_id, browser_id, Float:max_distance, Float:reference_distance)
Выставляет максимальную слышемую дистанцию для браузера на объекте. reference_distance - расстояние, до которого будет максимальная громкость, а после пойдет на понижение от max_distance до 0.
player_id - ID игрока кому будет заменено изображение
browser_id - ID браузера
max_distance - максимальная дистация слышания музыки
reference_distance - расстояние, до которого будет максимальная громкость
12.cef_focus_browser(player_id, browser_id, focused)
Функция делает браузер сфокусированным. Выводится на первый план, получает все события с клавиатуры и мыши. То же самое, что и передача аргумента focused = true при создании браузера.
player_id - ID игрока кому будет заменено изображение
browser_id - ID браузера
focused - включен ли фокус ( true - да , false - нет, аналогично ef_create_browser )
13.cef_always_listen_keys(player_id, browser_id, listen)
Позволяет браузеру получать ввод с клавиатуры в фоне, даже если браузер не имеет фокуса или скрыт. Это позволяет использовать в JS коде функции для подписки на события от клавиатуры все время. Например, можно сделать открытие / закрытие
интерфейса по нажатию клавиши (window.addEventListener("keyup")).
player_id - ID игрока кому будет заменено изображение
browser_id - ID браузера
listen - включена ли функция ( true - да, false - нет )
14.cef_load_url(player_id, browser_id, const url[])
Загружает указанный URL у заданного браузера. Быстрее, чем пересоздание браузера.
player_id - ID игрока кому будет заменено изображение
browser_id - ID браузера
url[] - ID страницы для загрузки
События:
Код:
forward OnCefBrowserCreated(player_id, browser_id, status_code) Вызывается, когда клиент создал у себя браузер по запросу от сервера / плагина. Значение status_code либо 0 (при неудачном создании), либо HTTP код (200, 404 etc).
forward OnCefInitialize(player_id, success) Вызывается после подключения клиента к CEF серверу, либо по истечению тайм-аута. Грубо говоря, замена ручной проверки cef_player_has_plugin.
Browser API:
Код:
1. cef.set_focus(focused)
ставит/убирает фокус браузеру ( будет фокус браузера у кого он был вызван )
focused - включен ли фокус ( true - да, false - нет )
2.cef.on(event_name, callback)
Подписывается на событие от браузера / других плагинов.
event_name - название события которое мы передавали с игры ( cef_emit_event )
callback - куда будет переданы значения
3.cef.hide(hide)
Скрывает браузер ( будет скрыт у кого он был вызван)
hide - скрыт ли ( true - да, false - нет )
4.cef.emit(event_name, args…)
Вызвать событие на сервере / в сторонних плагинах с указанными аргументами. Поддерживает все типы, кроме объектов с полями и функций. Замечание: в плагинах возможно использовать все типы по человечески, но на сервере все аргументы преобразуются в
единую строку, разделенную пробелами.
event_name - событие которое будет вызвано на сервере ( в cef_subcribe мы на него подписывались )
args - значения которые будут переданы
Автор: SRIPTER MODOV ( vk.com/weckek )