ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Общие вопросы программирования (https://forum.antichat.xyz/forumdisplay.php?f=206)
-   -   Компиляция .lua скрипта на сервере (https://forum.antichat.xyz/showthread.php?t=1372215)

Leatington 09.12.2020 13:13

Пишу именно в этот раздел, ибо от скриптовой части (Lua) тут мало чего зависит. Боюсь, что не смогу правильно сформулировать вопрос, поэтому объясняю, что мне нужно.

В .lua скрипте есть переменная, допустим,
token. Она хранит в себе значение12345.

С помощью HTTP запроса скрипт передаёт это значение на сервер.

А теперь самое главное: что должен сделать сервер?

Он должен прочитать имеющийся на сайте .lua скрипт, заменить там значение
tokenна то, которое мы получили от скрипта (это уже реализовано), скомпилировать с помощью LuaJIT и вернуть тому, кто отправил запрос.

Как вы уже поняли, это некая система автоматческого обновления. А теперь небольшие замечания:

- Стандартная система автоматического автообновления мне не подходит, можете даже не предлагать.

- Сохранять значение переменной на компьютере у пользователя - не вариант.

- Я знаю, что для реализации подобного нужен VDS/VPS сервер - он у меня есть.

- Меня интересует то, как после выполнения из PHP скрипта команды компиляции (exec) передать результат (скомпилированный файл) в ответ пользователю.

Hatrig 11.12.2020 10:15

Привет, не сильно знаком конкретно с луа, но сталкивался с похожей задачей.

Можно хранить нужные тебе переменные на сервере, в бд. Луа ведь используется на компьютере пользователя, верно? При заходе в игру, можно посылать запрос на сервер с гет параметрами, а на сервере будет эдакий гейт, который будет эти гет параметры считывать, сверять с данными в бд и (допустим, если значение изменено) давать ответ, который твой луа будет считывать и в зависимости от ответа выполнять какие-то действия (я так понимаю, в твоём случае подгрузка нового луа файла). Можно в качестве ответа отдавать путь к скомпилированному файлу, а уже в луа передавать это значение в downloadUrlToFile (или какая там в луа функция для этого).

Возможно, это как-то поможет.

SCHWEITZER 14.12.2020 00:47

Скорее всего тут есть ошибки, да и не одна, но за основу сойдет

PHP:





[CODE]



Если не работает, посмотри в сторону readfile, file_get_contents и fopen/fread

Frapsy 14.12.2020 04:44

Цитата:

Сообщение от Leatington

- Меня интересует то, как после выполнения из PHP скрипта команды компиляции (exec) передать результат (скомпилированный файл) в ответ пользователю.

Передавай его сразу в обработчике, к которому обращаешься с "токеном". Страница так или иначе не даст тебе ответ, пока не выполнит задачу(либо пока не стукнет таймаут). Либо костылем ебош в два запроса, а-ля обработчик токена ебанет ответом тебе путь к файлу, и вторым запросом из скрипта ты его подгрузишь из того самого пути. По крайней мере, только так я вижу подобное извращение обновлений

asdzxcjqwe 14.12.2020 23:36

чтобы просто изменить значение переменной, тебе не нужно ничего компилировать на сервере, это лишняя работа. Ты можешь редактировать скомпилированный Luac на сервере, для этого ни дедик, ни даже платный shared хостинг не нужны.

substr_replace - бинарно-безопасная замена части строки по определенной позиции


Время: 05:52