#include #include #include #include #include #define PLUGIN "Bank" #define VERSION "2.0" #define AUTHOR "Lukasz 'zielu' Zielinski" new g_vault new PlayerMoney[33], Konto[33], gral[33], wyplacil[33], Iloscs[33], dod[33], Porzyczyl[33], Kwota[999][33] new koszt, maxwplac, maxwypl, maxwyplat, Float:loteria1, maxrand, minrand, maxporzycz, flaga, nakupno public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) koszt = register_cvar("bank_koszt_konta", "160") maxwplac = register_cvar("bank_max", "100000") maxwypl = register_cvar("bank_max_wyplac", "200") maxwyplat = register_cvar("bank_wyplat_max", "10") loteria1 = register_cvar("bank_loteria_sekundy", "100.0") minrand = register_cvar("bank_min_porzycz", "10000") maxrand = register_cvar("bank_max_porzycz", "50000") maxporzycz = register_cvar("bank_porzyczek_max", "1") // Max porzyczek na jedna mape (max 999) nakupno = register_cvar("bank_na_flage", "1") // Jeśli bank ma być na flage 1 jeśli nie 0 flaga = register_cvar("bank_flaga_dostepu", "ADMIN_LEVEL_F") // Flaga dostepu do banku ( flagi sa w pliku users.ini ) koszt = get_pcvar_num(koszt) maxwypl = get_pcvar_num(maxwypl) maxwplac = get_pcvar_num(maxwplac) maxwyplat = get_pcvar_num(maxwyplat) loteria1 = get_pcvar_float(loteria1) minrand = get_pcvar_num(minrand) maxrand = get_pcvar_num(maxrand) maxporzycz = get_pcvar_num(maxporzycz) nakupno = get_pcvar_num(nakupno) flaga = get_pcvar_flags(flaga) g_vault = nvault_open("amx_bank") if(nakupno == 1){ register_clcmd ("say /bank", "pokaz_menu1") } else { register_clcmd ("say /bank", "pokaz_menu") } register_clcmd("ilosc", "Wplac") register_clcmd("ile", "Wyplac") set_task(10.0, "infor", 0, "", 0, "b") } public infor(id){ new rek = random_num(1,4) switch(rek) { case 1: ColorChat(id, GREEN, "[Bank]^x01 Aby otworzyc konto w banku wpisz /bank") case 2: ColorChat(id, GREEN, "[Bank]^x01 Na serwerze jest zainstalowany bank. Wpisz /bank aby uzyskac wiecej informacji..") case 3: ColorChat(id, GREEN, "[Bank]^x01 Brakuje ci niekiedy pieniedzy na bron? Wpisz /bank i zaloz konto!") case 4: ColorChat(id, GREEN, "[Bank]^x01 Na serwerze jest zainstalowany bank by Lukasz 'Zielu' Zielinski") } } public plugin_end() { nvault_close(g_vault) } public client_disconnect(id) { splata(id) Zapisz(id) PlayerMoney[id] = 0 Konto[id] = 0 gral[id] = 0 wyplacil[id] = 0 Iloscs[id] = 0 dod[id] = 0 Porzyczyl[id] = 0 for(new i; i < maxporzycz; i++) { Kwota[i][id] = 0 } } public client_connect(id) { PlayerMoney[id] = 0 Konto[id] = 0 gral[id] = 0 wyplacil[id] = 0 Iloscs[id] = 0 dod[id] = 0 Porzyczyl[id] = 0 for(new i; i < maxporzycz; i++) { Kwota[i][id] = 0 } Wczytaj(id) } public Wczytaj(id) { new Name[32] get_user_name(id, Name, 31) new valutkey[64], valutdata[256] format(valutkey, 63, "%s-zielubank2", Name) format(valutdata, 255, "%i#%i#%i", PlayerMoney[id],Konto[id]) nvault_get(g_vault, valutkey, valutdata, 255) replace_all(valutdata, 255, "#", " ") new money[32], konto2[32] parse(valutdata, money, 31, konto2, 31) PlayerMoney[id] = str_to_num(money) Konto[id] = str_to_num(konto2) return PLUGIN_CONTINUE } public Zapisz(id) { new Name[32] get_user_name(id, Name, 31) new valutkey[64], valutdata[256] format(valutkey, 63, "%s-zielubank2", Name) format(valutdata, 255, "%i#%i#%i", PlayerMoney[id],Konto[id]) nvault_set(g_vault,valutkey,valutdata) } public pokaz_menu1(id) { if(access(id, flaga)) { new ilosc[32] if(Konto[id] == 1){ format(ilosc, 31, "Bank by Zielu(Stan:\r%d\y):", PlayerMoney[id]) } else { format(ilosc, 31, "Bank by Zielu - Brak konta:") } new menu = menu_create(ilosc,"menu_wybor") if(Konto[id] == 0) { new lolek[32] format(lolek, 31, "\wOtworz konto(Koszt:\r$%d\w)", koszt) menu_additem(menu,lolek,"1",0) } menu_additem(menu,"\wWplac","2",0) menu_additem(menu,"\wWplac wszystko","3",0) menu_additem(menu,"\wWyplac","4",0) menu_additem(menu,"\wPrzelew","7",0) menu_additem(menu,"\wLoteria","6",0) menu_additem(menu,"\wPorzyczka","8",0) menu_additem(menu,"\wInformacja","5",0) menu_setprop(menu,MPROP_EXIT,MEXIT_ALL) menu_display(id,menu,0) } else { ColorChat(id, GREEN, "[Bank]^x01 Musisz pierwsze wykupić konto u H@!") } } public pokaz_menu(id) { new ilosc[32] if(Konto[id] == 1){ format(ilosc, 31, "Bank by Zielu(Stan:\r%d\y):", PlayerMoney[id]) } else { format(ilosc, 31, "Bank by Zielu - Brak konta:") } new menu = menu_create(ilosc,"menu_wybor") if(Konto[id] == 0) { new lolek[32] format(lolek, 31, "\wOtworz konto(Koszt:\r$%d\w)", koszt) menu_additem(menu,lolek,"1",0) } menu_additem(menu,"\wWplac","2",0) menu_additem(menu,"\wWplac wszystko","3",0) menu_additem(menu,"\wWyplac","4",0) menu_additem(menu,"\wPrzelew","7",0) menu_additem(menu,"\wLoteria","6",0) menu_additem(menu,"\wPorzyczka","8",0) menu_additem(menu,"\wInformacja","5",0) menu_setprop(menu,MPROP_EXIT,MEXIT_ALL) menu_display(id,menu,0) } public menu_wybor(id, menu, item) { if(item==MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } new data[6], iName[64] new access, callback menu_item_getinfo(menu, item, access, data,5, iName, 63, callback) new key = str_to_num(data) switch(key) { case 1: OtworzKonto(id) case 2: { client_cmd(id, "messagemode ilosc") ColorChat(id, GREEN, "[Bank]^x01 Wpisz teraz ilosc pieniedzy ktore chcesz wplacic!") } case 3: WplacWszystko(id) case 4: { client_cmd(id, "messagemode ile") ColorChat(id, GREEN, "[Bank]^x01 Wpisz teraz ile pieniedzy chcesz wyplacic!") } case 5: show_motd(id, "
Plugin bank napisany przez Łukasz 'Zielu' Zieliński.
Plugny/Skrypty PHP/Grafika na zamówienie - Za darmo lub odpłatnie! GG: 5972861
") case 6: loteria(id) case 7: przelew(id) case 8: porzyczka(id) } return PLUGIN_CONTINUE } public OtworzKonto(id) { new money = cs_get_user_money(id) if(Konto[id] == 0){ if(money >= koszt) { Konto[id] = 1 cs_set_user_money(id, money -= koszt) new name[32] get_user_name(id, name, 31) ColorChat(0, GREEN, "[Bank]^x01 Uzytkownik %s otworzyl konto w banku.", name) ColorChat(0, GREEN, "[Bank]^x01 Aby otworzyc konto w banku wpisz /bank") ColorChat(id, GREEN, "[Bank]^x01 Gratulacje! Otworzyles konto w banku! Teraz mozesz wplacac, wyplacac pieniadze z banku!") } else { ColorChat(id, GREEN, "[Bank]^x01 Niestac cie na otwarcie konta w banku! ( $%d )", koszt) } } else { ColorChat(id, GREEN, "[Bank]^x01 Nie mozesz drugi taz otworzyc konta bankowego!") } return PLUGIN_CONTINUE } public Wplac(id) { if(Konto[id] == 1) { new szArg[32] read_args(szArg, charsmax(szArg)) remove_quotes(szArg) new ile = str_to_num(szArg) //ColorChat(id, GREEN, "[Bank:Debug]^x01 Ile = %d!", ile) if(ile <= cs_get_user_money(id)) { new lol = PlayerMoney[id] + ile if(lol >= maxwplac) { ColorChat(id, GREEN, "[Bank]^x01 Masz za duzo pieniedzy na koncie! Dopchalismy do konta ile można ( MAX: $%d ) ", maxwplac) new ileod = cs_get_user_money(id) new iloscnor = PlayerMoney[id] += ile new polski = iloscnor -= maxwplac cs_set_user_money(id, ileod - polski) PlayerMoney[id] = maxwplac //ColorChat(id, GREEN, "[Bank:Debug]^x01 1 end!") } else { new lolek = PlayerMoney[id] += ile PlayerMoney[id] = lolek new ileod = cs_get_user_money(id) cs_set_user_money(id, ileod - ile) //ColorChat(id, GREEN, "[Bank:Debug]^x01 2 end!") } ColorChat(id, GREEN, "[Bank]^x01 Wplaciles pieniadze do banku!") ColorChat(id, GREEN, "[Bank]^x01 Suma na twoim koncie wynosi: $%d", PlayerMoney[id]) } else { ColorChat(id, GREEN, "[Bank]^x01 Nie masz tylu ammopacków!") } } else { ColorChat(id, GREEN, "[Bank]^x01 Nie masz jeszcze konta bankowego!") } return PLUGIN_HANDLED } public WplacWszystko(id) { if(Konto[id] == 1) { new money = cs_get_user_money(id) if(money <= 0) { ColorChat(id, GREEN, "[Bank]^x01 Nie masz nie masz pieniedzy!") } else { new loleks = PlayerMoney[id] + money if(loleks >= maxwplac){ ColorChat(id, GREEN, "[Bank]^x01 Masz za dużo pieniedzy na koncie! ( MAX: $%d ) ", maxwplac) PlayerMoney[id] = maxwplac //ColorChat(id, GREEN, "[Bank:Debug]^x01 1 end!") } else { new lol = PlayerMoney[id] + money if(lol >= maxwplac){ PlayerMoney[id] = money cs_set_user_money(id, 0) //ColorChat(id, GREEN, "[Bank:Debug]^x01 2 end!") } else { PlayerMoney[id] += money cs_set_user_money(id, 0) //ColorChat(id, GREEN, "[Bank:Debug]^x01 3 end!") } ColorChat(id, GREEN, "[Bank]^x01 Wplaciles wszystkie pieniadze!") ColorChat(id, GREEN, "[Bank]^x01 Suma na twoim koncie wynosi: %d", PlayerMoney[id]) } //wyplacil[id] = 1 } } else { ColorChat(id, GREEN, "[Bank]^x01 Nie masz jeszcze konta bankowego!") } return PLUGIN_HANDLED } public Wyplac(id) { if(Konto[id] == 1) { if(wyplacil[id] == maxwyplat) { new szArg[32]; read_args(szArg, charsmax(szArg)) remove_quotes(szArg) new ile = str_to_num(szArg) if(ile >= 1) { if(ile <= PlayerMoney[id]) { if(ile <= maxwypl) { new money = cs_get_user_money(id) cs_set_user_money(id, money + ile) PlayerMoney[id] -= ile ColorChat(id, GREEN, "[Bank]^x01 Wyplaciles pieniadze z konta!") ColorChat(id, GREEN, "[Bank]^x01 Suma kasy na twoim koncie wynosi: %d", PlayerMoney[id]) } else { ColorChat(id, GREEN, "[Bank]^x01 Nie mozesz wyplacic za jednym razem wiecej niz $%d", maxwypl) } } else { ColorChat(id, GREEN, "[Bank]^x01 Nie masz tylu pieniedzy w banku!") } } else { ColorChat(id, GREEN, "[Bank]^x01 Musisz wpisac liczbe wieksza od zera!") } } else { ColorChat(id, RED, "[Bank]^x01 Juz korzystales z tej opcji na tej mapie! HeadAdministrator ustawil max wyplat na %d", maxwyplat) } } else { ColorChat(id, GREEN, "[Bank]^x01 Nie masz jeszcze konta bankowego!") } return PLUGIN_HANDLED } public loteria(id) { if(gral[id] == 0) { if(Konto[id] == 1) { new money = cs_get_user_money(id) cs_set_user_money(id, money - 100) new los = random_num(0,1) if(los == 1) { new rand = random_num(100, 2000) ColorChat(id, GREEN, "[Bank]^x01 Twoj los wygrywa! Wartosc twojego losa wynosi $%d! Gratuluje!", rand) new money = cs_get_user_money(id) cs_set_user_money(id, money + rand) } else { ColorChat(id, GREEN, "[Bank]^x01 Niestety, ale twoj los nie wygrywa zadnej nagrody.. Sprobuj ponownie za 120 sekund!") } gral[id] = 1 set_task(loteria1, "koniec", 1,_, 0, "a", 1) } else { ColorChat(id, GREEN, "[Bank]^x01 Nie masz jeszcze konta bankowego!") } } else { new fl[32] float_to_str(loteria1, fl, 31) ColorChat(id, GREEN, "[Bank]^x01 Przed kupieniem nastepnego losu musisz poczekac %s sekund!", fl) } return PLUGIN_HANDLED } public koniec(id) { if(gral[id] == 1) { gral[id] = 0 new fl[32] float_to_str(loteria1, fl, 31) ColorChat(id, GREEN, "[Bank]^x01 Uplynelo %s sekund mozesz grac znow w loterii!", fl) } } public przelew(id) { if(Konto[id] == 1) { new ilosc[32] if(dod[id] == 0) { Iloscs[id] = 0 } format(ilosc, 31, "Daje: %d", Iloscs[id]) new menu = menu_create("Kwota ( kilknij aby zwiekszyc ):", "dalej2") menu_additem(menu, ilosc, "1", 0) menu_additem(menu, "\rWybierz odbiorce", "2", 0) //menu_additem(menu, "\rSplac", "5", 0) menu_additem(menu, "Anuluj", "3", 0) menu_setprop(menu,MPROP_EXIT,MEXIT_ALL) menu_display(id,menu,0) } else { ColorChat(id, GREEN, "[Bank]^x01 Nie masz jeszcze konta bankowego!") } return PLUGIN_HANDLED } public dalej2(id, menu, item ) { if(item==MENU_EXIT) { menu_destroy(menu) Iloscs[id] = 0 dod[id] = 0 return PLUGIN_HANDLED } new data[6], iName[64] new access, callback menu_item_getinfo(menu, item, access, data,5, iName, 63, callback) new key = str_to_num(data) switch(key) { case 1 : { Iloscs[id] += 10 dod[id] = 1 przelew(id) } case 2: dalej3(id) case 3: { Iloscs[id] = 0 dod[id] = 0 set_hudmessage(0, 255, 0, -1.0, 0.3, 0, 6.0, 4.0) show_hudmessage(id, "Anulowales!") } } return PLUGIN_HANDLED } public dalej3(id) { new menu = menu_create("Odbiorca:", "dalej4") //menu_additem(menu, "Wybierz odbiorce:", "1", 0) //new num1[32], num //(num1, num) for(new i = 1; i< get_maxplayers();i++) { new name[32] get_user_name(i, name, 31) new formats[32] format(formats, 31, "%d", i) menu_additem(menu, name, formats, 0) } menu_additem(menu, "\rAnuluj", "34", 0) menu_setprop(menu,MPROP_EXIT,MEXIT_ALL) menu_display(id,menu,0) return PLUGIN_HANDLED } public dalej4(id, menu, item) { if(item==MENU_EXIT) { menu_destroy(menu) //Iloscs[id] = 0 //dod[id] = 0 return PLUGIN_HANDLED } new data[6], iName[64] new access, callback menu_item_getinfo(menu, item, access, data,5, iName, 63, callback) new key = str_to_num(data) for(new i = 1; i < get_maxplayers(); i++) { if(key == i) podaruj(id, i) } if(key == 34) { pokaz_menu(id) set_hudmessage(0, 255, 0, -1.0, 0.3, 0, 6.0, 4.0) show_hudmessage(id, "Anulowales!") } return PLUGIN_HANDLED } public podaruj(id, i) { if(Konto[id] == 1) { if(Konto[i] == 1) { if(PlayerMoney[id] >= Iloscs[id]) { if(Iloscs[id] >= 1) { if(i != id) { PlayerMoney[id] -= Iloscs[id] PlayerMoney[i] += Iloscs[id] new name1[32] get_user_name(i, name1, 31) new name2[32] get_user_name(id, name2, 31) set_hudmessage(0, 255, 0, -1.0, -1.0) show_hudmessage(id, "Wyslales $%d graczowi %s", Iloscs[id], name1) set_hudmessage(0, 255, 0, -1.0, -1.0) show_hudmessage(i, "Otrzymales $%d od %s", Iloscs[id], name2) ColorChat(id, GREEN, "[Bank]^x01 Wyslales $%d graczowi %s", Iloscs[id], name1) ColorChat(i, GREEN, "[Bank]^x01 Otrzymales $%d od %s", Iloscs[id], name2) } else { ColorChat(id, GREEN, "[Bank]^x01 Nie mozesz wysylac sam sobie!") } } else { ColorChat(id, GREEN, "[Bank]^x01 Musisz wybrac wartosc wieksza od 0!") } } else { ColorChat(id, GREEN, "[Bank]^x01 Nie masz tylu pieniedzy!") } } else { ColorChat(id, GREEN, "[Bank]^x01 Ten gracz nie ma konta bankowego!") } } else { ColorChat(id, GREEN, "[Bank]^x01 Nie masz konta bankowego!") } return PLUGIN_HANDLED } public porzyczka(id) { if(Konto[id] == 1) { if(Porzyczyl[id] != maxporzycz) { new rand = random_num(minrand,maxrand) PlayerMoney[id] += rand new bylo; set_hudmessage(0, 255, 0, -1.0, -1.0) show_hudmessage(id, "Otrzymales pozyczke - splata: nastepne wejscie na serwer..") ColorChat(id, GREEN, "[Bank]^x01 Bank uznal ci pozyczke wyskosci $%d! Kwota zostanie splacona automatycznie przy nastepnej wizycie na serwerze!",rand) for(new i; i < maxporzycz; i++) { if(bylo == 0){ if(Porzyczyl[id] != i) Kwota[i][id] = rand; bylo = 1 } } Porzyczyl[id] += 1 } else { ColorChat(id, GREEN, "[Bank]^x01 Bank przyznal ci pozyczke. Musisz splacic pierwsza rate!") } } else { ColorChat(id, GREEN, "[Bank]^x01 Nie masz konta bankwego!") } return PLUGIN_HANDLED } public splata(id) { if(Konto[id] == 1) { for(new i; i < maxporzycz; i++) { if(Porzyczyl[id] == i) PlayerMoney[id] -= Kwota[i][id]; Kwota[i][id] = 0; } } return PLUGIN_HANDLED } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par } */