1 post in this topic

RASTAMAN
Великий Гуру

Хотелось бы выложить сис-му создания банкоматов.
Предупреждение! - В данной системе, для полной работоспособности банкомата, вам необходимо вставить код своихпеременных, тоесть заменить pInfo[playerid][pMoney] и pInfo[playerid][pBank], на те переменные, в которые вы выгружаете значения из таблиц/файлов.
 

Спойлер

#include <a_samp>
#include <streamer>

 

Спойлер

#define MAX_BANKOMATS           2 // максимальное кол-во банкоматов
#define BANKOMAT_CASH           15 // изымаемый процент от пользования банкоматом
#define d_bankomat              9 // свободный ID диалога

 

Спойлер

new
ATMZone[MAX_BANKOMATS],
cBankomats 
;

 

Спойлер

if(ATMZone[0] <= areaid <= ATMZone[cBankomats-1]) SetPVarInt(playerid,"PlayerUseBankomat",1); //Если игрок попал в зону банкомата
В public OnPlayerLeaveDynamicArea(playerid, areaid)
if(ATMZone[0] <= areaid <= ATMZone[cBankomats-1]) SetPVarInt(playerid,"PlayerUseBankomat",0); //Если игрок покинул зону банкомата
В public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
if(PRESSED(KEY_WALK)) { // Действия при нажатии левой клавиши 'Alt'
        if(GetPVarInt(playerid,"PlayerUseBankomat") != 0) { //Если игрок находится в зоне банкомата
                showPlayerDialog(playerid, d_bankomat, 2,"Банкомат","Проверить баланс\nСнять деньги со счета\nПоложить деньги на счет","Дальше","Закрыть"); //Вызываем диалог банкомата
        }
}

 

Спойлер

      if(dialogid == d_bankomat) {
                if(!response) return 1;
                switch(listitem) {
                        case 0: {
                                format(string,sizeof(string),"| Информация о балансе на счету:\n\nСостояние банковского счета - $%d",pInfo[playerid][pMoney]); // pInfo[playerid][pMoney] заменяете на кол-во денег игрока из своего мода
                                showPlayerDialog(playerid, 9999, 0, " ", string, "Закрыть", "");
                        }
                        case 1: showPlayerDialog(playerid, d_bankomat + 1, 1, "Снять деньги со счета","Укажите сумму которую хотите снять со счета:\n\n| Минимальная сумма $100, максимальная $100000\n| При использовании банкомата действует комиссия","Дальше","Закрыть");
                        case 2: showPlayerDialog(playerid, d_bankomat + 2, 1, "Положить деньги на счет","Укажите сумму которую хотите положить на счет:\n\n| Минимальная сумма $100, максимальная $100000\n| При использовании банкомата действует комиссия","Дальше","Закрыть");
                }
        }
        if(dialogid == d_bankomat + 1) {
                if(!response) return 1;
                if(!strlen(inputtext)) return  showPlayerDialog(playerid, d_bankomat + 1, 1, "Снять деньги со счета","Укажите сумму которую хотите снять со счета:\n\n| Минимальная сумма $100, максимальная $100000\n| При использовании банкомата действует комиссия","Дальше","Закрыть");
                if(strval(inputtext) < 100 || strval(inputtext) > 100000) return  showPlayerDialog(playerid, d_bankomat + 1, 1, "Снять деньги со счета","Укажите сумму которую хотите снять со счета:\n\n| Минимальная сумма $100, максимальная $100000\n| При использовании банкомата действует комиссия","Дальше","Закрыть");//Если игрок ввел сумму больше 100000 или менее 100.
                new BankCash = (strval(inputtext)*BANKOMAT_CASH)/100;
                pInfo[playerid][pBank] -= strval(inputtext)-BankCash;//Вычитаем процент и отнимаем деньги с банк.счета
                pInfo[playerid][pMoney] += strval(inputtext)-BankCash;//Вычитаем процент и получаем деньги на руки
                ApplyAnimation(playerid, "PED", "ATM",4.0, 0, 1, 1, 0, 0, 1);
        }
        if(dialogid == d_bankomat + 2) {
                if(!response) return 1;
                if(!strlen(inputtext)) return  showPlayerDialog(playerid, d_bankomat + 2, 1, "Положить деньги на счет","Укажите сумму которую хотите положить на счет:\n\n| Минимальная сумма $100, максимальная $100000\n| При использовании банкомата действует комиссия","Дальше","Закрыть"); 
                if(strval(inputtext) < 100 || strval(inputtext) > 100000) return  showPlayerDialog(playerid, d_bankomat + 2, 1, "Положить деньги на счет","Укажите сумму которую хотите положить на счет:\n\n| Минимальная сумма $100, максимальная $100000\n| При использовании банкомата действует комиссия","Дальше","Закрыть"); //Если игрок ввел сумму больше 100000 или менее 100.
                new BankCash = (strval(inputtext)*BANKOMAT_CASH)/100; //Вычисляем % от пользования банкоматом
                pInfo[playerid][pBank] += strval(inputtext)-BankCash; //Вычитаем процент и получаем деньги в банк
                pInfo[playerid][pMoney] -= strval(inputtext)-BankCash; //Вычитаем процент и отнимаем деньги с рук
                ApplyAnimation(playerid, "PED", "ATM",4.0, 0, 1, 1, 0, 0, 1); //Приминяем анимацию пользования банкоматом
        }

 

Спойлер

        CreateBankomat(1740.29,-1771.58,13.37,0.00,0.00,0.00); //Создаем банкомат
        CreateBankomat(1740.29,-1773.58,13.37,0.00,0.00,0.00); //Аналогично

 

Спойлер

stock CreateBankomat(Float:x,Float:y,Float:z,Float:rx,Float:ry,Float:rz) {
        CreateDynamicObject(2754,x,y,z,rx,ry,rz); //Создаем сам банкомат
        CreateDynamic3DTextLabel("Банкомат\n\nALT",0xFFFFFFFF, x,y,z,3.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0); //Создаем 3д текст к банкомату
        ATMZone[cBankomats] = CreateDynamicSphere(x,y,z,2.0); //Создаем сферу действия банкомата
        cBankomats ++; //Прибавляем 1 созданный банкомат к общему кол-ву
        return 1;

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • x4reo
      By x4reo
      EPOCH ROLE PLAY | ВОЗВРАЩЕНИЕ В 90-Е Создаем атмосферный Full RP проект без «фарма» и лишней «дичи»     О ПРОЕКТЕ Epoch Role Play — это площадка для тех, кто ценит качество, а не статистику. Мы строим живой мир, где каждое действие имеет последствия, а экономика строится на социальном взаимодействии.   КОГО МЫ ИЩЕМ? • Lead Developer (Pawn/C#/JS): Создание ядра мода, БД, оптимизация. • Mapper/Level Designer: Создание аутентичных интерьеров 90-х. • Game Designer: Проработка ролевых правил и сценариев. • SMM-менеджер: Ведение соцсетей, создание контента. • Дизайнер: Оформление медиа и UI проекта. • Discord-архитектор: Настройка каналов и безопасности. • Web-разработчик: Сайт и форум проекта. • Bot-developer (VK/TG): Безопасность: 2FA, привязка аккаунтов.   НАШИ УСЛОВИЯ 1. Энтузиазм: Проект стартует без бюджета. Мы ищем единомышленников. 2. Соавторство: Каждый участник — полноценный совладелец проекта. 3. Партнерство: Вся прибыль от монетизации распределяется пропорционально вкладу.     КОНТАКТЫ ДЛЯ СВЯЗИ Telegram: x4reoo  
    • Gabriel C
      By Gabriel C
      Всем привет. Ищу клиентскую сборку Flin RP для ПК.
      Нужна полноценная версия клиента со всеми необходимыми файлами для запуска игры и подключения к серверу.
      Желательно сборку примерно 2023 года, так как по имеющимся файлам видно, что обновления клиента и систем Real Cars / Real Skins были сделаны в начале 2023 года.
      Нужна именно ПК-сборка/клиент Flin RP:
      лаунчер (если был); папка с игрой; ASI/плагины; cache/modpack с моделями. Если у кого-то осталась рабочая сборка или архив клиента — буду благодарен за помощь.