MuhammadPawn

SAMP Mobile (Android) - Сборник уроков

В теме 25 сообщений

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

 

Урок 1. Компиляция libsamp.so

Урок 2. Сбор проекта (.apk)

 

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

Отредактировано пользователем DEST

Заметка от DEST , создано

Перенес уроки в Wiki

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При нажатии Мультиплеера вылетает, в samp.log последнее что пишется keyboard  и координаты какието, помоги)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Помоги пожалуйста

Снимок2.PNG

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Привет. Большое спасибо за уроки! Что за samp.apk, это уже лаунчер?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@shnyrok нет, модифицированный клиент для запуска мультиплеера 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Лучше поясни что такое saPather? Почему используется NDK версия 19, а не последняя (21) ? Как убрать 0.69 в углу экрана?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
7 часов назад, MuhammadPawn сказал:

@shnyrok нет, модифицированный клиент для запуска мультиплеера 

И с помощью этого клиента сможем подзагружать текстдравы, и все-все-все?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@shnyrok Да, он уже на стадии выхода )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@MuhammadPawn Ждем еще уроков! А ты можешь добавить ссылку на донаталертс, может кто-то захочет отблагодарить, хоть как-то :)

 

В 29.01.2020 в 02:00, Satanin сказал:

Помоги пожалуйста

Снимок2.PNG

Там где ты писал "C++_static" - С большой C поменяй на маленькую.

 

@MuhammadPawn Больно говорить, но во втором уроке, после создания .apk, приложение уст, но когда нажимаю "Мультиплеер" - игра вылетает.

Заметка от Cawfee , создано

Объединил сообщения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

жду не дождусь когда пойдет урок по текстдравам) 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@pavlov.trade код а именно строку main.h 110 строка 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@MuhammadPawn 

pNetGame = new CNetGame(

А в main.h всего 27 строк, хм..

Отредактировано пользователем pavlov.trade

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@pavlov.trade Ну да одной хватит и всё... скинь полностью! этот код тут только скобку открытую вижу и всё:/

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@MuhammadPawn аъахаха, уже решил)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@pavlov.trade Поделись же своим опытом, друг.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@MuhammadPawn Еще стоит ждать уроки?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@shnyrok А почему и нет? Я сейчас занят доработкой клиента для урока 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Привет. Смотри, вот я создал апк, а как к нему кеш присоеденить, типо чтобы можно ыло зайти, у меня есть кеш 1.0.8. САн Адреас, но когда я его присоедения, пр входе в игру можно зайть только в АФК версию.

Как это исправить?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А текстдравы скоро будут?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кнопка multiplayer нету что делать?

Screenshot_20200429-001838.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А где взять этот samp.apk?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@MuhammadPawn потерялся :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@pavlov.trade в ближайшее время не будет обновление клиента, как нет возможности часто быть у компьютера 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Chopick
      От Chopick
      Всем здравствуйте! Делаю систему домов/бизнесов по туториалу knox know с плагином GoodArea. Есть проблема, если заходишь в интерьер бизнеса, то когда выходишь спавнит почему-то на пикап дома.

      Вот енумы:
       
      #define MAX_HOUSES 1000 #define MAX_BIZS 1000 enum house {         hID,         STREAMER_TAG_PICKUP:hPICKUP,         STREAMER_TAG_AREA:hAREA,         hOWNER[MAX_PLAYER_NAME],         STREAMER_TAG_3D_TEXT_LABEL:hTEXT[256],         STREAMER_TAG_MAP_ICON:hICON,         hPRICE,         hCLASS,         hINTERIOR,         Float:hX,         Float:hY,         Float:hZ,         Float:hA,         hCONDITION // Закрыт/Открыт } new House[MAX_HOUSES][house]; new Houses; new HouseGroup; enum biz {         bID,         STREAMER_TAG_PICKUP:bPICKUP,         STREAMER_TAG_AREA:bAREA,         bOWNER[MAX_PLAYER_NAME],         STREAMER_TAG_3D_TEXT_LABEL:bTEXT[256],         STREAMER_TAG_MAP_ICON:bICON,         bNAME[25],         bPRICE,         bTYPE,         bINTERIOR,         Float:bX,         Float:bY,         Float:bZ,         Float:bA } new Biz[MAX_BIZS][biz]; new Bizs; new BizGroup; enum interior_info {         intID,         intNAME[41],         intINTERIOR,         Float:intX,         Float:intY,         Float:intZ,         Float:intA,         STREAMER_TAG_AREA:intAREA } new Interior[MAX_INTERIORS][interior_info]; new Interiors; new InteriorGroup; Вот что у меня в OnGameModeInit:
      HouseGroup = CreateGroupGoodAreas(GoodArea:HouseEnter); InteriorGroup = CreateGroupGoodAreas(GoodArea:InteriorExit); BizGroup = CreateGroupGoodAreas(GoodArea:BizArea);  
      Вот стоки:
      GAResponse:HouseEnter(playerid, response, key, index) {         switch(response)         {             case GA_RESPONSE_PRESS_KEY:             {                 if(key & KEY_WALK)                 {                 if(House[index][hCONDITION] > 0 && House[index][hOWNER] == player_info[playerid][NAME] || House[index][hCONDITION] == 0)                 {                                         GoToInterior(playerid, House[index][hINTERIOR]);                                         SetPlayerVirtualWorld(playerid, index);                                 }                                 else if(House[index][hCONDITION] > 0 && House[index][hOWNER] != player_info[playerid][NAME]) return SCM(playerid, COLOR_RED, "[Ошибка]{ffffff}Этот дом закрыт на ключ!");                         }                 }                 case GA_RESPONSE_ENTER:                 {                     if(House[index][hOWNER] == 0)                     {                         CreateNoOwnerHouseTD(playerid);                         for(new i = 0; i < sizeof NoOwnerTextDraw_PTD[]; i++)                         {                             PlayerTextDrawShow(playerid, NoOwnerTextDraw_PTD[playerid][i]);                                 }                                 new price[8];                                 format(price, sizeof(price), "%d$", House[index][hPRICE]);                                 PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][2], price);                                 new id[9];                                 format(id, sizeof(id), "%d", House[index][hID]);                                 PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][0], id);                                 switch(House[index][hCLASS])                                 {                                     case 1: PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][1], "A");                                     case 2: PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][1], "B");                                     case 3: PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][1], "C");                                 }                                 for(new i = 0; i < sizeof NoOwnerTextDraw_TD; i++)                         {                             TextDrawShowForPlayer(playerid, NoOwnerTextDraw_TD[i]);                                 }                         }                 }                 case GA_RESPONSE_LEAVE:                 {                 for(new i = 0; i < sizeof NoOwnerTextDraw_PTD[]; i++)                 {                     PlayerTextDrawHide(playerid, NoOwnerTextDraw_PTD[playerid][i]);                         }                         for(new i = 0; i < sizeof NoOwnerTextDraw_TD; i++)                 {                     TextDrawHideForPlayer(playerid, NoOwnerTextDraw_TD[i]);                         }                 }         }         return 1; } GAResponse:BizArea(playerid, response, key, index) {         switch(response)         {             case GA_RESPONSE_PRESS_KEY:             {                 if(key & KEY_WALK)                 {                     GoToInteriorBiz(playerid, Biz[index][bINTERIOR]);                                 SetPlayerVirtualWorld(playerid, index);                 }                 }         }         return 1; } GAResponse:InteriorExit(playerid, response, key, index) {         switch(response)         {             case GA_RESPONSE_PRESS_KEY:             {                 new world = GetPlayerVirtualWorld(playerid);                 if(key & KEY_WALK)                 {                     if(world < MAX_HOUSES)                     {                         SetPlayerInterior(playerid, 0);                             SetPlayerVirtualWorld(playerid, 0);                             SetPlayerPos(playerid, House[world][hX], House[world][hY], House[world][hZ]);                             SetPlayerFacingAngle(playerid, House[world][hA]);                                 }                                 else if(world < MAX_HOUSES + MAX_BIZS)                     {                         world -= MAX_HOUSES;                                         printf("%d index world", world);                         SetPlayerInterior(playerid, 0);                             SetPlayerVirtualWorld(playerid, 0);                             SetPlayerPos(playerid, Biz[world][bX], Biz[world][bY], Biz[world][bZ]);                             SetPlayerFacingAngle(playerid, Biz[world][bA]);                                 }                         }                         if(key & KEY_CTRL_BACK)                         {                             if(player_info[playerid][HOUSE] != House[world][hID]) return SCM(playerid, COLOR_RED, "[Ошибка]{ffffff}Вы не владелец данного дома!");                             new dialog[256];                                 format(dialog, sizeof(dialog),                                         "{ffd900}[1]{ffffff}Информация о доме\n\                                         {ffd900}[2]{ffffff}%s дом",                                 (House[world][hCONDITION] == 1) ? ("{00ff00}Открыть") : ("{ff0000}Закрыть"));                             SPD(playerid, DLG_HMENU, DIALOG_STYLE_LIST, "{ffd900}Меню дома", dialog, "Выбрать", "Закрыть");                             return 1;                         }                 }         }         return 1; } stock GoToInterior(playerid, interior) {     for(new i = 0; i < Interiors; i++)         {             if(Interior[i][intID] != interior) continue;             SetPlayerInterior(playerid, Interior[i][intINTERIOR]);             SetPlayerPos(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ]);             SetPlayerFacingAngle(playerid, Interior[i][intA]);             SetPlayerCheckpoint(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 1.0);             new str[128];             format(str, sizeof(str),                         "Нажмите \"ALT\" для выхода\n\                         Нажмите \"H\", чтобы открыть меню дома");             Create3DTextLabel(str, -1, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 15.0, 0, 1);             return 1;         }         return 0; } stock GoToInteriorBiz(playerid, interior) {     for(new i = 0; i < Interiors; i++)         {             if(Interior[i][intID] != interior) continue;             SetPlayerInterior(playerid, Interior[i][intINTERIOR]);             SetPlayerPos(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ]);             SetPlayerFacingAngle(playerid, Interior[i][intA]);             SetPlayerCheckpoint(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 1.0);             new str[128];             format(str, sizeof(str),                         "Нажмите \"ALT\" для выхода");             Create3DTextLabel(str, -1, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 15.0, 0, 1);             return 1;         }         return 0; }  
       
      Что мне делать, подскажите пожалуйста?
    • Jdjdjd
      От Jdjdjd
      Как сделать открытие закрытие ворот в Радмир рп на копии,и куд а нужно вставлять код?
       
    • Мемен Томорли
      От Мемен Томорли
      Как создать команду /warns чтобы игрок смог просматривать активные варны у персонажа ??
      Типо как на Малиновка ЛП