#include #include #include #include #include native set_user_zloto(id, ile); native get_user_zloto(id); new g_vault; new ilosc[33]; new g_iPlayerCoins[33]; new bool:g_bZalogowany[33]; new g_PlayerName[33][33] new g_szPodaneHaslo[33]; new bool:g_bIstnieje[33]; new g_iZapisaneOrdery[33]; new gracz_id[33]; new player_id; new ilosc2[33]; new name[33]; new g_msg_screenfade; public plugin_init() { register_plugin("Bank na ordery", "1.0", "Buli edit AstralaS"); register_clcmd("say /bank", "Bank"); register_clcmd("say /login", "Bank"); register_clcmd("say /daj", "przelew") register_clcmd("say /przelew", "przelew") register_clcmd("say /zaloguj", "Bank"); register_clcmd("say /wyloguj", "Wyloguj"); register_clcmd("HasloLogowania", "PodajHaslo"); register_clcmd("HasloRejestracji", "ZarejestrujHaslo"); register_clcmd("ile_wplacic", "Wplata"); register_clcmd("ile_wyplacic", "Wyplata"); register_clcmd("ile_przelac","pobierz"); g_vault = nvault_open("Bank"); g_msg_screenfade = get_user_msgid("ScreenFade"); } public plugin_natives() { register_native("bb_get_bank_orders", "PobierzOrderyZBanku", 1); register_native("bb_set_bank_orders", "DodajOrderyDoBanku", 1); register_native("bb_bank_loggedin", "ZwrocStatusGracza", 1); register_native("get_show_menu_Bank", "native_get_show_menu_Bank", 1); } public plugin_end() { nvault_close(g_vault); } public client_authorized(id) { get_user_name(id, g_PlayerName[id], 32); WczytajBank(id); } public client_connect(id) { g_iPlayerCoins[id] = 0; g_iZapisaneOrdery[id] = 0; g_bIstnieje[id] = false; g_bZalogowany[id] = false; set_task(1.5, "Sprawdz", id,_,_,"b"); set_task(0.1, "Sprawdz1", id,_,_,"b"); } public client_disconnect(id) { ZapiszBank(id); g_iPlayerCoins[id] = 0; g_iZapisaneOrdery[id] = 0; g_bIstnieje[id] = false; g_bZalogowany[id] = false; } public Sprawdz(id){ if( !is_user_connected(id) || is_user_hltv(id) || has_flag(id,"a")) { return PLUGIN_HANDLED; } if( !g_bZalogowany[id] ){ set_dhudmessage(255, 0,0, -1.0, 0.27, 0, 0.01, 1.4, 0.2, 0.2) show_dhudmessage(id, "ZALOGUJ SIE DO BANKU^n/bank lub /konto") /*if(is_user_alive(id)) ColorChat(id, GREEN, ">>>^x01 Zaloguj sie do banku, jesli nie posiadasz to zaloz konto bankowe^x03 /bank^x04 <<<"); else return PLUGIN_HANDLED*/ }else{ return PLUGIN_HANDLED; } return PLUGIN_HANDLED; } public Sprawdz1(id){ if( !is_user_connected(id) || has_flag(id,"a") || is_user_hltv(id) ) { return PLUGIN_HANDLED; } if( !g_bZalogowany[id] ){ Display_Fade(id,1<<11,1<<11 ,1<<25,0,0,0,255); Bank(id); }else{ return PLUGIN_HANDLED; } return PLUGIN_HANDLED; } public Bank(id) { if( !is_user_connected(id) ) { return PLUGIN_CONTINUE; } new szTitle[80]; formatex(szTitle, charsmax(szTitle), "\r[BaseBuilder]^n\yTwoj Bank:\d", g_PlayerName[id]); new menu = menu_create(szTitle, "Bank_Handler"); if( !g_bZalogowany[id] ) { menu_additem(menu, "Zaloguj sie"); } else { menu_additem(menu, "Przejdz do strefy banku"); } new key[128], data2[256]; format(key, charsmax(key), "%s", g_PlayerName[id]); if(nvault_get(g_vault, key, data2, 255)) { if( !g_bZalogowany[id] ) { g_bIstnieje[id] = true; //menu_addblank(menu, 2); //menu_additem(menu, "\dPodany nick jest juz zarejestrowany", "", -1); } } else { if( !g_bZalogowany[id] ) { g_bIstnieje[id] = false; //menu_addblank(menu, 2); menu_additem(menu, "Zaloz konto bankowe"); } } menu_display(id, menu); return PLUGIN_CONTINUE; } public Bank_Handler(id, menu, item) { if( !is_user_connected(id) ) { return PLUGIN_CONTINUE; } if( item == MENU_EXIT ) { return PLUGIN_CONTINUE; } switch(item) { case 0: { if( !g_bZalogowany[id] ) { console_cmd(id, "messagemode HasloLogowania"); } else { BankZalogowany(id) } } case 1: { if( !g_bZalogowany[id] ) { if(!g_bIstnieje[id]) { console_cmd(id, "messagemode HasloRejestracji"); } else { Bank(id); } } else { client_cmd(id, "say /wyloguj") } } } return PLUGIN_CONTINUE; } public ZarejestrujHaslo(id) { if( !is_user_connected(id) ) { return PLUGIN_CONTINUE; } new key[128], data[256], data2[256]; format(key, charsmax(key), "%s", g_PlayerName[id]); if(nvault_get(g_vault, key, data2, 255)) { ColorChat(id, GREEN, ">>>^x01^x01 Podany nick jest juz zarejestrowany w bazie danych^x04 <<<"); return PLUGIN_CONTINUE; } new text[192] read_argv(1, text, 191) format(g_szPodaneHaslo[id], charsmax(g_szPodaneHaslo), "%s", text); g_iZapisaneOrdery[id] = 0; formatex(data, charsmax(data), "%s %d", g_szPodaneHaslo[id], g_iZapisaneOrdery[id]); nvault_set(g_vault, key, data); ColorChat(id, GREEN, ">>>^x01^x01 Zostales pomyslnie zarejestrowany^x04 <<<"); g_bZalogowany[id] = true; Bank(id); return PLUGIN_CONTINUE; } public PodajHaslo(id) { if( !is_user_connected(id) ) { return PLUGIN_CONTINUE; } new text[192] read_argv(1, text, 191) format(g_szPodaneHaslo[id], charsmax(g_szPodaneHaslo), "%s", text); new key[128], data[256], data2[256]; format(key, charsmax(key), "%s", g_PlayerName[id]); if(!nvault_get(g_vault, key, data2, 255)) { ColorChat(id, GREEN, ">>>^x01^x01 Konto o tym nicku nie jest zarejestrowane^x04 <<<"); return PLUGIN_CONTINUE; } nvault_get(g_vault, key, data, 255); new szData[2][32]; parse(data, szData[0], 31, szData[1], 31); g_iZapisaneOrdery[id] = str_to_num(szData[1]); if(equali(szData[0], g_szPodaneHaslo[id])) { g_bZalogowany[id] = true; BankZalogowany(id); return PLUGIN_CONTINUE; } else { ColorChat(id, GREEN, ">>>^x01^x01 Podales bledne haslo^x04 <<<"); Bank(id); return PLUGIN_CONTINUE; } return PLUGIN_CONTINUE; } public BankZalogowany(id) { if( !is_user_connected(id) ) { return PLUGIN_CONTINUE; } new szTitle[128]; formatex(szTitle, charsmax(szTitle), "\r[BaseBuilder]^n\r[\wGracz:\y %s\r]^n\r[\wMonety w banku -> \y%d\r]", g_PlayerName[id], g_iZapisaneOrdery[id]); new menu = menu_create(szTitle, "BankZalogowany_handler"); menu_additem(menu, "Wplac Monety \d(Dowolna ilosc)"); menu_additem(menu, "Wyplac Monety \d(Dowolna ilosc)"); menu_additem(menu, "Wplac wszystko"); menu_additem(menu, "Wyplac wszystko"); menu_additem(menu, "\rPrzelew Monet dla innego gracza"); menu_display(id, menu); return PLUGIN_CONTINUE; } public BankZalogowany_handler(id, menu, item) { g_iPlayerCoins[id] = get_user_zloto(id); if( !is_user_connected(id) ) { return PLUGIN_CONTINUE; } if(item == MENU_EXIT) { return PLUGIN_CONTINUE; } switch(item) { case 0: { console_cmd(id, "messagemode ile_wplacic"); } case 1: { console_cmd(id, "messagemode ile_wyplacic"); } case 2: { if(g_iPlayerCoins[id] <= 0) { ColorChat(id, GREEN, ">>>^x01^x01 Nie masz zadnych Monet^x04 <<<"); return PLUGIN_CONTINUE; } else { ColorChat(id, GREEN, ">>>^x01^x01 Wplaciles^x03 %d^x01 Monety do banku^x04 <<<", get_user_zloto(id)); g_iZapisaneOrdery[id] = g_iZapisaneOrdery[id] + get_user_zloto(id); set_user_zloto(id, 0); } } case 3: { if(g_iZapisaneOrdery[id] <= 0) { ColorChat(id, GREEN, ">>>^x01^x01 Nie masz Monet w banku^x04 <<<"); return PLUGIN_CONTINUE; } else { ColorChat(id, GREEN, ">>>^x01^x01 Wyplaciles^x03 %d^x01 Monet z banku^x04 <<<", g_iZapisaneOrdery[id]); set_user_zloto(id, g_iPlayerCoins[id] + g_iZapisaneOrdery[id]); g_iZapisaneOrdery[id] = g_iZapisaneOrdery[id] - g_iZapisaneOrdery[id]; } } case 4: { przelew(id); } } return PLUGIN_CONTINUE; } public Wplata(id) { if( !is_user_connected(id) ) { return PLUGIN_CONTINUE; } new text[192] read_argv(1, text, 191) format(ilosc, charsmax(ilosc), "%s", text); g_iPlayerCoins[id] = get_user_zloto(id); if(str_to_num(ilosc) <= 0) { ColorChat(id, GREEN, ">>>^x01^x01 Bledna wartosc^x04 <<<"); return PLUGIN_CONTINUE; } if(str_to_num(ilosc) + g_iZapisaneOrdery[id] <= 0) { ColorChat(id, GREEN, ">>>^x01^x01 Bledna wartosc^x04 <<<"); return PLUGIN_CONTINUE; } if(g_iPlayerCoins[id] - str_to_num(ilosc) < 0) { ColorChat(id, GREEN, ">>>^x01^x01 Nie masz tylu Monet^x04 <<<"); return PLUGIN_CONTINUE; } set_user_zloto(id, g_iPlayerCoins[id] - str_to_num(ilosc)); g_iZapisaneOrdery[id] = g_iZapisaneOrdery[id] + str_to_num(ilosc); if(str_to_num(ilosc) == 1) { ColorChat(id, GREEN, ">>>^x01^x01 Wplaciles^x03 %d^x01 Monet do banku^x04 <<<", str_to_num(ilosc)); } else if(str_to_num(ilosc) == 2 || str_to_num(ilosc) == 3 || str_to_num(ilosc) == 4) { ColorChat(id, GREEN, ">>>^x01^x01 Wplaciles^x03 %d^x01 Monet do banku^x04 <<<", str_to_num(ilosc)); } else { ColorChat(id, GREEN, ">>>^x01^x01 Wplaciles^x03 %d^x01 Monet do banku^x04 <<<", str_to_num(ilosc)); } log_amx("[Funkcja: Wplata()] Gracz %s wplacil %d Monet do banku", g_PlayerName[id], str_to_num(ilosc)); ZapiszBank(id); return PLUGIN_CONTINUE } public Wyplata(id) { if( !is_user_connected(id) ) { return PLUGIN_CONTINUE; } new text[192] read_argv(1, text, 191) format(ilosc, charsmax(ilosc), "%s", text); g_iPlayerCoins[id] = get_user_zloto(id); if(str_to_num(ilosc) <= 0) { ColorChat(id, GREEN, ">>>^x01^x01 Bledna wartosc^x04 <<<"); return PLUGIN_CONTINUE; } if(g_iZapisaneOrdery[id] - str_to_num(ilosc) < 0) { ColorChat(id, GREEN, ">>>^x01^x01 Nie masz tylu Monet w banku^x04 <<<"); return PLUGIN_CONTINUE; } if(g_iPlayerCoins[id] + str_to_num(ilosc) <= 0) { ColorChat(id, GREEN, ">>>^x01^x01 Bledna wartosc^x04 <<<"); return PLUGIN_CONTINUE; } set_user_zloto(id, g_iPlayerCoins[id] + str_to_num(ilosc)); g_iZapisaneOrdery[id] = g_iZapisaneOrdery[id] - str_to_num(ilosc); if(str_to_num(ilosc) == 1) { ColorChat(id, GREEN, ">>>^x01^x01 Wyplaciles^x03 %d^x01 Monet z banku^x04 <<<", str_to_num(ilosc)); } else if(str_to_num(ilosc) == 2 || str_to_num(ilosc) == 3 || str_to_num(ilosc) == 4) { ColorChat(id, GREEN, ">>>^x01^x01 Wyplaciles^x03 %d^x01 Monet z banku^x04 <<<", str_to_num(ilosc)); } else { ColorChat(id, GREEN, ">>>^x01^x01 Wyplaciles^x03 %d^x01 Monet z banku^x04 <<<", str_to_num(ilosc)); } log_amx("[Funkcja: Wyplata()] Gracz %s wyplacil %d Monet z banku", g_PlayerName[id], str_to_num(ilosc)); ZapiszBank(id); return PLUGIN_CONTINUE; } public WczytajBank(id) { new key[128], data2[256]; format(key, charsmax(key), "%s", g_PlayerName[id]); if( !nvault_get(g_vault, key, data2, 255) ) { return PLUGIN_CONTINUE; } new data[256]; nvault_get(g_vault, key, data, 255); new szData[2][33]; parse(data, szData[0], 32, szData[1], 32); g_iZapisaneOrdery[id] = str_to_num(szData[1]); return PLUGIN_CONTINUE; } public ZapiszBank(id) { new key[128], data2[256]; format(key, charsmax(key), "%s", g_PlayerName[id]); if( !nvault_get(g_vault, key, data2, 255) ) { return PLUGIN_CONTINUE; } new data[256], data3[256]; nvault_get(g_vault, key, data, 255); new szData[2][32]; parse(data, szData[0], 31, szData[1], 31); formatex(data3, charsmax(data3), "%s %d", szData[0], g_iZapisaneOrdery[id]); nvault_set(g_vault, key, data3); return PLUGIN_CONTINUE; } public PobierzOrderyZBanku(id) { if(g_bZalogowany[id]) return g_iZapisaneOrdery[id]; return 0; } public DodajOrderyDoBanku(id, wartosc) { if(g_bZalogowany[id]) { g_iZapisaneOrdery[id] += wartosc } } public ZwrocStatusGracza(id) { return g_bZalogowany[id]; } public native_get_show_menu_Bank(id) { Bank(id); } public Wyloguj(id) { if( g_bZalogowany[id] ) { g_bZalogowany[id] = false; ColorChat(id, GREEN, ">>>^x01^x01 Zostales^x03 wylogowany^x01 z banku^x04 <<<"); ZapiszBank(id) return PLUGIN_CONTINUE; } ColorChat(id, GREEN, ">>>^x01^x01 Nie jestes^x03 zalogowany^x01^x04 <<<"); return PLUGIN_CONTINUE; } public przelew(id) { if(!g_bZalogowany[id]){ ColorChat(id,GREEN,"^x04>>>^x01 Nie mozesz przelac pieniedzy, poniewaz nie zalogowales sie do banku ^x04<<<"); ColorChat(id,GREEN,"^x04>>>^x01 Jezeli nie masz konta zaloz je^x04 /bank^x01, dziekujemy ^x04<<<"); return; } new menu = menu_create("\yWybierz gracza:", "Przelew_Gracza_handler"); for(new i=0, n=0; i<=32; i++) { if(!is_user_connected(i)) continue; if(i == id) continue; gracz_id[n++] = i; new nazwa_gracza[64]; get_user_name(i, nazwa_gracza, 63) menu_additem(menu, nazwa_gracza, "0", 0); } menu_display(id, menu); } public Przelew_Gracza_handler(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; } player_id = gracz_id[item]; get_user_name(player_id, name, 32); console_cmd(id, "messagemode ile_przelac"); return PLUGIN_CONTINUE; } public pobierz(id) { new text[192] read_argv(1,text,191) format(ilosc2, charsmax(ilosc2), "%s", text); przelej2(id) } public przelej2(id) { new name2[33]; get_user_name(id, name2, 32); if(g_iZapisaneOrdery[id] >= str_to_num(ilosc2) > 0) { g_iZapisaneOrdery[player_id] += str_to_num(ilosc2) g_iZapisaneOrdery[id] -= str_to_num(ilosc2) ColorChat(id, GREEN, ">>>^x01^x01 Przelales na konto gracza^x03 %s^x01 kwote w wysokosci :^x04 %i^x01 Monet^x04 <<<",name,str_to_num(ilosc2)); ColorChat(player_id, RED, "[Base Builder Bank2]^x01 Gracz^x03 %s^x01 przelal na twoje konto:^x04 %i^x01 Monet^x04 <<<",name2,str_to_num(ilosc2)); ZapiszBank(player_id) } else if(str_to_num(ilosc2) > g_iZapisaneOrdery[id]) { ColorChat(id, GREEN, ">>>^x01^x01 Nie masz tyle Monet^x04 <<<"); } else if(g_iZapisaneOrdery[id] >= str_to_num(ilosc2) <= 0) { ColorChat(id, GREEN, ">>>^x01^x01 Bledna wartosc^x04 <<<"); } } stock Display_Fade(id,duration,holdtime,fadetype,red,green,blue,alpha) { message_begin( MSG_ONE, g_msg_screenfade,{0,0,0},id ); write_short( duration ); // Duration of fadeout write_short( holdtime ); // Hold time of color write_short( fadetype ); // Fade type write_byte ( red ); // Red write_byte ( green ); // Green write_byte ( blue ); // Blue write_byte ( alpha ); // Alpha message_end(); }