Всем привет
Я решил показать как можно сделать HUD на CEF для вашего SAMP сервера.
В данном уроке нам нужно:
1.Плагин sscanf 2.8.3
2.Плагин Pawn.CMD
3.Плагин CEF
4.Web хостинг для файлов
5.Умение заливать файлы на хостинг
1.Для начала арендуем хостинг ( Рекомендую beget.com )
Создадим в нашем проекте файлы style.css, index.html, cef-interface.js , затем зальем их на хостинг.
Далее будет заполнять наши файлы кодом.
1.style.css
container { width: 10%; } .bg_interface { border-width: 0px; border-color: rgb(0, 0, 0); border-style: solid; border-radius: 20px; background-color: rgb(64, 64, 64); position: absolute; left: 472px; top: 770px; width: 403px; height: 119px; z-index: 1; } .nick_text { font-size: 18px; font-family: "TT Norms"; color: rgb(255, 255, 255); font-weight: bold; line-height: 0.1; text-align: center; position: absolute; left: 490px; top: 807px; width: 187px; height: 23px; z-index: 3; } .nick_img { background-image: url("nick_img.png"); position: absolute; left: 495px; top: 795px; width: 21px; height: 21px; z-index: 2; } .money_text { font-size: 18px; font-family: "TT Norms"; color: rgb(255, 255, 255); font-weight: bold; line-height: 0.944; text-align: center; position: absolute; left: 500px; top: 824px; width: 88px; height: 29px; z-index: 4; } progress.styled { display: block; border-radius: 8px; width: 340px; height: 11px; z-index: 6; position: absolute; left: 497px; top: 849px; } progress.styled::-webkit-progress-bar { background-color: rgb(82, 82, 82); border-radius: 8px; } progress.styled::-webkit-progress-value { background-color: rgb(204, 62, 62); background-image: linear-gradient(rgb(204, 62, 62)), rgb(204, 62, 62)); border-radius: 8px; } progress.styled::-moz-progress-bar { background-color: rgb(204, 62, 62); background-image: linear-gradient(rgb(204, 62, 62), rgb(204, 62, 62)); border-radius: 8px; } progress.styled1 { display: block; border-radius: 8px; width: 340px; height: 11px; z-index: 6; position: absolute; left: 497px; top: 867px; } progress.styled1::-webkit-progress-bar { background-color: rgb(82, 82, 82); border-radius: 8px; } progress.styled1::-webkit-progress-value { background-color: rgb(53, 101, 233); background-image: linear-gradient(rgb(53, 101, 233)), rgb(53, 101, 233)); border-radius: 8px; } progress.styled1::-moz-progress-bar { background-color: rgb(53, 101, 233); background-image: linear-gradient(rgb(53, 101, 233), rgb(53, 101, 233)); border-radius: 8px; } .text_notification { font-size: 17px; font-family: "TT Norms"; color: rgb(0, 144, 255); font-weight: bold; line-height: 0.944; text-align: center; position: absolute; left: 1230.39px; top: 330.573px; width: 340px; height: 17px; z-index: 3; } .bg_notification { border-width: 0px; border-color: rgb(0, 0, 0); border-style: solid; border-radius: 20px; background-color: rgb(64, 64, 64); position: absolute; left: 1209px; top: 310px; width: 392px; height: 104px; z-index: 1; } .text_slide_notification { font-size: 17px; font-family: "TT Norms"; color: rgb(255, 255, 255); font-weight: bold; line-height: 0.944; text-align: center; position: absolute; left: 1230.39px; top: 360.933px; width: 307px; height: 18px; z-index: 4; } .bg_key { border-width: 0px; border-color: rgb(0, 0, 0); border-style: solid; border-radius: 5px; background-image: -moz-linear-gradient( 90deg, rgb(215,215,215) 0%, rgb(255,255,255) 100%); background-image: -webkit-linear-gradient( 90deg, rgb(215,215,215) 0%, rgb(255,255,255) 100%); background-image: -ms-linear-gradient( 90deg, rgb(215,215,215) 0%, rgb(255,255,255) 100%); position: absolute; left: 1549px; top: 357px; width: 26px; height: 27px; z-index: 2; } .key_text { font-size: 20px; font-family: "TT Norms"; color: rgb(0, 144, 255); font-weight: bold; line-height: 0.85; text-align: center; -moz-transform: matrix( 1.02493819658632,0,1.07034501209888e-14,1.02493819658632,0,0); -webkit-transform: matrix( 1.02493819658632,0,1.07034501209888e-14,1.02493819658632,0,0); -ms-transform: matrix( 1.02493819658632,0,1.07034501209888e-14,1.02493819658632,0,0); position: absolute; left: 1554.154px; top: 362.498px; width: 11.5px; height: 14px; z-index: 5; } progress.styled2 { display: block; border-radius: 8px; width: 340px; height: 8px; z-index: 6; position: absolute; left: 1235.39px; top: 395.933px; } progress.styled2::-webkit-progress-bar { background-color: rgb(82, 82, 82); border-radius: 8px; } progress.styled2::-webkit-progress-value { background-color: rgb(53, 101, 233); background-image: linear-gradient(rgb(53, 101, 233)), rgb(53, 101, 233)); border-radius: 8px; } progress.styled2::-moz-progress-bar { background-color: rgb(53, 101, 233); background-image: linear-gradient(rgb(53, 101, 233), rgb(53, 101, 233)); border-radius: 8px; }
Затем вставим код в html
2.index.html
<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="style.css"> <title>interface</title> </head> <body> <div class="bg_interface"></div> <div class="nick_img"></div> <a id="nick" class="nick_text">Royzen_Ghost</a> <a id="money" class="money_text">1000000$</a> <progress id="progress" class="styled" max="100" value="0"></progress> <progress id="progress2" class="styled1" max="100" value="0"></progress> </body> <script src="cef-interface.js?ver=1452324"></script> </html>
3. Затем создадим наш cef-interface.js
//здесь можно получать ID элементов, но я забыл это и получаю классы) let nicks = document.querySelector('.nick_text'); let moneys = document.querySelector('.money_text'); let progress = document.querySelector('.styled'); let armour = document.querySelector('.styled1'); cef.emit('pwd:try'); //interface off cef.emit("game:hud:setComponentVisible", "interface", false); cef.on('pwd:money', (response) => { moneys.innerHTML += response + "$"; //это можно использовать как первый вариант ( второй: moneys.innerHTML = "$" + money; ) }); cef.on('pwd:armour', (armours) => { armour.value = armours; }); cef.on('pwd:hp', (hp) => { progress.value = hp; }); cef.on('pwd:nick', (response) => { nicks.innerHTML = response; }); //новая функция ( -1 не работает ) cef.on('pwd:allitem', (money, nick, armours, hp) => { if(money != -1) { moneys.innerHTML += money + "$"; } if(nick != "") { nicks.innerHTML = nick; } if(armours != -1) { armour.value = armours; } if(hp != -1) { progress.value = hp; } });
2. После создания и заполнения наших файлов их нужно залить на хостинг.
3. Теперь мы перейдем с вами к Pawn коду.
#include <cef> #include <Pawn.CMD> #include <sscanf2> #define LOGIN_BROWSER_ID 0x12346 public OnGameModeInit() { cef_subscribe("pwd:try", "CefInterface"); //подписываемся на событие js скрипта и передаем его в игру return 1; } public OnPlayerSpawn(playerid) { cef_create_browser(playerid, LOGIN_BROWSER_ID, "ваш url на сайт", false, false); //создаем браузер return 1; } //cef forward OnCefInitialize(player_id, success); forward OnCefBrowserCreated(player_id, browser_id, status_code); forward CefInterface(player_id); public OnCefInitialize(player_id, success) { if (success == 1) { return; } } public OnCefBrowserCreated(player_id, browser_id, status_code) { if (browser_id == LOGIN_BROWSER_ID) { if (status_code != 200) { return; } } } public CefInterface(player_id) //выставляем настройки и отправляем их до отрисовки { new money = GetPlayerMoney(player_id), Float:armour, Float:hp, name[40]; GetPlayerName(player_id, name, sizeof(name)); GetPlayerHealth(player_id, hp); GetPlayerArmour(player_id, armour); cef_emit_event(player_id, "pwd:allitem", CEFINT(money), CEFSTR(name), CEFINT(armour), CEFINT(hp)); } //тестовые команды для проверки cmd:set_hp(player_id, arg[]) { new hp; if(sscanf(arg, "i", hp)) return SendClientMessage(player_id, -1, "/set_hp [hp int]"); cef_emit_event(player_id, "pwd:hp", CEFINT(hp)); SendClientMessage(player_id, -1, "Успех"); return 1; } cmd:set_money(player_id, arg[]) { new money; if(sscanf(arg, "i", money)) return SendClientMessage(player_id, -1, "/set_money [money]"); GivePlayerMoney(player_id, money); cef_emit_event(player_id, "pwd:money", CEFINT(money)); SendClientMessage(player_id, -1, "Успех"); return 1; }
3.После всех этих действий , заходим в игру и радуемся худу.
Ссылка на загрузку CEF и примера: https://drive.google.com/file/d/12pna_VBT7Z56Jo9Bq93GTWrIwMV3STyx/view?usp=sharing
Как установить:
После загрузки архива откройте папку cef_client, затем перекиньте данные файлы в игру. ( также закиньте файл cef.asi в корень ) .
Папку cef_client переименуйте в cef.
В папке «Пример» находиться index.html, cef-interface.js там можно скопировать код.
В папке «pawn» там лежат плагины для работы cef.
Автор: Я ( vk.com/weckek )
Помогал: Андрей Дрыгин
Разработчик плагина: https://github.com/ZOTTCE/
Кому не сложно дайте + )
UPD:
При добавлении чего-то нового cef не забывайте удалять папку cache в папке cef. Иначе новые функции у вас не будут показываться.
Данная тема существует:
pawn-wiki ( не реклама )
pawno-rus
всем привет.
многие часто в этом разделе создают темы с названиями «сделайте худ плис» и я решил помочь таким людям, которые еще не умеют сами делать простенькие худы.
для создания худа нам понадобятся две программы:
1) interface editor visual
2) txd workshop
скачиваем эти два архива, открываем, вытаскиваем папки и кидаем их в удобное для нас место.
все, на этом подготовка завершена, перейдем к созданию самого худа.
уфф… сейчас я все подробно распишу,делайте все по следующим пунктам
1) открываем папку interface editor visual.
2) переносим файлы
vorbisfile.dll , vorbishooked.dll , interfaceeditor.ini и interfaceeditor.asi в папку с игрой с заменой
3) теперь перейдем к самой программе , interface editor visual. запускаем программу и видим такую картину:
4) в верхнем левом углу программы видим строку «файл» «hud» «cправка». нажимаем на слово «файл», затем «открыть…». появится окно, в котором вы должны будете открыть папку с игрой. в папке с игрой вы найдете ранее перенесенный файл «interfaceeditor.ini». жмете по этому файлу 2 раза. высветится табличка «сохранить интерфейс перед загрузкой файла?». жмем «no».
5) теперь перейдем к редактированию самого интерфейса. панель, которая представлена на скриншоте ниже, позволяет менять цвет hp, звезд , денег и шрифтов.
чтобы сменить цвет хп/звезд/денег/шрифтов просто нажмите на нужное вам. на скриншоте ( который выше ) я нажал на сердечко ( хп ). после этого, появилось меню настроек хп бара. для тех, кто еще не знает, что такое x и y объясняю, это координаты. в данном случае, координаты хп бара. чтобы сменить цвет хп бара нажмите на слово «custom…» выпадет список цветов. если же вам этих цветов недостаточно , в выпавшем списке нажмите снова на слово «custom…». появится окошко, в котором вы должны нажать «определить цвет». после того, как вы накрутили цвет, который вам больше всего понравился, жмете «добавить в набор» а потом «ок». все, цвет хп бара сменили, такую же операцию проделываете и со звездами и со шрифтами и с деньгами.
•Примечание: после смены цвета хп/денег/звезд/шрифтов — цвета в самой программе не изменятся, так что не пугайтесь.
6) после перекраски «элементов» худа вы задаетесь вопросом: «а как же мне перенести полоску хп/брони и т.д.?» все очень просто. допустим, я хочу перенести полоску хп. навожу курсором на полоску хп, затем зажимаю левую кнопку мыши и переношу куда мне угодно.
7) так-с, настройку интерфейса мы почти завершили,осталось написать свой ник. на интерфейсе игры в программе над броней есть часы. нажмите на них или нажмите на иконку часов на панели , которая находится справа. так же как и всех остальных элементов, у часов есть своя менюшка x, y , прозрачность и формат. так вот, в «формат», вместо «%02d:%02d» мы пишем свой ник. часы так же переносятся как и остальные элементы.
•Примечание: Ник обязательно нужно писать на латинице. Например, если вы напишите «нагибатор666» — у вас ничего не получится, а если «nagibator666», то все будет работать.
[l] и так, редактирование интерфейса мы закончили,осталось только сохранить. в верхнем левом углу есть строка «файл» «hud» «справка». жмем «файл» >> сохранить. все,интерфейс успешно сохранен, можете закрывать программу,заходить в игру и радоваться :3
ну вот, интерфейс настроили,сохранили, все нравится. если хотите узнать , как заменить прицел/радар/кулак — читайте дальше.
как вы уже догадались,здесь нам понадобится ранее скачанная программа «txd workshop».
1)запускаем программу и жмем на кнопку «open txd»
2) ищем папку с игрой, в которой открываем папку «models». в папке «models» находим файл «hud.txd», открываем его с помощью этой проги.
3) допустим, я хочу заменить себе прицел. заходим на сайт http://crosshairs.cali-kartell.de
4) ищем подходящий прицел и жмем по нему левой кнопкой мыши 1 раз. начнется загрузка png файла. он будет называться «siteM16».
5) в нашей программе txdworkshop , после открытия файла hud.txd появился столбик с картинками. ищем картинку у которой написано «name: siteM16». это и есть прицел,жмем на него один раз левой кнопкой мыши.
6) рядом со словом «open txd» в строке , которую я показывал на скрине выше, появились еще кнопки. жмем на «import» и указываем путь к нашему скачанному прицелу,затем жмем по нему 2 раза левой кнопкой мыши.
7) все, прицел заменили,для того чтобы сохранить наш новый худ,жмем «save txd». После этого заходим в игру и видим новый худ.
Чтобы заменить радар,нужно сделать тоже самое что и с прицелом, только радар называется по другому. У картинки с радаром в программе , должно быть «Name: radardisc». Cкачиваете подходящий для вас радар отсюда: http://crosshairs.cali-kartell.de/index.php?page=radardiscs ( просто нажмите левой кнопкой мыши 1 раз по радару, который вам понравился и он мгновенно скачается ).
9) После того, как скачаете новый радар , повторите 6 пункт , только укажите путь к новому скачанному радару.
10) Затем нажмите «save.txd» и все.
11) И на последок, если вы хотите заменить кулак, то проделайте тоже самое , что и с прицелом/радаром.
У картинки кулака «Name:first»
Ну вот, вы сделали простенький худ, теперь можете открывать свою студию и получать за выполненные заказы няшки :3
P.S. надеюсь ошибок немного, писал в спешке.
Мои темы:
Пак карт с квадратами/бизнесами — http://cheat-master.ru/forum/108-344472-1
[FAQ] Создание своего HUD’a. — http://cheat-master.ru/forum/108-369952-1#2232506
YMB
Сообщение отредактировал Blackwell — Вторник, 26.08.2014, 00:39
-
#1
ОПИСАНИЕ
Нестандартные элементы интерфейса с возможностью полностью настраивать их под себя. Элементы делятся на нестандартные элементы стандартного интерфейса и на виджеты.
КАК ОТКРЫТЬ МЕНЮ НАСТРОЕК?
Всего лишь прописав в чат команду «/cint». Если вам показалась данная команда неудобной, то всегда есть возможность сменить ее в настройках скрипта.
ЦЕНТР ОБНОВЛЕНИЯ
Центр обновления автоматически проверит скрипт на наличие более новой, актуальной версии и, в случае, если она была найдена, то вы сможете запросто обновиться просто нажав на «Установить обновление». Если же обновление проверить не удалось, то либо у вас проблема с интернет подключением, либо что-то блокирует загрузку. Решив данную проблему, вам всего-то стоит нажать на «Повторить попытку» и центр обновления заново проверит скрипт на наличие обновления.
ВИДЕОДЕМОНСТРАЦИЯ
СКРИНШОТЫ
ТРЕБОВАНИЯ
УСТАНОВКА
Перекинуть файл «!CInt.luac» в папку «moonloader», а «lua51.dll», непосредственно, в корневую папку игры, с заменой.
11 декабря 2020 / Версия 1.1:
— Множество различных фиксов.
— Убрана функция изменения цветов обводки радара и стандартного прицела.
— Добавлена функция изменения прозрачности обводки радара, знака севера и стандартного прицела.
— Добавлена функция включения/отключения переключателя на игроков только в зоне стрима.
29 ноября 2020 / Версия 1.0:
— Релиз.
-
!CInt.luac
959 KB · Просмотры: 803
-
lua51.dll
382.5 KB · Просмотры: 715
Последнее редактирование: 2 Июн 2022
-
#3
Онлайн за день, при перезаходе в игру, обнуляется.
Также , если стоишь в AFK — онлайн продолжает считать (можно было бы добавить опцию учета AFK или нет)
Последнее редактирование: 29 Ноя 2020
-
#4
Предложение небольшое чтоб не было страшно за аккаунт или вообще за данные с винды..
Сделать проверку на обновление и если оно есть, то сообщение появится: Для обновления скачайте скрипт повторно
Не обессудь
-
#5
О мой бог, да это же наберёт кучу лайков
-
#6
У @#Northn идею дизайна украл же
Зачем копировать уродство?
Кому нафиг нравится дизайн Windows?? Не то что 10, а вообще, все без исключения блевотные
Незнаю как в игре, качать лень, но на скриншотах это уродство максимальное, дизайн менюшек.
-
#7
Как сделал это меню в стиле 10 винды?
-
#8
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Кому нафиг нравится дизайн Windows?
Мне, нортону, автору и еще многим людям, а что?
-
#9
У @#Northn идею дизайна украл же
а он у винды…….
-
#10
У @#Northn идею дизайна украл же
У меня давно была такая идея. Да и я не у него украл, а у майкрософта.
Предложение небольшое чтоб не было страшно за аккаунт или вообще за данные с винды..
Сделать проверку на обновление и если оно есть, то сообщение появится: Для обновления скачайте скрипт повторно
Не обессудь
Ну так оно ведь не автоматически обновится, если найдёт обновление. Прочитай как работает сам центр обновления.
-
#11
lua51.dll от MoonLoader v.027
Что же такого взял от модуля луа от 27 муна.
Не очень оптимально разделять версии муна, если раз 27 взят, так полностью. Люди будут путаться.
-
#12
Баг с ESC
При нажатии ESC игра улетает в атмосферу. (вылетает) !!!!!!!!!!!!!!!!!
-
#13
Баг с ESC
При нажатии ESC игра улетает в атмосферу. (вылетает) !!!!!!!!!!!!!!!!!
Так бывает (не всегда), если включить квадратный радар
-
#14
Так бывает (не всегда), если включить квадратный радар
Слава богу, я думал, что игра умирает при конфликте с другими модами.
Надеюсь, это в скором времени пофиксят.
-
#15
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Что же такого взял от модуля луа от 27 муна.
Не очень оптимально разделять версии муна, если раз 27 взят, так полностью. Люди будут путаться.
Он доработан и будет работать так же на 026, поэтому Тебе достаточно просто установить 1 файл, а не весь 027 Мун. У меня в иев он например для ffi (malloc).
Последнее редактирование: 29 Ноя 2020