С помощью этого плагина, вы сможете писать свои игровые режимы (моды) на языке PHP, который является языком программирования с динамической типизацией, не требующим указания типа данных или его величины... [читать больше]. Используя этот плагин, у вас автоматически отпадает потребность во множестве дополнительных плагинов, типа: MySQL, Socket, FTP, Filemanage, execute, ... или библиотек (инклудов): md5, hash, RegExp, crypt, ... (список всех функций), и самое главное, это работает гораздо быстрее родного PAWN.
Как это выглядит сейчас (PAWN):
Код
public OnPlayerConnect(playerid) { //Get the name of the player that connected and display a join message to other players
new name[MAX_PLAYER_NAME+1], string[24+MAX_PLAYER_NAME+1]; GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "%s has joined the server.", name); SendClientMessageToAll(0xC4C4C4FF, string);
return 1; }
На PHP это будет выглядеть примерно так:
Код
function OnPlayerConnect($playerid) { //Get the name of the player that connected and display a join message to other players $playername = GetPlayerName($playerid);
SendClientMessageToAll(0xC4C4C4FF, "$playername has joined the server.");
return true; }
Так же не забываем о ООП в PHP (тогда и вовсе проще):
Код
Event::on('PlayerConnect', function($player) { SendClientMessageToAll(0xC4C4C4FF, $player->getName()." has joined the server.");
.:Установка:. Linux 1. Скачать архив (ссылки ниже) 2. Извлечь все файлы. 3. Переместить содержимое папки "server-folder" в папку с вашим сервером. 4. Добавить “plugins samphp” в server.cfg 5. Если вы получите ошибку “missing libphp5.so” смотрите "Установке libphp5.so" 6. Установите gamemode0 на "empty" в server.cfg Установка libphp5.so Здесь уже два варианта установки libphp5.so:
Вариант 1:
1. Скачать бинарник для вашей ОС (ссылки ниже).
2. Поместить libphp5.so в /usr/local/lib
3. Запустить ldconfig (На CentOS 5.9: "/sbin/ldconfig /usr/local/lib")
4. Готово!
Вариант 2:
1. Установить libxml2-dev и другие инструменты, типа gcc и headers
2. Запустить "install_libphp.sh" от рута.
3. Готово.
Компиляция SAMPHP под ваш Linux 1. Скачайте с GitHub все исходники. 2. Установите SAMP GDK. 3. Установите libphp5 используя прилагаемый скрипт. 4. Запустите build.sh в папке "samphp". 5. Скопируйте полученный файл samphp в папку "plugins" на вашем сервере.
Windows 1. Скачать архив (ссылки ниже) 2. Извлечь все файлы. 3. Переместить содержимое папки "server-folder" в папку с вашим сервером. 4. Добавить “plugins samphp” в server.cfg 5. Если получите ошибку "msvcr110.dll" значит вам нужно установить требуемые библиотеки 6. Установите gamemode0 на "empty" в server.cfg
Начинаем писать мод: Первый способ: просто создайте файл gamemode.php внутри папки "php", подключите “core/bootstrap.php” для использования фреймворка (не рекомендую). Способ второй: 1. Создайте внутри папки "php" папку с именем вашего мода, например "samprus_mod", затем внутри неё файл gamemode.php, также можете подключить фреймворк (include “core/bootstrap.php”), который я крайне не рекомендую использовать (много ошибок). 2. Добавьте строку "samphpmode samprus_mod" в server.cfg
Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги. Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
Посмотрел код тестового мода и классов из папки "core", всё кажется достаточно легким, удобным в использовании (за счет классов код самого мода на PHP будет в разы меньше нежели в Pawn), да и скорость выполнения в разы выше, прям захотелось мод какой-то написать) Спасибо.
ZiGGi, некоторые вещи действительно будут работать медленнее, типа $i++; (см таблицу), меня больше до сих пор терзают сомнению в плане нагрузок и стабильности.
AirKite, alex009 тоже выкладывал исходники ботов своих, однако я что-то не видел, чтобы кто-то конкретно взялся настраивать плагин под новые версии сампа.
Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги. Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
RoACh, его плагин был Memory Hack характера, который во первых изза этого не расползался на официальном форуме, а во вторых MemHack это не пару строчек добавить (типа новые функции в SAMP) которых кстати скорее всего и не будет ещё долгое время. А так, в целом сам SDK готов, там нечего больше поддерживать на данный момент.
AirKite, ну я не вникал в принципы работы плагинов, так как не нужно было. Я к тому, что переписывать сейчас мод на PHP, а потом обратно, не очень приятное занятие)
Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги. Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
А кто мешает писать на двух языках? Вроде смущать ничего не должно, ведь в игровых движках нередко бывает что применяется два скриптовых языка, или ЯП и скриптовый. Таким образом с существующим модом начать с оптимизации, т.е. чтобы то что быстрей на php, было переписано на него. И дальнейшее развитие делать с акцентом на php.
Никого же не смущают то что UCP работает через мускул и написана на php(могло бы быть и другое, но они не столь уж сложны чтоб использовать другие языки). Не генерирует же PAWN (html или js)+css код для вывода UCP.