14:21
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Модератор форума: Interpol  
[Plugin] SA:MP Gamemode SDK for PHP
AirKiteДата: Воскресенье, 01.09.2013, 03:44 | Сообщение # 1
Долгожитель
Группа: I'm V.I.P.
Сообщений: 1671
Награды: 21
Город: Новосибирск
Репутация: 2070
Замечания: 0%
Статус:
SA:MP Gamemode SDK for PHP

С помощью этого плагина, вы сможете писать свои игровые режимы (моды) на языке 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.");

         return true;
});


Пример диалога на PHP с ООП:
Код
$testDialog = Dialog::create(DIALOG_STYLE_LIST, 'title', 'okay', 'cancel')
      ->addListItem('Infernus', 411)
      ->addListItem('FBI Truck', 528)
      ->addListItem('Bike', 509)
      ->addListItem('BMX', 481)
      ->addListItem('Mountain Bike', 510)
      ->addListItem('Firetruck', 407)
      ->addListItem('Firetruck with Ladder', 544)
      ->addListItem('SWAT', 601)
      ->addListItem('Tank (Rhino)', 432)
      ->on('Response', function($player, $dialog, $button, $value){
       if($button)
       {
        $pos = $player->getPos();
        $facing = $player->getFacingAngle();
           
        $vehicle = Vehicle::create($value, $pos->x, $pos->y, $pos->z, $facing);
           
        $player->putInVehicle($vehicle);           
       }
      });

Скорость выполнения кода, по сравнению с PAWN:

Код теста: bench.php и bench.pwn

.:Установка:.
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

.:Скачать:.
Debian/Ubuntu/Linux Mint x86/x86_64:
SAMPHP Binary: http://www.sney.net/files/samphp-release-linux.zip
libphp5.so: http://www.sney.net/files/libphp5.so.zip
CentOS 5.9 x86/x86_64:
SAMPHP Binary: http://www.sney.net/files/samphp-release-centos.zip
libphp5.so: http://www.sney.net/files/libphp5.so_centos.zip
Windows:
SAMPHP Binary: http://www.sney.net/files/samphp-release-windows.zip

.:Ссылки:.
GitHub: https://github.com/Lapayo/SAMPHP
Оригинал (eng): http://forum.sa-mp.com/showthread.php?t=442302

Тема переведена на русский язык и дополнена AirKite, специально для samp-rus.com
Копирование без ссылки на источник запрещено!



[1337GAMES] Easy RP
(SAMP SERVER, DEVELOPMENT, NOT SAMP-RP, SMART LIFE)


Jabber: airkite@qip.ru
[Addon] QuickBinder
[FS] Online Players Record


Сообщение отредактировал AirKite - Воскресенье, 01.09.2013, 03:52
SLICKДата: Воскресенье, 01.09.2013, 05:49 | Сообщение # 2
Местный
Группа: I'm V.I.P.
Сообщений: 603
Награды: 9
Город: Unknown
Репутация: 388
Замечания: 0%
Статус:
Ого.. Как же не хватало ООП, а здесь оно есть!
Попробую, если все нормально работает, то это очень круто!



My works:
[GM] RTDM
Advertising system
Fuel System
Artefacts Search (Динамическая сис-ма артефактов)
Fus1Дата: Воскресенье, 01.09.2013, 11:58 | Сообщение # 3
Группа: Продвинутые
Сообщений: 2704
Награды: 121
Город: Melbourne Australia
Репутация: 3103
Замечания: 0%
Статус:
м.... самп ещё актуален в разработках?)
AlcoholikДата: Воскресенье, 01.09.2013, 12:24 | Сообщение # 4
Мастер джэдай
Группа: Администратор
Сообщений: 8299
Награды: 111
Город: Санкт-Петербург
Репутация: 6085
Статус:
Интересная штука, главное, чтобы она и дальше поддерживалась автором


if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die();
Мониторинг sa:mp серверов


Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги.
Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
DeklanДата: Воскресенье, 01.09.2013, 14:34 | Сообщение # 5
Постоялец
Группа: I'm V.I.P.
Сообщений: 352
Награды: 4
Город: Киев
Репутация: 678
Замечания: 0%
Статус:
Посмотрел код тестового мода и классов из папки "core", всё кажется достаточно легким, удобным в использовании (за счет классов код самого мода на PHP будет в разы меньше нежели в Pawn), да и скорость выполнения в разы выше, прям захотелось мод какой-то написать) Спасибо.


My Skype: nazaret.su

Сообщение отредактировал Deklan - Воскресенье, 01.09.2013, 14:59
AirKiteДата: Воскресенье, 01.09.2013, 15:00 | Сообщение # 6
Долгожитель
Группа: I'm V.I.P.
Сообщений: 1671
Награды: 21
Город: Новосибирск
Репутация: 2070
Замечания: 0%
Статус:
Цитата (RoACh)
Интересная штука, главное, чтобы она и дальше поддерживалась автором

А что ещё поддерживать? PHP в действии и естественно поддерживается, а плагин с исходниками.

Цитата (SLICK)
Ого.. Как же не хватало ООП, а здесь оно есть!
Попробую, если все нормально работает, то это очень круто!

Да, ещё бы раньше всё это появилось...



[1337GAMES] Easy RP
(SAMP SERVER, DEVELOPMENT, NOT SAMP-RP, SMART LIFE)


Jabber: airkite@qip.ru
[Addon] QuickBinder
[FS] Online Players Record
ZiGGiДата: Воскресенье, 01.09.2013, 15:34 | Сообщение # 7
Мастер джэдай
Группа: Продвинутые
Сообщений: 2652
Награды: 34
Город: St. Petersburg
Репутация: 2102
Замечания: 20%
Статус:
Видел, но сомневался в скорости. Ну, а в целом очень круто, надо попробовать.


Бложе
[indent]Мой блог
Уроки по Pawn
[/indent]

Open-GTO
[indent]Блог разработчиков
GitHub: https://github.com/Open-GTO/Open-GTO
Сборки мода с сервером тут
[/indent]
AirKiteДата: Воскресенье, 01.09.2013, 17:03 | Сообщение # 8
Долгожитель
Группа: I'm V.I.P.
Сообщений: 1671
Награды: 21
Город: Новосибирск
Репутация: 2070
Замечания: 0%
Статус:
ZiGGi, некоторые вещи действительно будут работать медленнее, типа $i++; (см таблицу), меня больше до сих пор терзают сомнению в плане нагрузок и стабильности.


[1337GAMES] Easy RP
(SAMP SERVER, DEVELOPMENT, NOT SAMP-RP, SMART LIFE)


Jabber: airkite@qip.ru
[Addon] QuickBinder
[FS] Online Players Record
AlcoholikДата: Воскресенье, 01.09.2013, 19:39 | Сообщение # 9
Мастер джэдай
Группа: Администратор
Сообщений: 8299
Награды: 111
Город: Санкт-Петербург
Репутация: 6085
Статус:
AirKite, alex009 тоже выкладывал исходники ботов своих, однако я что-то не видел, чтобы кто-то конкретно взялся настраивать плагин под новые версии сампа.


if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die();
Мониторинг sa:mp серверов


Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги.
Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
ZiGGiДата: Воскресенье, 01.09.2013, 20:07 | Сообщение # 10
Мастер джэдай
Группа: Продвинутые
Сообщений: 2652
Награды: 34
Город: St. Petersburg
Репутация: 2102
Замечания: 20%
Статус:
Цитата (RoACh)
alex009 тоже выкладывал исходники ботов своих, однако я что-то не видел, чтобы кто-то конкретно взялся настраивать плагин под новые версии сампа.

Вроде была версия для 0.3c



Бложе
[indent]Мой блог
Уроки по Pawn
[/indent]

Open-GTO
[indent]Блог разработчиков
GitHub: https://github.com/Open-GTO/Open-GTO
Сборки мода с сервером тут
[/indent]
AirKiteДата: Воскресенье, 01.09.2013, 21:32 | Сообщение # 11
Долгожитель
Группа: I'm V.I.P.
Сообщений: 1671
Награды: 21
Город: Новосибирск
Репутация: 2070
Замечания: 0%
Статус:
RoACh, его плагин был Memory Hack характера, который во первых изза этого не расползался на официальном форуме, а во вторых MemHack это не пару строчек добавить (типа новые функции в SAMP) которых кстати скорее всего и не будет ещё долгое время. А так, в целом сам SDK готов, там нечего больше поддерживать на данный момент.


[1337GAMES] Easy RP
(SAMP SERVER, DEVELOPMENT, NOT SAMP-RP, SMART LIFE)


Jabber: airkite@qip.ru
[Addon] QuickBinder
[FS] Online Players Record
AlcoholikДата: Воскресенье, 01.09.2013, 22:32 | Сообщение # 12
Мастер джэдай
Группа: Администратор
Сообщений: 8299
Награды: 111
Город: Санкт-Петербург
Репутация: 6085
Статус:
AirKite, ну я не вникал в принципы работы плагинов, так как не нужно было. Я к тому, что переписывать сейчас мод на PHP, а потом обратно, не очень приятное занятие)


if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die();
Мониторинг sa:mp серверов


Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги.
Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
DiSEДата: Понедельник, 02.09.2013, 11:09 | Сообщение # 13
Группа: I'm V.I.P.
Сообщений: 1759
Награды: 23
Город: Уфа
Репутация: 337
Замечания: 80%
Статус:
RoACh, ну в любом случае бэкап уже сделан должен быть, если начать переписывать
FabervoxДата: Понедельник, 02.09.2013, 16:18 | Сообщение # 14
Уверенный в себе
Группа: I'm V.I.P.
Сообщений: 235
Награды: 1
Город: Краматорск
Репутация: 217
Замечания: 0%
Статус:
А кто мешает писать на двух языках?
Вроде смущать ничего не должно, ведь в игровых движках нередко бывает что применяется два скриптовых языка, или ЯП и скриптовый.
Таким образом с существующим модом начать с оптимизации, т.е. чтобы то что быстрей на php, было переписано на него. И дальнейшее развитие делать с акцентом на php.

Никого же не смущают то что UCP работает через мускул и написана на php(могло бы быть и другое, но они не столь уж сложны чтоб использовать другие языки). Не генерирует же PAWN (html или js)+css код для вывода UCP.




RP в мире - как мух в сортире, а нужного чуда не видать покуда..©_Z_
Как посмотришь, сколько тысяч строчек кода, в одном файле, сразу понимаешь почему моды делают годами.
Закон сохранения сложности
AirKiteДата: Понедельник, 02.09.2013, 20:38 | Сообщение # 15
Долгожитель
Группа: I'm V.I.P.
Сообщений: 1671
Награды: 21
Город: Новосибирск
Репутация: 2070
Замечания: 0%
Статус:
Цитата (Fabervox)
Не генерирует же PAWN (html или js)+css код для вывода UCP.

По моему такие умники находились, кто из под сампа записывал html страничку )))



[1337GAMES] Easy RP
(SAMP SERVER, DEVELOPMENT, NOT SAMP-RP, SMART LIFE)


Jabber: airkite@qip.ru
[Addon] QuickBinder
[FS] Online Players Record
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua