Перейти к содержанию
Авторизация  
Vladimir_Kulkov

Система банкоматов

Рекомендуемые сообщения

Vladimir_Kulkov

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

#include <a_samp>
#include <streamer>

Ко всем Define

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

Ко всем New

new
ATMZone[MAX_BANKOMATS],
cBankomats 
;

В public OnPlayerEnterDynamicArea(playerid, areaid)

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Положить деньги на счет","Дальше","Закрыть"); //Вызываем диалог банкомата
        }
}

В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

        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); //Приминяем анимацию пользования банкоматом
        }

В public OnGameModeInit()

        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;
}

Возникли вопросы? Пишите в данную тему.

Автор:Неизвестно

  • Like 1

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


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

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

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

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

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

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

Войти

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

Войти
Авторизация  

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

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

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.