PDA

Просмотр полной версии : [Урок] Pawn-скриптинг на Android



Daniel_Cortez
31.05.2014, 21:24
Pawn-скриптинг на Android

http://ihost.pro-pawn.ru/image.php?di=NC8B

Свершилось, наконец-то удалось подготовить эту статью.
Как вы уже поняли из названия, в ней я объясню вам, как использовать компилятор Pawn на устройствах, работающих на ОС Android.

Внимание! (Achtung!)
Инструкции, приведённые в данной статье, могут работать не на всех устройствах.
В процессе установки придётся скачать около 500Мб данных.
Также понадобится ~900Мб свободного пространства во внутренней памяти устройства.
Для удобства желательно иметь при себе Bluetooth-клавиатуру и мышь (впрочем, можно обойтись и без них, но это будет куда менее удобно).
Автор статьи не несёт ответственности за возможный моральный и/или материальный вред, причинённый вследствие использования или неправильного использования материалов из данной статьи.


Итак, поехали!

Сначала нам понадобится установить следующее приложение:

https://play.google.com/store/apps/details?id=com.cuntubuntu
Это не полноценная ОС, а всего лишь слой совместимости между ПО из Debian и ядром Linux, используемым в Android.
Для установки Вам даже не понадобится рутовать устройство.

Внимание! На некоторых девайсах (особенно, на смартфонах) Google Play пишет, что приложение не совместимо с устройством, и отказывается его устанавливать. Если Вы столкнулись с такой проблемой, можете скачать и установить приложение здесь (http://sourceforge.net/projects/libsdl-android/files/ubuntu/).
Просто выберите самый верхний .apk в списке, и, как только он скачается, установите его вручную.
http://ihost.pro-pawn.ru/image.php?di=BTHU
Внимание! [2] Если захотите заново установить приложение (например, для обновления дистрибутива), ни в коем случае не удаляйте его! Из-за бага в Android приложение не будет работать после удаления и установки заново (баг исправлен только в Android 5.0 Lollipop). Для обновления можно просто обновить само приложения, а затем зайти в меню настроек Android и удалить все данные приложения: "Настройки -> Приложения -> Сторонние -> Debian -> Стереть данные".
После установки запустите Debian и подождите, пока завершится процесс скачивания и распаковки архивов.
Дождавшись окончания установки и запуска Debian, вы увидите рабочий стол и несколько ярлыков на нём.
Попробуйте освоиться с управлением. Если у Вас под рукой нет мыши, курсор можно также передвигать с помощью сенсорного экрана.
Нажатие левой кнопки можно имитировать, сделав нажатие на сенсорный экран, правой - сделав нажатие двумя пальцами.
Также, если у Вас нет Bluetooth-клавиатуры, можете открыть/закрыть виртуальную клавиатуру, нажав кнопку http://ihost.pro-pawn.ru/image.php?di=DC7D.
Для начала можете попробовать перетащить панель приложений с верхней части экрана в нижнюю.

Затем, когда Вы освоились с управлением, установим редактор кода. Поскольку pawno не работает в Linux, воспользуемся Geany.
Лично я выбрал этот редактор потому, что в нём поддерживается настройка внешних команд, благодаря чему к редактору можно прикрутить компилятор Pawn.
Можно было бы использовать wine и с его помощью запускать приложения для Шindoшs, но он реализиван только на архитектуре x86 в то время, как многие планшеты и смартфоны - на ARM.
Кроме того, он много весит, из-за чего на Вашем тарифе может просто не хватить трафика.

Начнём установку. Откройте на рабочем столе ярлык "Root terminal".
Появится окно консоли, в него введите текст

apt-get install geany
и нажмите Enter.
После этого будет проанализирован объём скачиваемых данных и вам будет задан вопрос о подтверждении установки: "Хотите продолжить [y/n]?".
Чтобы подтвердить, введите в ответ "y", нажмите Enter и дождитесь окончания процесса установки пакетов.
Появление в консоли строки "root@localhost: /#" с мигающим в конце курсором будет означать, что установка закончена и консоль свободна для ввода новых команд.

Теперь начинается самая сложная часть: сборка компилятора Pawn из исходников и его настройка под SA:MP.
Для начала потребуется установить несколько программ.

apt-get install g++, make, cmake, unzip, git
Делайте то же самое, что и при установке Geany. Этим мы установим нужные программы для сборки компилятора Pawn.
Установили? Хорошо.
Приготовимся к будущим манипуляциям - выберим для них папку "Desktop" (рабочий стол), чтобы было видно, что происходит.

cd ~/Desktop
Теперь скачаем исходники компилятора Pawn.
Прекрасно подойдёт модифицированная версия компилятора от Zeex, в которой исправлено множество багов.

git clone https://github.com/zeex/pawn
После выполнения команды на рабочем столе будет создана папка "pawn".
Дальше выберем папку "pawn/source/bin" - именно там будет собран компилятор.

cd pawn/source/bin
Перейдём непосредственно к сборке:

cmake ../compiler
make
Если всё сделано правильно, в конце должно появиться сообщение "[100%] Built target pawncc".
Теперь перейдём обратно на рабочий стол:

cd ../../..

После сборки компилятора понадобится настроить его под компиляцию скриптов для SA:MP.
Для этого скачаем последний релиз SA:MP для Шindoшs, чтобы взять из него инклуды.
Имейте в виду, что на момент составления данной статьи последним был релиз 0.3z R2-2.
Если Вы читаете эту статью и уже выпустили новую версию SA:MP, просто исправьте имя файла в следующей команде на то, которое соответствует последнему релизу.

wget http://files.sa-mp.com/samp037_svr_R2-1-1_win32.zip
После скачивания на рабочем столе появится файл с расширением ".zip", нужно будет распаковать его.
Для этого создадим папку "samp03" и перейдём в неё, чтобы туда распаковать содержимое архива.

mkdir samp03
cd samp03
Распакуем архив (при этом пропустим файлы с расширениями ".exe", ".dll" и т.д., они нам не пригодятся):

unzip ../samp*.zip -x *.exe *.dll *.ico *.cfg *.ini
Этим мы распаковали содержимое архива в папку "samp" на рабочем столе.
Параметр "-x" со списокм расширений и названий папок означает, что файлы с такими расширениями, указанные папки и файлы из этих папок не нужно распаковывать из архива (они нам всё равно не пригодятся).
Теперь удалим ненужный архив.

rm ../samp*.zip
И, наконец, скопируем файлы "pawncc" (это и есть наш компилятор), "libpawnc.so" (часть компилятора, без которой он не будет работать) и "pawndisasm" (дизассемблер файлов .amx, может пригодиться для продвинутых скриптеров) из папки "pawn/source/bin" в "samp03/pawno".

cd ../pawn/cource/bin
cp libpawnc.so pawncc pawndisasm ../../../samp03/pawno
После этого консоль Вам больше не понадобится, можете её закрыть.

Подведём итоги: редактор кода установлен, компилятор откомпилирован (ага), осталось лишь прикрутить компилятор к редактору.
Запустите Geany и выберите в меню "Документ -> Установить тип файла -> Языки программирования -> Файл C++".
Этим мы выбрали подсветку синтаксиса для файлов на языке C++ (для кода на Pawn тоже подойдёт; даже в редакторе pawno используется подсветка для C++).
Далее в меню откройте "Сборка -> Установить команды сборки".
Откроется окно настроек внешних инструментов:
http://ihost.pro-pawn.ru/image.php?di=3L9H
В нём после пунктов "Компилировать" и "Сборка" укажите новый пункт "Pawncc", как показано на следующем скриншоте:
http://ihost.pro-pawn.ru/image.php?di=00HY
Здесь окно настроек развёрнуто на полный экран, чтобы были видны все параметры.
После добавления Pawncc нажмите кнопку "Ок", чтобы сохранить настройки.

Теперь, когда компилятор Pawn готов к запуску из Geany, испробуем его в действии.
Создайте новый файл и введите в него следующий код:

#include <a_samp>

main()
{
print("Hello world");
}
Сохраните файл в папке "samp03/gamemodes" (относительно рабочего стола) под именем "HelloWorld.pwn".
Затем выберите в меню "Сборка -> Pawncc":
http://ihost.pro-pawn.ru/image.php?di=3BWO
Если компилятор настроен правильно, скрипт скомпилируется:
http://ihost.pro-pawn.ru/image.php?di=NC8B
Итак, редактор кода и компилятор настроены и готовы к работе.


Удачного скриптинга!

Статью подготовил: Daniel_Cortez (http://pro-pawn.ru/member.php?100-Daniel_Cortez)

Специально для Pro-Pawn.ru (http://www.pro-pawn.ru)
Копирование данной статьи на других ресурсах без разрешения автора запрещено!

MR_BEN
31.05.2014, 21:38
А на IOS появиться когда-нибудь такая возможность?

Daniel_Cortez
31.05.2014, 21:49
А на IOS появиться когда-нибудь такая возможность?
Я мог бы взяться, но у меня понтофона нет, тестировать не на чем.
К тому же, придётся платить деньги Apple не только за iphone, но ещё и за выдачу статуса разработчика, без него нельзя распространять приложения для iOS. А платить за то, чтобы делать бесплатное - кому это вообще нужно?!

Salvacore
31.05.2014, 22:07
Мама, роди меня обратно :3
Супер!

MR_BEN
31.05.2014, 22:37
Ну я могу помочь в тестировании.)

J-Ex
31.05.2014, 23:02
Я мог бы взяться, но у меня понтофона нет, тестировать не на чем.
К тому же, придётся платить деньги Apple не только за iphone, но ещё и за выдачу статуса разработчика, без него нельзя распространять приложения для iOS. А платить за то, чтобы делать бесплатное - кому это вообще нужно?!

3000 рублей на статус разработчика насобирать не проблема. Половину проплачу, если займёшься этим.
3к с копейками*
Проблема только в "понтофоне" для тестов =)

MR_BEN
31.05.2014, 23:50
Я могу помочь с тестами. В чём проблема?)

Salvacore
01.06.2014, 01:15
Я могу помочь с тестами. В чём проблема?)
Тестера и спонсора нашли :D

[ForD]
01.06.2014, 03:31
ну хоть какое-то движение,так глядишь может и доделают нормально,а не скачивать одно,другое и т.д. :pardon:
разработать для понтфона можно,так как и спонсор и тестер есть,но много-ли кому это надо..

DeimoS
01.06.2014, 08:40
Ну тема явно не для сотовых телефонов :D Ибо пытаться компилировать на мобиле - то ещё извращенство xD
Я предпочитаю кодить в блокноте обычном, если уж очень невтерпёж и мне норм :dirol:

Seregamil
01.06.2014, 13:44
Ну тема явно не для сотовых телефонов :D Ибо пытаться компилировать на мобиле - то ещё извращенство xD
Я предпочитаю кодить в блокноте обычном, если уж очень невтерпёж и мне норм :dirol:

Дети... Кодим на листочке в клеточку ручкой.

Daniel_Cortez
01.06.2014, 14:26
Ну тема явно не для сотовых телефонов :D Ибо пытаться компилировать на мобиле - то ещё извращенство
Я и не говорил ничего про телефоны...

Инструкции, приведённые в данной статье, могут работать не на всех устройствах (скорее всего, подойдут только планшеты).



3000 рублей на статус разработчика насобирать не проблема. Половину проплачу, если займёшься этим.
3к с копейками*
Проблема только в "понтофоне" для тестов =)
Хорошо, допустим. Тогда нужно будет купить понтофон за 30 000 или мыльницу за 25.
http://store.apple.com/ru/iphone

И да, я говорил, что разрабатывать под iOS можно только с других понто-девайсов типа MacBook/iMac ?
Вот самый дешёвый вариант: 42 тысячи рублей
http://store.apple.com/ru/buy-mac/macbook-air
Будучи студентом, можно купить его со скидкой. Впрочем, -2,5 тысячи - студенту это погоды не изменит.
Итого нужно будет заготовить минимум 64 000 рублей.

И это не считая того времени и сил, которые придётся потратить на разработку с 0 текстового редактора, поскольку взять за основу исходники готового редактора вряд ли выйдет: на iOS практически нет ПО с открытым исходным кодом.

Для сравнения: в этом уроке для Andriod были взяты уже готовые решения, работа над которыми шла годами.
Всё что здесь сделал я - собрал из исходников компилятор и прикрутил его к уже готовому текстовому редактору - пятиминутное дело.
Причём описанный в уроке способ универсален: при всём желании можно писать код не только на Pawn, но и на Pascal (FPC+Lazarus), C++ (GCC+Geany/CodeBlocks), редактировать графику (Gimp, Inkscape, GrafX2), выходить в интернет (IceWeasel), обмениваться сообщениями (Pidgin, Psi, Psi-Plus), etc. - в общем, делать всё то, что доступно на обычном ПК с Linux.
Nuff' said.

Так что, скажу, как есть: у меня нет ни денег, ни желания делать что-либо на анально огороженных платформах, в которых всё сделано для выкачивания средств из наивных хипстеров.

Так что, уж извиняйте, народ... Не надо было покупать понто-девайсы от Apple =/


P.S.: Hey, Apple!

OKStyle
02.06.2014, 22:40
Ну вот, наконец-то... Подожду развития истории с iOS.

J-Ex
02.06.2014, 23:38
Подожду развития истории с iOS.

Истории, видимо, не будет.

DeimoS
03.06.2014, 06:46
Дети... Кодим на листочке в клеточку ручкой.

Ко-ко-ко. Думаешь ты один тут такой?



Я и не говорил ничего про телефоны...

Ну моё сообщение, скорее, для других было написано, чем для тебя :D Тебя то я знаю, ты клавомышь цепляешь к планшету и воображаешь, будто это настоящий PC :c Псих ненормальный
P.S. Если что, я не всерьез :)

[ForD]
18.06.2014, 02:13
Pawn-скриптинг на Android
Приготовимся к будущим манипуляциям - выберим для них папку "Desktop" (рабочий стол), чтобы было видно, что происходит.

cd ~/Desktop
Я вроде немного не так понял это месте,можно подробнее этот шаг :pardon:

Daniel_Cortez
18.06.2014, 02:35
;42644']Я вроде немного не так понял это месте,можно подробнее этот шаг :pardon:

Просто введи в терминале (Root Terminal) вышеописанную команду. После этого последующие действия будут проводиться в папке "Desktop".

Daniel_Cortez
03.11.2014, 12:51
Добавил в самом начале статьи описание установки в том случае, если Google Play отказывается устанавливать приложение.
Теперь описанные в статье шаги должны работать не только на планшетах, но и на смартфонах.

gangzone.ini
03.11.2014, 22:45
http://rghost.ru/58869475/image.png
Ошибка :blush:

Daniel_Cortez
04.11.2014, 00:28
Ошибка :blush:

На скриншоте так и сказано, выключить девайс и включить обратно.

P.S.: Надеюсь, Вы не пытались удалить это приложение и установить заново. Из-за бага в ведроиде оно не работает после переустановки - помогает только заводской сброс. Надо будет написать об этом в 1-м посте...

На будущее: в следующий раз помещайте большие скриншоты под спойлер.

gangzone.ini
04.11.2014, 20:18
На скриншоте так и сказано, выключить девайс и включить обратно.

P.S.: Надеюсь, Вы не пытались удалить это приложение и установить заново. Из-за бага в ведроиде оно не работает после переустановки - помогает только заводской сброс. Надо будет написать об этом в 1-м посте...

На будущее: в следующий раз помещайте большие скриншоты под спойлер.

Не помогло...

fann95
12.11.2014, 04:47
А зачем удалили мой пост с собраным под ARM компилятором,который работает без всяких установок линукса? Или не разобрались как установить? Эх вы..разработчики:smile:

Daniel_Cortez
12.11.2014, 08:39
Не помогло...
Тогда даже не знаю, что посоветовать... Как я и говорил, обычно в таких ситуациях может помочь только полный сброс. Если решитесь на такой шаг, не забудьте скопировать на ПК всё, что сохранено на девайсе, и забэкапить приложения. Если нет - ну, значит не судьба.


А зачем удалили мой пост с собраным под ARM компилятором,который работает без всяких установок линукса? Или не разобрались как установить? Эх вы..разработчики:smile:
1. Закинуть в нужную папку и запустить программу без параметров сможет каждый (если разобраться с эмулятором терминала). Но вряд ли кто-то захочет запускать компилятор, каждый раз прописывая вручную имя входного файла и прочие параметры компиляции.
2. Возомнили себя "разработчиком"? Ну что ж, тогда разработайте GUI для компилятора под Android - и вы подтвердите свой статус, и для читателей темы сделаете хоть что-то полезное. В консольном же виде такая поделка почти не юзабельна. Да и просто откомпилировать консольное приложение любой сможет, причём можно даже со смартфона, на котором оно потом и будет работать (с помощью CCTools, например).

fann95
12.11.2014, 16:58
Возомнили себя "разработчиком"?
Ну вообщето это был микро-порт.Компиляция без изменения в коде не возможна.
А на счет гуи:Вам что мало в маркете кодеэдиторов с возможностью внешних команд?Возмите C4droid на пример.,зачем изобретать колесо еще раз? Или вы считаете танцы с бубном вокруг установки линукса оправдаными? Нужно-ли красить траву?

В любом случае вопрос-то был : зачем удалили?

Daniel_Cortez
12.11.2014, 18:12
вы считаете танцы с бубном вокруг установки линукса оправдаными?
Во-первых, любой девайс на ОС Android и без того использует ядро Linux.
Во-вторых, в уроке описывается установка ПО из дистрибутива Debian.
В-третьих, я уже писал, что всё это может пригодиться не только для скриптинга.


Причём описанный в уроке способ универсален: при всём желании можно писать код не только на Pawn, но и на Pascal (FPC+Lazarus), C++ (GCC+Geany, CodeBlocks), редактировать графику (Gimp, Inkscape, GrafX2), выходить в интернет (IceWeasel), обмениваться сообщениями (Pidgin, Psi, Psi-Plus), etc. - в общем, делать всё то, что доступно на обычном ПК с Linux.

Если знать, что и как использовать, вопрос об оправданности отпадает сам собой.


А на счет гуи:Вам что мало в маркете кодеэдиторов с возможностью внешних команд?Возмите C4droid на пример.,зачем изобретать колесо еще раз?

В любом случае вопрос-то был : зачем удалили?
Скажу вот что: раз у Вас есть идея, как ещё можно использовать компилятор на Android - никто не запрещает Вам написать свою статью.
Единственные два условия к статье:
ПО, описываемое в статье должно быть бесплатным и, желательно, с открытым исходным кодом.
Если под бесплатностью Вы понимаете пиратство - можете не рассчитывать на одобрение статьи (http://pro-pawn.ru/showthread.php?9968) (см. п.1).
Постарайтесь подробно описать все детали установки и настройки компилятора в своей статье. Желательно, со скриншотами всего процесса.
Да, именно подробно всё описать, а не просто кинуть ссылку на какой-то файл и сказать "это закидываете сюда и запускаете, easy!" - так Вас мало кто поймёт.

Надеюсь, у Вас что-нибудь да получится. Удачи.

gangzone.ini
25.04.2015, 13:37
git clone https://github.com/zeex/pawn
bash: git: команда не найдена

Daniel_Cortez
26.04.2015, 12:09
bash: git: команда не найдена
Наверное забыли установить git.

Для начала потребуется установить несколько программ.

apt-get install g++, make, cmake, zip, git

gangzone.ini
26.04.2015, 13:30
Наверное забыли установить git.

Нет...

Daniel_Cortez
27.04.2015, 06:01
Попробуйте набрать:

apt-get update
apt-get install git
Не сработает - кидайте логи после команды, которую я выделил зелёным цветом. Либо сделайте скриншот, если так удобнее (обычно делается зажатием Power + Vol-).

gangzone.ini
27.04.2015, 22:10
Попробуйте набрать:

apt-get update
apt-get install git
Не сработает - кидайте логи после команды, которую я выделил зелёным цветом. Либо сделайте скриншот, если так удобнее (обычно делается зажатием Power + Vol-).

Спасибо. Добавьте в тему данную проблему и её решение..

gangzone.ini
27.04.2015, 23:12
http://rghost.ru/7KGyjQXN8/image.png

Daniel_Cortez
30.04.2015, 06:09
http://rghost.ru/7KGyjQXN8/image.png

apt-get install make gcc

gangzone.ini
30.04.2015, 18:02
:facepalm:
http://rghost.ru/8fcZwrGRx/image.png