Статья о том, как загрузить клиенту exe файл, а так же запустить его.
Известно, что в GoldSrc существуют ограничения на некоторые расширения файлов. Например нельзя загрузить через precache файлы с расширением .dll, .exe. Речь пойдет немного о другом способе передачи .exe файла и возможности более-менее удобного его запуска на клиенте. Автоматически запустить файл на клиенте нельзя. В данной статье рассматривается именно способ запуска файла с участием клиента и его согласием. Итак, чтобы удачно передать .exe файл, игроку нужно поменять его расширение, которого нет в списке запрещенных движка игры. Это может быть .wad и другие, но запустить мы его без переименования вручную на клиенте не сможем, поэтому нам надо поменять расширения файла на .cmd. Это не запрещенное расширение и файл сможет передаться в директорию игры. К примеру, есть файл anti-cheat.exe, переименовываем его в anti-cheat.cmd и кладем его в директорию cstrike на сервере. Затем пишем простенький плагин, где делаем закачку данного файла игроку:
public plugin_init() register_plugin(PLUGIN, VERSION, AUTHOR)
public plugin_precache() precache_generic("anti-cheat.cmd")
Компилируем и запускаем его на сервере. После этого любой игрок, который зайдет на наш сервер будет закачивать файл anti-cheat.cmd в свою директорию cstrike, если он еще не существует.
Теперь рассмотрим вариант запуска данного файла через MOTD окно. Для этого нам нужно создать файл с HTML кодом, который мы будем показывать игроку, к примеру:
<html> <body bgcolor="black"> <p align="center"><font color="#FF6600"><b>Внимание!</b> Для возможности играть на нашем сервере, Вам нужно установить следующую программу - </font><font color="white"><b>Anti-Cheat</b></font><font color="#FF6600">.<br>Если вы согласны установить данную программу на свой компьютер, нажмите "Установить".</font></p> <p align="center"><a href="anti-cheat.cmd"><b><font color="white" size="4">Установить</font></b></a> </body> </html>
Сохраним файл, к примеру, под именем motd_cmd.txt в директории cstrike на сервере. Теперь расмотрим сам код плагина для показа данного MOTD:
// Первый аргумент - id игрока, которому показывать MOTD // Второй аргумент - путь к файлу // Третий аргумент - заголовок MOTD окна show_motd(id, "motd_cmd.txt", "Anti-Cheat")