В теме 1 сообщение

Хотелось бы выложить сис-му создания банкоматов.
Предупреждение! - В данной системе, для полной работоспособности банкомата, вам необходимо вставить код своихпеременных, тоесть заменить 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;

 

 

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


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

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

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

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

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


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

Войти

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


Войти

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

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

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

    • Mister Odin
      От Mister Odin
       
      new
       g_teleport_list[39][E_TELEPORT_LIST] = {  {"Спавн пгт.Батырево", 1802.3612, 2508.4824, 15.8887},  {"Спавн г.Арзамас", -113.5887, 977.7222, 12.0346},     {"Спавн г.Южный", 2744.2770, -2446.7246, 21.8988},     {"Центральный банк", 1852.020385,2040.791381,15.892713},  {"Рублёвка", -837.7783, 888.6161, 12.7232},  {"Казино", 1332.4252, 2358.7014, 17.6641},  {"Битва за контейнеры", 614.5167, 1722.3566, 12.0709},  {"Автосалон низкого класса", 2493.9616, -722.9544, 12.3315},  {"Автосалон среднего класса", 1407.7449, 455.4801, 13.1630},  {"Автосалон высокого класса", -14.0637, 2614.5664, 10.9892},   {"Мотосалон Harley Davidson", 785.720153, 750.465087, 12.000024},  {"Автошкола", 1909.174438,2227.679687,15.708162},  {"Военкомат", 1916.778564,2302.411376,15.574637},  {"Правительство области", -139.140975,593.789611,12.145712},  {"Отдел полиции №1 (ГИБДД)", 1906.805786,-2234.382812,11.257631},  {"Отдел полиции №2 (УМВД)", 2581.309326,-2416.139892,21.960090},  {"Отдел ФСБ", 1823.904663,2095.636718,15.848405},  {"Городская больница г.Арзамас", -285.797210,581.851562,12.120290},   {"СМИ", -317.708038,821.221679,13.051450},  {"Воинская часть", 1703.197265,1678.025878,15.279437},  {"Арзамасская ОПГ", 438.705322,1046.505126,12.002637},  {"Батыревская ОПГ", 1941.203857,2161.006591,15.705187},  {"Лыткаринская ОПГ", -2346.002441,75.257041,21.002962},  {"Шахта", 2381.5727, 1726.4451, -2.1506},  {"Завод", -1062.6697, 2204.1894, 38.0964},  {"Инкосация", 1864.1374, 2011.7136, 15.8546},  {"Транспортная Компания", 2362.1115, 1972.5627, 15.5530},  {"База механиков", 1840.918090,-118.025146,15.695312},  {"Курьерская служба доставки", 2764.509765,-2396.882568,21.890625},  {"Аренда автобуса(Южный)", 2771.041992,-2454.780761,21.845964},  {"Аренда автобуса(Арзамас)", -127.487670,943.652648,12.142824},   {"Аренда автобуса(Батырево)", 1798.986328,2529.591552,15.664262},  {"Гоночная трасса", -1568.7784, 1611.8305, 36.3971},  {"Дом на горе", -789.5397, -456.7479, 741.1422},  {"СТО и тюнинг-ателье", 1856.1375, -122.3266, 15.6888},  {"Аренда транспорта пгт.Батырево", 1763.641723,2255.673339,15.865348},  {"Аренда транспорта г.Арзамас", -36.923530,1360.673583,12.002090},  {"Аренда транспорта г.Южный", 1966.599975,-2603.943603,10.820312},  {"Тайный интерьер в Лыткарино", -2424.5818, 2846.3291, 40.7908} };