Search the Community
Showing results for tags 'HTML'.
-
🖤 Guten Tag liebe RAGEMP Community, 🖤 Das Team rund um den Server Revive-Life sucht einen kompetenten Entwickler / Developer mit Erfahrung im Bereich C# Javascript html css. Wir sind ein noch nicht releaster RP Server und haben klare Vorstellungen sind aber trotz dessen offen für neue Vorschläge. Dinge die du entwickeln würdest wären z.b. Handys, ein Funkgerät, ein Gefängnis System, Frakwar System usw. Also, um es kurz zu fassen wenn du Erfahrung im bereich C# Javascript html css hast würde wir uns freuen wenn du dich bereit erklärts uns zu Helfen vllt auch mit Bezahltung Kontaktmöglichkeiten: Discord: Ronnyb#4819 Discord Server: https://discord.gg/FXAKMB3 Teamspeak 3 Server: revive-life ("Entwickler ● Bewerbung Warteraum") Mit freundlichen Grüßen, 🖤 Revive-Life Team 🖤
-
- development
- Developer
-
(and 6 more)
Tagged with:
-
Version 1.2
224 downloads
DavWebCreator DavWebCreator is a C# class 'library' which provides you the possibility to generate HTML structures with according styles and logic behind each element. There are already plenty of examples online here: https://DavWebCreator.com But anyway I will provide you here at least one example 🙂 Compatible with 1.1.0.0 If you want to report a bug or just want some help join my discord: https://discord.gg/JYNDrSh Preview Code behind: [Command("yesno")] public void YesNoDialogExample(Client player) { // Generate the Browser Browser browser = new Browser("YesNoDialog", BrowserType.Custom, BrowserContentAlign.Center, "520px", "100%"); // Create the dialog. (Most of the elements will get a default value) var yesNoDialog = browser.GetYesNoDialog("YES_NO_EXAMPLE", "Character Deletion", "WARNING", "Do you really want to delete your character?", "Yes", "No"); // Customize for example the font size and the margin. yesNoDialog.Card.ContentTitle.FontSize = "30px"; yesNoDialog.Card.Margin = "33% 0 0 0"; // Add to the browser browser.AddYesNoDialog(yesNoDialog); // Finally open the browser for the desire player. browser.OpenBrowser(player); } //This event will be called when a button was clicked. [RemoteEvent("YES_NO_EXAMPLE")] public void YesNoExample(Client player, params object[] args) { if (args == null) return; // This is just a list of reponses. (You can bind for example 3 textboxes to a button and when someone click on that button, all 3 binded textboxes will be in the response, with their hidden values. List<BrowserEventResponse> responses = JsonConvert.DeserializeObject<List<BrowserEventResponse>>(args[0].ToString()); // For some reason we know that a YesNoDialog only gives you one response, because only the clicked button will be returned. BrowserEventResponse buttonResponse = responses[0]; player.SendChatMessage(buttonResponse.Value + " Clicked"); player.SendChatMessage(buttonResponse.HiddenValue + " This is our secret hidden value. e.g. some id"); // Close the browser player.TriggerEvent("CLOSE_BROWSER"); // Do stuff } Installation Download the .rar Open the "DavWebCreator_Installation.rar" and open the directory called "DavWebCreator_GetStarted". Open the directory "Server Resources" and Copy and paste the directory "DavWebCreator" in to your"Visual Studio" server project. Go back to the directory called "DavWebCreator_GetStarted". Now open the directory "Client Resources" and Copy and paste the directory "DavWebCreator" in to your "Visual Studio" client project. Your solution should now look like this. 6. Go back to the directory called"DavWebCreator_GetStarted". 7. Now open the directory "Client Frontend" and copy and paste the directory "DavWebCreator" in to your RageMp "client_packages" directory. This is how it should look now: Done. Lets start with some examples… The project stays under the MIT license, feel free to contribute: https://github.com/davidowiz/DavWebBrowser 🙂 Maybe the installation procedure will be improved. But as you all now, time is limited. Best regards, Davidowiz -
Wir von ProjectNine Suchen: - Clientside Entwickler mit Erfahrung in Javascript, HTML, CSS - Server Side Entwickler mit Erfahrung in C# - Serverseitig arbeiten wir mit MongoDB Zu unseren Project: Wir sind eine MultiGaming Community die anfänglich mit einen Arma 3 Project ein guten Erfolg verzeichnen konnten, wir hatten eine eigene Map und ganz eigene Modifikationen. Jetzt haben wir uns dazu beschlossen das wir zu GTA RageMP wechseln möchten. Aktuell haben wir schon ein gutes Grundgerüst, wo wir jetzt noch ein paar Feinschliffe bis zur Open Alpha brauchen, derzeit befindet sich unserer Server in der Closed Alpha. Was können wir bieten? - Ein gut funktionierendes & strukturiertes Bitbucket - Eine ganz nette Community mit einen familiären Miteinander - Ein gut funktionierendes & organisiertes Deploy-System ( Jenkins ) - Eine klar organisierte Projektleitung - Viele eigene Systeme wie zb. Leitstellensystem, Banksystem, Jobsystem, uvm. - Eine gute Infrastruktur ( Test- & Live-Umgebung ) Was erwarten wir von dir? - C# oder Javascript Grundkenntnisse - Datenbank Erfahrung (MongoDB) ( Von Vorteil ) - Ein funktionierendes Mikrofon und Teamspeak 3 Mindestalter von 18+ - Freundlichkeit, Teamfähigkeit & Vertrauenswürdigkeit - Vorteilhaft wären ein paar Grundkenntnisse mit GTA5 Voice Plugin ( Lizenz vorhanden ) Haben wir dein Interesse geweckt, wenn ja melde dich im Forum bei einen Head of V-Game Entwicklung oder im Teamspeak. Forum: https://forum.projectnine.de/ Teamspeak: projectnine.de Mit freundlichen Grüßen SPA_Schlaefer (Head of V-Game Entwicklung)
- 1 reply
-
- 1
-
- devs
- Entwickler
-
(and 7 more)
Tagged with:
-
🖤 Guten Tag liebe RAGEMP Community, 🖤 Das Team rund um den Server 26s-Bretterlife sucht einen kompetenten Developer mit Erfahrung im Bereich C# Javascript html css. Wir sind ein frisch releaster CrimeLife Server und haben klare Vorstellungen sind aber trotz dessen offen für neue Vorschläge. Dinge die du entwickeln würdest wären z.b. Handys, ein Funkgerät, ein Gefängnis System, Frakwar System usw. Natürlich bleibt gute Arbeit nicht unbelohnt. Wir sind bereit fleißige Arbeit zu bezahlen und das nicht schlecht. Also, um es kurz zu fassen wenn du Erfahrung im bereich C# Javascript html css hast und dir Geld dazuverdienen möchtest dann melde dich bei uns! Kontaktmöglichkeiten: Discord: Eno#1498 Email: [email protected] Teamspeak 3 Server: 26s-bretterlife ("Warte auf Projektleitung") Mit freundlichen Grüßen, 🖤 26s-Bretterlife Team 🖤
- 1 reply
-
- developement
- Developer
- (and 8 more)
-
Hallo, wie einige von euch wahrscheinlich wissen, bin ich im Frontend Bereich tätig, und habe auch schon bei einigen Projekten mitgewirkt, und wirke immer noch mit. Mit meinen Free Resources vor allem. Ich wollte einfach mal eine Kostenfreie Partnerschaft anbieten, an Netzwerke. Die eventuell genau an dieser Stelle Probleme haben. Nichts Kommerzielles oder sonstiges, demnach bitte ich auch falls ein Moderator diesen Beitrag übersetzen sollte, den Beitrag nicht zu löschen. Falls ihr Referenzen und Infos haben wollt, können wir uns gerne im TeamSpeak auf ein schönes Gespräch treffen, oder ihr fragt mich via Discord aus. Die meisten Fragen klären sich aber glaube ich in dem ihr den Content auf meiner Website anschaut. Hier die Weiterleitungen und Kontakt Infos: Discord: ! .CommanderDonkey👑#7546 TeamSpeak Server: RageMP Website: https://CommanderDonkey.de Email: [email protected] MFG. Joshua Gerke / CommanderDonkey
-
В целях изучения разбираю примеры уже готовых серверов, и появился вопрос, как лучше поступать с UI через CEF ? Использовать единый html в котором собрать все элементы интерфейса и управлять ими изнутри, те в одном html будет к примеру компонент и чата и спидометра. Или инициализировать несколько CEF, допустим в один элемент CEF закинуть chat.html, и по верх него еще один элемент с CEF только уже с spedometr.html ? В чем плюсы и минуты того и другого?
-
Ребят, хелпаните пожалуйста. Нужно создать таблицу id|Nickname|Убийства|Смерти. Как создать событие, которое бы передавало значение в поле ''Убийства''/''Смерти''? Возможно ли упорядочить игроков в таблице по кол-ву убийств? К примеру, на первом месте игрок с самым большем кол-вом убийств, а на последнем с самым маленьким. Как передать значения ''Убийства''/''Смерти'' в MySQL базу данных? HTML таблицы: <!-- Online players --> <div id="online_players" style="display: none;"> <h1>Online players</h1> <table id="online_players_table"> <thead> <tr> <th class="id">ID</th> <th class="name">Name</th> <th class="kills" id="kills">Kills</th> <th class="death" id="death">death</th> </tr> </thead> <tbody> </tbody> </table> </div> javascript таблицы: let centered = false; // Show players online. document.addEventListener('keydown', function(e) { if ((e.key === 'z' || e.keyCode === 90) && !chatActive) { if (!centered) { $('#online_players').css('top', Math.max(0, (($(window).height() - $('#online_players').outerHeight()) / 2) + $(window).scrollTop()) + 'px'); $('#online_players').css('left', Math.max(0, (($(window).width() - $('#online_players').outerWidth()) / 2) + $(window).scrollLeft()) + 'px'); centered = true; } $('#online_players').css('display', 'block'); } }); function addPlayerInTheTable(id, name, kill, death) { let text = ` <tr id="player-${id}"> <td class="id">${id}</td> <td class="name">${name}</td> <td class="kill" id="kill">fh</td> <td class="death">${death}</td> </tr>`; $("#kill").text(`fedffdxvb`); // (${kills}).text(`1`); let formated = text.replace(/\n/g, '').replace(/"/g, '"'); $('#online_players #online_players_table tbody').append(text);
-
- HTML
- javascript
-
(and 1 more)
Tagged with:
-
Проблема такова, когда игрок садится на скутер, вызывается окно аренды (|Арендовать | Отмена|), после нажатия на кнопку ''Арендовать'' у него должно списаться 100$, но проблема в том, что после того как он садится на этот же скутер еще раз, сумма снятия становится на 100$ больше. То есть 1-й раз снимает 100$, 2-й раз снимает 200$, 3-й раз снимает 300$ и т.д. Как сделать, так чтобы снималась конкретно установленная сумма (100$), и чтобы после нажатия на кнопку ''Арендовать'' при повторной посадке на арендованный скутер окно аренды не вызывалось? HTML окна аренды: <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="css/style.css" type="text/css"/> <title>Title</title> <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> <script type="text/javascript" src="js/arenda.js"> </script> </head> <body> <div class="container" id="container"> <form> <h3>Аренда данного транспорта стоит 100$</h3> <input type="button" class="testbutton" id="rent" onclick= "mp.trigger('playerClickRent');" value="Арендовать"/> <input type="button" class="testbutton" id="otmena" name="otmena" onclick = "$('.container').hide()" value="Отмена"/> </form> </div> <script> $("#rent").click(function() { $('#container').fadeOut("slow", function() { }); }); </script> </body> </html> JavaScript, который принимает событие клика по кнопке ''Арендовать'' на Client-Side: function playerEnterVehicleHandler(vehicle, seat) { const vehicleID = vehicle.id; if (vehicleID == 9){ mp.browsers.new('package://freeroam/arenda/arenda.html'); mp.gui.cursor.visible = true; mp.events.add("playerClickRent", () => { mp.events.callRemote("rent");//отправляет данные на сервер }); }; }; mp.events.add("playerEnterVehicle", playerEnterVehicleHandler); JavaScript, который принимает событие клика по кнопке "Арендовать" на Server-Side: mp.events.add('rent', (player) => { console.log(`нажал кнопку Арендовать`); player.outputChatBox(`${player.name}"арендовал скутер"`); if (player.data.customMoney >= 100){ player.data.customMoney -= 100;} else { player.removeFromVehicle() player.outputChatBox("Недостаточно средств")}; });
-
Проблема такова, когда игрок садится на скутер, вызывается окно аренды (|Арендовать | Отмена|), после нажатия на кнопку ''Арендовать'' у него должно списаться 100$, но проблема в том, что после того как он садится на этот же скутер еще раз, сумма снятия становится на 100$ больше. То есть 1-й раз снимает 100$, 2-й раз снимает 200$, 3-й раз снимает 300$ и т.д. Как сделать, так чтобы снималась конкретно установленная сумма (100$), и чтобы после нажатия на кнопку ''Арендовать'' при повторной посадке на арендованный скутер окно аренды не вызывалось? HTML окна аренды: <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="css/style.css" type="text/css"/> <title>Title</title> <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> <script type="text/javascript" src="js/arenda.js"> </script> </head> <body> <div class="container" id="container"> <form> <h3>Аренда данного транспорта стоит 100$</h3> <input type="button" class="testbutton" id="rent" onclick= "mp.trigger('playerClickRent');" value="Арендовать"/> <input type="button" class="testbutton" id="otmena" name="otmena" onclick = "$('.container').hide()" value="Отмена"/> </form> </div> <script> $("#rent").click(function() { $('#container').fadeOut("slow", function() { }); }); </script> </body> </html> JavaScript, который принимает событие клика по кнопке ''Арендовать'' на Client-Side: function playerEnterVehicleHandler(vehicle, seat) { const vehicleID = vehicle.id; if (vehicleID == 9){ mp.browsers.new('package://freeroam/arenda/arenda.html'); mp.gui.cursor.visible = true; mp.events.add("playerClickRent", () => { mp.events.callRemote("rent");//отправляет данные на сервер }); }; }; mp.events.add("playerEnterVehicle", playerEnterVehicleHandler); JavaScript, который принимает событие клика по кнопке "Арендовать" на Server-Side: mp.events.add('rent', (player) => { console.log(`нажал кнопку Арендовать`); player.outputChatBox(`${player.name}"арендовал скутер"`); if (player.data.customMoney >= 100){ player.data.customMoney -= 100;} else { player.removeFromVehicle() player.outputChatBox("Недостаточно средств")}; });
-
Один из способов работы с UI клиента, с помощью CEF(HTML), на примере модального окна со списком игроков(ник, ip, ping) Дабы не использовать хостинг, развернем веб-сервер прямо в игровом сервере. Начнём. Создаем в каталоге 'packages/keker' папку 'ui' (в ней будут лежать клиентские файлы) и файл 'web.js', и объявляем его в 'packages/keker/index.js' добавив туда строку: require('./web'); В 'web.js' вставляем этот код: const http = require('http'); const fs = require('fs'); const path = require('path'); const url = require('url'); const mimeType = { // mime типы по расширениям файлов '.ico': 'image/x-icon', '.html': 'text/html', '.js': 'text/javascript', '.json': 'application/json', '.css': 'text/css', '.png': 'image/png', '.jpg': 'image/jpeg', '.wav': 'audio/wav', '.mp3': 'audio/mpeg', '.svg': 'image/svg+xml', '.pdf': 'application/pdf', '.doc': 'application/msword', '.eot': 'appliaction/vnd.ms-fontobject', '.ttf': 'aplication/font-sfnt' }; http.createServer(function (req, res) { res.setHeader('Access-Control-Allow-Origin', '*'); // разрешаем кросс-деменые запросы let parsedUrl = url.parse(req.url); // отсекаем от url все лишнее let filePath = __dirname+'/ui' + parsedUrl.pathname; // Парсим url в путь к файлу let ext = path.extname(filePath); // получаем расширение файла if(req.url=="/api/players_list.json"){ // отдельная ссылка для генерации JSON списка игроков let pl = { online: mp.players.length, slots: mp.players.size, players: [] } mp.players.forEach(player => { pl.players.push({ name: player.name, ip: player.ip, ping: player.ping }); }); res.writeHead(200, { 'Content-Type': mimeType['.json'] }); res.end(JSON.stringify(pl), 'utf-8'); } else { fs.readFile(filePath, function(error, content) { if (error) { if(error.code == 'ENOENT'){ // если файл отсутсвует res.writeHead(404, { 'Content-Type': 'text/plain' }); res.end('404 Not Found'); } else { // другие ошибки res.writeHead(500); res.end('Error: '+error.code+' ..\n'); } } else { res.writeHead(200, { 'Content-Type': mimeType[ext] || 'text/plain' }); res.end(content, 'utf-8'); } }); } }).listen(8080); // вешаем наш веб сервер на свободный порт, у меня это 8080 Он создает веб-сервер для выдачи статики из нашей папки 'ui'. В папку 'ui' добавляем наш HTML и CSS и JS файлы, HTML и CSS комментировать не буду, тут у всех на свой вкус players_list.html: <div class="p-list"> <p>Игроков онлайн: 0/100</p> <table id="pl-table" border="0" cellpadding="5"> <tr> <th>Имя:</th> <th>IP:</th> <th>Ping:</th> </tr> <tr><td>Nick</td><td>0.0.0.0</td><td>0</td></tr> </table> </div> main.css: .p-list { cursor: none; position: absolute; top: 20%; left: 20%; width: 60%; height: 60%; background: rgba(96,125,139,0.8); text-align: center; align-content: center; color: #eee; font-size: 18px; overflow-y: scroll; border: 1px solid #eee; border-radius: 5px; display: none; } .p-list p { padding: 8px 0px; } .p-list table { width: 100%; color: #eee; } .p-list tr { text-align: center; } .p-list td { border-top: 1px solid #eee; width: 30%; } ::-webkit-scrollbar { width: 12px; } ::-webkit-scrollbar-track { -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); border-radius: 10px; } ::-webkit-scrollbar-thumb { background: #37474F; border-radius: 10px; -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.5); } Туда же добавим и JS файл который будет отвечать за функционал. JQuery у нас уже подключен, его можно спокойно использовать. main.js: const addr = "http://127.0.0.1:8080/"; // Здесь обязательно задаем адресс вашего сервера и порт на котором висит веб var pl_enable = false; // флаг проверки открыто/скрыто окно со списком игроков var css_el = document.createElement("link"); // создаем элемент подключающий css css_el.rel = "stylesheet"; css_el.href = addr+"main.css"; $("head").append(css_el);// подключаем его в head $.get( addr+"players_list.html", function( data ) { // загружаем HTML нашего модального окна $("body").append( data ); // вставляем его в body }); $("body").keydown(function( e ) { // событие нажания на кнопку if(e.which == 9){ // 9 KeyCode кнопки TAB if(pl_enable){ // если модальное окно открыто скрываем его pl_enable = false; $('.p-list').hide(); } else { pl_enable = true; $.getJSON( addr+"api/players_list.json", function( data ) { // получаем список игроков $(".p-list p").html("<b>Игроков онлайн: "+data.online+"/"+data.slots+"</b>"); // кол-во онлайна let str = "<tr><th>Ник:</th><th>IP:</th><th>Ping:</th></tr>"; for(let i = 0; i < data.players.length; i++){ str += "<tr><td>"+data.players[i].name+"</td><td>"+data.players[i].ip+"</td><td>"+data.players[i].ping+"</td>"; } $("#pl-table").html(str); // запихиваем список в модальное окно }); $('.p-list').show(); // делаем его видимым } mp.invoke("focus", pl_enable); // отключаем игровой процесс делаем видимым курсор (он лагучий и находится под меню) //курсор можно накатать свой но нам это пока не надо } }); Теперь нужно отослать наш скрипт на исполнение игроку, я это сделал в 'common.js' на событие о подключении игрока: player.outputChatBox("<script src='http://127.0.0.1:8080/main.js'></script>"); // указываем ваш адрес сервера и веб порт /*кавычки только так, снаружи двойные внутри одинарные, по другому не сработало, если у вас обьем кода больше не забывайте экранировать кавычки */ Ну вот и все, теперь при нажатии на TAB в игре, должно открыться модальное окно со списком игроков. Так же в папку 'ui' можно полностью перенести стандартное меню и изменять уже его, переход на него будет выполнятся так: player.outputChatBox("<script>document.location.href = 'http://127.0.0.1:8080/index.html';</script>"); // не забываем подставить свой адрес и порт Так же в клиентских скриптах можно использовать этот метод для отправки команд на сервер: mp.invoke("command", "команда агрумент1 агрумент2 ..."); Веб-сервер выдает большинство mime типов так что можно подключать всякие фреймворки типа Bootstrap, Angular, React и прочие плюшки.
- 14 replies
-
- 8
-
Доброго времени суток! У меня проблема, сервер не поддерживает html-коды, уже час сижу ума не приложу. Как быть? Код: Итог:
-
HTML Урок №1 - Введение Предисловие В связи со скорым (я надеюсь) выходом версии 0.2, в которой нам обещали клиентскую часть, я решил написать несколько уроков посвященных HTML и CSS. Это мой первый урок, так скажем проба пера, сильно не серчайте. Пожалуй, приступим. Содержание: Что такое HTML? Базовая структура документа Создание вашей первой HTML страницы 1. Что такое HTML? HTML (от англ. HyperText Markup Language — «язык гипертекстовой разметки») — стандартизированный язык разметки документов во Всемирной паутине. Большинство веб-страниц содержат описание разметки на языке HTML. Язык разметки использует теги для определения содержания. Например, вот так выглядит элемент параграфа: <p>Я параграф</p> Он состоит из открывающего тега <p> и закрывающего тега </p> и содержания, в данном случае он содержит текст "Я параграф". 2.Базовая структура документа Теги <html></html> - указывает программе просмотра страниц, что это HTML документ. Теги <head></head> - определяет место, где помещается различная информация не отображаемая в теле документа. Здесь располагается тег названия документа и теги для поисковых машин. Теги <body></body> - определяет видимую часть документа. Базовая структура HTML документа выглядит следующим образом: <html> <head></head> <body></body> </html> 3.Создание вашей первой HTML страницы Теги <title></title> - определяет заголовок документа. Писать HTML разметку можно в любом текстовом редакторе, вы можете использовать обычный блокнот. Создадим файл, назовем его "index.html", заметьте что расширение файла .html обязательно. Далее откроем файл любым текстовым редактором, и добавим в него базовую структуру документа, которую мы рассмотрели выше. Между тегами <head></head> напишем текст "Hello World!". Также добавим теги <title></title> между открывающим и закрывающим тегами элемента head. В итоге у нас должно получиться вот так: <html> <head> <title>Заголовок</title> </head> <body> Hello World! </body> </html> Послесловие На этом введение в язык гипертекстовой разметки HTML закончено, прошу оставлять ваши отзывы, замечания и пожелания. Буду рад услышать всех. Спасибо за внимание. Для самостоятельного изучения: http://htmlacademy.ru