pol@nder
Умник
Для работы данной системы необходимо наличие системы банкоматов.
Описание: При первом пользовании банкомата вас попросят придумать пинкод состоящий из 4 цифр, последующие пользования будут возможны после ввода вашего PIN-кода. В банке можно Сменить/Узнать PIN код по пикапу. Также есть возможность заказать услугу "Экстренные деньги" если вы забыли свой PIN код, команда /extrapin (Высылается смс-ка с временным PIN-кодом).
В OnPlayerKeyStateChange:
Диалоги:
Команда:
Переменные:
enum pInfo:
OnPlayerPickupPickup:
OnGameModeInit:
Сохранение:
Автор я. Насчет оптимизации даже не говорите х) Жду тапков.
Описание: При первом пользовании банкомата вас попросят придумать пинкод состоящий из 4 цифр, последующие пользования будут возможны после ввода вашего PIN-кода. В банке можно Сменить/Узнать PIN код по пикапу. Также есть возможность заказать услугу "Экстренные деньги" если вы забыли свой PIN код, команда /extrapin (Высылается смс-ка с временным PIN-кодом).
В OnPlayerKeyStateChange:
PHP:
if(newkeys == 128)
{
if(!IsPlayerInAnyVehicle(playerid))
{
if(IsABankomat(playerid))
{
if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return true;
if(PlayerInfo[playerid][pPin] == 0) return ShowPlayerDialog(playerid, 8132, DIALOG_STYLE_INPUT, "{F20F0F}Registration", "{660FF2}Добро пожаловать в банковскую систему {F2AA0F} <<SA Money>>\n\n {0FF21E}Введите ваш новый{0FC1F2}PIN-код {0FF21E}для пользования\n\tбанковскими услугами и запомните его.\n Внимание!PIN-код должен состоять из 4 цифр!", "Сохранить", "Отмена");
if(PlayerInfo[playerid][pPin] != 0) return ShowPlayerDialog(playerid, 8133, DIALOG_STYLE_INPUT, "{F20F0F}Identification", "Введите ваш {0FC1F2}PIN-код:", "Продолжить", "Отмена");
}
}
}
PHP:
case 8132:
{
if(response)
{
if(strlen(inputtext) != 4)
{
SendClientMessage(playerid, COLOR_LIGHTRED, "PIN-код должен состоять из 4 цифр!");
ShowPlayerDialog(playerid, 8132, DIALOG_STYLE_INPUT, "{F20F0F}Registration", "{660FF2}Добро пожаловать в банковскую систему {F2AA0F} <<SA Money>>\n\n {0FF21E}Введите ваш новый{0FC1F2}PIN-код {0FF21E}для пользования\n\tбанковскими услугами и запомните его.\n Внимание!PIN-код должен состоять из 4 цифр!", "Сохранить", "Отмена");
return true;
}
if(strval(inputtext) < 1000 || strval(inputtext) > 9999)
{
SendClientMessage(playerid, COLOR_LIGHTRED, "PIN-код должен состоять из 4 цифр и не должен начинаться с нуля!");
ShowPlayerDialog(playerid, 8132, DIALOG_STYLE_INPUT, "{F20F0F}Registration", "{660FF2}Добро пожаловать в банковскую систему {F2AA0F} <<SA Money>>\n\n {0FF21E}Введите ваш новый{0FC1F2}PIN-код {0FF21E}для пользования\n\tбанковскими услугами и запомните его.\n Внимание!PIN-код должен состоять из 4 цифр!", "Сохранить", "Отмена");
return true;
}
PlayerInfo[playerid][pPin] = strval(inputtext);
SendClientMessage(playerid, COLOR_WHITE, "{2880CC}PIN-код {F6F8F9}успешно сохранен! Восстановить PIN можно в банке Los Santos!");
ShowPlayerDialog(playerid, 8133, DIALOG_STYLE_INPUT, "{F20F0F}Identification", "Введите ваш {0FC1F2}PIN-код:", "Продолжить", "Отмена");
}
}
case 8133:
{
if(response)
{
if(strval(inputtext) != PlayerInfo[playerid][pPin] && strval(inputtext) != TimePin[playerid] || strval(inputtext) == 0)
{
SendClientMessage(playerid, COLOR_LIGHTRED, "{2B92ED}PIN-код {F22121}не верный! {63F221}Восстановите PIN в банке Los Santos");
ShowPlayerDialog(playerid, 8133, DIALOG_STYLE_INPUT, "{F20F0F}Identification", "Введите ваш {0FC1F2}PIN-код:", "Продолжить", "Отмена");
return true;
}
TimePin[playerid] = 0;
ApplyAnimation(playerid,"CRIB","CRIB_Use_Switch",4.0,0,0,0,0,0);
new listitems[] = "{FFFFFF}Снять\nПоложить\nБаланс\nСотовая связь";
ShowPlayerDialog(playerid, 8900, DIALOG_STYLE_LIST, "{FFFFFF}Банкомат", listitems, "Далее", "Закрыть");
}
}
case 8855:
{
if(response)
{
switch(listitem)
{
case 0:ShowPlayerDialog(playerid, 8132, DIALOG_STYLE_INPUT, "Смена {0C81F4}PIN", "Введите новый {0C81F4}PIN-код:", "Сохранить", "Отмена");
case 1:
{
new stringe[60];
format(stringe, sizeof(stringe), "Ваш действующий {096C8C}PIN-код: {F40C0C}%d", PlayerInfo[playerid][pPin]);
SendClientMessage(playerid, COLOR_WHITE, stringe);
}
case 2:SendClientMessage(playerid, COLOR_WHITE, "Недоступно!");
}
}
}
PHP:
else if(strcmp(cmd, "/extrapin", true) == 0)
{
if(PlayerInfo[playerid][pCash] < 100000) return SendClientMessage(playerid, COLOR_RED, "Недостаточно денег!");
new pinkod = random(5000)+1000;
TimePin[playerid] = pinkod;
PlayerInfo[playerid][pCash] -= 100000;
SendClientMessage(playerid, COLOR_WHITE, "С вас взяли 100000$ за услугу");
format(string, sizeof(string), "[SMS]Ваш временный PIN: {770D0D}%d", pinkod);
SendClientMessage(playerid, COLOR_WHITE, string);
}
PHP:
new PinPic;
new TimePin[MAX_PLAYERS];
PHP:
pPin,
PHP:
else if(pickupid == PinPic)
{
new sendernamee[50];
GetPlayerName(playerid, sendernamee, sizeof(sendernamee));
format(string,sizeof(string), "%s показал(а) свой паспорт банкиру",sendernamee);
ProxDetector(10.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
ShowPlayerDialog(playerid,8855,DIALOG_STYLE_LIST,"Кредитная карточка.","Сменить PIN\nУзнать PIN\nЗаблокировать карточку","Выбрать","Отмена");
}
PHP:
PinPic = CreatePickup(1274,2,2316.6155,-7.3066,26.7422);
PHP:
OnPLayerLogin: ini_getInteger(File, "Pin",PlayerInfo[playerid][pPin]);
OnPlayerRegister: ini_setInteger(File, "Pin",PlayerInfo[playerid][pPin]);
OnPlayerConnect: PlayerInfo[playerid][pPin] = 0;
OnPlayerUpdate: ini_setInteger(File,"Pin",PlayerInfo[playerid][pPin]);
Последнее редактирование модератором:
