В теме 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 пользователей онлайн

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

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

    • Sten Developer
      От Sten Developer
      Объясню всю ситуацию, пишу систему смерти игрока но она не работает. Решил по приколу написать туда обычный вывод текста SCM(playerid, COLOR_RED, "Вы умерли");
      Но однако после смерти текст не выводиться. Не работает абсолютно все. Кто знает как решить эту проблему?