что такое cef в крмп
Что такое cef в крмп
Ни одного зарегистрированного пользователя не просматривает данную страницу
Похожий контент
Анти-чит: Nex-AC
Процессор: PAWN.CMD
Кол-во строк в моде: 4328
Режим: RolePlay
Автор доработки: Santa_Claus
Основа данного мода: Flame RP.
С каждым обновлением, каждая строчка мода идет на доработку.
Добавил Santa_Claus Добавлено 27.12.2018 Категория Моды Автор Santa_Claus
Продажа мода Namalsk RolePlay
Анти-чит: Nex-AC
Процессор: PAWN.CMD
Кол-во строк в моде: 4328
Режим: RolePlay
Автор доработки: Santa_Claus
Основа данного мода: Flame RP.
С каждым обновлением, каждая строчка мода идет на доработку.
Хранение данных (версия MySQL): R41.
Командный процессор: Pawn.CMD.
Количество строк в моде (без маппинга): 72450.
Анти-чит: Nexius-AC v1.9.53.
Автор данной доработки: glvde. (я).
На доработку мода ушло около трех месяцев.
Не исключаю, что есть ещё баги.
Спасибо за внимание.
Просмотр файла Arizona BlueBerry
Хранение данных (версия MySQL): R41.
Командный процессор: Pawn.CMD.
Количество строк в моде (без маппинга): 72450.
Анти-чит: Nexius-AC v1.9.53.
Автор данной доработки: glvde. (я).
На доработку мода ушло около трех месяцев.
Не исключаю, что есть ещё баги.
Спасибо за внимание.
[Вопрос] CEF в SAMP Оценка: 




Здравствуйте, ув. пользователи форума. Назрел у меня очередной вопрос. Каким образом можно использовать CEF в SAMP (0.3DL) в отдельности его совместимость с клиентом и языком написание игрового мода Павно. Видел такое решение на некоторых серверах Криминальной России и очень загорелся этой идеей, но решений в гугле 0 с 0. Возможно кто поделиться ссылками или же подскажет в каком направлении двигаться, буду очень и очень признателен!
Возможно есть инклуды для павно или другие решения
Приватные плагины, такое есть только у крупных проектов, по типу Амазинга и т.д. Они специально писали их под себя и скорее всего не сольют никому, поскольку это очень уникальный плагин. Чисто технически, то, что есть на Cef можно сделать и на обычных текстдравах (не будет только анимаций), как это сделать я писал в своем уроке, это даже будет лучше с точки зрения оптимизации.
Таким способом можно реализовать вот такую регистрацию:
Приватные плагины, такое есть только у крупных проектов, по типу Амазинга и т.д. Они специально писали их под себя и скорее всего не сольют никому, поскольку это очень уникальный плагин. Чисто технически, то, что есть на Cef можно сделать и на обычных текстдравах (не будет только анимаций), как это сделать я писал в своем уроке, это даже будет лучше с точки зрения оптимизации.
Таким способом можно реализовать вот такую регистрацию:
С текстдравами у меня проблем нет, да и на анимации как-то фиолетово, я хотел узнать реально ли такое воплотить, если да, то какой язык при этом используется
Но как я уже сказал, можно не заморачиваться, а все-таки посмотреть мой урок, ведь там все расписано про то, как использовать JPG, PNG фотографии в качестве текстдравов, да и я кинул пример того, что можно сделать через этот метод.
p.s. вообще cef встроен в мта, может быть от туда вырезать можно, но я хз
Что такое cef в крмп
Советы по использованию и некоторые ограничения
cef_create_browser(player_id, browser_id, const url[], hidden, focused)
Создает браузер для указанного игрока.
cef_hide_browser(player_id, browser_id, hide)
cef_emit_event(player_id, const event_name[], args…)
cef_subscribe(const event_name[], const callback[])
Подписаться на событие от клиента. Сигнатура функции колбека: Callback(player_id, const arguments[])
Проверка на наличие плагина у клиента.
cef_create_ext_browser(player_id, browser_id, const texture[], const url[], scale)
Создает браузер как и в первом случае, но с пометкой, что он будет отображаться на объектах на определенной текстуре. Параметр scale указывает во сколько раз нужно увеличить стандартную текстуру. Например, если стандартная текстура имеет размер 250×30 будет иметь размер 1250×150 при переданном параметре в 5 единиц.
cef_append_to_object(player_id, browser_id, object_id)
cef_remove_from_object(player_id, browser_id, object_id)
Возвращает оригинальную текстуру объекта.
cef_toggle_dev_tools(player_id, browser_id, enabled)
Включает / выключает инструменты разработчика.
native cef_set_audio_settings(player_id, browser_id, Float:max_distance, Float:reference_distance)
cef_focus_browser(player_id, browser_id, focused)
Функция делает браузер сфокусированным. Выводится на первый план, получает все события с клавиатуры и мыши. То же самое, что и передача аргумента focused = true при создании браузера.
cef_always_listen_keys(player_id, browser_id, listen)
Позволяет браузеру получать ввод с клавиатуры в фоне, даже если браузер не имеет фокуса или скрыт. Это позволяет использовать в JS коде функции для подписки на события от клавиатуры все время. Например, можно сделать открытие / закрытие интерфейса по нажатию клавиши ( window.addEventListener(«keyup») ).
cef_load_url(player_id, browser_id, const url[])
Загружает указанный URL у заданного браузера. Быстрее, чем пересоздание браузера.
Так же есть два события встроенных в плагин:
forward OnCefBrowserCreated(player_id, browser_id, status_code) Вызывается, когда клиент создал у себя браузер по запросу от сервера / плагина. Значение status_code либо 0 (при неудачном создании), либо HTTP код (200, 404 etc).
Так же у браузеров есть свое API для управления ими. cef.set_focus(focused)
Фокусируется на браузере, что позволяет ему быть поверх всех остальных окон, а так же иметь возможность вводить с клавиатуры и мыши в него.
cef.on(event_name, callback) Подписывается на событие от браузера / других плагинов.
cef.off(event_name, callback) СЛОМАНА НА ДАННЫЙ МОМЕНТ Отписывается от события. Чтобы использовать данную функцию, необходимо передавать переменную, которая содержит функцию на колбек события, указанный при подписке на событие.
cef.hide(hide) Скрывает браузер и отключает звук от него.
cef.emit(event_name, args…) Вызвать событие на сервере / в сторонних плагинах с указанными аргументами. Поддерживает все типы, кроме объектов с полями и функций. Замечание: в плагинах возможно использовать все типы по человечески, но на сервере все аргументы преобразуются в единую строку, разделенную пробелами.
Инструкция к применению
Браузер можно создать из двух мест: из игрового мода и плагинов.
Условно говоря, что открыв какой-нибудь youtube.com из него уже никогда не выйти, не закрыв игру или не поставив таймер на удаление браузера в моде.
Взаимодействие из игрового мода В двух словах: игровой мод должен использовать только несколько нативных функций (создание / удаление браузеров, вызов событий в браузере, а так же подписка на них).
Что такое cef в крмп
В теме 1 сообщение
Последние посетители 0 пользователей онлайн
Ни одного зарегистрированного пользователя не просматривает данную страницу
Похожий контент
Продажа мода Namalsk RolePlay
Анти-чит: Nex-AC
Процессор: PAWN.CMD
Кол-во строк в моде: 4328
Режим: RolePlay
Автор доработки: Santa_Claus
Основа данного мода: Flame RP.
С каждым обновлением, каждая строчка мода идет на доработку.
Анти-чит: Nex-AC
Процессор: PAWN.CMD
Кол-во строк в моде: 4328
Режим: RolePlay
Автор доработки: Santa_Claus
Основа данного мода: Flame RP.
С каждым обновлением, каждая строчка мода идет на доработку.
Добавил Santa_Claus Добавлено 27.12.2018 Категория Моды Автор Santa_Claus
Хранение данных (версия MySQL): R41.
Командный процессор: Pawn.CMD.
Количество строк в моде (без маппинга): 72450.
Анти-чит: Nexius-AC v1.9.53.
Автор данной доработки: glvde. (я).
На доработку мода ушло около трех месяцев.
Не исключаю, что есть ещё баги.
Спасибо за внимание.
Просмотр файла Arizona BlueBerry
Хранение данных (версия MySQL): R41.
Командный процессор: Pawn.CMD.
Количество строк в моде (без маппинга): 72450.
Анти-чит: Nexius-AC v1.9.53.
Автор данной доработки: glvde. (я).
На доработку мода ушло около трех месяцев.
Не исключаю, что есть ещё баги.
Спасибо за внимание.
JS Регистрация и авторизация на CEF + MySQL
Сегодня мы с Вами напишем с нуля полноценный скрипт регистрации и авторизации для сервера rage mp. В качестве интерфейса мы не будем использовать команды, а сразу сделаем «красиво» на CEF. В качестве базы данных будем использовать MySQL.
Видео версия как обычно на youtube канале:
Для начала я нашел в Интернете простенький HTML шаблон страницы авторизации: https://codepen.io/colorlib/pen/rxddKy
Помещаем его в папку cef нашего клиентского скрипта accounts. Туда же ложим стили (style.css) и браузерные скрипты (script.js), которые мы напишем дальше.
Я немного модифицировал шаблон:
1. Добавил фоновую картинку
2. Расставил id для полей ввода, чтобы было удобнее работать с ними.
3. Убрал неиспользуемые стили
4. Добавил блок для вывода ошибок
5. Перевел на русский язык.
В итоге html файл выглядит так:
Теперь при входе игрока на сервер ему будет показываться на форма входа.
В script.js добавим реализацию этих функций. С переключением между формами все просто:
Также в коде Вы наверное заметили функции связанные с выводом ошибок в форму на нашей страничке. Здесь все просто. У нас есть div блок с id error. Он находится выше наших форм и поэтому может показываться независимо от того на какой форме сейчас пользователь.
Они максимально простые и просто передают данные с браузера дальше на сервер при помощи callRemote. Напоминаю что в качестве data у нас JSON строка с логином и паролем. В таком виде мы передаем ее дальше, поскольку callRemote также позволяет нам передавать только простые строки и числа.
Для регистрации на серверной стороне обработчик onRegisterAttempt будет немного сложнее. Прежде чем добавить аккаунт нам нужно проверить его на уникальность и его такой логин уже есть в базе данных, то выдавать ошибку.
Для тех кто захочет дальше ковырять эту форму, напишу парочку идей того, что можно улучшить и доработать:
1. Добавить защиту от перебора паролей. Кикать после 3 неправильных вводов.
2. Написать функцию isPlayerLoggedIn() которая будет возвращать true если игрок авторизовался и false если еще нет.
3. Добавить столбец position в таблицу accounts. Записывать туда позицию игрока при выходе с сервера.
4. Добавить возможность восстановить пароль. Для этого понадобиться добавить поле для email аккаунта и какой-то способ чтобы отправлять электронные письма с сервера.
Если при установке библиотеки bcrypt появляется ошибка ‘undefined symbol: napi_module_register’, то попробуйте это решение.