𝙡𝙖𝙨𝙩 𝙚𝙢𝙥𝙚𝙧𝙤𝙧.

Tape Mobile (оригинал)

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

Tape Mobile (оригинал)

Просмотр файла

Хранение данных (версия MySQL): R39-6.

Командный процессор: Pawn.CMD.

Количество строк в моде (без маппинга): 57567.
Анти-чит: самописный (by Aries Mobile).

 

Автор данного мода: Артём Ковалеров.


Не исключено, что есть баги.
Всем спасибо за внимание.

Мод был слит разработчиком. Появился данный мод у меня до слива.
Убраны варнинги с античита и оптимизирована функция наклейки "Supreme".


Группа моих доработок: vk.com/way_dev.


  • Добавил
  • Добавлено
    17.07.2021
  • Категория
  • Автор
    Артём Ковалеров

 

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


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

Как выдать себе ФД? В моде на нашёл а в БД нету

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


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

@RomaGoltesku01, таблица `full_dostup` в базе.

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


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

@glvde.  А как туда ник добавить несовсем понимаю

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


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

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


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

@Zar_zarko, там же, где и был.

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


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

На какой строке подключение к Mysql? Сколько рылся, так и не нашёл

 

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


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

@Pawn_neudachnik stock CreateMySQLConnection

public OnGameModeInit() в самом конце паблика.

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

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


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

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

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

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

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


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

Войти

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


Войти

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

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

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

    • PoierDoras
      От PoierDoras
      Вот код мода (я немного странный я все для себя помечаю):
      #include <a_samp>
      #include <mysql>
      #include <a_players>
      #include <a_vehicles>
       
      // Данные для подключения к БД
      new MySQL:sqlHandle;
       
      #define DB_HOST "localhost"
      #define DB_USER "root"
      #define DB_PASS "password"
      #define DB_NAME "samp_db"
       
      // Координаты спавна (ЖДЛС)
      #define SPAWN_X 1741.41
      #define SPAWN_Y -1861.38
      #define SPAWN_Z 13.57
      #define SPAWN_ANGLE 270.0
       
      // ID транспортных средств (скутеров)
      new scooter[3];
       
      // Статус аренды скутеров
      new bool scooterRented[3];
      new rentedByPlayer[MAX_PLAYERS];
       
      // Цена аренды скутера
      #define RENT_PRICE 500
       
      // Спидометр
      new Text:Speedometer[MAX_PLAYERS];
       
      // Статус двигателя
      new bool engineStatus[MAX_PLAYERS];
       
      // Инвентарь
      new Text:InventoryTextDraw[MAX_PLAYERS];
      new bool inventoryVisible[MAX_PLAYERS];
      new Text:InventorySlots[MAX_PLAYERS][36];
       
      public OnGameModeInit()
      {
          sqlHandle = mysql_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
          if (sqlHandle == MYSQL_INVALID_HANDLE)
          {
              print("Не удалось подключиться к базе данных.");
              return 0;
          }
          print("Успешное подключение к базе данных.");
       
          // Создание объектов вокруг точки спавна
          CreateObject(1237, SPAWN_X + 5, SPAWN_Y, SPAWN_Z, 0.0, 0.0, 0.0); // Пример объекта
          CreateObject(1237, SPAWN_X - 5, SPAWN_Y, SPAWN_Z, 0.0, 0.0, 0.0); // Еще один пример объекта
       
          // Создание скутеров
          scooter[0] = CreateVehicle(462, SPAWN_X + 2, SPAWN_Y, SPAWN_Z, SPAWN_ANGLE, -1, -1, 600);
          scooter[1] = CreateVehicle(462, SPAWN_X + 4, SPAWN_Y, SPAWN_Z, SPAWN_ANGLE, -1, -1, 600);
          scooter[2] = CreateVehicle(462, SPAWN_X + 6, SPAWN_Y, SPAWN_Z, SPAWN_ANGLE, -1, -1, 600);
       
          // Инициализация статуса аренды скутеров
          for (new i = 0; i < 3; i++) {
              scooterRented = false;
              rentedByPlayer = -1;
          }
       
          // Инициализация спидометра и статуса двигателя
          for (new i = 0; i < MAX_PLAYERS; i++) {
              Speedometer = TextDrawCreate(320.0, 447.0, "");
              TextDrawLetterSize(Speedometer, 0.3, 1.2);
              TextDrawTextSize(Speedometer, 100.0, 20.0);
              TextDrawFont(Speedometer, 1);
              TextDrawAlignment(Speedometer, 2);
              TextDrawColor(Speedometer, 0xFFFFFFFF);
              TextDrawSetOutline(Speedometer, 1);
              TextDrawSetProportional(Speedometer, 1);
              TextDrawHideForPlayer(i, Speedometer);
              engineStatus = false;
              inventoryVisible = false;
          }
       
          SetTimer("CheckRentedVehicles", 30000, true);
       
          // Инициализация инвентаря для всех игроков
          for (new i = 0; i < MAX_PLAYERS; i++)
          {
              InitializeInventory(i);
          }
       
          return 1;
      }
       
      public OnGameModeExit()
      {
          mysql_close(sqlHandle);
          return 1;
      }
       
      public OnPlayerConnect(playerid)
      {
          ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Логин", "Введите ваш логин:", "OK", "Cancel");
          return 1;
      }
       
      public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
      {
          if (dialogid == 1 && response)
          {
              new query[128];
              format(query, sizeof(query), "SELECT password, money FROM users WHERE username='%s'", inputtext);
              mysql_tquery(sqlHandle, query, "OnLoginCheck", "d", playerid);
          }
          else if (dialogid == 2 && response)
          {
              new query[256];
              format(query, sizeof(query), "INSERT INTO users (username, password, money) VALUES ('%s', '%s', 1000)", inputtext, inputtext);
              mysql_tquery(sqlHandle, query);
              SendClientMessage(playerid, -1, "Вы успешно зарегистрированы!");
              SpawnPlayer(playerid);
              GivePlayerMoney(playerid, 1000); // Выдача 1000$ при регистрации
          }
          else if (dialogid == 3)
          {
              new vehicleid = GetPlayerVehicleID(playerid);
       
              for (new i = 0; i < 3; i++)
              {
                  if (vehicleid == scooter)
                  {
                      if (response)
                      {
                          new playerMoney = GetPlayerMoney(playerid);
       
                          if (playerMoney >= RENT_PRICE)
                          {
                              GivePlayerMoney(playerid, -RENT_PRICE); // Списать деньги
                              SendClientMessage(playerid, -1, "Вы арендовали скутер.");
                              scooterRented = true; // Скутер арендован
                              rentedByPlayer = playerid; // Привязать аренду к игроку
                          }
                          else
                          {
                              SendClientMessage(playerid, -1, "У вас недостаточно денег для аренды.");
                              RemovePlayerFromVehicle(playerid);
                          }
                      }
                      else
                      {
                          RemovePlayerFromVehicle(playerid);
                      }
                      break;
                  }
              }
          }
          return 1;
      }
       
      forward OnLoginCheck(playerid, connection, resultid, extraid);
      public OnLoginCheck(playerid, connection, resultid, extraid)
      {
          if (mysql_num_rows(resultid) == 0)
          {
              ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Регистрация", "Введите ваш новый пароль:", "OK", "Cancel");
          }
          else
          {
              new dbPass[255], playerPass[255];
              new money;
              mysql_fetch_field_row(dbPass, "password", resultid);
              mysql_fetch_field_row_int(money, "money", resultid);
              inputtext[playerid][strlen(inputtext[playerid])] = '\0'; // Add null terminator
              inputtext[playerid][sizeof(inputtext[playerid])-1] = '\0'; // Ensure it's null terminated
              if (!strcmp(dbPass, inputtext[playerid], false))
              {
                  SendClientMessage(playerid, -1, "Успешный вход!");
                  SpawnPlayer(playerid);
                  GivePlayerMoney(playerid, money); // Выдача денег игроку
              }
              else
              {
                  SendClientMessage(playerid, -1, "Неправильный пароль.");
                  Kick(playerid);
              }
          }
          return 1;
      }
       
      public OnPlayerSpawn(playerid)
      {
          SetPlayerPos(playerid, SPAWN_X, SPAWN_Y, SPAWN_Z);
          SetPlayerFacingAngle(playerid, SPAWN_ANGLE);
          return 1;
      }
       
      public OnPlayerDisconnect(playerid, reason)
      {
          for (new i = 0; i < 3; i++)
          {
              if (rentedByPlayer == playerid)
              {
                  scooterRented = false;
                  rentedByPlayer = -1;
                  SetVehiclePos(scooter, SPAWN_X + 2 + 2 * i, SPAWN_Y, SPAWN_Z);
                  SetVehicleZAngle(scooter, SPAWN_ANGLE);
              }
          }
          return 1;
      }
       
      public OnPlayerStateChange(playerid, newstate, oldstate)
      {
          if (newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
          {
              new vehicleid = GetPlayerVehicleID(playerid);
       
              // Проверка, является ли транспорт скутером
              for (new i = 0; i < 3; i++)
              {
                  if (vehicleid == scooter)
                  {
                      // Если скутер уже арендован
                      if (scooterRented && rentedByPlayer != playerid)
                      {
                          SendClientMessage(playerid, -1, "Этот скутер уже арендован.");
                          RemovePlayerFromVehicle(playerid);
                      }
                      else
                      {
                          ShowPlayerDialog(playerid, 3, DIALOG_STYLE_MSGBOX, "Аренда скутера", "Хотите арендовать этот скутер за 500$?", "Арендовать", "Отказаться");
                      }
                   
        break;
                  }
              }
          }
       
          if (newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
          {
              TextDrawShowForPlayer(playerid, Speedometer[playerid]);
              UpdateSpeedometer(playerid);
              else
          {
              TextDrawHideForPlayer(playerid, Speedometer[playerid]);
          }
          return 1;
      }
       
      public OnPlayerExitVehicle(playerid, vehicleid)
      {
          TextDrawHideForPlayer(playerid, Speedometer[playerid]);
          return 1;
      }
       
      public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
      {
          // Проверка на кнопку N (завести/заглушить двигатель)
          if ((newkeys & KEY_NO) && IsPlayerInAnyVehicle(playerid))
          {
              new vehicleid = GetPlayerVehicleID(playerid);
              engineStatus[playerid] = !engineStatus[playerid];
              if (engineStatus[playerid])
              {
                  SendClientMessage(playerid, -1, "Вы завели двигатель.");
              }
              else
              {
                  SendClientMessage(playerid, -1, "Вы заглушили двигатель.");
              }
          }
       
          // Проверка на кнопку L (закрыть/открыть транспорт)
          if ((newkeys & KEY_LOOK_RIGHT) && IsPlayerInAnyVehicle(playerid))
          {
              new vehicleid = GetPlayerVehicleID(playerid);
              for (new i = 0; i < 3; i++)
              {
                  if (vehicleid == scooter)
                  {
                      if (rentedByPlayer == playerid)
                      {
                          ToggleVehicleLocked(vehicleid);
                          SendClientMessage(playerid, -1, "Транспорт закрыт/открыт.");
                      }
                      else
                      {
                          SendClientMessage(playerid, -1, "Этот транспорт не ваш.");
                      }
                      break;
                  }
              }
          }
       
          // Проверка на кнопку Y (инвентарь)
          if (newkeys & KEY_Y)
          {
              if (inventoryVisible[playerid])
              {
                  HideInventory(playerid);
              }
              else
              {
                  ShowInventory(playerid);
              }
          }
       
          return 1;
      }
       
      // Обновление спидометра
      forward UpdateSpeedometer(playerid);
      public UpdateSpeedometer(playerid)
      {
          if (IsPlayerInAnyVehicle(playerid))
          {
              new Float:speed;
              GetVehicleSpeed(GetPlayerVehicleID(playerid), &speed);
              new str[32];
              format(str, sizeof(str), "Скорость: %.2f км/ч", speed * 3.6);
              TextDrawSetString(Speedometer[playerid], str);
              TextDrawShowForPlayer(playerid, Speedometer[playerid]);
          }
          else
          {
              TextDrawHideForPlayer(playerid, Speedometer[playerid]);
          }
          SetTimerEx("UpdateSpeedometer", 1000, false, "d", playerid);
          return 1;
      }
       
      // Таймер проверки арендованных транспортных средств
      public CheckRentedVehicles()
      {
          for (new i = 0; i < MAX_PLAYERS; i++)
          {
              if (IsPlayerConnected(i))
              {
                  for (new j = 0; j < 3; j++)
                  {
                      if (GetPlayerVehicleID(i) == scooter[j] && rentedByPlayer[j] != i)
                      {
                          Kick(i);
                          break;
                      }
                  }
              }
          }
          return 1;
      }
       
      // Получить скорость транспортного средства
      stock GetVehicleSpeed(vehicleid, &Float:speed)
      {
          new Float:x, Float:y, Float:z;
          GetVehicleVelocity(vehicleid, x, y, z);
          speed = floatsqroot(x*x + y*y + z*z) * 100;
      }
       
      // Переключение блокировки транспортного средства
      stock ToggleVehicleLocked(vehicleid)
      {
          new locked = GetVehicleParamsEx(vehicleid);
          if (locked & VEHICLE_PARAMS_EX_DOORS)
          {
              SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_UNSET, VEHICLE_PARAMS_UNSET, VEHICLE_PARAMS_UNSET, VEHICLE_PARAMS_UNSET, VEHICLE_PARAMS_UNSET, VEHICLE_PARAMS_UNSET, VEHICLE_PARAMS_UNLOCKED);
          }
          else
          {
              SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_UNSET, VEHICLE_PARAMS_UNSET, VEHICLE_PARAMS_UNSET, VEHICLE_PARAMS_UNSET, VEHICLE_PARAMS_UNSET, VEHICLE_PARAMS_UNSET, VEHICLE_PARAMS_LOCKED);
          }
      }
       
      // Обработка команды /inventory
      public OnPlayerCommandText(playerid, cmdtext[])
      {
          if (!strcmp("/inventory", cmdtext, true))
          {
              if (inventoryVisible[playerid])
              {
                  HideInventory(playerid);
              }
              else
              {
                  ShowInventory(playerid);
              }
              return 1;
          }
          return 0;
      }
       
      // Инициализация инвентаря
      stock InitializeInventory(playerid)
      {
          InventoryTextDraw[playerid] = TextDrawCreate(320.0, 240.0, "Inventory");
          TextDrawLetterSize(InventoryTextDraw[playerid], 0.5, 1.5);
          TextDrawAlignment(InventoryTextDraw[playerid], 2);
          TextDrawBackgroundColor(InventoryTextDraw[playerid], 255);
          TextDrawFont(InventoryTextDraw[playerid], 2);
          TextDrawSetOutline(InventoryTextDraw[playerid], 1);
          TextDrawSetProportional(InventoryTextDraw[playerid], 1);
          TextDrawSetShadow(InventoryTextDraw[playerid], 0);
       
          for (new i = 0; i < 36; i++)
          {
              new Float:x = 250.0 + (i % 6) * 50.0;
              new Float:y = 150.0 + (i / 6) * 50.0;
              InventorySlots[playerid] = TextDrawCreate(x, y, " ");
              TextDrawLetterSize(InventorySlots[playerid], 1.0, 1.0);
              TextDrawAlignment(InventorySlots[playerid], 2);
              TextDrawBackgroundColor(InventorySlots[playerid], 0x000000FF);
              TextDrawFont(InventorySlots[playerid], 2);
              TextDrawSetOutline(InventorySlots[playerid], 1);
              TextDrawSetProportional(InventorySlots[playerid], 1);
              TextDrawSetShadow(InventorySlots[playerid], 0);
          }
      }
       
      // Показ инвентаря
      stock ShowInventory(playerid)
      {
          TextDrawShowForPlayer(playerid, InventoryTextDraw[playerid]);
          for (new i = 0; i < 36; i++)
          {
              TextDrawShowForPlayer(playerid, InventorySlots[playerid]);
          }
          inventoryVisible[playerid] = true;
      }
       
      // Скрытие инвентаря
      stock HideInventory(playerid)
      {
          TextDrawHideForPlayer(playerid, InventoryTextDraw[playerid]);
          for (new i = 0; i < 36; i++)
          {
              TextDrawHideForPlayer(playerid, InventorySlots[playerid]);
          }
          inventoryVisible[playerid] = false;
      }
       
      // Перезапуск спидометра при входе в транспорт
      public OnPlayerStateChange(playerid, newstate, oldstate)
      {
          if (newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
          {
              TextDrawShowForPlayer(playerid, Speedometer[playerid]);
              UpdateSpeedometer(playerid);
          }
          else
          {
              TextDrawHideForPlayer(playerid, Speedometer[pla
      yerid]);
          }
          return 1;
      }
       
      public OnGameModeInit()
      {
          // Инициализация инвентаря для всех игроков
          for (new i = 0; i < MAX_PLAYERS; i++)
          {
              InitializeInventory(i);
          }
       
          return 1;
      }
       
       
      Вот такие ошибки:
      filegiged.pwn.old.pwn(24) : error 001: expected token: ";", but found "-identifier-"
      filegiged.pwn.old.pwn(34) : error 021: symbol already defined: "bool"
      filegiged.pwn.old.pwn(38) : error 021: symbol already defined: "bool"
      filegiged.pwn.old.pwn(44) : warning 217: loose indentation
      filegiged.pwn.old.pwn(47) : warning 217: loose indentation
      filegiged.pwn.old.pwn(49) : warning 217: loose indentation
      filegiged.pwn.old.pwn(52) : warning 217: loose indentation
      filegiged.pwn.old.pwn(53) : warning 217: loose indentation
      filegiged.pwn.old.pwn(56) : warning 217: loose indentation
      filegiged.pwn.old.pwn(57) : warning 217: loose indentation
      filegiged.pwn.old.pwn(58) : warning 217: loose indentation
      filegiged.pwn.old.pwn(61) : warning 217: loose indentation
      filegiged.pwn.old.pwn(62) : error 017: undefined symbol "scooterRented"
      filegiged.pwn.old.pwn(62) : warning 215: expression has no effect
      filegiged.pwn.old.pwn(62) : error 001: expected token: ";", but found "]"
      filegiged.pwn.old.pwn(62) : error 029: invalid expression, assumed zero
      filegiged.pwn.old.pwn(62) : fatal error 107: too many error messages on one line
       
      Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPha
      se
       
       
      7 Errors.
       
      Я начинающий скриптер, ничего почти не умею, я не знаю как решить эти проюлемы
    • vernettoalex
      От vernettoalex
      Приветствую, у меня возникла проблема, мне для работы с диалогом который будет выводить информацию о тексте написанным в окне в базу данных нужен inputext, когда я его вписал рядом с ShowPlayerDialog, у меня не появляется диалог и не идёт процесс, но если я его уберу, то функция станет бесполезной. Помогите пожалуйста
       
      p.s - if(sscanf(inputtext, "s[90]", surname)) return SPD
       
       

    • Артём Профиков
      От Артём Профиков
      При входе в лаунчер информация о сервере не отображается, зайти нельзя. В панели нагрузки нет
      Логи:
      Server.cfg:
       
    • Alberto_Maserati
      От Alberto_Maserati
      Доброго времени суток, на связи sianaru_kz. Кто подскажет как удалить маппинг ЖДЛС на бонуснике Аризоны, в коде найти не можем, может еще где-то лежит, инклуды перерыли тоже не нашли. Вечная благодарность тому кто решит вопрос а возможно и 100 рублей закину)
    • xpadio
      От xpadio
      Asia RP - Переделка
      Скачать файл 1.Теперь если администратор не авторизовлся и вводит админ команды ему будет писать следующие: Сначала Авторизуйтесь (/alogin)
      2.Командой /ban теперь можно пользоваться только с 7 лвл и выше админ-прав
      3.Покупка unavig в админском донате теперь стоит 119 рублей ( до этого 49 )
      4.Команды /ban - /unban теперь с 7 лвл админки
      5.Кмд /goto - /gethere теперь с 1 лвл админки ( ранее были на 7-8)
      6.Добавили CMD /aweapon с 3 лвл и выше вы можете брать коплект админ оружия
      7.Добавили + 1 лвл админки итого: 14 lvl adminky
      8.ДОБАВИЛИ команду /swarn ( устно предупреждать ) уже с 4 лвл админки 
      9. /agivevip - можно теперь если вы администратор выдать другу бронз серебро и т.д вип
      10. /addzone - создать зеленую зону где захочешь
      11. /addbiz - создание бизнеса
      12. /ptp - телепортировать игрока к игроку ( Эта команда как и все выше прописанные так же были добавленны в мод)
      13. Создали команду для создании промокодов /newpromo
      14. Добавили команду /setpassword для изменения пароля игроку (доступно с фд)
      15. Добавили команду /chatsms прослушка сообщений
      16. /agetipreg добавили команду чтобы узнать ник и айпи адрес человека под его ID
      17. Добавили команду /astats для проверки статы админа 
      18. Добавили команду /aadmins
      19. Добавили команду /aleaders
      20. Добавил команду /crash для 14 лвл админки чтобы крашнуть кого угодно
      21. Добавил команду /blowup исходят взрывы вокруг тебя не нанося тебе урона 
      22. Добавил команду /npcbars для создание ботов прям в игре(я думаю вы разберётесь)
      23.пофиксил команду /mpwin выйграшь теперь можно давать от 50 до 50000 доната( ранее было от 0 до 50 )
      24. Добавил pawno ботов на сервер
      25. Я думаю кто - нибудь будет использовать этот мод, причина слива? проект развалился и был официально закрыт.
      Добавил xpadio Добавлено 17.06.2024 Категория Моды Автор xpadio