Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: SAMP Mobile (Android) - Сборник уроков - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

  • (2 Страниц) +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Урок ]
SAMP Mobile (Android) - Сборник уроков
Оценка: -----

#1
Пользователь офлайн   Kirita 

  • Пользователь
  • Вставить ник
  • Раскрыть информацию
Всем привет
Решил заняться разработкой своим сервером SAMP Mobile (Android) и делится своим опытом с вами
Все уроки будут опубликоваться в этой теме
Список уроков:

Урок 1. Компиляция libsamp.so
Урок 2. Сбор проекта (.apk)

Также пишите в коменты какие вы хотите видеть уроки по SAMP Mobile (Android)

Сообщение отредактировал Kirita: 07 февраля 2020 - 17:43

1

#2
Пользователь офлайн   Romzes 

  • © Pawn-Wiki.Ru
  • Вставить ник
  • Раскрыть информацию
Полезный урок, молодец. Надеюсь в следующем уроке ты начнешь дорабатывать клиент.
0

#3
Пользователь офлайн   Kirita 

  • Пользователь
  • Вставить ник
  • Раскрыть информацию
SAMP Mobile (Android) - Урок 1. Компиляция libsamp.so
Всем привет
В этом уроке я вас научу:

  • Компилировать исходники SAMP Mobile (Android)
  • Ставить свой IP:port для подключения


Приступим
Нам понадобится:

  • Исходники SAMP Mobile (Android): GitHub
  • NDK 19 (именно 19): NDK older releases
  • Командная строка
  • Прямые руки


Для начало распакуем содержимое архива build69-master.zip папку jni в любое вам место (лучше создайте отдельную папку на диске C для удобства)
И в тоже место наш NDK

Пример:
фото [Показать]


После того как мы всё разархивовали запускаем Командную строку (CMD)
Нажимаем win+r и вводим cmd и нажимаем кнопочку ОК

Пример:
фото [Показать]


После этого пишем в командной строке:

Цитата

cd Путь до папки NDK


Пример: cd C:/Android/NDK и нажимаем Enter
фото [Показать]


После того как мы перешли в командной строке в папку с нашим NDK нам надо поставить свой IP:port для сервера

Для этого переходим по пути и открываем файл любым редактором (в моём случае): Android/jni/main.cpp и ищем такие строки:
if(!bNetworkInited && pSettings->Get().bOnline)
{
    pNetGame = new CNetGame( 
    encryptedAddress.decrypt(),
    port, 
    pSettings->Get().szNickName,
    pSettings->Get().szPassword);
    bNetworkInited = true;
    return;
}

фото [Показать]

И меняем 2 строки encryptedAddress.decrypt(), port что бы получилось вот так:
if(!bNetworkInited && pSettings->Get().bOnline)
{
    pNetGame = new CNetGame( 
    "192.168.1.1", //Ваш IP
    7777, //Ваш port
    pSettings->Get().szNickName,
    pSettings->Get().szPassword);
    bNetworkInited = true;
    return;
}


фото [Показать]


После того как мы отредактировали main.cpp сохраняем его и открываем следующий файл Application.mk (Любым редактором) и меняем

Цитата

APP_STL := gnu_static на APP_STL := C++_static


После этого сохраняем наш Application.mk и возвращаемся в командную строку
В командной строке пишем следующие:

Цитата

ndk-build -C Путь до исходников SAMP Mobile (Android)


В моём случае получается следующие: ndk-build -C C:\Android\jni
фото [Показать]


Нажимаем Enter и ждём

При удачном компилирование должно получится:
фото [Показать]


Переходим в папку где лежат наши NDK и исходники SAMP Mobile (Android) и видим что появились 2 папки
  • libs/
  • obj/


Переходим в папку libs\armeabi-v7a и видим наш скомпилированый клиент libsamp.so

В следующем уроке я расскажу как его поместить в наш samp.apk

Вот и всё урок окончен
Автор урока: MuhamadPawn (Kirita)
Копирование данной статьи без разрешение автора запрешено!
Мы скомпилировали исходники SAMP Mobile (Android) и получили libsamp.so
Если у вас появились вопросы или ошибки задавайте в теме отвечу

Сообщение отредактировал Kirita: 07 февраля 2020 - 17:46

3

#4
Пользователь офлайн   Kirita 

  • Пользователь
  • Вставить ник
  • Раскрыть информацию
Урок 2. Сбор проекта (.apk)
Приступим

Нам понадобится:

  • Программа для Android: ApkEditor(За содержимое файла я не несу ответственности)
  • Наш скомпилированный libsamp.so
  • Прямые руки


Приступим

Запускаем нашу программу ApkEditor и нажимаем "Выберите файл APK"
Фото [Показать]

Теперь выбираем наш файл .apk с gta:
Фото [Показать]

И выбираем его, после этого выбираем "Полное редактирование"
Фото [Показать]

И нажимаем "Декодировать все файлы"
Фото [Показать]

После завершения процесса декодирования, переходим во вкладку "Файлы"
Фото [Показать]

И переходим по пути lib/armeabi-v7a
Фото [Показать]

В низу с лева нажимаем на "+" и выбираем наш скомпилированный libsamp.so
Фото [Показать]

После того как завершится добавления файла "libsamp.so" В верху с права нажимаем на кнопку "Сборка"

После сборки нас должно встретить окно о завершение сборки проекта
Фото [Показать]

После этого переходим по пути которому указала программа и забираем наш apk

Вот и всё очень просто :rolleyes:

В следующем уроке я расскажу как заменить загрузочный экран SAMP ANDROID на свой

Вот и всё урок окончен
Автор урока: MuhamadPawn (Kirita)
Копирование данной статьи без разрешение автора запрешено!
Мы скомпилировали исходники SAMP Mobile (Android) и получили libsamp.so
Если у вас появились вопросы или ошибки задавайте в теме отвечу
4

#5
Пользователь офлайн   Fierrum 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию
Хотел бы дополнить ваш урок или точнее альтернативный вариант с вводом хоста и порта.
	if(!bNetworkInited && pSettings->Get().bOnline)
	{
		pNetGame = new CNetGame( 
			pSettings->Get().szHost,
			pSettings->Get().iPort, 
			pSettings->Get().szNickName,
			pSettings->Get().szPassword);
		bNetworkInited = true;
		return;
	}

Если изменить данный кусок кода на мой вариант, то не придется каждый раз компилировать нативную библиотеку, можно будет просто заносить свои изменения в файл settings.ini.
А точнее просто дописав
host = пишем хост
port = пишем порт

Данная инструкция не доведена до ума, так как есть еще доп файлы к клиенту и если просто скомпилировать, то будет вылетать так как в исходниках есть ошибки, авторы исходников это потвердили.
0

#6
Пользователь офлайн   zabe1 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию
Кто подскажет как оптимизировать мод под Mobile версию? Какие именно функции ПК версии в моде приводят к вылетам на Mobile?
0

#7
Пользователь офлайн   zabe1 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияKirita (07 февраля 2020 - 17:42) писал:

Нажмите сюда, чтобы прочитать это сообщение. [Показать]



Как оптимизировать мод под Mobile версию?
0

#8
Пользователь офлайн   TimurCrid 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию
Я вот все в точности сделал, я скомпелировал, и установил, я нажимаю offline и нажимаю multiplayer *телефон завис на несколько сек* и вылет, вот логи
Storage: /storage/emulated/0/Android/data/com.rockstargames.gtasa/files/
Loading settings..
Checking samp files..
Loading "samp" cd..
Creating "MultiPlayer" button.. (struct: 0xB977C00C)
GetTexture: menu_mainmp
MainMenu: MultiPlayer selected.
CGame: InitInMenu
Installing patches..
SetUpHook: 0xBFF3C3DC -> 0xBFB207DD
SetUpHook: 0xC00D8CA8 -> 0xBFB20B7D
SetUpHook: 0xC009BEF4 -> 0xBFB20979
SetUpHook: 0xC009C098 -> 0xBFB2099D
SetUpHook: 0xBFF3AD5C -> 0xBFB20C09
SetUpHook: 0xBFF8F83C -> 0xBFB20C65
SetUpHook: 0xC0037690 -> 0xBFB20D55
SetUpHook: 0xC00DCA88 -> 0xBFB20DC9
SetUpHook: 0xC00DBF84 -> 0xBFB20DCD
SetUpHook: 0xC00DF9A8 -> 0xBFB20F39
SetUpHook: 0xC0183E60 -> 0xBFB21055
SetUpHook: 0xC01843CC -> 0xBFB21085
CodeInject: 0xBFFDA9F4 -> 0xbfb20f9d (register: r1)
SetUpHook: 0xC015B280 -> 0xBFB21BE9
InstallMethodHook: func: 0xC02CDA1C -> 0xBFB21C91
InstallMethodHook: func: 0xC02CDD74 -> 0xBFB21C91
InstallMethodHook: func: 0xC02CDB44 -> 0xBFB21C91
InstallMethodHook: func: 0xC02CE0DC -> 0xBFB21C91
InstallMethodHook: func: 0xC02CDE8C -> 0xBFB21C91
InstallMethodHook: func: 0xC02CDC5C -> 0xBFB21C91
InstallMethodHook: func: 0xC02CDFB4 -> 0xBFB21C91
InstallMethodHook: func: 0xC02CE204 -> 0xBFB21C91
InstallMethodHook: func: 0xC02CE454 -> 0xBFB21C91
SetUpHook: 0xC009E08C -> 0xBFB215E5
SetUpHook: 0xC009E110 -> 0xBFB21649
SetUpHook: 0xC009FAA4 -> 0xBFB216A9
SetUpHook: 0xC009F9B8 -> 0xBFB216FD
SetUpHook: 0xC009F96C -> 0xBFB21769
SetUpHook: 0xC009F824 -> 0xBFB217C5
SetUpHook: 0xC009F8C0 -> 0xBFB21819
SetUpHook: 0xC009FA0C -> 0xBFB2186D
SetUpHook: 0xC009FA4C -> 0xBFB218C1
SetUpHook: 0xC009ED9C -> 0xBFB21941
SetUpHook: 0xC009F7B0 -> 0xBFB21915
SetUpHook: 0xC009EB50 -> 0xBFB2199D
SetUpHook: 0xC009D9E4 -> 0xBFB219E5
SetUpHook: 0xC009DBF0 -> 0xBFB21A29
SetUpHook: 0xC009EB7C -> 0xBFB21A65
SetUpHook: 0xC009E938 -> 0xBFB21AAD
SetUpHook: 0xC009E754 -> 0xBFB21AF5
SetUpHook: 0xC009E4C8 -> 0xBFB21B3D
SetUpHook: 0xC009EA1C -> 0xBFB21B8D
Loading splash texture..
GetTexture: mylogo
Initializing GUI..
GUI | Display size: 2140.000000, 1080.000000
GUI | Scale factor: 1.114583, 1.000000 Font size: 30.000000
GUI | Loading font: Arial.ttf
GUI | ImFont pointer = 0xBC8E14C0
Initalizing KeyBoard..
Size: 2140.000000, 594.000000. Pos: 0.000000, 486.000000
font size: 70.000000. Key's height: 118.800003
SIGSEGV | Fault address: 0x0
libGTASA base address: 0xBFD01000
register states:
r0: 0x38ADADEA, r1: 0x2, r2: 0x0, r3: 0x417
r4: 0x0, r5: 0xbfbcbe98, r6: 0x2, r7: 0xbf67c0d0
r8: 0xb84e4783, r9: 0xf017117c, sl: 0x38d, fp: 0x0
ip: 0x2, sp: 0xbf67c078, lr: 0xbfb2fe3f, pc: 0xbfb1cfd8
backtrace:
1: libGTASA.so + 0xFFE1BFD8
2: libGTASA.so + 0xFFE2EE3F
0

#9
Пользователь офлайн   samp-mobile7 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию
Я вот чайник, сделал всё правильно, гта установил 1.08, захожу в игру и там нету кнопки Multiplayer, может я такой тупой и не пойму чего? в Android/data/com.rockstargames/files нету файлов и сампа, как принято у других серверов. Если кто знает помогите пожалуйста.

Сообщение отредактировал samp-mobile7: 07 апреля 2020 - 14:56

0

#10
Пользователь офлайн   Zhasulann 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию
Я нажимаю "multipleer" вылетает что делать подскажите пж
0

Поделиться темой:


  • (2 Страниц) +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика