Cerere modificare bank sistem
Posted: 01 Dec 2013, 20:47
by DaNNe.
Salut !
As vrea sa-mi modificati si mie pluginul de bank sistem astfel incat:
1. Sa scoateti meniul pe care il am la /bank
2. Sa scaoteti partea cu register.
3. Sa adaugati in loc de menu asa:
3.a) Cand scriu /depozit <suma> sa depozitez banii
3.b) Cand scriu /retrage <suma> sa retrag banii.
4.Sa adaugati ( Daca vreti, daca nu adaug eu ) un HUD care sa arate cati banii ai ( atat celor care stau spec pe tine cat si tie )
Multumesc anticipat !
As vrea sa-mi modificati si mie pluginul de bank sistem astfel incat:
1. Sa scoateti meniul pe care il am la /bank
2. Sa scaoteti partea cu register.
3. Sa adaugati in loc de menu asa:
3.a) Cand scriu /depozit <suma> sa depozitez banii
3.b) Cand scriu /retrage <suma> sa retrag banii.
4.Sa adaugati ( Daca vreti, daca nu adaug eu ) un HUD care sa arate cati banii ai ( atat celor care stau spec pe tine cat si tie )
- Poftim Sursa | Afiseaza codul
/* NEW Bank System Ultimate. Author: ExoTiQ Link Official: http://www.extreamcs.com/forum First release 17.06.2013. MySQL Version. [Private] Final release 05.07.2013. Work on File's [Public] Plugin este mai simplu de cat versiunea V1.0 , am folosit doar Work on file's. * Update V2.0 - 1) Posibilitate de a schimba Nick-Name 2) Protectie de la ghicirea parolei. (Se seteaza in CVAR) 3) Posibilitate de a transfera banii altui user. ******** Thank for BETA-TEST , to Calash,Bos93,Gabriel963 */ #include <amxmodx> #include <amxmisc> #include <cstrike> #define PLUGIN "BANK-System" #define VERSION "2.0" #define AUTHOR "ExoTiQ" new g_LoadFile[81] new szReg[33], szAuth[33], szMoney[33] new szInvalidPassword[33] new szTransferMoney[33] new g_Cvar[2] public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /bank", "BankMenu") register_clcmd("say_team /bank", "BankMenu") register_clcmd("say /depozit", "BankMenu") register_clcmd("say_team /depozit", "BankMenu") g_Cvar[1] = register_cvar("bank_invalid_password", "3") // Limita maxima de incercari (default:3) //daca scrii mai mult de 3 ori parola incorecta,primesti kick. register_clcmd("make_amount", "MakeMoney") register_clcmd("withdraw_amount", "WithdrawMoney") register_clcmd("auth_password", "AuthPlayer") register_clcmd("reg_password", "RegPlayer") register_clcmd("edit_password", "EditPassword") register_clcmd("transfer_amount", "TransferAmount") register_dictionary("BANK-System.txt") } public client_disconnect(id) { szReg[id] = false szAuth[id] = false szMoney[id] = 0 szInvalidPassword[id] = 0 szTransferMoney[id] = 0 } public plugin_cfg() { get_configsdir(g_LoadFile, 81) format(g_LoadFile, 80, "%s/BANK-System-Users.ini", g_LoadFile) // Fisierul unde se salveaza Nick si Parola. } public client_connect(id) { set_task(2.0, "CheckPlayer", id) } public CheckPlayer(id) // Func verifica daca jucatorul este intregistrat. { new szParseText[41], szParseName[32] new szName[32] new szLine, szNum get_user_name(id, szName, charsmax( szName )) for(szLine=0;read_file(g_LoadFile, szLine, szParseText, 41, szNum);szLine++) { parse(szParseText, szParseName, charsmax( szParseName )) if(szNum > 0 && szParseText[0] != ';') { if(equali(szName, szParseName)) { szReg[id] = true break } } } } public BankMenu(id) { if(szReg[id]) { if(szAuth[id]) { new szText[555] formatex( szText, charsmax( szText ), "%L", id, "BANK_AUTHYES_TITLE", szMoney[id]) new menu = menu_create( szText, "BankMenu_handler" ) formatex( szText, charsmax( szText ), "%L", id, "AUTHYES_ITEM_1") menu_additem( menu, szText, "1", 0 ) if(szMoney[id]) { formatex( szText, charsmax( szText ), "%L", id, "AUTHYES_ITEM_2") menu_additem( menu, szText, "2", 0 ) }else{ formatex( szText, charsmax( szText ), "%L", id, "AUTHYES_ITEM_2") menu_additem( menu, szText, "2", ADMIN_ADMIN ) } formatex( szText, charsmax( szText ), "%L", id, "AUTHYES_ITEM_3") menu_additem( menu, szText, "3", 0 ) formatex( szText, charsmax( szText ), "%L", id, "AUTHYES_ITEM_4") menu_additem( menu, szText, "4", 0 ) menu_setprop( menu, MPROP_EXIT, MEXIT_ALL ) menu_setprop( menu, MPROP_NEXTNAME, "Next") menu_setprop( menu, MPROP_BACKNAME, "Back") menu_setprop( menu, MPROP_EXITNAME, "Iesire") menu_display( id, menu, 0 ) }else{ new szText[555] formatex( szText, charsmax( szText ), "%L", id, "BANK_AUTHNO_TITLE") new menu = menu_create( szText, "BankMenu_handler" ) formatex( szText, charsmax( szText ), "%L", id, "AUTHNO_ITEM_1") menu_additem( menu, szText, "1", 0 ) menu_setprop( menu, MPROP_EXIT, MEXIT_ALL ) menu_setprop( menu, MPROP_NEXTNAME, "Next") menu_setprop( menu, MPROP_BACKNAME, "Back") menu_setprop( menu, MPROP_EXITNAME, "Iesire") menu_display( id, menu, 0 ) } }else{ new szText[555] formatex( szText, charsmax( szText ), "%L", id, "BANK_REG_TITLE") new menu = menu_create( szText, "BankMenu_handler" ) formatex( szText, charsmax( szText ), "%L", id, "REG_ITEM_1") menu_additem( menu, szText, "1", 0 ) menu_setprop( menu, MPROP_EXIT, MEXIT_ALL ) menu_setprop( menu, MPROP_NEXTNAME, "Next") menu_setprop( menu, MPROP_BACKNAME, "Back") menu_setprop( menu, MPROP_EXITNAME, "Iesire") menu_display( id, menu, 0 ) } } public BankMenu_handler( id, menu, item ) { if( item == MENU_EXIT ) { menu_destroy(menu) return PLUGIN_HANDLED } new szData[6], szName[64], szAccess, szCallback menu_item_getinfo(menu, item, szAccess, szData, charsmax( szData ), szName, charsmax( szName ), szCallback) new szKey = str_to_num( szData ) switch( szKey ) { case 1: { if(szReg[id]) { if(szAuth[id]) { client_cmd(id, "messagemode make_amount") }else{ client_cmd(id, "messagemode auth_password") } }else{ client_cmd(id, "messagemode reg_password") } } case 2: { client_cmd(id, "messagemode withdraw_amount") } case 3: { client_cmd(id, "messagemode transfer_amount") } case 4: { client_cmd(id, "messagemode edit_password") } } return PLUGIN_HANDLED } public MakeMoney(id) { if(!szReg[id]) { ChatColor(id, "%L", 0, "BANK_NOREG") return PLUGIN_HANDLED } if(!szAuth[id]) { ChatColor(id, "%L", 0, "BANK_NOAUTH") return PLUGIN_HANDLED } new szParam[10] read_args(szParam, 9) remove_quotes(szParam) if(strlen( szParam ) == 0) { ChatColor(id, "%L", id, "BANK_NOTEXT") return PLUGIN_HANDLED } for(new x; x < strlen( szParam ); x++) { if(!isdigit( szParam[x] )) { ChatColor(id, "%L", 0, "BANK_NONUMBER") return PLUGIN_HANDLED } } new szAmount = str_to_num( szParam ) if (cs_get_user_money(id) < szAmount) { ChatColor(id, "%L", 0, "BANK_NOMONEY") return PLUGIN_HANDLED } UpdateMoney(id, 1, szAmount) return PLUGIN_HANDLED } public WithdrawMoney(id) { if(!szReg[id]) { ChatColor(id, "%L", 0, "BANK_NOREG") return PLUGIN_HANDLED } if(!szAuth[id]) { ChatColor(id, "%L", 0, "BANK_NOAUTH") return PLUGIN_HANDLED } new szParam[10] read_args(szParam, 9) remove_quotes(szParam) if(strlen( szParam ) == 0) { ChatColor(id, "%L", id, "BANK_NOTEXT") return PLUGIN_HANDLED } for(new x; x < strlen( szParam ); x++) { if(!isdigit( szParam[x] )) { ChatColor(id, "%L", 0, "BANK_NONUMBER") return PLUGIN_HANDLED } } new szAmount = str_to_num( szParam ) if (szMoney[id] < szAmount) { ChatColor(id, "%L", 0, "BANK_NOMONEY") return PLUGIN_HANDLED } UpdateMoney(id, 2, szAmount) return PLUGIN_HANDLED } public UpdateMoney(id, type, amount) { new szParseText[41], szParseName[32], szParsePassword[32], szParseMoney[32] new szName[32] new szLine, szNum get_user_name(id, szName, charsmax( szName )) for(szLine=0;read_file(g_LoadFile, szLine, szParseText, 41, szNum);szLine++) { parse(szParseText, szParseName, charsmax( szParseName ), szParsePassword, charsmax( szParsePassword ), szParseMoney, charsmax( szParseMoney )) if(szNum > 0 && szParseText[0] != ';') { if(equali(szName, szParseName)) { if(type == 1) { new szText[512], szNewMoney szNewMoney = str_to_num( szParseMoney ) + amount cs_set_user_money(id, cs_get_user_money(id) - amount) szMoney[id] = szMoney[id] + amount formatex(szText, charsmax( szText ), "^"%s^" ^"%s^" ^"%d^"", szParseName, szParsePassword, szNewMoney) write_file(g_LoadFile, szText, szLine) ChatColor(id, "%L", 0, "BANK_MAKE_GOOD", amount) }else if(type == 2) { new szText[512], szNewMoney szNewMoney = str_to_num( szParseMoney ) - amount cs_set_user_money(id, cs_get_user_money(id) + amount) szMoney[id] = szMoney[id] - amount formatex(szText, charsmax( szText ), "^"%s^" ^"%s^" ^"%d^"", szParseName, szParsePassword, szNewMoney) write_file(g_LoadFile, szText, szLine) ChatColor(id, "%L", 0, "BANK_WITGDRAW_GOOD", amount) } } } } } public AuthPlayer(id) { if(szReg[id]) { if(!szAuth[id]) { new szArgsPassword[32] read_args(szArgsPassword, 31) remove_quotes(szArgsPassword) if(strlen( szArgsPassword ) == 0) { ChatColor(id, "%L", id, "BANK_NOTEXT") return PLUGIN_HANDLED } new szParseText[41], szParseName[32], szParsePassword[32], szParseMoney[32] new szName[32] new szLine, szNum new szNumMoney get_user_name(id, szName, charsmax( szName )) for(szLine=0;read_file(g_LoadFile, szLine, szParseText, 41, szNum);szLine++) { parse(szParseText, szParseName, charsmax( szParseName ), szParsePassword, charsmax( szParsePassword ), szParseMoney, charsmax( szParseMoney )) if(szNum > 0 && szParseText[0] != ';') { if(equali(szName, szParseName)) { if(equali(szParsePassword, szArgsPassword)) { szAuth[id] = true szNumMoney = str_to_num( szParseMoney ) szMoney[id] = szNumMoney ChatColor(id, "%L", id, "BANK_AUTH_GOOD", szMoney[id]) }else{ ++szInvalidPassword[id] if(szInvalidPassword[id] < get_pcvar_num( g_Cvar[1] )) { ChatColor(id, "%L", id, "BANK_AUTH_FAIL", get_pcvar_num( g_Cvar[1] ) - szInvalidPassword[id]) return PLUGIN_HANDLED }else{ server_cmd("kick #%d ^"%L^" ", get_user_userid(id), 0, "BANK_KICK") return PLUGIN_HANDLED } } } } } }else{ ChatColor(id, "%L", 0, "BANK_AUTH") return PLUGIN_HANDLED } }else{ ChatColor(id, "%L", 0, "BANK_NOREG") return PLUGIN_HANDLED } return PLUGIN_HANDLED } public RegPlayer(id) { if(!szReg[id]) { new szArgsPassword[32] read_args(szArgsPassword, 31) remove_quotes(szArgsPassword) if(strlen( szArgsPassword ) == 0) { ChatColor(id, "%L", id, "BANK_NOTEXT") return PLUGIN_HANDLED } new szText[512] new szName[32] get_user_name(id, szName, charsmax( szName )) formatex(szText, charsmax( szText ), "^"%s^" ^"%s^" ^"0^"", szName, szArgsPassword) write_file(g_LoadFile, szText, -1) szReg[id] = true szAuth[id] = true ChatColor(id, "%L", 0, "BANK_REG_GOOD", szArgsPassword) }else{ ChatColor(id, "%L", 0, "BANK_REG") return PLUGIN_HANDLED } return PLUGIN_HANDLED } public EditPassword(id) { if(szReg[id]) { if(szAuth[id]) { new szNewPassword[32] read_args(szNewPassword, 31) remove_quotes(szNewPassword) if(strlen( szNewPassword ) == 0) { ChatColor(id, "%L", id, "BANK_NOTEXT") return PLUGIN_HANDLED } new szParseText[41], szParseName[32], szParsePassword[32], szParseMoney[32] new szName[32] new szLine, szNum get_user_name(id, szName, charsmax( szName )) for(szLine=0;read_file(g_LoadFile, szLine, szParseText, 41, szNum);szLine++) { parse(szParseText, szParseName, charsmax( szParseName ), szParsePassword, charsmax( szParsePassword ), szParseMoney, charsmax( szParseMoney )) if(szNum > 0 && szParseText[0] != ';') { if(equali(szName, szParseName)) { new szText[512] formatex(szText, charsmax( szText ), "^"%s^" ^"%s^" ^"%s^"", szName, szNewPassword, szParseMoney) write_file(g_LoadFile, szText, szLine) ChatColor(id, "%L", id, "BANK_EDITPASSWORD_GOOD", szNewPassword) break } } } }else{ ChatColor(id, "%L", 0, "BANK_NOAUTH") return PLUGIN_HANDLED } }else{ ChatColor(id, "%L", 0, "BANK_NOREG") return PLUGIN_HANDLED } return PLUGIN_HANDLED } public TransferAmount(id) { new szParam[10] read_args(szParam, 9) remove_quotes(szParam) if(strlen( szParam ) == 0) { ChatColor(id, "%L", id, "BANK_NOTEXT") return PLUGIN_HANDLED } for(new x; x < strlen( szParam ); x++) { if(!isdigit( szParam[x] )) { ChatColor(id, "%L", 0, "BANK_NONUMBER") return PLUGIN_HANDLED } } new szAmount = str_to_num( szParam ) if (szMoney[id] < szAmount) { ChatColor(id, "%L", 0, "BANK_NOMONEY") return PLUGIN_HANDLED } szTransferMoney[id] = szAmount TransferPlayer(id) return PLUGIN_HANDLED } public TransferPlayer(id) { new szText[555] formatex( szText, charsmax( szText ), "%L", id, "BANK_TRANSFERMENU_TITLE") new menu = menu_create( szText, "TransferPlayer_handler" ) new szPlayers[32], szName[32], szPlayer[10] new szNum, Player get_players(szPlayers, szNum) for (new i; i < szNum; i++) { Player = szPlayers if(Player == id || is_user_bot(id)) continue get_user_name(Player, szName, charsmax( szName )) num_to_str(Player, szPlayer, charsmax( szPlayer )) if(!szReg[Player]) { formatex( szText, charsmax( szText ), "%s %L", szName, id, "BANK_NOPLAYERREG") menu_additem(menu, szText , szPlayer, ADMIN_ADMIN) }else{ formatex( szText, charsmax( szText ), "%s - \d[ \r%i \d]", szName, szMoney[Player]) menu_additem(menu, szText, szPlayer, 0) } } menu_setprop( menu, MPROP_EXIT, MEXIT_ALL ) menu_setprop( menu, MPROP_NEXTNAME, "Next") menu_setprop( menu, MPROP_BACKNAME, "Back") menu_setprop( menu, MPROP_EXITNAME, "Iesire") menu_display( id, menu, 0 ) } public TransferPlayer_handler( id, menu, item ) { if (item == MENU_EXIT) { szTransferMoney[id] = 0 menu_destroy(menu) return PLUGIN_HANDLED } new szData[6], szName[64], szAccess, szCallback menu_item_getinfo(menu, item, szAccess, szData, charsmax( szData ), szName, charsmax( szName ), szCallback) new Player = str_to_num( szData ) szMoney[Player] = szMoney[Player] + szTransferMoney[id] szMoney[id] = szMoney[id] - szTransferMoney[id] new szNameTr[32], szNameTd[32] get_user_name(id, szNameTr, charsmax( szNameTr )) get_user_name(Player, szNameTd, charsmax( szNameTd )) ChatColor(0, "%L", 0, "BANK_TRANSFER_GOOD", szNameTr, szNameTd, szTransferMoney[id]) szTransferMoney[id] = 0 menu_destroy(menu) return PLUGIN_HANDLED } public client_infochanged(id) { szReg[id] = false szAuth[id] = false szMoney[id] = 0 set_task(1.0, "CheckPlayer", id) } stock ChatColor(const id, const input[], any:...) { new count = 1, players[32] static msg[191] vformat(msg, 190, input, 3) replace_all(msg, 190, "!g", "^4") replace_all(msg, 190, "!y", "^1") replace_all(msg, 190, "!t", "^3") if (id) players[0] = id; else get_players(players, count, "ch") { for (new i = 0; i < count; i++) { if (is_user_connected(players)) { message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players); write_byte(players); write_string(msg); message_end(); } } } }
Multumesc anticipat !