/* * Gerçekci ATM Sistemi - Realistic ATM System MySQL * * Coding: nieXpro * * 2017.09.17 * */ #include #include #include #include #include #include // Dil Ayarı - Langueage Settings #define Language (2) // 1 = TR --> Türkçe (Turkish) | 2 = EN --> English // MySQL Settings #define MYSQL_HOST "localhost" #define MYSQL_USER "root" #define MYSQL_PASS "" #define MYSQL_DATABASE "" // ATM Settings #define MAX_ATM (5) // Maksimum ATM sayısı -- Maximum number of ATMs #define ATM_OBJECT (19324) // Atm objesi -- Atm object #define ATM_PCreate (740) // Dialog ID #define ATM_PCreate2 (741) // Dialog ID #define ATM_PCreate3 (742) // Dialog ID #define ATM_PMENU (743) // Dialog ID #define ATM_PMENU_1 (744) // Dialog ID #define ATM_PMENU_2 (745) // Dialog ID #define ATM_PMENU_3 (746) // Dialog ID #define ATM_PMENU_4 (747) // Dialog ID #define ATM_PMENU_5 (748) // Dialog ID #define ATM_PMENU_6 (749) // Dialog ID #define ATM_PMENU_7 (750) // Dialog ID #define ATM_PMENU_8 (751) // Dialog ID #define ATM_PMENU_9 (752) // Dialog ID enum ATM_Player { bool: account_e, atm_money, atm_password }; enum ATM_Data { Float:atmPos[6], atm_Obj, atm_Cp, Text3D: atm_Label, atm_icon }; new ATMIslem[MAX_ATM][ATM_Data]; new AtmPlayer[MAX_PLAYERS][ATM_Player]; new Iterator: Atmler; new bool: ATMEdit[MAX_PLAYERS] = false; new bool: ATMEdit2[MAX_PLAYERS] = false; new __Page[MAX_PLAYERS] = 0; new MySQL: n_SQL; public OnFilterScriptInit() { new MySQLOpt: option_id = mysql_init_options(); mysql_set_option(option_id, AUTO_RECONNECT, true); n_SQL = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DATABASE, option_id); if (n_SQL == MYSQL_INVALID_HANDLE || mysql_errno(n_SQL) != 0) { #if Language == 1 printf("\n[ATM] --> Veritaban bağlantısı kurulamadı."); #elseif Language == 2 printf("\n[ATM] --> A connection to the database could not be provided."); #endif return 1; } mysql_tquery(n_SQL, "CREATE TABLE IF NOT EXISTS `atmler` (\ `atmid` int(3) NOT NULL,\ `aX` float NOT NULL,\ `aY` float NOT NULL,\ `aZ` float NOT NULL,\ `aRX` float NOT NULL,\ `aRY` float NOT NULL,\ `aRZ` float NOT NULL,\ PRIMARY KEY (`atmid`)\ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); mysql_tquery(n_SQL, "CREATE TABLE IF NOT EXISTS `atmlog` (\ `id` int(11) NOT NULL AUTO_INCREMENT,\ `sender` varchar(24) NOT NULL,\ `receiver` varchar(24) NOT NULL,\ `date` int(11) NOT NULL,\ `total` int(11) NOT NULL,\ PRIMARY KEY (`id`)\ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); mysql_tquery(n_SQL, "CREATE TABLE IF NOT EXISTS `atmplayer` (\ `id` int(11) NOT NULL AUTO_INCREMENT,\ `name` varchar(24) NOT NULL,\ `money` int(11) NOT NULL DEFAULT '0',\ `password` int(5) NOT NULL DEFAULT '0',\ PRIMARY KEY (`id`)\ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); mysql_tquery(n_SQL, "SELECT * FROM `atmler`", "AtmLoad", ""); return 1; } public OnFilterScriptExit() { foreach(new id : Atmler) { ATMIslem[id][atmPos][0] = 0.0; ATMIslem[id][atmPos][1] = 0.0; ATMIslem[id][atmPos][2] = 0.0; ATMIslem[id][atmPos][3] = 0.0; ATMIslem[id][atmPos][4] = 0.0; ATMIslem[id][atmPos][5] = 0.0; DestroyDynamicObject(ATMIslem[id][atm_Obj]); DestroyDynamicCP(ATMIslem[id][atm_Cp]); DestroyDynamic3DTextLabel(ATMIslem[id][atm_Label]); DestroyDynamicMapIcon(ATMIslem[id][atm_icon]); ATMIslem[id][atm_Label] = Text3D: INVALID_3DTEXT_ID; } return 1; } public OnPlayerConnect(playerid) { ATMEdit[playerid] = false; AtmPlayer[playerid][account_e] = false; AtmPlayer[playerid][atm_money] = 0; AtmPlayer[playerid][atm_password] = 0; new query[60 + 24]; mysql_format(n_SQL, query, sizeof(query), "SELECT * FROM `atmplayer` WHERE `name` = '%e' LIMIT 1", getName(playerid)); mysql_tquery(n_SQL, query, "Atm_PLoad", "ds", playerid, getName(playerid)); return 1; } public OnPlayerDisconnect(playerid, reason) { ATMEdit[playerid] = false; AtmPlayer[playerid][account_e] = false; AtmPlayer[playerid][atm_money] = 0; AtmPlayer[playerid][atm_password] = 0; return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch(dialogid) { case ATM_PCreate: { if(response) { #if Language == 1 ShowPlayerDialog(playerid, ATM_PCreate2, DIALOG_STYLE_INPUT, "ATM: Hesap Oluşturun >> Şifre", "{FFFFFF}Hesap şifrenizi belirleyin.\n{FFFFFF}Maksimum {e74c3c}4 sayıdan {FFFFFF}oluşabilir.", "Oluştur", ""); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PCreate2, DIALOG_STYLE_INPUT, "ATM: Account Creation >> Password", "{FFFFFF}Specify your account password.\n{FFFFFF}It can be a {e74c3c}maximum {FFFFFF}of {e74c3c}4 numbers.", "Create", ""); #endif } } case ATM_PCreate2: { if(!response) { #if Language == 1 ShowPlayerDialog(playerid, ATM_PCreate2, DIALOG_STYLE_INPUT, "ATM: Hesap Oluşturun >> Şifre", "{FFFFFF}Hesap şifrenizi belirleyin.\n{FFFFFF}Maksimum {e74c3c}4 sayıdan {FFFFFF}oluşabilir.", "Oluştur", ""); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PCreate2, DIALOG_STYLE_INPUT, "ATM: Account Creation >> Password", "{FFFFFF}Specify your account password.\n{FFFFFF}It can be a {e74c3c}maximum {FFFFFF}of {e74c3c}4 numbers.", "Create", ""); #endif return 1; } if(response) { new str[100], _pass = strval(inputtext), _len = strlen(inputtext), bool: _conf = false, qeury[65 + 24 + 4 + 2]; if(_len != 4) { #if Language == 1 ShowPlayerDialog(playerid, ATM_PCreate2, DIALOG_STYLE_INPUT, "ATM: Hesap Oluşturun >> Şifre", "{FFFFFF}Hesap şifrenizi belirleyin.\n{FFFFFF}Maksimum {e74c3c}4 sayıdan {FFFFFF}oluşabilir.", "Oluştur", ""); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PCreate2, DIALOG_STYLE_INPUT, "ATM: Account Creation >> Password", "{FFFFFF}Specify your account password.\n{FFFFFF}It can be a {e74c3c}maximum {FFFFFF}of {e74c3c}4 numbers.", "Create", ""); #endif return 1; } if(_pass <= 0) { #if Language == 1 ShowPlayerDialog(playerid, ATM_PCreate2, DIALOG_STYLE_INPUT, "ATM: Hesap Oluşturun >> Şifre", "{FFFFFF}Hesap şifrenizi belirleyin.\n{FFFFFF}Maksimum {e74c3c}4 sayıdan {FFFFFF}oluşabilir.", "Oluştur", ""); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PCreate2, DIALOG_STYLE_INPUT, "ATM: Account Creation >> Password", "{FFFFFF}Specify your account password.\n{FFFFFF}It can be a {e74c3c}maximum {FFFFFF}of {e74c3c}4 numbers.", "Create", ""); #endif return 1; } if(inputtext[0] == '0') { #if Language == 1 ShowPlayerDialog(playerid, ATM_PCreate2, DIALOG_STYLE_INPUT, "ATM: Hesap Oluşturun >> Şifre", "{FFFFFF}Hesap şifrenizi belirleyin.\n{FFFFFF}Maksimum {e74c3c}4 sayıdan {FFFFFF}oluşabilir.", "Oluştur", ""); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PCreate2, DIALOG_STYLE_INPUT, "ATM: Account Creation >> Password", "{FFFFFF}Specify your account password.\n{FFFFFF}It can be a {e74c3c}maximum {FFFFFF}of {e74c3c}4 numbers.", "Create", ""); #endif return 1; } for(new i = 0; inputtext[i] != EOS; ++i) { switch(inputtext[i]) { case '0'..'9': _conf = true; default: _conf = false; } } if(!_conf) { #if Language == 1 ShowPlayerDialog(playerid, ATM_PCreate3, DIALOG_STYLE_INPUT, "ATM: Hesap Oluşturun >> Şifre", "{FFFFFF}Hesap şifrenizi belirleyin.\n{FFFFFF}Maksimum {e74c3c}4 sayıdan {FFFFFF}oluşabilir.", "Oluştur", ""); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PCreate3, DIALOG_STYLE_INPUT, "ATM: Account Creation >> Password", "{FFFFFF}Specify your account password.\n{FFFFFF}It can be a {e74c3c}maximum {FFFFFF}of {e74c3c}4 numbers.", "Create", ""); #endif return 1; } mysql_format(n_SQL, qeury, sizeof(qeury),"INSERT INTO `atmplayer`(`name`, `password`) VALUES ('%e', '%d')", getName(playerid), _pass); mysql_query(n_SQL, qeury); AtmPlayer[playerid][account_e] = true; AtmPlayer[playerid][atm_money] = 0; AtmPlayer[playerid][atm_password] = _pass; #if Language == 1 format(str, sizeof(str), "{FFFFFF}Hesabınız başarıyla oluşturuldu.\n{FFFFFF}Şifreniz: {f39c12}%d", _pass); ShowPlayerDialog(playerid, ATM_PCreate3, DIALOG_STYLE_MSGBOX, "ATM: Hesap Oluşturun >> Şifre", str, "Tamam", ""); #elseif Language == 2 format(str, sizeof(str), "{FFFFFF}Your account has been successfully created.\n{FFFFFF}Password: {f39c12}%d", _pass); ShowPlayerDialog(playerid, ATM_PCreate3, DIALOG_STYLE_MSGBOX, "ATM: Account Creation >> Password", str, "Ok", ""); #endif } } case ATM_PMENU: { if(response) { switch(listitem) { case 0: { #if Language == 1 ShowPlayerDialog(playerid, ATM_PMENU_1, DIALOG_STYLE_LIST, "ATM: >> Bakiye", "{3498db}» {FFFFFF}Para Çek\n{3498db}» {FFFFFF}Para Yatır", "Seç", "Geri"); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PMENU_1, DIALOG_STYLE_LIST, "ATM: >> Balance", "{3498db}» {FFFFFF}Withdraw\n{3498db}» {FFFFFF}Deposit", "Select", "Back"); #endif } case 1: ShowPAccount(playerid); case 2: { #if Language == 1 ShowPlayerDialog(playerid, ATM_PMENU_4, DIALOG_STYLE_INPUT, "ATM: >> Havale", "{FFFFFF}Havale yapacağınız kişinin {9b59b6}ismini {FFFFFF}girin.", "Devam", "Geri"); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PMENU_4, DIALOG_STYLE_INPUT, "ATM: >> Transfer", "{FFFFFF}Enter the {9b59b6}user name {FFFFFF}to deposit money.", "Continue", "Back"); #endif } case 3: { __Page[playerid] = 0; new query[165], Cache: _gonderi; mysql_format(n_SQL, query, sizeof(query), "SELECT `sender`, `receiver`, FROM_UNIXTIME(`date`), `total` FROM `atmlog` WHERE `sender` = '%e' ORDER BY `sender` DESC LIMIT %d, 10", getName(playerid), __Page[playerid] * 15); _gonderi = mysql_query(n_SQL, query); new rows = cache_num_rows(); if(rows) { new xx[1024], __gonderen[24], __alici[24], __tarih[20], __miktar; #if Language == 1 format(xx, sizeof(xx), "Gönderen\tAlıcı\tTarih\tMiktar\n"); #elseif Language == 2 format(xx, sizeof(xx), "Sender\tReceiver\tDate\tAmount\n"); #endif for(new i; i < rows; ++i) { cache_get_value_name(i, "sender", __gonderen); cache_get_value_name(i, "receiver", __alici); cache_get_value_name(i, "FROM_UNIXTIME(`date`)", __tarih); cache_get_value_name_int(i, "total", __miktar); format(xx, sizeof(xx), "%s%s\t%s\t%s\t$%s\n", xx, __gonderen, __alici, __tarih, convertNumber(__miktar)); } #if Language == 1 ShowPlayerDialog(playerid, ATM_PMENU_6, DIALOG_STYLE_TABLIST_HEADERS, "Gönderilen Havaleler (Sayfa: 1)", xx, "İleri", "Geri"); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PMENU_6, DIALOG_STYLE_TABLIST_HEADERS, "Transfers Sent (Page: 1)", xx, "Continue", "Previous"); #endif } if(!rows) { __Page[playerid] = 0; SendLanguageMessage(playerid, "{61C2FF}ATM: {FFFFFF}Daha önce havale yapmamışsınız.", "{61C2FF}ATM: {FFFFFF}You haven't made a transfer before."); ShowPAccount(playerid); } cache_delete(_gonderi); } case 4: { __Page[playerid] = 0; new query[165], Cache: _gonderi; mysql_format(n_SQL, query, sizeof(query), "SELECT `receiver`, `sender`, FROM_UNIXTIME(`date`), `total` FROM `atmlog` WHERE `receiver` = '%e' ORDER BY `receiver` DESC LIMIT %d, 10", getName(playerid), __Page[playerid] * 15); _gonderi = mysql_query(n_SQL, query); new rows = cache_num_rows(); if(rows) { new xx[1024], __gonderen[24], __alici[24], __tarih[20], __miktar; #if Language == 1 format(xx, sizeof(xx), "Alıcı\tGönderen\tTarih\tMiktar\n"); #elseif Language == 2 format(xx, sizeof(xx), "Receiver\tSender\tDate\tAmount\n"); #endif for(new i; i < rows; ++i) { cache_get_value_name(i, "sender", __gonderen); cache_get_value_name(i, "receiver", __alici); cache_get_value_name(i, "FROM_UNIXTIME(`date`)", __tarih); cache_get_value_name_int(i, "total", __miktar); format(xx, sizeof(xx), "%s%s\t%s\t%s\t$%s\n", xx, __alici, __gonderen, __tarih, convertNumber(__miktar)); } #if Language == 1 ShowPlayerDialog(playerid, ATM_PMENU_7, DIALOG_STYLE_TABLIST_HEADERS, "Gelen Havaleler (Sayfa: 1)", xx, "İleri", "Geri"); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PMENU_7, DIALOG_STYLE_TABLIST_HEADERS, "Incoming Transfer (Page: 1)", xx, "Continue", "Previous"); #endif } if(!rows) { __Page[playerid] = 0; SendLanguageMessage(playerid, "{61C2FF}ATM: {FFFFFF}Size daha önce bir havale gelmemiş.", "{61C2FF}ATM: {FFFFFF}There is no transfer to you."); ShowPAccount(playerid); } cache_delete(_gonderi); } case 5: { #if Language == 1 ShowPlayerDialog(playerid, ATM_PMENU_8, DIALOG_STYLE_MSGBOX, "ATM: >> Hesap Silme", "{FFFFFF}Bu işlem geri alınamaz.\n{FFFFFF}Kabul ediyor musunuz ?", "Evet", "Hayır"); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PMENU_8, DIALOG_STYLE_MSGBOX, "ATM: >> Delete Account", "{FFFFFF}This operation cannot be undone.\n{FFFFFF}Do you accept ?", "Yes", "No"); #endif } } } } case ATM_PMENU_1: { if(!response){ ShowPAccount(playerid); } if(response) { switch(listitem) { case 0: { #if Language == 1 ShowPlayerDialog(playerid, ATM_PMENU_2, DIALOG_STYLE_INPUT, "ATM: >> Bakiye >> Para Çek", "{FFFFFF}Çekmek istediğiniz tutarı girin.", "Çek", "Geri"); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PMENU_2, DIALOG_STYLE_INPUT, "ATM: >> Balance >> Withdraw", "{FFFFFF}Enter the amount you want to withdraw.", "Withdraw", "Back"); #endif } case 1: { #if Language == 1 ShowPlayerDialog(playerid, ATM_PMENU_3, DIALOG_STYLE_INPUT, "ATM: >> Bakiye >> Para Yatır", "{FFFFFF}Yatırmak istediğiniz tutarı girin.", "Yatır", "Geri"); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PMENU_3, DIALOG_STYLE_INPUT, "ATM: >> Balance >> Deposit", "{FFFFFF}Enter the amount you wish to deposit.", "Deposit", "Back"); #endif } } } } case ATM_PMENU_2: { if(!response) { #if Language == 1 ShowPlayerDialog(playerid, ATM_PMENU_1, DIALOG_STYLE_LIST, "ATM: >> Bakiye", "{3498db}» {FFFFFF}Para Çek\n{3498db}» {FFFFFF}Para Yatır", "Seç", "Geri"); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PMENU_1, DIALOG_STYLE_LIST, "ATM: >> Balance", "{3498db}» {FFFFFF}Withdraw\n{3498db}» {FFFFFF}Deposit", "Select", "Back"); #endif } if(response) { new str[70 + 11 + 24]; if(!strlen(inputtext)) { #if Language == 1 ShowPlayerDialog(playerid, ATM_PMENU_2, DIALOG_STYLE_INPUT, "ATM: >> Bakiye >> Para Çek", "{e74c3c}Hata: {FFFFFF}Ekranı boş bırakmayın.\n{FFFFFF}Çekmek istediğiniz tutarı girin.", "Çek", "Geri"); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PMENU_2, DIALOG_STYLE_INPUT, "ATM: >> Balance >> Withdraw", "{e74c3c}Error: {FFFFFF}Do not leave the screen blank.\n{FFFFFF}Enter the amount you want to withdraw.", "Withdraw", "Back"); #endif return 1; } new _ba = strval(inputtext); if(_ba <= 0) { #if Language == 1 ShowPlayerDialog(playerid, ATM_PMENU_2, DIALOG_STYLE_INPUT, "ATM: >> Bakiye >> Para Çek", "{e74c3c}Hata: {FFFFFF}Hatalı miktar girdiniz.\n{FFFFFF}Çekmek istediğiniz tutarı girin.", "Çek", "Geri"); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PMENU_2, DIALOG_STYLE_INPUT, "ATM: >> Balance >> Withdraw", "{e74c3c}Error: {FFFFFF}You have entered the wrong amount.\n{FFFFFF}Enter the amount you want to withdraw.", "Withdraw", "Back"); #endif return 1; } if(_ba > AtmPlayer[playerid][atm_money]) { #if Language == 1 ShowPlayerDialog(playerid, ATM_PMENU_2, DIALOG_STYLE_INPUT, "ATM: >> Bakiye >> Para Çek", "{e74c3c}Hata: {FFFFFF}ATM bakiyen üstünde giremezsin.\n{FFFFFF}Çekmek istediğiniz tutarı girin.", "Çek", "Geri"); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PMENU_2, DIALOG_STYLE_INPUT, "ATM: >> Balance >> Withdraw", "{e74c3c}Error: {FFFFFF}The ATM balance is insufficient.\n{FFFFFF}Enter the amount you want to withdraw.", "Withdraw", "Back"); #endif return 1; } GivePlayerMoney(playerid, _ba); AtmPlayer[playerid][atm_money] -= _ba; mysql_format(n_SQL, str, sizeof(str), "UPDATE `atmplayer` SET `money` = '%d' WHERE `name` = '%e' LIMIT 1", AtmPlayer[playerid][atm_money], getName(playerid)); mysql_query(n_SQL, str); #if Language == 1 format(str, sizeof(str), "{61C2FF}ATM: {FFFFFF}Hesabınızdan $%s dolar çektiniz.", convertNumber(_ba)); SendLanguageMessage(playerid, str, "-"); #elseif Language == 2 format(str, sizeof(str), "{61C2FF}ATM: {FFFFFF}You took $%s in your account.", convertNumber(_ba)); SendLanguageMessage(playerid, "-", str); #endif ShowPAccount(playerid); } } case ATM_PMENU_3: { if(!response) { #if Language == 1 ShowPlayerDialog(playerid, ATM_PMENU_1, DIALOG_STYLE_LIST, "ATM: >> Bakiye", "{3498db}» {FFFFFF}Para Çek\n{3498db}» {FFFFFF}Para Yatır", "Seç", "Geri"); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PMENU_1, DIALOG_STYLE_LIST, "ATM: >> Balance", "{3498db}» {FFFFFF}Withdraw\n{3498db}» {FFFFFF}Deposit", "Select", "Back"); #endif } if(response) { new str[70 + 11 + 24]; if(!strlen(inputtext)) { #if Language == 1 ShowPlayerDialog(playerid, ATM_PMENU_3, DIALOG_STYLE_INPUT, "ATM: >> Bakiye >> Para Yatır", "{e74c3c}Hata: {FFFFFF}Ekranı boş bırakmayın.\n{FFFFFF}Yatırmak istediğiniz tutarı girin.", "Yatır", "Geri"); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PMENU_3, DIALOG_STYLE_INPUT, "ATM: >> Balance >> Deposit", "{e74c3c}Error: {FFFFFF}Do not leave the screen blank.\n{FFFFFF}Enter the amount you wish to deposit.", "Deposit", "Back"); #endif return 1; } new _ba = strval(inputtext); if(_ba <= 0) { #if Language == 1 ShowPlayerDialog(playerid, ATM_PMENU_2, DIALOG_STYLE_INPUT, "ATM: >> Bakiye >> Para Yatır", "{e74c3c}Hata: {FFFFFF}Hatalı miktar girdiniz.\n{FFFFFF}Yatırmak istediğiniz tutarı girin.", "Yatır", "Geri"); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PMENU_2, DIALOG_STYLE_INPUT, "ATM: >> Balance >> Deposit", "{e74c3c}Error: {FFFFFF}You have entered the wrong amount.\n{FFFFFF}Enter the amount you wish to deposit.", "Deposit", "Back"); #endif return 1; } if(_ba > GetPlayerMoney(playerid)) { #if Language == 1 ShowPlayerDialog(playerid, ATM_PMENU_2, DIALOG_STYLE_INPUT, "ATM: >> Bakiye >> Para Yatır", "{e74c3c}Hata: {FFFFFF}ATM bakiyen üstünde giremezsin.\n{FFFFFF}Yatırmak istediğiniz tutarı girin.", "Yatır", "Geri"); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PMENU_2, DIALOG_STYLE_INPUT, "ATM: >> Balance >> Deposit", "{e74c3c}Error: {FFFFFF}The ATM balance is insufficient.\n{FFFFFF}Enter the amount you wish to deposit.", "Deposit", "Back"); #endif return 1; } GivePlayerMoney(playerid, -_ba); AtmPlayer[playerid][atm_money] += _ba; mysql_format(n_SQL, str, sizeof(str), "UPDATE `atmplayer` SET `money` = '%d' WHERE `name` = '%e' LIMIT 1", AtmPlayer[playerid][atm_money], getName(playerid)); mysql_query(n_SQL, str); #if Language == 1 format(str, sizeof(str), "{61C2FF}ATM: {FFFFFF}Hesabınıza $%s dolar yatırdınız.", convertNumber(_ba)); SendLanguageMessage(playerid, str, "-"); #elseif Language == 2 format(str, sizeof(str), "{61C2FF}ATM: {FFFFFF}You deposited $%s in your account.", convertNumber(_ba)); SendLanguageMessage(playerid, "-", str); #endif ShowPAccount(playerid); } } case ATM_PMENU_4: { if(!response){ SetPVarInt(playerid, "ATM_USER_ID", -1), ShowPAccount(playerid); } if(response) { new query[60 + 24], Cache: Verii; if(!strlen(inputtext)) { #if Language == 1 ShowPlayerDialog(playerid, ATM_PMENU_4, DIALOG_STYLE_INPUT, "ATM: >> Havale", "{FFFFFF}Havale yapacağınız kişinin {9b59b6}ismini {FFFFFF}girin.", "Devam", "Geri"); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PMENU_4, DIALOG_STYLE_INPUT, "ATM: >> Transfer", "{FFFFFF}Enter the {9b59b6}user name {FFFFFF}to deposit money.", "Continue", "Back"); #endif return 1; } if(strlen(inputtext) > 24) { #if Language == 1 ShowPlayerDialog(playerid, ATM_PMENU_4, DIALOG_STYLE_INPUT, "ATM: >> Havale", "{FFFFFF}Havale yapacağınız kişinin {9b59b6}ismini {FFFFFF}girin.", "Devam", "Geri"); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PMENU_4, DIALOG_STYLE_INPUT, "ATM: >> Transfer", "{FFFFFF}Enter the {9b59b6}user name {FFFFFF}to deposit money.", "Continue", "Back"); #endif return 1; } new i2[MAX_PLAYER_NAME]; format(i2, MAX_PLAYER_NAME, getName(playerid)); for(new i = 0; i < strlen(inputtext); i++) { inputtext[i] = tolower(inputtext[i]); } for(new i = 0; i < strlen(i2); i++) { i2[i] = tolower(i2[i]); } if(strcmp(inputtext, i2, false) == 0) { #if Language == 1 ShowPlayerDialog(playerid, ATM_PMENU_4, DIALOG_STYLE_INPUT, "ATM: >> Havale", "{e74c3c}Hata: {FFFFFF}Kendini seçemezsin. !\n{FFFFFF}Havale yapacağınız kişinin {9b59b6}ismini {FFFFFF}girin.", "Devam", "Geri"); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PMENU_4, DIALOG_STYLE_INPUT, "ATM: >> Transfer", "{e74c3c}Error: {FFFFFF}You can not pick yourself.\n{FFFFFF}Enter the {9b59b6}user name {FFFFFF}to deposit money.", "Continue", "Back"); #endif return 1; } mysql_format(n_SQL, query, sizeof(query), "SELECT * FROM `atmplayer` WHERE `name` = '%e' LIMIT 1", inputtext); Verii = mysql_query(n_SQL, query); new rows = cache_num_rows(); if(rows) { new id; cache_get_value_name_int(0, "id", id); SetPVarInt(playerid, "ATM_USER_ID", id); #if Language == 1 ShowPlayerDialog(playerid, ATM_PMENU_5, DIALOG_STYLE_INPUT, "ATM: >> Havale", "{FFFFFF}Tutarı girin.", "Devam", "Geri"); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PMENU_5, DIALOG_STYLE_INPUT, "ATM: >> Transfer", "{FFFFFF}Enter the amount.", "Continue", "Back"); #endif } if(!rows) { #if Language == 1 ShowPlayerDialog(playerid, ATM_PMENU_4, DIALOG_STYLE_INPUT, "ATM: >> Havale", "{e74c3c}Hata: {FFFFFF}Böyle bir kullanıcı yok !\n{FFFFFF}Havale yapacağınız kişinin {9b59b6}ismini {FFFFFF}girin.", "Devam", "Geri"); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PMENU_4, DIALOG_STYLE_INPUT, "ATM: >> Transfer", "{e74c3c}Error: {FFFFFF}There is no such user !\n{FFFFFF}Enter the {9b59b6}user name {FFFFFF}to deposit money.", "Continue", "Back"); #endif } cache_delete(Verii); } } case ATM_PMENU_5: { if(!response) { SetPVarInt(playerid, "ATM_USER_ID", -1); #if Language == 1 ShowPlayerDialog(playerid, ATM_PMENU_4, DIALOG_STYLE_INPUT, "ATM: >> Havale", "{FFFFFF}Havale yapacağınız kişinin {9b59b6}ismini {FFFFFF}girin.", "Devam", "Geri"); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PMENU_4, DIALOG_STYLE_INPUT, "ATM: >> Transfer", "{FFFFFF}Enter the {9b59b6}user name {FFFFFF}to deposit money.", "Continue", "Back"); #endif } if(response) { new _ba = strval(inputtext); if(_ba <= 0) { #if Language == 1 ShowPlayerDialog(playerid, ATM_PMENU_5, DIALOG_STYLE_INPUT, "ATM: >> Transfer", "{FFFFFF}Tutarı girin.", "Yatır", "Geri"); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PMENU_5, DIALOG_STYLE_INPUT, "ATM: >> Transfer ", "{FFFFFF}Enter the amount.", "Deposit", "Back"); #endif return 1; } if(_ba > AtmPlayer[playerid][atm_money]) { #if Language == 1 ShowPlayerDialog(playerid, ATM_PMENU_5, DIALOG_STYLE_INPUT, "ATM: >> Transfer", "{FFFFFF}ATM`de bu kadar para yok !", "Yatır", "Geri"); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PMENU_5, DIALOG_STYLE_INPUT, "ATM: >> Transfer ", "{FFFFFF}Your ATM account does not have that much money!", "Deposit", "Back"); #endif return 1; } AtmPlayer[playerid][atm_money] -= _ba; new Cache: Verii, query[185], atmGetID = GetPVarInt(playerid, "ATM_USER_ID"); mysql_format(n_SQL, query, sizeof(query), "SELECT * FROM `atmplayer` WHERE `id` = '%d' LIMIT 1", atmGetID); Verii = mysql_query(n_SQL, query); new rows = cache_num_rows(); new atm_P_Name[24], __money = 0; if(rows) { cache_get_value_name(0, "name", atm_P_Name); cache_get_value_name_int(0, "money", __money); __money += _ba; new a__pid = GetPlayerID(atm_P_Name); if(a__pid != INVALID_PLAYER_ID) { AtmPlayer[a__pid][atm_money] += _ba; #if Language == 1 format(query, sizeof(query), "{61C2FF}ATM: {FFFFFF}%s size $%s dolar havale yaptı.", getName(playerid), convertNumber(_ba)); SendLanguageMessage(a__pid, query, "-"); #elseif Language == 2 format(query, sizeof(query), "{61C2FF}ATM: {FFFFFF}%s sent you $%s dollars.", getName(playerid), convertNumber(_ba)); SendLanguageMessage(a__pid, "-", query); #endif } mysql_format(n_SQL, query, sizeof(query), "UPDATE `atmplayer` SET `money` = '%d' WHERE `id` = '%d' LIMIT 1", __money, atmGetID); mysql_query(n_SQL, query); mysql_format(n_SQL, query, sizeof(query), "UPDATE `atmplayer` SET `money` = '%d' WHERE `name` = '%e' LIMIT 1", AtmPlayer[playerid][atm_money], getName(playerid)); mysql_query(n_SQL, query); } cache_delete(Verii); SetPVarInt(playerid, "ATM_USER_ID", -1); mysql_format(n_SQL, query, sizeof(query),"INSERT INTO `atmlog`(`sender`, `receiver`, `date`, `total`) VALUES ('%e', '%e', '%d', '%d')", getName(playerid), atm_P_Name, gettime(), _ba); mysql_query(n_SQL, query); #if Language == 1 format(query, sizeof(query), "{61C2FF}ATM: {FFFFFF}%s adlı kullanıcıya $%s dolar havale yaptınız.", atm_P_Name, convertNumber(_ba)); SendLanguageMessage(playerid, query, "-"); #elseif Language == 2 format(query, sizeof(query), "{61C2FF}ATM: {FFFFFF}You made a $%s dollar transfer to %s", convertNumber(_ba), atm_P_Name); SendLanguageMessage(playerid, "-", query); #endif ShowPAccount(playerid); } } case ATM_PMENU_6: { if(!response) { __Page[playerid]--; if(__Page[playerid] < 0) { __Page[playerid] = 0; ShowPAccount(playerid); return 1; } } if(response) { __Page[playerid]++; } new query[165], Cache: _gonderi, patlakYaazi[35]; #if Language == 1 format(patlakYaazi, sizeof(patlakYaazi), "Gönderilen Havaleler (Sayfa: %d)", __Page[playerid] + 1); #elseif Language == 2 format(patlakYaazi, sizeof(patlakYaazi), "Transfers Sent (Page: %d)", __Page[playerid] + 1); #endif mysql_format(n_SQL, query, sizeof(query), "SELECT `sender`, `receiver`, FROM_UNIXTIME(`date`), `total` FROM `atmlog` WHERE `sender` = '%e' ORDER BY `sender` DESC LIMIT %d, 10", getName(playerid), __Page[playerid] * 15); _gonderi = mysql_query(n_SQL, query); new rows = cache_num_rows(); if(rows) { new xx[1024], __gonderen[24], __alici[24], __tarih[20], __miktar; #if Language == 1 format(xx, sizeof(xx), "Gönderen\tAlıcı\tTarih\tMiktar\n"); #elseif Language == 2 format(xx, sizeof(xx), "Sender\tReceiver\tDate\tAmount\n"); #endif for(new i; i < rows; ++i) { cache_get_value_name(i, "sender", __gonderen); cache_get_value_name(i, "receiver", __alici); cache_get_value_name(i, "FROM_UNIXTIME(`date`)", __tarih); cache_get_value_name_int(i, "total", __miktar); format(xx, sizeof(xx), "%s%s\t%s\t%s\t$%s\n", xx, __gonderen, __alici, __tarih, convertNumber(__miktar)); } #if Language == 1 ShowPlayerDialog(playerid, ATM_PMENU_6, DIALOG_STYLE_TABLIST_HEADERS, patlakYaazi, xx, "İleri", "Geri"); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PMENU_6, DIALOG_STYLE_TABLIST_HEADERS, patlakYaazi, xx, "Continue", "Previous"); #endif } if(!rows) { __Page[playerid] = 0; SendLanguageMessage(playerid, "{61C2FF}ATM: {FFFFFF}Son sayfaya ulaştınız.", "{61C2FF}ATM: {FFFFFF}You have reached the last page."); ShowPAccount(playerid); } cache_delete(_gonderi); } case ATM_PMENU_7: { if(!response) { __Page[playerid]--; if(__Page[playerid] < 0) { __Page[playerid] = 0; ShowPAccount(playerid); return 1; } } if(response) { __Page[playerid]++; } new query[165], Cache: _gonderi, patlakYaazi[35]; #if Language == 1 format(patlakYaazi, sizeof(patlakYaazi), "Gelen Havaleler (Sayfa: %d)", __Page[playerid] + 1); #elseif Language == 2 format(patlakYaazi, sizeof(patlakYaazi), "Incoming Transfer (Page: %d)", __Page[playerid] + 1); #endif mysql_format(n_SQL, query, sizeof(query), "SELECT `receiver`, `sender`, FROM_UNIXTIME(`date`), `total` FROM `atmlog` WHERE `receiver` = '%e' ORDER BY `receiver` DESC LIMIT %d, 10", getName(playerid), __Page[playerid] * 15); _gonderi = mysql_query(n_SQL, query); new rows = cache_num_rows(); if(rows) { new xx[1024], __gonderen[24], __alici[24], __tarih[20], __miktar; #if Language == 1 format(xx, sizeof(xx), "Alıcı\tGönderen\tTarih\tMiktar\n"); #elseif Language == 2 format(xx, sizeof(xx), "Receiver\tSender\tDate\tAmount\n"); #endif for(new i; i < rows; ++i) { cache_get_value_name(i, "sender", __gonderen); cache_get_value_name(i, "receiver", __alici); cache_get_value_name(i, "FROM_UNIXTIME(`date`)", __tarih); cache_get_value_name_int(i, "total", __miktar); format(xx, sizeof(xx), "%s%s\t%s\t%s\t$%s\n", xx, __alici, __gonderen, __tarih, convertNumber(__miktar)); } #if Language == 1 ShowPlayerDialog(playerid, ATM_PMENU_7, DIALOG_STYLE_TABLIST_HEADERS, patlakYaazi, xx, "İleri", "Geri"); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PMENU_7, DIALOG_STYLE_TABLIST_HEADERS, patlakYaazi, xx, "Continue", "Previous"); #endif } if(!rows) { __Page[playerid] = 0; SendLanguageMessage(playerid, "{61C2FF}ATM: {FFFFFF}Son sayfaya ulaştınız.", "{61C2FF}ATM: {FFFFFF}You have reached the last page."); ShowPAccount(playerid); } cache_delete(_gonderi); } case ATM_PMENU_8: { if(!response) { ShowPAccount(playerid); } if(response) { new query[75]; AtmPlayer[playerid][account_e] = false; AtmPlayer[playerid][atm_money] = 0; AtmPlayer[playerid][atm_password] = 0; mysql_format(n_SQL, query, sizeof(query), "DELETE FROM `atmplayer` WHERE `name` = '%e'", getName(playerid)); mysql_tquery(n_SQL, query); mysql_format(n_SQL, query, sizeof(query), "DELETE FROM `atmlog` WHERE `sender` = '%e'", getName(playerid)); mysql_tquery(n_SQL, query); mysql_format(n_SQL, query, sizeof(query), "DELETE FROM `atmlog` WHERE `receiver` = '%e'", getName(playerid)); mysql_tquery(n_SQL, query); SendLanguageMessage(playerid, "{61C2FF}ATM: {FFFFFF}Hesabınız silindi.", "{61C2FF}ATM: {FFFFFF}Your account has been deleted."); } } case ATM_PMENU_9: { if(response) { if(!strlen(inputtext)) return loginAccount(playerid); new _sifre = strval(inputtext); if(_sifre == AtmPlayer[playerid][atm_password]) { ShowPAccount(playerid); } else { #if Language == 1 ShowPlayerDialog(playerid, ATM_PMENU_9, DIALOG_STYLE_PASSWORD, "ATM: Hesap Girişi", "{e74c3c}Hata: {FFFFFF}Hatalı şifre girdiniz.\n{FFFFFF}Hesabınıza erişmek için lütfen şifrenizi girin.", "Giriş", "Kapat"); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PMENU_9, DIALOG_STYLE_PASSWORD, "ATM: Login Account", "{e74c3c}Error: {FFFFFF}You entered an incorrect password.\n{FFFFFF}Please enter your password to access your account.", "Login", "Exit"); #endif } } } } return 1; } // Komutlar - Commands CMD:atmolustur(playerid) return cmd_createatm(playerid); CMD:createatm(playerid) { if(!IsPlayerAdmin(playerid)) return SendLanguageMessage(playerid, "{FC1E52}ATM: {FFFFFF}Bu komutu kullanmak için Rcon Admin olmalısınız.", "{FC1E52}ATM: {FFFFFF}The Rcon Admin can use this command."); new id = Iter_Free(Atmler), str[65]; if(id == -1) return SendLanguageMessage(playerid, "{FC1E52}ATM: {FFFFFF}Daha fazla atm eklemek için limiti yükseltin.", "Raise the limit to add more ATMs."); new Float: tmp_Pos[3], obj; GetPlayerPos(playerid, tmp_Pos[0], tmp_Pos[1], tmp_Pos[2]); GetXYInFrontOfPlayer(playerid, tmp_Pos[0], tmp_Pos[1], 3.0); obj = CreateDynamicObject(ATM_OBJECT, tmp_Pos[0], tmp_Pos[1], tmp_Pos[2], 0.0, 0.0, 0.0, -1, -1); EditDynamicObject(playerid, obj); ATMEdit[playerid] = true; #if Language == 1 format(str, sizeof(str), "{61C2FF}ATM: {FFFFFF}Şuanda %d idli atm`yi düzenliyorsunuz.", id); SendLanguageMessage(playerid, str, "-"); #elseif Language == 2 format(str, sizeof(str), "{61C2FF}ATM: {FFFFFF}You're having ATM. ID: %d", id); SendLanguageMessage(playerid, "-", str); #endif return 1; } CMD:atmsil(playerid, params[]) return cmd_deleteatm(playerid, params); CMD:deleteatm(playerid, params[]) { if(!IsPlayerAdmin(playerid)) return SendLanguageMessage(playerid, "{FC1E52}ATM: {FFFFFF}Bu komutu kullanmak için Rcon Admin olmalısınız.", "{FC1E52}ATM: {FFFFFF}The Rcon Admin can use this command."); new id, query[55]; if(sscanf(params, "d", id)) return SendLanguageMessage(playerid, "{2ECC71}ATM: {FFFFFF}/AtmSil [ID]", "{2ECC71}ATM: {FFFFFF}/DeleteAtm [ID]"); if(!Iter_Contains(Atmler, id)) return SendLanguageMessage(playerid, "{FC1E52}ATM: {FFFFFF}Bu ID`de atm oluşturulmamış.", "{FC1E52}ATM: {FFFFFF}This ID is not created in ATM."); ATMIslem[id][atmPos][0] = 0.0; ATMIslem[id][atmPos][1] = 0.0; ATMIslem[id][atmPos][2] = 0.0; ATMIslem[id][atmPos][3] = 0.0; ATMIslem[id][atmPos][4] = 0.0; ATMIslem[id][atmPos][5] = 0.0; DestroyDynamicObject(ATMIslem[id][atm_Obj]); DestroyDynamicCP(ATMIslem[id][atm_Cp]); DestroyDynamic3DTextLabel(ATMIslem[id][atm_Label]); DestroyDynamicMapIcon(ATMIslem[id][atm_icon]); ATMIslem[id][atm_Label] = Text3D: INVALID_3DTEXT_ID; Iter_Remove(Atmler, id); mysql_format(n_SQL, query, sizeof(query), "DELETE FROM `atmler` WHERE `atmid` = '%d' LIMIT 1", id); mysql_query(n_SQL, query); SendLanguageMessage(playerid, "{2ECC71}ATM: {FFFFFF}ATM silindi.", "{2ECC71}ATM: {FFFFFF}ATM removed."); return 1; } CMD:atmduzenle(playerid, params[]) return cmd_editatm(playerid, params); CMD:editatm(playerid, params[]) { if(!IsPlayerAdmin(playerid)) return SendLanguageMessage(playerid, "{FC1E52}ATM: {FFFFFF}Bu komutu kullanmak için Rcon Admin olmalısınız.", "{FC1E52}ATM: {FFFFFF}The Rcon Admin can use this command."); new id, Float: tmp_atmpos[6]; if(sscanf(params, "d", id)) return SendLanguageMessage(playerid, "{2ECC71}ATM: {FFFFFF}/AtmDuzenle [ID]", "{2ECC71}ATM: {FFFFFF}/EditAtm [ID]"); if(!Iter_Contains(Atmler, id)) return SendLanguageMessage(playerid, "{FC1E52}ATM: {FFFFFF}Bu ID`de atm oluşturulmamış.", "{FC1E52}ATM: {FFFFFF}This ID is not created in ATM."); ATMEdit2[playerid] = true; SetPVarInt(playerid, "edit_atmm", ATMIslem[id][atm_Obj]); SetPVarInt(playerid, "edit_atmm2", id); GetDynamicObjectPos(ATMIslem[id][atm_Obj], tmp_atmpos[0], tmp_atmpos[1], tmp_atmpos[2]); GetDynamicObjectRot(ATMIslem[id][atm_Obj], tmp_atmpos[3], tmp_atmpos[4], tmp_atmpos[5]); SetPVarFloat(playerid, "tmp_aPosX", tmp_atmpos[0]); SetPVarFloat(playerid, "tmp_aPosY", tmp_atmpos[1]); SetPVarFloat(playerid, "tmp_aPosZ", tmp_atmpos[2]); SetPVarFloat(playerid, "tmp_aPosRX", tmp_atmpos[3]); SetPVarFloat(playerid, "tmp_aPosRY", tmp_atmpos[4]); SetPVarFloat(playerid, "tmp_aPosRZ", tmp_atmpos[5]); EditDynamicObject(playerid, ATMIslem[id][atm_Obj]); SendLanguageMessage(playerid, "{2ECC71}ATM: {FFFFFF}Bir ATM düzenliyorsunuz.", "{2ECC71}ATM: {FFFFFF}You are organizing an ATM."); return 1; } public OnPlayerEnterDynamicCP(playerid, checkpointid) { foreach(new i: Atmler) { if(checkpointid == ATMIslem[i][atm_Cp]) { if(AtmPlayer[playerid][account_e]) { loginAccount(playerid); } else { CreatePAccount(playerid); } break; } } return 1; } public OnPlayerEditDynamicObject(playerid, objectid, response, Float: x, Float: y, Float: z, Float: rx, Float: ry, Float: rz) { if(ATMEdit[playerid]) { switch(response) { case EDIT_RESPONSE_CANCEL: { DestroyDynamicObject(objectid); ATMEdit[playerid] = false; SendLanguageMessage(playerid, "{FC1E52}ATM: {FFFFFF}Düzenlemeyi iptal ettiniz.", "{FC1E52}ATM: {FFFFFF}You canceled editing."); } case EDIT_RESPONSE_FINAL: { new id = Iter_Free(Atmler), Float: tmp_pos[6], str[165]; tmp_pos[0] = x; tmp_pos[1] = y; tmp_pos[2] = z; tmp_pos[3] = rx; tmp_pos[4] = ry; tmp_pos[5] = rz; DestroyDynamicObject(objectid); ATMIslem[id][atmPos][0] = tmp_pos[0]; ATMIslem[id][atmPos][1] = tmp_pos[1]; ATMIslem[id][atmPos][2] = tmp_pos[2]; ATMIslem[id][atmPos][3] = tmp_pos[3]; ATMIslem[id][atmPos][4] = tmp_pos[4]; ATMIslem[id][atmPos][5] = tmp_pos[5]; ATMIslem[id][atm_Obj] = CreateDynamicObject(ATM_OBJECT, tmp_pos[0], tmp_pos[1], tmp_pos[2], tmp_pos[3], tmp_pos[4], tmp_pos[5], -1, -1); ATMEdit[playerid] = false; Iter_Add(Atmler, id); mysql_format(n_SQL, str, sizeof(str),"INSERT INTO `atmler`(`atmid`, `aX`, `aY`, `aZ`, `aRX`, `aRY`, `aRZ`) VALUES ('%d', '%f', '%f', '%f', '%f', '%f', '%f')", id, tmp_pos[0], tmp_pos[1], tmp_pos[2], tmp_pos[3], tmp_pos[4], tmp_pos[5]); mysql_query(n_SQL, str); #if Language == 1 format(str, sizeof(str), "{61C2FF}ATM: {FFFFFF}Şuanda %d idli atm`yi kayıt ettiniz.", id); SendLanguageMessage(playerid, str, "-"); #elseif Language == 2 format(str, sizeof(str), "{61C2FF}ATM: {FFFFFF}ATM were recorded. ID: %d", id); SendLanguageMessage(playerid, "-", str); #endif format(str, sizeof(str), "{3498db}ATM ( {FFFFFF}ID: %d {3498db})", id); ATMIslem[id][atm_Label] = CreateDynamic3DTextLabel(str, 0xFFFFFFFF, tmp_pos[0], tmp_pos[1], tmp_pos[2] + 1.5, 15.0); ATMIslem[id][atm_Cp] = CreateDynamicCP(tmp_pos[0], tmp_pos[1], tmp_pos[2], 1.5, -1, -1, -1, 3.0); ATMIslem[id][atm_icon] = CreateDynamicMapIcon(tmp_pos[0], tmp_pos[1], tmp_pos[2], 52, -1, -1, -1, -1, 100.0, 1); } } } if(ATMEdit2[playerid]) { switch(response) { case EDIT_RESPONSE_CANCEL: { new id = GetPVarInt(playerid, "edit_atmm"); ATMEdit2[playerid] = false; SendLanguageMessage(playerid, "{FC1E52}ATM: {FFFFFF}Düzenlemeyi iptal ettiniz.", "{FC1E52}ATM: {FFFFFF}You canceled editing."); SetDynamicObjectPos(id, GetPVarFloat(playerid, "tmp_aPosX"), GetPVarFloat(playerid, "tmp_aPosY"), GetPVarFloat(playerid, "tmp_aPosZ")); SetDynamicObjectRot(id, GetPVarFloat(playerid, "tmp_aPosRX"), GetPVarFloat(playerid, "tmp_aPosRY"), GetPVarFloat(playerid, "tmp_aPosRZ")); } case EDIT_RESPONSE_FINAL: { new query[85], id = GetPVarInt(playerid, "edit_atmm"), ix = GetPVarInt(playerid, "edit_atmm2"); ATMIslem[ix][atmPos][0] = 0.0; ATMIslem[ix][atmPos][1] = 0.0; ATMIslem[ix][atmPos][2] = 0.0; ATMIslem[ix][atmPos][3] = 0.0; ATMIslem[ix][atmPos][4] = 0.0; ATMIslem[ix][atmPos][5] = 0.0; DestroyDynamicCP(ATMIslem[ix][atm_Cp]); DestroyDynamic3DTextLabel(ATMIslem[ix][atm_Label]); DestroyDynamicMapIcon(ATMIslem[ix][atm_icon]); ATMIslem[ix][atm_Label] = Text3D: INVALID_3DTEXT_ID; new str[55]; format(str, sizeof(str), "{3498db}ATM ( {FFFFFF}ID: %d {3498db})", ix); ATMIslem[ix][atm_Label] = CreateDynamic3DTextLabel(str, 0xFFFFFFFF, x, y, z + 1.5, 15.0); ATMIslem[ix][atm_Cp] = CreateDynamicCP(x, y, z, 1.5, -1, -1, -1, 3.0); ATMIslem[ix][atm_icon] = CreateDynamicMapIcon(x, y, z, 52, -1, -1, -1, -1, 100.0, 1); mysql_format(n_SQL, query, sizeof(query), "UPDATE `atmler` SET `aX` = '%f' WHERE `atmid` = '%d' LIMIT 1", x, ix); mysql_query(n_SQL, query); mysql_format(n_SQL, query, sizeof(query), "UPDATE `atmler` SET `aY` = '%f' WHERE `atmid` = '%d' LIMIT 1", y, ix); mysql_query(n_SQL, query); mysql_format(n_SQL, query, sizeof(query), "UPDATE `atmler` SET `aZ` = '%f' WHERE `atmid` = '%d' LIMIT 1", z, ix); mysql_query(n_SQL, query); mysql_format(n_SQL, query, sizeof(query), "UPDATE `atmler` SET `aRX` = '%f' WHERE `atmid` = '%d' LIMIT 1", rx, ix); mysql_query(n_SQL, query); mysql_format(n_SQL, query, sizeof(query), "UPDATE `atmler` SET `aRY` = '%f' WHERE `atmid` = '%d' LIMIT 1", ry, ix); mysql_query(n_SQL, query); mysql_format(n_SQL, query, sizeof(query), "UPDATE `atmler` SET `aRZ` = '%f' WHERE `atmid` = '%d' LIMIT 1", rz, ix); mysql_query(n_SQL, query); SetDynamicObjectPos(id, x, y, z); SetDynamicObjectRot(id, rx, ry, rz); SetPVarInt(playerid, "edit_atmm", -1); SetPVarInt(playerid, "edit_atmm2", -1); ATMEdit2[playerid] = false; SendLanguageMessage(playerid, "{61C2FF}ATM: {FFFFFF}Düzenleme işlemi tamamlandı.", "{61C2FF}ATM: {FFFFFF}Editing is complete."); } } } return 1; } forward Atm_PLoad(playerid, n_Name[]); public Atm_PLoad(playerid, n_Name[]) { new rows; cache_get_row_count(rows); if(rows) { AtmPlayer[playerid][account_e] = true; cache_get_value_int(0, "money", AtmPlayer[playerid][atm_money]); cache_get_value_int(0, "password", AtmPlayer[playerid][atm_password]); } return 1; } forward AtmLoad(); public AtmLoad() { new rows; cache_get_row_count(rows); if(rows) { new id, i = 0, str[55]; while(i < rows) { cache_get_value_name_int(i, "atmid", id); cache_get_value_name_float(i, "aX", ATMIslem[id][atmPos][0]); cache_get_value_name_float(i, "aY", ATMIslem[id][atmPos][1]); cache_get_value_name_float(i, "aZ", ATMIslem[id][atmPos][2]); cache_get_value_name_float(i, "aRX", ATMIslem[id][atmPos][3]); cache_get_value_name_float(i, "aRY", ATMIslem[id][atmPos][4]); cache_get_value_name_float(i, "aRZ", ATMIslem[id][atmPos][5]); ATMIslem[id][atm_Obj] = CreateDynamicObject(ATM_OBJECT, ATMIslem[id][atmPos][0], ATMIslem[id][atmPos][1], ATMIslem[id][atmPos][2], ATMIslem[id][atmPos][3], ATMIslem[id][atmPos][4], ATMIslem[id][atmPos][5]); ATMIslem[id][atm_Cp] = CreateDynamicCP(ATMIslem[id][atmPos][0], ATMIslem[id][atmPos][1], ATMIslem[id][atmPos][2], 1.5, -1, -1, -1, 3.0); format(str, sizeof(str), "{3498db}ATM ( {FFFFFF}ID: %d {3498db})", id); ATMIslem[id][atm_Label] = CreateDynamic3DTextLabel(str, 0xFFFFFFF, ATMIslem[id][atmPos][0], ATMIslem[id][atmPos][1], ATMIslem[id][atmPos][2] + 1.5, 15.0); ATMIslem[id][atm_icon] = CreateDynamicMapIcon(ATMIslem[id][atmPos][0], ATMIslem[id][atmPos][1], ATMIslem[id][atmPos][2], 52, -1, -1, -1, -1, 100.0, 1); Iter_Add(Atmler, id); i++; } #if Language == 1 printf("\n[ATM] --> Toplam ATM: %d", i); #elseif Language == 2 printf("\n[ATM] --> Total ATM: %d", i); #endif } else { #if Language == 1 printf("\n[ATM] --> ATM oluşturulmamış."); #elseif Language == 2 printf("\n[ATM] --> ATM not created."); #endif } return 1; } stock GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance) { new Float: a; GetPlayerPos(playerid, x, y, a); GetPlayerFacingAngle(playerid, a); if (GetPlayerVehicleID(playerid)) GetVehicleZAngle(GetPlayerVehicleID(playerid), a); x += (distance * floatsin(-a, degrees)); y += (distance * floatcos(-a, degrees)); } stock SendLanguageMessage(playerid, _tr[], _en[], _lng = Language) { switch(_lng) { case 1: return SendClientMessage(playerid, -1, _tr); case 2: return SendClientMessage(playerid, -1, _en); default: return SendClientMessage(playerid, -1, "Bilinmeyen Dil - Unknown Language"); } return 1; } stock loginAccount(playerid) { #if Language == 1 ShowPlayerDialog(playerid, ATM_PMENU_9, DIALOG_STYLE_PASSWORD, "ATM: Hesap Girişi", "{FFFFFF}Hesabınıza erişmek için lütfen şifrenizi girin.", "Giriş", "Kapat"); #elseif Language == 2 ShowPlayerDialog(playerid, ATM_PMENU_9, DIALOG_STYLE_PASSWORD, "ATM: Login Account", "{FFFFFF}Please enter your password to access your account.", "Login", "Exit"); #endif return 1; } stock CreatePAccount(playerid) { new str[120 + 24]; #if Language == 1 format(str, sizeof(str), "{FFFFFF}Merhaba {3498DB}%s(%d){FFFFFF}, bir atm hesabınız bulunmuyor.\n{FFFFFF}Hesap açmak ister misiniz ?", getName(playerid), playerid); ShowPlayerDialog(playerid, ATM_PCreate, DIALOG_STYLE_MSGBOX, "ATM: Hesap Oluşturun", str, "Evet", "Hayır"); #elseif Language == 2 format(str, sizeof(str), "{FFFFFF}Hello {3498DB}%s(%d){FFFFFF}, you do not have an account ATM.\n{FFFFFF}Would you like to open an account ?", getName(playerid), playerid); ShowPlayerDialog(playerid, ATM_PCreate, DIALOG_STYLE_MSGBOX, "ATM: Account Creation", str, "Yes", "No"); #endif return 1; } stock ShowPAccount(playerid) { new sz[250]; #if Language == 1 format(sz, sizeof(sz), "{CD6B97}#\t{CD6B97}Sonuç\n"); format(sz, sizeof(sz), "%s{3498db}» {FFFFFF}Bakiye:\t$%s\n", sz, convertNumber(AtmPlayer[playerid][atm_money])); format(sz, sizeof(sz), "%s{3498db}» {FFFFFF}Şifre:\t%d\n", sz, AtmPlayer[playerid][atm_password]); format(sz, sizeof(sz), "%s{3498db}» {FFFFFF}Havale Yap\t-\n", sz); format(sz, sizeof(sz), "%s{3498db}» {FFFFFF}Gönderilen Havale\t-\n", sz); format(sz, sizeof(sz), "%s{3498db}» {FFFFFF}Gelen Havale\t-\n", sz); format(sz, sizeof(sz), "%s{3498db}» {FFFFFF}Bu Hesabı Sil\t-\n", sz); ShowPlayerDialog(playerid, ATM_PMENU, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}ATM : Menu", sz, "Seç", "Kapat"); #elseif Language == 2 format(sz, sizeof(sz), "{CD6B97}#\t{CD6B97}Result\n"); format(sz, sizeof(sz), "%s{3498db}» {FFFFFF}Balance:\t$%s\n", sz, convertNumber(AtmPlayer[playerid][atm_money])); format(sz, sizeof(sz), "%s{3498db}» {FFFFFF}Password:\t%d\n", sz, AtmPlayer[playerid][atm_password]); format(sz, sizeof(sz), "%s{3498db}» {FFFFFF}Money Transfer\t-\n", sz); format(sz, sizeof(sz), "%s{3498db}» {FFFFFF}Money Sent\t-\n", sz); format(sz, sizeof(sz), "%s{3498db}» {FFFFFF}Incoming Money\t-\n", sz); format(sz, sizeof(sz), "%s{3498db}» {FFFFFF}Delete This Account\t-\n", sz); ShowPlayerDialog(playerid, ATM_PMENU, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}ATM : Menu", sz, "Ok", "Exit"); #endif return 1; } stock convertNumber(value) { new string[24]; format(string, sizeof(string), "%d", value); for(new i = (strlen(string) - 3); i > (value < 0 ? 1 : 0) ; i -= 3) { strins(string[i], ",", 0); } return string; } stock getName(playerid) { new n_isim[24]; GetPlayerName(playerid, n_isim, sizeof(n_isim)); return n_isim; } GetPlayerID(player[]) { new playerid = -1, playername[MAX_PLAYER_NAME+1], numeric = 1; if(IsPlayerConnected(strval(player))) { for (new i = 0, j = strlen(player); i < j; i++) { if (player[i] > '9' || player[i] < '0') { numeric = 0; } } if(numeric == 1) { GetPlayerName(strval(player), playername, sizeof(playername)); playerid = strval(player); } else { for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++) { if(IsPlayerConnected(i)) { GetPlayerName(i, playername, sizeof(playername)); if(!strcmp(player, playername, true)) { playerid = i; break; } } } } } if(playerid >= 0) { return playerid; } else { return INVALID_PLAYER_ID; } }