PHP или JavaScript или друг уеб скрипт за гледане на демо от 1.6

PHP, MySQL, JavaScript, HTML, CSS и др.
Аватар
bringmefans1
Извън линия
Потребител
Потребител
Мнения: 50
Регистриран на: 27 Фев 2018, 14:17
Се отблагодари: 6 пъти
Получена благодарност: 3 пъти

PHP или JavaScript или друг уеб скрипт за гледане на демо от 1.6

Мнение от bringmefans1 » 21 Мар 2023, 11:07

Здравейте,

Искам да интегрирам към уеб сайта си някакъв скрипт с които играчите да си качват демото от cs-sa и да го визуализирам чрез някакъв плайър.

Това възможно ли е и може ли да ме ориентирате нещо?

Благодаря Ви.
https://www.csboost.eu - CS 1.6 Servers monitoring.
https://www.fatall-error.info - CS 1.6 Servers

Аватар
V.A.L.V.E
Извън линия
Потребител
Потребител
Мнения: 445
Регистриран на: 18 Дек 2016, 22:48
Се отблагодари: 110 пъти
Получена благодарност: 71 пъти
Обратна връзка:

Re: PHP или JavaScript или друг уеб скрипт за гледане на демо от 1.6

Мнение от V.A.L.V.E » 21 Мар 2023, 16:08

Създай MySQL база данни и таблица за съхранение на демотата.

SQL файл:

CREATE DATABASE demo_database; USE demo_database; CREATE TABLE demos ( id INT(11) NOT NULL AUTO_INCREMENT, name VARCHAR(255) NOT NULL, description TEXT, file_name VARCHAR(255) NOT NULL, upload_date DATETIME NOT NULL, PRIMARY KEY (id) );

Създай HTML форма за качване на демота, която да изглежда ето така:

<form action="upload.php" method="post" enctype="multipart/form-data"> <label for="demo-name">Име на демото:</label> <input type="text" name="demo-name" id="demo-name" required> <br> <label for="demo-description">Описание на демото:</label> <textarea name="demo-description" id="demo-description"></textarea> <br> <label for="demo-file">Файл:</label> <input type="file" name="demo-file" id="demo-file" required> <br> <input type="submit" value="Качи"> </form>

Създай файл с име upload.php и добави този скрипт

<?php // Проверка за валидност на формата и файла if (!isset($_POST['demo-name']) || !isset($_FILES['demo-file'])) { die('Невалидна форма'); } $demo_name = $_POST['demo-name']; $demo_description = isset($_POST['demo-description']) ? $_POST['demo-description'] : ''; $demo_file_name = $_FILES['demo-file']['name']; $demo_file_tmp_name = $_FILES['demo-file']['tmp_name']; $demo_file_error = $_FILES['demo-file']['error']; // Проверка за грешки при качването на файла if ($demo_file_error !== UPLOAD_ERR_OK) { die('Грешка при качване на файла'); } // Генериране на уникално име на файла $demo_file_extension = pathinfo($demo_file_name, PATHINFO_EXTENSION); $demo_file_unique_name = uniqid() . '.' . $demo_file_extension; // Записване на информацията за демото в базата данни $db = new mysqli('localhost', 'username', 'password', 'database_name'); if ($db->connect_error) { die('Грешка при свързване с базата данни'); } $sql = "INSERT INTO demos (name, description, file_name, upload_date) VALUES (?, ?, ?, NOW())"; $stmt = $db->prepare($sql); $stmt->bind_param('sss', $demo_name, $demo_description, $demo_file_unique_name); $stmt->execute(); // Копиране на файла в директория, достъпна за изпълнението на PHP скрипта $demo_file_destination = 'demos/' . $demo_file_unique_name; if (!move_uploaded_file($demo_file_tmp_name, $demo_file_destination)) { die('Грешка при записване на файла'); } echo 'Демото е качено успешно'; ?>

  • Проверка за валидност на формата и файла
    Генериране на уникално име на файла (например, базирано на текущата дата и час)
    Записване на информацията за демото в базата данни
    Копиране на файла в директория, достъпна за изпълнението на PHP скрипта
Не забравяй в този файл да си добавиш данните за mysql конекцията.

Създай страница за листинг на демотата с име watch.php Тя може да изглежда например така:


<!DOCTYPE html> <html> <head> <title>Демота</title> </head> <body> <h1>Демота</h1> <ul> <?php $db = new mysqli('localhost', 'username', 'password', 'database_name'); if ($db->connect_error) { die('Грешка при свързване с базата данни'); } $result = $db->query("SELECT * FROM demos ORDER BY upload_date DESC"); while ($row = $result->fetch_assoc()) { echo '<li><a href="watch.php?id=' . $row['id'] . '">' . $row['name'] . '</a></li>'; } $db->close(); ?> </ul> </body> </html>

И тук също добави данните си за кънекция към базата данни.

Не съм тествал скрипта, не гарантирам дали работи, тествай го с PHP версия 7.0+ т.е 7.0,7.2 или 7.4

Аватар
bringmefans1
Извън линия
Потребител
Потребител
Мнения: 50
Регистриран на: 27 Фев 2018, 14:17
Се отблагодари: 6 пъти
Получена благодарност: 3 пъти

Re: PHP или JavaScript или друг уеб скрипт за гледане на демо от 1.6

Мнение от bringmefans1 » 21 Мар 2023, 21:25

Здравей,

Благодаря много за информацията. Аз съм PHP програмист.
Не ми е проблема как ще качваме файловете и как ще ги визуализирам.

Проблема ми е как ще възпроизведа .dem файловете от Counter Strike директно в браузъра под формата на видеоплаър.

https://github.com/skyrim/hlviewer.js

Намерих това като решение, но не мога да стартирам картите...
https://www.csboost.eu - CS 1.6 Servers monitoring.
https://www.fatall-error.info - CS 1.6 Servers

Аватар
V.A.L.V.E
Извън линия
Потребител
Потребител
Мнения: 445
Регистриран на: 18 Дек 2016, 22:48
Се отблагодари: 110 пъти
Получена благодарност: 71 пъти
Обратна връзка:

Re: PHP или JavaScript или друг уеб скрипт за гледане на демо от 1.6

Мнение от V.A.L.V.E » 21 Мар 2023, 21:57

bringmefans1 написа: 21 Мар 2023, 21:25 Здравей,

Благодаря много за информацията. Аз съм PHP програмист.
Не ми е проблема как ще качваме файловете и как ще ги визуализирам.

Проблема ми е как ще възпроизведа .dem файловете от Counter Strike директно в браузъра под формата на видеоплаър.

https://github.com/skyrim/hlviewer.js

Намерих това като решение, но не мога да стартирам картите...
За да възпроизведеш .dem файлове с PHP, можеш да използваш HTML5 видео плеъри като Video.js, който има поддръжка за множество формати на видео файлове, включително .dem. Просто посочи URL адреса на твоя .dem файл в тага за видео на твоя уеб сайт и Video.js ще го възпроизведе автоматично.

Аватар
pok4
Извън линия
Потребител
Потребител
Мнения: 158
Регистриран на: 05 Фев 2022, 14:38
Се отблагодари: 1 път
Получена благодарност: 73 пъти

Re: PHP или JavaScript или друг уеб скрипт за гледане на демо от 1.6

Мнение от pok4 » 21 Мар 2023, 22:38

Няма да стане, тъй като демотата са зависими от други неща от играта. (скинове, карти и т.н.)
Това, което е намерил може и да свърши работа, но не знам дали ще се изобразява всичко. Сам вижда автора на темата колко е голямо.
С HTML5 видео плеъри каквито и да са няма да стане, може да ви светне, че има цяла библиотека, която е изградена само за демо файловете от играта... (hlviewer.js)
Моя съвет е да потърси дали има някакъв конвертър (converter), който от dem прави avi/mp4 или друго по-лесно четимо видео.
Ако намериш подобен преобразувател, може локално да се конвентира с php и да си го изведеш с какъвто и да било плеър.
shell_exec е командата, която те интересува и чрез нея може да стартираш локални команди на машината. (изисква safe_mode = off по спомен). Аз съм ползвал shell_exec с ffmpeg, за да слагам воден знак на клипове...
Говоря наизуст, но съм почти сигурен, че няма да стане :) Това, което си намерил ще ти върши най-добре работа, защото е парснато почти всичко. Стига да си го подкараш... (:

Аватар
ChillX
Извън линия
Потребител
Потребител
Мнения: 92
Регистриран на: 19 Дек 2022, 00:40
Се отблагодари: 1 път
Получена благодарност: 26 пъти
Обратна връзка:

Re: PHP или JavaScript или друг уеб скрипт за гледане на демо от 1.6

Мнение от ChillX » 24 Мар 2023, 17:00

С HLViewer aka hlviewer.js се възпроизвеждат, това е единствената разработка, но беше адски бъгаво, крашваше, никога не е работило правилно и имаше 100 проблема, а другия проект с локалните файлове на холандеца като гледам също е позамрял (няма да работи без библиотеки ако играта е в program files, проблеми с моделите и тн), включително и Xash3D FWGS проекта, като гледам не работи в chrome но изглежда активен, питай там дали случайно нямат нещо готово и ъпдейтнато, което да използваш.
Други опции, с които да си направиш плеър са X3DOM, CesiumJS, Babylon.js и разбира се Three.js, но ще ти отнеме много време :dtm:

Аватар
bringmefans1
Извън линия
Потребител
Потребител
Мнения: 50
Регистриран на: 27 Фев 2018, 14:17
Се отблагодари: 6 пъти
Получена благодарност: 3 пъти

Re: PHP или JavaScript или друг уеб скрипт за гледане на демо от 1.6

Мнение от bringmefans1 » 28 Мар 2023, 09:30

ChillX написа: 24 Мар 2023, 17:00 С HLViewer aka hlviewer.js се възпроизвеждат, това е единствената разработка, но беше адски бъгаво, крашваше, никога не е работило правилно и имаше 100 проблема, а другия проект с локалните файлове на холандеца като гледам също е позамрял (няма да работи без библиотеки ако играта е в program files, проблеми с моделите и тн), включително и Xash3D FWGS проекта, като гледам не работи в chrome но изглежда активен, питай там дали случайно нямат нещо готово и ъпдейтнато, което да използваш.
Други опции, с които да си направиш плеър са X3DOM, CesiumJS, Babylon.js и разбира се Three.js, но ще ти отнеме много време :dtm:
Крайно изчерпателна информация.
Благодаря много колега!
https://www.csboost.eu - CS 1.6 Servers monitoring.
https://www.fatall-error.info - CS 1.6 Servers

Заключено
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Уеб Програмиране”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 2 госта