hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.05.23. 17:50



Jelenlévő felhasználók

Jelenleg 124 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 123 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: Bing [Bot] az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 3 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: zp_bank_register
HozzászólásElküldve: 2013.04.17. 22:49 
Offline
Őskövület
Avatar

Csatlakozott: 2011.12.28. 00:35
Hozzászólások: 2736
Megköszönt másnak: 56 alkalommal
Megköszönték neki: 275 alkalommal
Hali.

Ha valaki nagyon unatkozik akkor lefordítaná?

SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fakemeta>
  4. #include <sqlx>
  5. #include <zombieplague>
  6. #include <colorChat>
  7. #include <cstrike>
  8.  
  9. #define MAX_SIZE 2047
  10. #define MAX_PLAYERS 32
  11.  
  12. new PLUGIN_NAME[] = "[ZP]Bank & Register";
  13. new PLUGIN_VERSION[] = "0.1";
  14. new PLUGIN_AUTHOR[] = "Epmak";
  15. new PLUGIN_PREFIX[] = "[ZP]";
  16.  
  17. new g_hunterlevel[MAX_PLAYERS+1], g_killcount[MAX_PLAYERS+1], g_zmhunterlevel[MAX_PLAYERS+1], g_zmkillcount[MAX_PLAYERS+1], g_zmkiller[MAX_PLAYERS+1], g_zmkillercount[MAX_PLAYERS+1], g_nemelevel[MAX_PLAYERS+1];
  18.  
  19. new cvar_hunter_multi, cvar_hunter_maxlvl, cvar_zombiehunter_multi,cvar_zombiehunter_maxlvl, cvar_terminator_multi,cvar_terminator_maxlvl, cvar_zmkiller_multi,cvar_zmkiller_maxlvl;
  20. new cvar_achvs,g_cvar_enable,g_cvar_annonce,g_cvar_save_limit,g_cvar_save_type,g_cvar_save_days,g_cvar_block_name_change,cvar_motd_file,/*cvar_allow_change_name,*/ cvar_allow_change_password,g_cvar_startedammo;
  21. new g_BankSql[MAX_PLAYERS+1], bool:g_BankSqlOpened[MAX_PLAYERS+1];
  22. new Handle:g_Sql = Empty_Handle,Handle:g_StdTupleBank = Empty_Handle;
  23. new g_SqlTable[32], g_configsDir[128], g_szAuth[MAX_PLAYERS+1][32] ,g_DonateTo[MAX_PLAYERS+1];
  24. new g_coloredMenus,g_menuPosition[MAX_PLAYERS+1],g_menuPlayers[MAX_PLAYERS+1][32], g_menuPlayersNum[MAX_PLAYERS+1];
  25. new g_Admins[MAX_SIZE+1];
  26. new bool:g_registred[MAX_PLAYERS+1], bool:g_loggin[MAX_PLAYERS+1], g_password[MAX_PLAYERS+1][64], bool:g_status[MAX_PLAYERS+1];
  27.  
  28. public plugin_init()
  29. {
  30. register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
  31.  
  32. register_dictionary("common.txt");
  33. register_dictionary("zp_bank_sql_new.txt");
  34.  
  35. register_clcmd("say register", "cmdMainMenu");
  36. register_clcmd("say /register", "cmdMainMenu");
  37.  
  38. register_clcmd("say login", "cmdMainMenu");
  39. register_clcmd("say /login", "cmdMainMenu");
  40.  
  41. register_clcmd("say bank", "cmdBankMenu");
  42. register_clcmd("say /bank", "cmdBankMenu");
  43.  
  44. register_clcmd("say donate", "cmdDonateMenu");
  45. register_clcmd("say /donate", "cmdDonateMenu");
  46.  
  47. register_clcmd("say zpmenu", "clcmd_changeteam");
  48. register_clcmd("say /zpmenu", "clcmd_changeteam");
  49.  
  50. register_clcmd("say achievements", "archivments_menu");
  51. register_clcmd("say /achievements", "archivments_menu");
  52.  
  53. register_clcmd("say achvs", "archivments_menu");
  54. register_clcmd("say /achvs", "archivments_menu");
  55.  
  56. register_clcmd("chooseteam", "clcmd_changeteam")
  57. register_clcmd("jointeam", "clcmd_changeteam");
  58.  
  59. g_cvar_enable = register_cvar("zp_bank_sql", "1");
  60. cvar_achvs = register_cvar("zp_bank_achvs", "1");
  61. g_cvar_annonce = register_cvar("zp_bank_annonce", "360.0");
  62. g_cvar_save_limit = register_cvar("zp_bank_sql_save_limit", "2000");
  63. g_cvar_save_type = register_cvar("zp_bank_sql_save_type", "2");
  64. g_cvar_save_days = register_cvar("zp_bank_sql_save_days", "16");
  65. g_cvar_block_name_change = register_cvar("zp_bank_sql_block_name_change", "1");
  66.  
  67. cvar_hunter_multi = register_cvar("zp_achvs_hunter_aprevard", "10");
  68. cvar_hunter_maxlvl = register_cvar("zp_achvs_hunter_maxlvl", "120");
  69. cvar_zombiehunter_multi = register_cvar("zp_achvs_zmhunter_aprevard", "10");
  70. cvar_zombiehunter_maxlvl = register_cvar("zp_achvs_zmhunter_maxlvl", "4");
  71. cvar_terminator_multi = register_cvar("zp_achvs_terminator_aprevard", "10");
  72. cvar_terminator_maxlvl = register_cvar("zp_achvs_terminator_maxlvl", "1");
  73. cvar_zmkiller_multi = register_cvar("zp_achvs_zmkiller_aprevard", "10");
  74. cvar_zmkiller_maxlvl = register_cvar("zp_achvs_zmkiller_maxlvl", "3");
  75.  
  76. //cvar_allow_change_name = register_cvar("zp_bank_register_allow_change_name","1");
  77. cvar_allow_change_password = register_cvar("zp_bank_register_allow_change_password","1");
  78. cvar_motd_file = register_cvar("zp_bank_register_motd_file","zp_bank_register_help.txt");
  79.  
  80. register_clcmd("EnterPassword", "cmd_enterpassword");
  81. register_clcmd("EnterNewPassword", "cmd_enternewpassword");
  82. register_clcmd("TakeAmount", "cmd_takeamout");
  83. register_clcmd("SaveAmount", "cmd_saveamout");
  84. register_clcmd("EnterNewChangePassword", "cmd_enterchangepassword");
  85. register_clcmd("DonateAmount", "cmd_donateamount");
  86.  
  87. register_clcmd("zp_ammo","cmdAmmoPacks", ADMIN_IMMUNITY, "<name or @ALL,@H,@Z> <number>");
  88.  
  89. register_menucmd(register_menuid("BankMainMenu"), 1023, "actionMainMenu");
  90. register_menucmd(register_menuid("BankAmmoMenu"), 1023, "actionAmmoMenu");
  91. register_menucmd(register_menuid("ChangeMenu"), 1023, "actionChangeMenu");
  92. register_menucmd(register_menuid("DonateMenu"), 1023, "actionDonateMenu")
  93.  
  94. register_forward(FM_ClientUserInfoChanged, "fwClientUserInfoChanged");
  95.  
  96. register_event("DeathMsg", "DeathMsg", "a");
  97.  
  98. register_srvcmd("zp_bank_connect", "DataBase_Connect");
  99. register_cvar("zp_bank_sql_host", "127.0.0.1");
  100. register_cvar("zp_bank_sql_user", "root");
  101. register_cvar("zp_bank_sql_pass", "");
  102. register_cvar("zp_bank_sql_db", "amxx");
  103. register_cvar("zp_bank_sql_type", "mysql");
  104. register_cvar("zp_bank_sql_table", "zp_bank");
  105.  
  106. g_coloredMenus = colored_menus();
  107.  
  108. get_configsdir(g_configsDir, 127);
  109.  
  110. server_cmd("exec %s/zp_bank_sql_new.cfg", g_configsDir);
  111. server_cmd("zp_bank_connect");
  112. }
  113.  
  114. public plugin_cfg() {
  115. new admin_file[128];
  116. format(admin_file, 127, "%s/zp_bank_admins.ini", g_configsDir);
  117.  
  118. new fp_File = fopen(admin_file, "r");
  119. if(fp_File) {
  120. fgets(fp_File, g_Admins, MAX_SIZE);
  121. replace_all(g_Admins, MAX_SIZE, "&n", "^n");
  122. }
  123. fclose(fp_File);
  124.  
  125. g_cvar_startedammo = get_cvar_pointer("zp_starting_ammo_packs");
  126. }
  127.  
  128. public plugin_end() {
  129. if(g_Sql != Empty_Handle) SQL_FreeHandle(g_Sql);
  130. if(g_StdTupleBank != Empty_Handle) SQL_FreeHandle(g_StdTupleBank);
  131. }
  132.  
  133. public client_authorized(id) {
  134. if (!get_pcvar_num(g_cvar_enable) || g_Sql == Empty_Handle)
  135. return ;
  136.  
  137. get_user_info(id,"_bp",g_password[id],63);
  138. g_loggin[id] = false;
  139. g_registred[id] = false;
  140.  
  141. GetAuthId(id,g_szAuth[id],31);
  142.  
  143. g_BankSql[id] = 0;
  144. g_BankSqlOpened[id] = false;
  145.  
  146. LoadClientBank(id);
  147. }
  148.  
  149. public client_putinserver(id) {
  150. g_BankSqlOpened[id] = true;
  151.  
  152. if(!is_loggin(id)) set_task(0.3, "cmdMainMenu", id);
  153.  
  154. if(get_pcvar_num(g_cvar_enable) == 2) {
  155. zp_set_user_ammo_packs(id,g_BankSql[id]);
  156. }
  157. }
  158.  
  159. public client_disconnect(id) {
  160. if (!get_pcvar_num(g_cvar_enable) || g_Sql == Empty_Handle)
  161. return ;
  162.  
  163. if(g_BankSqlOpened[id] == true && is_loggin(id))
  164. SaveClientBank(id);
  165.  
  166. g_killcount[id] = 0;
  167. g_hunterlevel[id] = 0;
  168.  
  169. g_zmhunterlevel[id] = 0;
  170. g_zmkillcount[id] = 0;
  171.  
  172. g_zmkiller[id] = 0;
  173. g_zmkillercount[id] = 0;
  174.  
  175. g_nemelevel[id] = 0;
  176.  
  177. g_BankSqlOpened[id] = false;
  178. }
  179.  
  180. public print_annonce(id) {
  181. if (!get_pcvar_num(g_cvar_enable) || g_Sql == Empty_Handle)
  182. return ;
  183.  
  184. if(is_loggin(id))
  185. {
  186. colorChat(id, CHATCOLOR_GREY, "[Zombie Blood]^4 Say: /donate to share some Ammo Packs with your frieds!")
  187. }
  188. else
  189. {
  190. colorChat(id, CHATCOLOR_GREY, "[Zombie Blood]^4 Say: /login to create a new Account or to Login!")
  191. }
  192.  
  193. set_task(30.0, "more_spam")
  194. }
  195.  
  196. public more_spam()
  197. {
  198. colorChat(0, CHATCOLOR_GREY, "All Ammo Packs are saved automatically")
  199. }
  200.  
  201. public DataBase_Connect() {
  202. if(!get_pcvar_num(g_cvar_enable)) return ;
  203.  
  204. if(get_pcvar_num(g_cvar_annonce)) set_task(get_pcvar_float(g_cvar_annonce), "print_annonce",_,_,_,"b");
  205.  
  206. new host[64], user[32], pass[32], db[128];
  207. new get_type[12], set_type[12];
  208. new error[128], errno;
  209.  
  210. get_cvar_string("zp_bank_sql_host", host, 63);
  211. get_cvar_string("zp_bank_sql_user", user, 31);
  212. get_cvar_string("zp_bank_sql_pass", pass, 31);
  213. get_cvar_string("zp_bank_sql_type", set_type, 11);
  214. get_cvar_string("zp_bank_sql_db", db, 127);
  215. get_cvar_string("zp_bank_sql_table", g_SqlTable, 31);
  216.  
  217. if(is_module_loaded(set_type) == -1) {
  218. server_print("%s error: module '%s' not loaded.^r^n%s Add line %s to %s/modules.ini and restart server", PLUGIN_PREFIX, set_type, PLUGIN_PREFIX, set_type, g_configsDir);
  219. return ;
  220. }
  221.  
  222. SQL_GetAffinity(get_type, 12);
  223.  
  224. if (!equali(get_type, set_type))
  225. if (!SQL_SetAffinity(set_type))
  226. log_amx("Failed to set affinity from %s to %s.", get_type, set_type);
  227.  
  228. g_StdTupleBank = SQL_MakeDbTuple(host, user, pass, db);
  229.  
  230. g_Sql = SQL_Connect(g_StdTupleBank, errno, error, 127);
  231.  
  232. if (g_Sql == Empty_Handle) {
  233. server_print("%s SQL error: '%s'", PLUGIN_PREFIX, error);
  234. return ;
  235. }
  236.  
  237. SQL_QueryAndIgnore(g_Sql, "SET NAMES utf8");
  238.  
  239. if (equali(set_type, "sqlite") && !sqlite_TableExists(g_Sql, g_SqlTable)) SQL_QueryAndIgnore(g_Sql, "CREATE TABLE %s (auth VARCHAR(36) NOT NULL PRIMARY KEY, passwd VARCHAR(64) NOT NULL, amount INT(10) NOT NULL DEFAULT 0,timestamp INT(10) NOT NULL DEFAULT 0);",g_SqlTable);
  240. else if (equali(set_type, "mysql")) SQL_QueryAndIgnore(g_Sql,"CREATE TABLE IF NOT EXISTS `%s` (auth VARCHAR(36) NOT NULL PRIMARY KEY, passwd VARCHAR(64), amount INT(10) UNSIGNED NOT NULL DEFAULT 0, timestamp INT(10) UNSIGNED NOT NULL DEFAULT 0) ENGINE=MyISAM DEFAULT CHARSET=utf8;", g_SqlTable);
  241.  
  242. CleanDataBase();
  243.  
  244. server_print("%s connected to: '%s://%s:****@%s/%s/%s'",PLUGIN_PREFIX, set_type, user, host, db, g_SqlTable);
  245. }
  246.  
  247. public CleanDataBase() {
  248. if (!get_pcvar_num(g_cvar_save_days)) return ;
  249.  
  250. new curTime = get_systime();
  251. curTime -= ((get_pcvar_num(g_cvar_save_days) * 24) * 3600);
  252.  
  253. SQL_QueryAndIgnore(g_Sql,"DELETE FROM %s WHERE timestamp < '%d';", g_SqlTable, curTime);
  254. }
  255.  
  256. public fwClientUserInfoChanged(id, buffer) {
  257. if (!get_pcvar_num(g_cvar_enable) || !is_user_connected(id))
  258. return FMRES_IGNORED;
  259.  
  260. new name[32], val[32], name_1[] = "name";
  261. get_user_name(id, name, 31);
  262. engfunc(EngFunc_InfoKeyValue, buffer, name_1, val, 31);
  263. if (equal(val, name))
  264. return FMRES_IGNORED;
  265.  
  266. if(get_pcvar_num(g_cvar_block_name_change)) {
  267. engfunc(EngFunc_SetClientKeyValue, id, buffer, name_1, name);
  268. client_cmd(id, "name ^"%s^"; setinfo name ^"%s^"", name, name);
  269. console_print(id, "%L", id ,"NO_NAME_CHANGE");
  270. }
  271. else {
  272. g_loggin[id] = false;
  273. g_registred[id] = false;
  274. GetAuthId(id,g_szAuth[id],31,true);
  275. LoadClientBank(id);
  276. return FMRES_IGNORED;
  277. }
  278.  
  279. return FMRES_SUPERCEDE;
  280. }
  281.  
  282. public LoadClientBank(id) {
  283. if (g_StdTupleBank == Empty_Handle) return ;
  284.  
  285. new szQuery[120];
  286. format(szQuery, 119,"SELECT * FROM %s WHERE auth='%s';", g_SqlTable, g_szAuth[id]);
  287.  
  288. new szData[2];
  289. szData[0] = id;
  290. szData[1] = get_user_userid(id);
  291.  
  292. SQL_ThreadQuery(g_StdTupleBank, "LoadClient_QueryHandler", szQuery, szData, 2);
  293. }
  294.  
  295. public LoadClient_QueryHandler(iFailState, Handle:hQuery, szError[], iErrnum, szData[], iSize, Float:fQueueTime) {
  296. if(iFailState != TQUERY_SUCCESS) {
  297. log_amx("%s SQL Error #%d - %s", PLUGIN_PREFIX, iErrnum, szError);
  298. return ;
  299. }
  300.  
  301. new id = szData[0];
  302.  
  303. if (szData[1] != get_user_userid(id))
  304. return ;
  305.  
  306. new Password[64];
  307. new packs = get_pcvar_num(g_cvar_startedammo);
  308. if(SQL_NumResults(hQuery)) {
  309. SQL_ReadResult(hQuery, SQL_FieldNameToNum(hQuery, "passwd"), Password, sizeof(Password)-1);
  310.  
  311. if (equal(g_password[id], Password)) {
  312. g_loggin[id] = true;
  313. packs = SQL_ReadResult(hQuery, SQL_FieldNameToNum(hQuery, "amount"));
  314. new max_loops = 5;
  315. while(--max_loops) {
  316. client_cmd(id,"setinfo _bp ^"%s^"",g_password[id]);
  317. }
  318. }
  319. g_registred[id] = true;
  320. }
  321. else {
  322. g_registred[id] = false;
  323. cmdMainMenu(id);
  324. }
  325.  
  326. if(g_status[id] == true) {
  327. if(g_loggin[id] == true) {
  328. if(is_user_connected(id)) colorChat(id, CHATCOLOR_GREY, "[Zombie Blood]^4 Welcome! You logged in with %s.", g_szAuth[id]);
  329. new max_loops = 5;
  330. while(--max_loops) {
  331. client_cmd(id,"setinfo _bp ^"%s^";wait;chooseteam",g_password[id]);
  332. }
  333. g_hunterlevel[id] = 0;
  334. g_zmhunterlevel[id] = 0;
  335. g_zmkiller[id] = 0;
  336. g_nemelevel[id] = 0;
  337. }
  338. else {
  339. if(is_user_connected(id)) colorChat(id, CHATCOLOR_GREY, "[Zombie Blood]^4 Invalid Password! Try another Password.");
  340. displayMainMenu(id);
  341. }
  342. g_status[id] = false;
  343. }
  344.  
  345. g_BankSql[id] = packs;
  346.  
  347. if(g_loggin[id] == true && g_BankSqlOpened[id] == true && get_pcvar_num(g_cvar_enable) == 2) {
  348. zp_set_user_ammo_packs(id,g_BankSql[id]);
  349. }
  350. }
  351.  
  352. public SaveClientBank(id) {
  353. if (g_Sql == Empty_Handle || !is_loggin(id)) return ;
  354.  
  355. new packs;
  356.  
  357. if(get_pcvar_num(g_cvar_enable) == 2) packs = zp_get_user_ammo_packs(id);
  358. else packs = g_BankSql[id];
  359.  
  360. new limit = get_pcvar_num(g_cvar_save_limit);
  361. if(limit && packs > limit) {
  362. packs = limit;
  363. }
  364.  
  365. new szQuery[200];
  366. format(szQuery, 199, "REPLACE INTO %s (auth,passwd,amount,timestamp) VALUES('%s', '%s', '%d','%d');", g_SqlTable, g_szAuth[id], g_password[id], packs, get_systime());
  367. SQL_QueryAndIgnore(g_Sql, szQuery);
  368. }
  369.  
  370. public DeathMsg() {
  371. if(!get_pcvar_num(g_cvar_enable) || !get_pcvar_num(cvar_achvs)) return PLUGIN_CONTINUE;
  372.  
  373. new killer = read_data(1);
  374. if(!is_loggin(killer)) return PLUGIN_CONTINUE;
  375. new victim = read_data(2);
  376.  
  377. g_zmkillcount[victim] = 0
  378. g_zmkillercount[victim] = 0
  379.  
  380. if(zp_is_nemesis_round()) {
  381. if(g_nemelevel[killer] < get_pcvar_num(cvar_terminator_maxlvl) && zp_get_user_nemesis(victim) && !zp_get_user_zombie(killer)) {
  382.  
  383. g_nemelevel[killer]++;
  384.  
  385. give_present(killer, get_pcvar_num(cvar_terminator_multi));
  386. colorChat(0, CHATCOLOR_GREY, "[Zombie Blood]^1 Player^4 %s^1 reached^3 Terminator Level:^1 %i^1 and got^3 %i^1 Ammopacks!", g_szAuth[killer], g_nemelevel[killer], get_pcvar_num(cvar_terminator_multi));
  387. }
  388. return PLUGIN_CONTINUE;
  389. }
  390.  
  391. if(zp_get_user_zombie(killer) && g_zmkiller[killer] <get_pcvar_num(cvar_zmkiller_maxlvl) && !zp_get_user_zombie(victim)) {
  392. g_zmkillercount[killer]++;
  393. showStats(killer, 3);
  394. colorChat(killer, CHATCOLOR_GREY, "[Zombie blood ]^3 Killstreak Zombiekiller:^1 %i", g_zmkillercount[killer]);
  395.  
  396. if(g_zmkillercount[killer] >= (g_zmkiller[killer] + 1) * 5) {
  397.  
  398. g_zmkiller[killer]++;
  399. g_zmkillercount[killer] = 0;
  400.  
  401. give_present(killer, g_zmkiller[killer] * get_pcvar_num(cvar_zmkiller_multi));
  402. colorChat(0, CHATCOLOR_GREY, "[Zombie blood]^1 Player^4 %s^1 reached^3 Zombie Killer Level:^1 %i^1 and got^3 %i^1 Ammopacks!", g_szAuth[killer], g_zmkiller[killer], g_zmkiller[killer]*get_pcvar_num(cvar_zmkiller_multi));
  403. }
  404. }
  405.  
  406. if(zp_get_user_zombie(victim) && g_hunterlevel[killer] < get_pcvar_num(cvar_hunter_maxlvl) && !zp_get_user_survivor(killer)) {
  407. g_killcount[killer]++;
  408. showStats(killer, 1);
  409. colorChat(killer, CHATCOLOR_GREY, "[Zombie blood]^3 Killstreak Humanhunter:^1 %i", g_killcount[killer]);
  410.  
  411. if(g_killcount[killer] >= (g_hunterlevel[killer] + 1) * 5) {
  412.  
  413. g_hunterlevel[killer]++;
  414. g_killcount[killer] = 0;
  415.  
  416. give_present(killer, g_hunterlevel[killer]*get_pcvar_num(cvar_hunter_multi));
  417. colorChat(0, CHATCOLOR_GREY, "[Zombie Blood]^1 Player^4 %s^1 reached^3 Human Hunter Level:^1 %i^1 and got^3 %i^1 Ammopacks!", g_szAuth[killer], g_hunterlevel[killer], g_hunterlevel[killer]*get_pcvar_num(cvar_hunter_multi));
  418. }
  419. }
  420. return PLUGIN_CONTINUE;
  421. }
  422.  
  423. public zp_user_infected_post(id, infector, nemesis) {
  424. if(!get_pcvar_num(g_cvar_enable) || !get_pcvar_num(cvar_achvs)) return PLUGIN_CONTINUE;
  425.  
  426. g_killcount[id] = 0;
  427.  
  428. if(g_zmhunterlevel[infector] < get_pcvar_num(cvar_zombiehunter_maxlvl) && is_loggin(infector) && zp_get_user_zombie(infector)) {
  429. g_zmkillcount[infector]++;
  430. showStats(infector, 2);
  431. colorChat(infector, CHATCOLOR_GREY, "[Zombieblood]^3 Killstreak Zombiehunter:^1 %i", g_zmkillcount[infector]);
  432.  
  433. if(g_zmkillcount[infector] >= (g_zmhunterlevel[infector] + 1) * 5) {
  434.  
  435. g_zmhunterlevel[infector]++;
  436. g_zmkillcount[infector] = 0;
  437.  
  438. give_present(infector, (g_zmhunterlevel[infector] + 1) * get_pcvar_num(cvar_zombiehunter_multi));
  439. colorChat(0, CHATCOLOR_GREY, "[Zombie blood]^1 Player^4 %s^1 reached^3 Zombie Hunter Level:^1 %i^1 and got^3 %i^1 Ammopacks!", g_szAuth[infector], g_zmhunterlevel[infector] + 1, (g_zmhunterlevel[infector] + 1) * get_pcvar_num(cvar_zombiehunter_multi));
  440. }
  441. }
  442. return PLUGIN_CONTINUE;
  443. }
  444.  
  445. public give_present(id, amout) {
  446. new curaps;
  447.  
  448. if(get_pcvar_num(g_cvar_enable) == 2)
  449. {
  450. curaps = zp_get_user_ammo_packs(id);
  451. zp_set_user_ammo_packs(id,curaps+amout);
  452. }
  453. else
  454. {
  455. g_BankSql[id] += amout;
  456. curaps = g_BankSql[id];
  457. }
  458.  
  459. colorChat(id, CHATCOLOR_GREY, "[Zombie blood]^1 You have now^3 %i^1 Ammopacks in your^3 Bank^1!", curaps+amout);
  460. }
  461.  
  462. public showStats(id, mode) {
  463. new text[200];
  464.  
  465. switch(mode) {
  466. case 1: {formatex(text, charsmax(text), "Human Hunter: %i / %i", g_killcount[id], (g_hunterlevel[id] + 1) * 5);}
  467. case 2: {formatex(text, charsmax(text), "Zombie Hunter: %i / %i", g_zmkillcount[id], (g_zmhunterlevel[id] + 1) * 5);}
  468. case 3: {formatex(text, charsmax(text), "Zombie Killer: %i / %i", g_zmkillercount[id], (g_zmkiller[id] + 1) * 5);}
  469. }
  470. set_hudmessage(255, 255, 255, 0.02, 0.50, 0, 6.0, 4.0, _, _, -1);
  471. show_hudmessage(id, text);
  472. }
  473.  
  474. public cmdAmmoPacks(id, level, cid){
  475.  
  476. if (!cmd_access(id, level, cid, 2))
  477. return PLUGIN_HANDLED;
  478.  
  479. new target[32];
  480. new count[11],num;
  481.  
  482. read_argv(1,target,31);
  483. read_argv(2,count,10);
  484.  
  485. num = str_to_num(count);
  486.  
  487. if(equal(target, "@ALL")) {
  488. for(new i=1;i<=MAX_PLAYERS;i++) {
  489. if(!is_user_connected(i)) continue;
  490.  
  491. zp_set_user_ammo_packs(i, num);
  492. }
  493. return PLUGIN_HANDLED;
  494. }
  495. else if(equal(target, "@H")) {
  496. for(new i=1;i<=MAX_PLAYERS;i++) {
  497. if(!is_user_connected(i) || zp_get_user_zombie(i)) continue;
  498.  
  499. zp_set_user_ammo_packs(i, num);
  500. }
  501. return PLUGIN_HANDLED;
  502. }
  503. else if(equal(target, "@Z")) {
  504. for(new i=1;i<=MAX_PLAYERS;i++) {
  505. if(!is_user_connected(i) || !zp_get_user_zombie(i)) continue;
  506.  
  507. zp_set_user_ammo_packs(i, num);
  508. }
  509. return PLUGIN_HANDLED;
  510. }
  511.  
  512. new player = cmd_target(id, target, CMDTARGET_ALLOW_SELF);
  513. if(!player) return PLUGIN_HANDLED;
  514.  
  515. zp_set_user_ammo_packs(player, num);
  516.  
  517. return PLUGIN_HANDLED;
  518. }
  519.  
  520. stock GetAuthId(id,Buffer[]="", BufferSize=0,info=false) {
  521. switch(get_pcvar_num(g_cvar_save_type)) {
  522. case 1: get_user_authid(id,Buffer,BufferSize);
  523. case 2: {
  524. new name[32];
  525. if(info) {
  526. get_user_info(id,"name",name,31);
  527. }
  528. else get_user_name(id,name,31);
  529. SQL_QuoteString(g_Sql, Buffer, BufferSize, name);
  530. }
  531. case 3: get_user_ip(id,Buffer,BufferSize,true);
  532. }
  533. }
  534.  
  535. public cmd_donateamount(id) {
  536. if(!is_loggin(id)) return PLUGIN_HANDLED;
  537.  
  538. new packs[13],num;
  539. read_args(packs, 12);
  540. remove_quotes(packs);
  541. num = str_to_num(packs);
  542.  
  543. if(num < 1) {
  544. colorChat(id, CHATCOLOR_RED, "Invalid Amount");
  545. return PLUGIN_HANDLED;
  546. }
  547. new packsi;
  548. if(get_pcvar_num(g_cvar_enable) == 2) packsi = zp_get_user_ammo_packs(id);
  549. else packsi = g_BankSql[id];
  550.  
  551. if(packsi < num) {
  552. colorChat(id, CHATCOLOR_GREY, "[Zombie blood]^4 You dont have %i Ammopacks in your Bank!", num);
  553. return PLUGIN_HANDLED;
  554. }
  555.  
  556. if(get_user_userid(g_DonateTo[id]) == -1) {
  557. return PLUGIN_HANDLED;
  558. }
  559.  
  560. new name[32],to_name[32];
  561. get_user_name(id,name,31);
  562. get_user_name(g_DonateTo[id],to_name,31);
  563.  
  564. if(get_pcvar_num(g_cvar_enable) == 2)
  565. zp_set_user_ammo_packs(id,zp_get_user_ammo_packs(id)-num);
  566. else g_BankSql[id] -= num;
  567. new nums;
  568. if(is_loggin(g_DonateTo[id]) && get_pcvar_num(g_cvar_enable) == 1) {
  569. g_BankSql[g_DonateTo[id]] += num;
  570. nums = g_BankSql[id];
  571. }
  572. else {
  573. zp_set_user_ammo_packs(g_DonateTo[id],zp_get_user_ammo_packs(g_DonateTo[id])+num);
  574. nums = zp_get_user_ammo_packs(id);
  575. }
  576.  
  577. colorChat(id, CHATCOLOR_GREY, "[Zombie blood]^1 You donated^3 %i^1 Ammopacks to^3 %s^1. You now have^3 %i^1 Ammopacks in your Bank", num, to_name, nums);
  578. colorChat(g_DonateTo[id], CHATCOLOR_GREY, "[Zombie blood]^4 %s^1 donated^3 %i^1 Ammopacks to you.", name, num);
  579. colorChat(0, CHATCOLOR_GREY, "[Zero blood #2]^4 %s^1 donated^3 %i^1 Ammopacks to^4 %s.", name, num, to_name);
  580.  
  581. return PLUGIN_HANDLED;
  582. }
  583.  
  584. public cmd_enterpassword(id) {
  585. if(is_loggin(id)) return PLUGIN_HANDLED;
  586.  
  587. new password[64];
  588. read_args(password, 63);
  589. remove_quotes(password);
  590.  
  591. if(password[0]) {
  592. g_password[id] = password;
  593. g_status[id] = true;
  594. LoadClientBank(id);
  595. return PLUGIN_HANDLED;
  596. }
  597.  
  598. return PLUGIN_HANDLED;
  599. }
  600.  
  601. public cmd_enternewpassword(id) {
  602. if(is_registred(id)) return PLUGIN_HANDLED;
  603.  
  604. new password[64];
  605. read_args(password, 63);
  606. remove_quotes(password);
  607.  
  608. if(password[0]) {
  609. g_password[id] = password;
  610. g_loggin[id] = true;
  611. g_registred[id] = true;
  612. SaveClientBank(id);
  613. client_cmd(id,"setinfo _bp ^"%s^";wait;chooseteam",g_password[id]);
  614. colorChat(id, CHATCOLOR_GREY, "[Zombie blood]^4 Account created: %s Password: %s Ammopacks: %d", g_szAuth[id], g_password[id], g_BankSql[id]);
  615. return PLUGIN_HANDLED;
  616. }
  617. else {
  618. client_cmd(id, "messagemode EnterNewPassword");
  619. }
  620.  
  621. colorChat(id, CHATCOLOR_RED, "Enter you new password");
  622.  
  623. return PLUGIN_HANDLED;
  624. }
  625.  
  626. public cmd_enterchangepassword(id) {
  627. if(!is_loggin(id)) return PLUGIN_HANDLED;
  628.  
  629. new password[64];
  630. read_args(password, 63);
  631. remove_quotes(password);
  632.  
  633. if(password[0]) {
  634. g_password[id] = password;
  635. SaveClientBank(id);
  636. client_cmd(id,"setinfo _bp ^"%s^"",g_password[id]);
  637. colorChat(id, CHATCOLOR_GREY, "[Zombie blood]^4 Password changed: %s Password: %s Ammopacks: %d", g_szAuth[id], g_password[id], g_BankSql[id]);
  638. return PLUGIN_HANDLED;
  639. }
  640. else {
  641. client_cmd(id, "messagemode EnterNewChangePassword");
  642. }
  643.  
  644. colorChat(id, CHATCOLOR_RED, "Enter you new password");
  645.  
  646. return PLUGIN_HANDLED;
  647. }
  648.  
  649. public cmd_takeamout(id,all) {
  650. if(!is_loggin(id) || get_pcvar_num(g_cvar_enable) == 2) return PLUGIN_HANDLED;
  651.  
  652. new amout[13];
  653. read_args(amout, 12);
  654. remove_quotes(amout);
  655.  
  656. new want = str_to_num(amout);
  657.  
  658. if(all) want = g_BankSql[id];
  659.  
  660. if(want > 0) {
  661. if(want > g_BankSql[id]) {
  662. cmdBankMenu(id);
  663. colorChat(id, CHATCOLOR_GREEN, "You dont have %i Ammmopacks in your Bank!", want);
  664. }
  665. else {
  666. zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + want)
  667.  
  668. colorChat(id, CHATCOLOR_GREEN, "You just took %i Ammopacks from your bank!", want);
  669.  
  670. g_BankSql[id] -= want;
  671. }
  672. }
  673. else {
  674. cmdBankMenu(id);
  675. colorChat(id, CHATCOLOR_RED, "Invalid Amout!");
  676. }
  677.  
  678. return PLUGIN_HANDLED;
  679. }
  680.  
  681. public cmd_saveamout(id,all) {
  682. if(!is_loggin(id) || get_pcvar_num(g_cvar_enable) == 2) return PLUGIN_HANDLED;
  683.  
  684. new amout[13];
  685. read_args(amout, 12);
  686. remove_quotes(amout);
  687.  
  688. new want = str_to_num(amout);
  689.  
  690. if(all) want = zp_get_user_ammo_packs(id);
  691.  
  692. if(want > 0) {
  693. if(want > zp_get_user_ammo_packs(id)) {
  694. cmdBankMenu(id);
  695. colorChat(id, CHATCOLOR_RED, "You dont have %i Ammmopacks!", want);
  696. }
  697. else {
  698. g_BankSql[id] += want;
  699. zp_set_user_ammo_packs(id,zp_get_user_ammo_packs(id)-want);
  700. colorChat(id, CHATCOLOR_GREY, "[Zombie blood]^4 %i Ammopacks saved! Currently Ammopacks in Bank: %i", want, g_BankSql[id]);
  701. }
  702. }
  703. else {
  704. cmdBankMenu(id)
  705. colorChat(id, CHATCOLOR_RED, "Invalid Amount!");
  706. }
  707. return PLUGIN_HANDLED;
  708. }
  709.  
  710. public cmdMainMenu(id) {
  711. displayMainMenu(id);
  712. return PLUGIN_CONTINUE;
  713. }
  714.  
  715. public cmdBankMenu(id) {
  716. if(is_loggin(id) && get_pcvar_num(g_cvar_enable) == 1) displayMainMenuAmmo(id);
  717. return PLUGIN_CONTINUE;
  718. }
  719.  
  720. public cmdDonateMenu(id) {
  721. if(is_loggin(id)) displayDonateMenu(id,g_menuPosition[id] = 0);
  722. return PLUGIN_CONTINUE;
  723. }
  724.  
  725. public clcmd_changeteam(id) {
  726. if(!get_pcvar_num(g_cvar_enable)) return PLUGIN_CONTINUE;
  727.  
  728. if(!is_loggin(id)) {
  729. displayMainMenu(id);
  730.  
  731. return PLUGIN_HANDLED;
  732. }
  733.  
  734. return PLUGIN_CONTINUE;
  735. }
  736.  
  737. public archivments_menu(id) {
  738. if(!get_pcvar_num(g_cvar_enable) || !get_pcvar_num(cvar_achvs)) return PLUGIN_HANDLED;
  739.  
  740. if(is_loggin(id)) {
  741. new title[80]; formatex(title, 79, "\rAchievements\w [\y%s\w]", g_szAuth[id])
  742.  
  743. new menu5 = menu_create(title, "handler_archs")
  744.  
  745. new humanhtitle[200]
  746.  
  747. if(g_hunterlevel[id] < get_pcvar_num(cvar_hunter_maxlvl))
  748. formatex(humanhtitle, 199, "\wHuman Hunter\y Level %i - \rNext Level: %i\w (%i APs)^n\y Kill %i Zombies in a Row!^n", g_hunterlevel[id], g_hunterlevel[id] + 1, (g_hunterlevel[id] + 1) * get_pcvar_num(cvar_hunter_multi), (g_hunterlevel[id] + 1) * 5)
  749. else
  750. formatex(humanhtitle, 199, "\wHuman Hunter\y Level %i - \rFULL^n", g_hunterlevel[id])
  751.  
  752. menu_additem(menu5, humanhtitle , "1")
  753.  
  754. new zmhtitle[200]
  755.  
  756. if(g_zmhunterlevel[id] < get_pcvar_num(cvar_zombiehunter_maxlvl))
  757. formatex(zmhtitle, 199, "\wZombie Hunter\y Level %i - \rNext Level: %i\w (%i APs)^n\y Infect %i Humans in a Row!^n", g_zmhunterlevel[id], g_zmhunterlevel[id] + 1, (g_zmhunterlevel[id] + 1) * get_pcvar_num(cvar_zombiehunter_multi), (g_zmhunterlevel[id] + 1) * 5)
  758. else
  759. formatex(zmhtitle, 199, "\wZombie Hunter\y Level %i - \rFULL^n", g_zmhunterlevel[id])
  760.  
  761. menu_additem(menu5, zmhtitle , "2")
  762.  
  763. new zmkillertitle[200]
  764.  
  765. if(g_zmkiller[id] < get_pcvar_num(cvar_zmkiller_maxlvl))
  766. formatex(zmkillertitle, 199, "\wZombie Killer\y Level %i - \rNext Level: %i\w (%i APs)^n\y Kill %i Humans in a Swarm/Plague Round!^n", g_zmkiller[id], g_zmkiller[id] + 1, (g_zmkiller[id] + 1) * get_pcvar_num(cvar_zmkiller_multi), (g_zmkiller[id] + 1) * 3)
  767. else
  768. formatex(zmkillertitle, 199, "\wZombie Killer\y Level %i - \rFULL^n", g_zmkiller[id])
  769.  
  770. menu_additem(menu5, zmkillertitle, "3")
  771.  
  772. new nemetitle[200]
  773.  
  774. if(g_nemelevel[id] < get_pcvar_num(cvar_terminator_maxlvl))
  775. formatex(nemetitle, 199, "\wTerminator\y Level %i - \rNext Level: %i\w (%i APs)^n\y Kill a Nemesis!^n", g_nemelevel[id], g_nemelevel[id] + 1, get_pcvar_num(cvar_terminator_multi))
  776. else
  777. formatex(nemetitle, 199, "\wTerminator\y Level %i - \rFULL^n", g_nemelevel[id]);
  778.  
  779. menu_additem(menu5, nemetitle, "4");
  780.  
  781. menu_display(id, menu5, 0);
  782. }
  783. else {
  784. displayMainMenu(id);
  785. }
  786.  
  787. return PLUGIN_CONTINUE;
  788. }
  789.  
  790. public handler_archs(id, menu5, item) {
  791. if(!get_pcvar_num(g_cvar_enable) || !get_pcvar_num(cvar_achvs)) return PLUGIN_HANDLED;
  792.  
  793. new data[6], iName[64], access, callback
  794. menu_item_getinfo(menu5, item, access, data, 5, iName, 63, callback)
  795.  
  796. new key = str_to_num(data)
  797.  
  798. switch(key) {
  799. case 1:
  800. {
  801. if(g_hunterlevel[id] >= 4)
  802. return PLUGIN_HANDLED
  803.  
  804. colorChat(id, CHATCOLOR_GREY, "[Zombie Blood]^1 Kill %i Zombies in a Row to get %i Ammopacks!", (g_hunterlevel[id] + 1) * 5, (g_hunterlevel[id] + 1) * get_pcvar_num(cvar_hunter_multi))
  805. }
  806. case 2:
  807. {
  808. if(g_zmhunterlevel[id] >= 2)
  809. return PLUGIN_HANDLED
  810. colorChat(id, CHATCOLOR_GREY, "[Zombie Blood]^1 Infect %i Humans in a Row to get %i Ammopacks!", (g_zmhunterlevel[id] + 1) * 5, (g_zmhunterlevel[id] + 1) * get_pcvar_num(cvar_zombiehunter_multi))
  811. }
  812. case 3:
  813. {
  814. if(g_zmkiller[id] >= 3)
  815. return PLUGIN_HANDLED
  816. colorChat(id, CHATCOLOR_GREY, "[Zombie Blood]^1 Kill %i Humans in a Swarm/Plague Round to get %i Ammopacks!", (g_zmkiller[id] + 1) * 3, (g_zmkiller[id] + 1) * get_pcvar_num(cvar_zmkiller_multi))
  817. }
  818. case 4:
  819. {
  820. if(g_zmkiller[id] >= 1)
  821. return PLUGIN_HANDLED
  822. colorChat(id, CHATCOLOR_GREY, "[Zombie Blood]^1 Kill a Nemesis to get %i Ammopacks!", get_pcvar_num(cvar_terminator_multi))
  823. }
  824. }
  825. return PLUGIN_CONTINUE;
  826. }
  827.  
  828. displayMainMenu(id) {
  829. new menuBody[MAX_SIZE+1],len;
  830. new keys = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_5;
  831.  
  832. len = format(menuBody, MAX_SIZE, g_coloredMenus ? "\yRegister System\w^n" : "Register System^n");
  833. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\rNick: \w%s \rStatus: \w%s^n" : "Nick: %s Status: %s^n", g_szAuth[id], (is_registred(id) ? "\dregistred" : "\yunregistred"));
  834.  
  835. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\r1\w. Login^n" : "1. Login^n");
  836. if(!is_loggin(id) && !is_registred(id)) {
  837. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\r2\w. New Account" : "2. New Account");
  838. }
  839. if(/*get_pcvar_num(cvar_allow_change_name) || */get_pcvar_num(cvar_allow_change_password))
  840. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "^n\r3\w. Change^n^n" : "^n2. Change^n^n");
  841. else
  842. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "^n\r3\d. Change^n^n" : "^n2. Change^n^n");
  843. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\r5\w. Help^n^n" : "5. Help^n^n");
  844.  
  845. if(strlen(g_Admins) > 0) len += format(menuBody[len], MAX_SIZE-len, "%s", g_Admins);
  846.  
  847. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "^n^n\r0\w. %L" : "^n^n0. %L", id, "EXIT");
  848. show_menu(id, keys, menuBody, -1, "BankMainMenu");
  849. }
  850.  
  851. displayMainMenuAmmo(id) {
  852. new menuBody[MAX_SIZE+1],len;
  853. new keys = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_4|MENU_KEY_5|MENU_KEY_7;
  854.  
  855. len = format(menuBody, MAX_SIZE, g_coloredMenus ? "\yBank Account: \r%s \yAmmopacks in Bank: \r%d^n" : "Bank Account: %s Ammopacks in Bank: %d^n", g_szAuth[id], g_BankSql[id]);
  856.  
  857. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\r1\w. Take ammo^n" : "1. Take ammo^n");
  858. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\r2\w. Take all^n^n" : "2. Take all^n^n");
  859.  
  860. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\r4\w. Save Ammo^n" : "4. Save Ammo^n");
  861. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\r5\w. Save All^n^n" : "5. Save All^n^n");
  862.  
  863. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\r7\w. Donate Amount^n" : "7. Donate Amout^n");
  864.  
  865. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "^n\r0\w. %L" : "^n0. %L", id, "EXIT");
  866. show_menu(id, keys, menuBody, -1, "BankAmmoMenu");
  867. }
  868.  
  869. displayChangeMenu(id) {
  870. new menuBody[MAX_SIZE+1],name[32],len;
  871. new keys = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2;
  872.  
  873. get_user_name(id,name,31);
  874.  
  875. len = format(menuBody, MAX_SIZE, g_coloredMenus ? "\yRegister System\w^n" : "Register System^n");
  876.  
  877. if(!get_pcvar_num(cvar_allow_change_password) || !is_loggin(id))
  878. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\r1\d. Change Password^n" : "1. Change Password^n");
  879. else
  880. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\r1\w. Change Password^n" : "1. Change Password^n");
  881.  
  882. /*if(!get_pcvar_num(cvar_allow_change_name) || !is_loggin(id))
  883. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\r2\d. Change Name" : "2. Change Name");
  884. else
  885. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\r2\w. Change Name" : "2. Change Name");
  886. */
  887. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "^n^n\r0\w. %L" : "^n^n0. %L", id, "BACK");
  888. show_menu(id, keys, menuBody, -1, "BankChangeMenu");
  889. }
  890.  
  891. displayDonateMenu(id, pos) {
  892. if (pos < 0) return ;
  893.  
  894. get_players(g_menuPlayers[id], g_menuPlayersNum[id])
  895.  
  896. new menuBody[MAX_SIZE+1];
  897. new b = 0;
  898. new i;
  899. new name[32];
  900. new start = pos * 8;
  901.  
  902. if (start >= g_menuPlayersNum[id])
  903. start = pos = g_menuPosition[id] = 0
  904.  
  905. new len = format(menuBody, MAX_SIZE, g_coloredMenus ? "\rChoose A player to Donate:^n" : "Choose A player to Donate:^n", pos + 1, (g_menuPlayersNum[id] / 8 + ((g_menuPlayersNum[id] % 8) ? 1 : 0)))
  906. new end = start + 8
  907. new keys = MENU_KEY_0;
  908.  
  909. if (end > g_menuPlayersNum[id])
  910. end = g_menuPlayersNum[id]
  911.  
  912. for (new a = start; a < end; ++a) {
  913. i = g_menuPlayers[id][a];
  914. get_user_name(i, name, 31);
  915.  
  916. if(i == id) {
  917. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\r%d\d. %s ^n" : "%d. %s^n", ++b, name);
  918. }
  919. else {
  920. keys |= (1<<b);
  921. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\r%d\w. %s ^n" : "%d. %s^n", ++b, name);
  922. }
  923. }
  924.  
  925. if (end != g_menuPlayersNum[id]) {
  926. format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "^n\r9\w. %L...^n\r0\w. %L" : "^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT");
  927. keys |= MENU_KEY_9;
  928. }
  929. else format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "^n\r0\w. %L" : "^n0. %L", id, pos ? "BACK" : "EXIT");
  930.  
  931. show_menu(id, keys, menuBody, -1, "DonateMenu");
  932. }
  933.  
  934. public actionMainMenu(id, key) {
  935. switch (key) {
  936. // 1
  937. case 0: {
  938. if(is_loggin(id)) {
  939. colorChat(id, CHATCOLOR_GREEN, "You already logged in.");
  940. return PLUGIN_HANDLED;
  941. }
  942. colorChat(id, CHATCOLOR_RED, "Enter you password");
  943. client_cmd(id, "messagemode EnterPassword");
  944. }
  945. // 2
  946. case 1: {
  947. if(is_loggin(id) || is_registred(id)) return PLUGIN_HANDLED;
  948.  
  949. colorChat(id, CHATCOLOR_RED, "Enter you new password");
  950. client_cmd(id, "messagemode EnterNewPassword");
  951. }
  952. // 3
  953. case 2: {
  954. displayChangeMenu(id);
  955. }
  956. // 5
  957. case 4: {
  958. new motd_file[128];
  959. get_pcvar_string(cvar_motd_file,motd_file,127);
  960. show_motd(id, motd_file);
  961. }
  962. }
  963.  
  964. return PLUGIN_HANDLED;
  965. }
  966.  
  967. public actionAmmoMenu(id, key) {
  968. if(!is_loggin(id)) return PLUGIN_HANDLED;
  969.  
  970. switch (key) {
  971. // 1
  972. case 0: {
  973. client_cmd(id, "messagemode TakeAmount");
  974. }
  975. // 2
  976. case 1: {
  977. cmd_takeamout(id,true);
  978. }
  979. // 4
  980. case 3: {
  981. client_cmd(id, "messagemode SaveAmount");
  982. }
  983. // 5
  984. case 4: {
  985. cmd_saveamout(id,true);
  986. }
  987. // 7
  988. case 6: {
  989. displayDonateMenu(id, g_menuPosition[id] = 0);
  990. }
  991. }
  992.  
  993. return PLUGIN_HANDLED;
  994. }
  995.  
  996. public actionChangeMenu(id, key) {
  997. switch (key) {
  998. // 1
  999. case 0: {
  1000. if(!get_pcvar_num(cvar_allow_change_password) || !is_loggin(id)) return PLUGIN_HANDLED;
  1001. client_cmd(id, "messagemode EnterNewChangePassword");
  1002. }
  1003. // 2
  1004. //case 1: {
  1005. // if(!get_pcvar_num(cvar_allow_change_name) || !is_loggin(id)) return PLUGIN_HANDLED;
  1006. //}
  1007. case 9: {
  1008. displayMainMenu(id);
  1009. }
  1010. }
  1011.  
  1012. return PLUGIN_HANDLED;
  1013. }
  1014.  
  1015. public actionDonateMenu(id, key) {
  1016. switch (key) {
  1017. case 8: displayDonateMenu(id, ++g_menuPosition[id]);
  1018. case 9: displayDonateMenu(id, --g_menuPosition[id]);
  1019. default: {
  1020. new player = g_menuPlayers[id][g_menuPosition[id] * 8 + key];
  1021.  
  1022. g_DonateTo[id] = player;
  1023.  
  1024. client_cmd(id, "messagemode DonateAmount");
  1025. }
  1026. }
  1027. return PLUGIN_HANDLED;
  1028. }
  1029.  
  1030. public is_registred(id) {
  1031. return g_registred[id];
  1032. }
  1033.  
  1034. public is_loggin(id) {
  1035. return g_loggin[id];
  1036. }
  1037.  

_________________
****


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: zp_bank_register
HozzászólásElküldve: 2013.04.18. 18:16 
Offline
Jómunkásember
Avatar

Csatlakozott: 2013.03.07. 18:39
Hozzászólások: 352
Megköszönt másnak: 3 alkalommal
Megköszönték neki: 38 alkalommal
Helló.
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fakemeta>
  4. #include <sqlx>
  5. #include <zombieplague>
  6. #include <colorChat>
  7. #include <cstrike>
  8.  
  9. #define MAX_SIZE 2047
  10. #define MAX_PLAYERS 32
  11.  
  12. new PLUGIN_NAME[] = "[ZP]Bank & Register";
  13. new PLUGIN_VERSION[] = "0.1";
  14. new PLUGIN_AUTHOR[] = "Epmak";
  15. new PLUGIN_PREFIX[] = "[ZP]";
  16.  
  17. new g_hunterlevel[MAX_PLAYERS+1], g_killcount[MAX_PLAYERS+1], g_zmhunterlevel[MAX_PLAYERS+1], g_zmkillcount[MAX_PLAYERS+1], g_zmkiller[MAX_PLAYERS+1], g_zmkillercount[MAX_PLAYERS+1], g_nemelevel[MAX_PLAYERS+1];
  18.  
  19. new cvar_hunter_multi, cvar_hunter_maxlvl, cvar_zombiehunter_multi,cvar_zombiehunter_maxlvl, cvar_terminator_multi,cvar_terminator_maxlvl, cvar_zmkiller_multi,cvar_zmkiller_maxlvl;
  20. new cvar_achvs,g_cvar_enable,g_cvar_annonce,g_cvar_save_limit,g_cvar_save_type,g_cvar_save_days,g_cvar_block_name_change,cvar_motd_file,/*cvar_allow_change_name,*/ cvar_allow_change_password,g_cvar_startedammo;
  21. new g_BankSql[MAX_PLAYERS+1], bool:g_BankSqlOpened[MAX_PLAYERS+1];
  22. new Handle:g_Sql = Empty_Handle,Handle:g_StdTupleBank = Empty_Handle;
  23. new g_SqlTable[32], g_configsDir[128], g_szAuth[MAX_PLAYERS+1][32] ,g_DonateTo[MAX_PLAYERS+1];
  24. new g_coloredMenus,g_menuPosition[MAX_PLAYERS+1],g_menuPlayers[MAX_PLAYERS+1][32], g_menuPlayersNum[MAX_PLAYERS+1];
  25. new g_Admins[MAX_SIZE+1];
  26. new bool:g_registred[MAX_PLAYERS+1], bool:g_loggin[MAX_PLAYERS+1], g_password[MAX_PLAYERS+1][64], bool:g_status[MAX_PLAYERS+1];
  27.  
  28. public plugin_init()
  29. {
  30. register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
  31.  
  32. register_dictionary("common.txt");
  33. register_dictionary("zp_bank_sql_new.txt");
  34.  
  35. register_clcmd("say register", "cmdMainMenu");
  36. register_clcmd("say /register", "cmdMainMenu");
  37.  
  38. register_clcmd("say login", "cmdMainMenu");
  39. register_clcmd("say /login", "cmdMainMenu");
  40.  
  41. register_clcmd("say bank", "cmdBankMenu");
  42. register_clcmd("say /bank", "cmdBankMenu");
  43.  
  44. register_clcmd("say donate", "cmdDonateMenu");
  45. register_clcmd("say /donate", "cmdDonateMenu");
  46.  
  47. register_clcmd("say zpmenu", "clcmd_changeteam");
  48. register_clcmd("say /zpmenu", "clcmd_changeteam");
  49.  
  50. register_clcmd("say achievements", "archivments_menu");
  51. register_clcmd("say /achievements", "archivments_menu");
  52.  
  53. register_clcmd("say achvs", "archivments_menu");
  54. register_clcmd("say /achvs", "archivments_menu");
  55.  
  56. register_clcmd("chooseteam", "clcmd_changeteam")
  57. register_clcmd("jointeam", "clcmd_changeteam");
  58.  
  59. g_cvar_enable = register_cvar("zp_bank_sql", "1");
  60. cvar_achvs = register_cvar("zp_bank_achvs", "1");
  61. g_cvar_annonce = register_cvar("zp_bank_annonce", "360.0");
  62. g_cvar_save_limit = register_cvar("zp_bank_sql_save_limit", "2000");
  63. g_cvar_save_type = register_cvar("zp_bank_sql_save_type", "2");
  64. g_cvar_save_days = register_cvar("zp_bank_sql_save_days", "16");
  65. g_cvar_block_name_change = register_cvar("zp_bank_sql_block_name_change", "1");
  66.  
  67. cvar_hunter_multi = register_cvar("zp_achvs_hunter_aprevard", "10");
  68. cvar_hunter_maxlvl = register_cvar("zp_achvs_hunter_maxlvl", "120");
  69. cvar_zombiehunter_multi = register_cvar("zp_achvs_zmhunter_aprevard", "10");
  70. cvar_zombiehunter_maxlvl = register_cvar("zp_achvs_zmhunter_maxlvl", "4");
  71. cvar_terminator_multi = register_cvar("zp_achvs_terminator_aprevard", "10");
  72. cvar_terminator_maxlvl = register_cvar("zp_achvs_terminator_maxlvl", "1");
  73. cvar_zmkiller_multi = register_cvar("zp_achvs_zmkiller_aprevard", "10");
  74. cvar_zmkiller_maxlvl = register_cvar("zp_achvs_zmkiller_maxlvl", "3");
  75.  
  76. //cvar_allow_change_name = register_cvar("zp_bank_register_allow_change_name","1");
  77. cvar_allow_change_password = register_cvar("zp_bank_register_allow_change_password","1");
  78. cvar_motd_file = register_cvar("zp_bank_register_motd_file","zp_bank_register_help.txt");
  79.  
  80. register_clcmd("EnterPassword", "cmd_enterpassword");
  81. register_clcmd("EnterNewPassword", "cmd_enternewpassword");
  82. register_clcmd("TakeAmount", "cmd_takeamout");
  83. register_clcmd("SaveAmount", "cmd_saveamout");
  84. register_clcmd("EnterNewChangePassword", "cmd_enterchangepassword");
  85. register_clcmd("DonateAmount", "cmd_donateamount");
  86.  
  87. register_clcmd("zp_ammo","cmdAmmoPacks", ADMIN_IMMUNITY, "<name or @ALL,@H,@Z> <number>");
  88.  
  89. register_menucmd(register_menuid("BankMainMenu"), 1023, "actionMainMenu");
  90. register_menucmd(register_menuid("BankAmmoMenu"), 1023, "actionAmmoMenu");
  91. register_menucmd(register_menuid("ChangeMenu"), 1023, "actionChangeMenu");
  92. register_menucmd(register_menuid("DonateMenu"), 1023, "actionDonateMenu")
  93.  
  94. register_forward(FM_ClientUserInfoChanged, "fwClientUserInfoChanged");
  95.  
  96. register_event("DeathMsg", "DeathMsg", "a");
  97.  
  98. register_srvcmd("zp_bank_connect", "DataBase_Connect");
  99. register_cvar("zp_bank_sql_host", "127.0.0.1");
  100. register_cvar("zp_bank_sql_user", "root");
  101. register_cvar("zp_bank_sql_pass", "");
  102. register_cvar("zp_bank_sql_db", "amxx");
  103. register_cvar("zp_bank_sql_type", "mysql");
  104. register_cvar("zp_bank_sql_table", "zp_bank");
  105.  
  106. g_coloredMenus = colored_menus();
  107.  
  108. get_configsdir(g_configsDir, 127);
  109.  
  110. server_cmd("exec %s/zp_bank_sql_new.cfg", g_configsDir);
  111. server_cmd("zp_bank_connect");
  112. }
  113.  
  114. public plugin_cfg() {
  115. new admin_file[128];
  116. format(admin_file, 127, "%s/zp_bank_admins.ini", g_configsDir);
  117.  
  118. new fp_File = fopen(admin_file, "r");
  119. if(fp_File) {
  120. fgets(fp_File, g_Admins, MAX_SIZE);
  121. replace_all(g_Admins, MAX_SIZE, "&n", "^n");
  122. }
  123. fclose(fp_File);
  124.  
  125. g_cvar_startedammo = get_cvar_pointer("zp_starting_ammo_packs");
  126. }
  127.  
  128. public plugin_end() {
  129. if(g_Sql != Empty_Handle) SQL_FreeHandle(g_Sql);
  130. if(g_StdTupleBank != Empty_Handle) SQL_FreeHandle(g_StdTupleBank);
  131. }
  132.  
  133. public client_authorized(id) {
  134. if (!get_pcvar_num(g_cvar_enable) || g_Sql == Empty_Handle)
  135. return ;
  136.  
  137. get_user_info(id,"_bp",g_password[id],63);
  138. g_loggin[id] = false;
  139. g_registred[id] = false;
  140.  
  141. GetAuthId(id,g_szAuth[id],31);
  142.  
  143. g_BankSql[id] = 0;
  144. g_BankSqlOpened[id] = false;
  145.  
  146. LoadClientBank(id);
  147. }
  148.  
  149. public client_putinserver(id) {
  150. g_BankSqlOpened[id] = true;
  151.  
  152. if(!is_loggin(id)) set_task(0.3, "cmdMainMenu", id);
  153.  
  154. if(get_pcvar_num(g_cvar_enable) == 2) {
  155. zp_set_user_ammo_packs(id,g_BankSql[id]);
  156. }
  157. }
  158.  
  159. public client_disconnect(id) {
  160. if (!get_pcvar_num(g_cvar_enable) || g_Sql == Empty_Handle)
  161. return ;
  162.  
  163. if(g_BankSqlOpened[id] == true && is_loggin(id))
  164. SaveClientBank(id);
  165.  
  166. g_killcount[id] = 0;
  167. g_hunterlevel[id] = 0;
  168.  
  169. g_zmhunterlevel[id] = 0;
  170. g_zmkillcount[id] = 0;
  171.  
  172. g_zmkiller[id] = 0;
  173. g_zmkillercount[id] = 0;
  174.  
  175. g_nemelevel[id] = 0;
  176.  
  177. g_BankSqlOpened[id] = false;
  178. }
  179.  
  180. public print_annonce(id) {
  181. if (!get_pcvar_num(g_cvar_enable) || g_Sql == Empty_Handle)
  182. return ;
  183.  
  184. if(is_loggin(id))
  185. {
  186. colorChat(id, CHATCOLOR_GREY, "[Zombie Blood]^4 Ird be /donate ha atszeretnel masiknak adni loszercsomagot!")
  187. }
  188. else
  189. {
  190. colorChat(id, CHATCOLOR_GREY, "[Zombie Blood]^4 Ird be: /login a bejelentkezeshez!")
  191. }
  192.  
  193. set_task(30.0, "more_spam")
  194. }
  195.  
  196. public more_spam()
  197. {
  198. colorChat(0, CHATCOLOR_GREY, "Te mentetted az osszes loszercsomagod!")
  199. }
  200.  
  201. public DataBase_Connect() {
  202. if(!get_pcvar_num(g_cvar_enable)) return ;
  203.  
  204. if(get_pcvar_num(g_cvar_annonce)) set_task(get_pcvar_float(g_cvar_annonce), "print_annonce",_,_,_,"b");
  205.  
  206. new host[64], user[32], pass[32], db[128];
  207. new get_type[12], set_type[12];
  208. new error[128], errno;
  209.  
  210. get_cvar_string("zp_bank_sql_host", host, 63);
  211. get_cvar_string("zp_bank_sql_user", user, 31);
  212. get_cvar_string("zp_bank_sql_pass", pass, 31);
  213. get_cvar_string("zp_bank_sql_type", set_type, 11);
  214. get_cvar_string("zp_bank_sql_db", db, 127);
  215. get_cvar_string("zp_bank_sql_table", g_SqlTable, 31);
  216.  
  217. if(is_module_loaded(set_type) == -1) {
  218. server_print("%s error: module '%s' not loaded.^r^n%s Add line %s to %s/modules.ini and restart server", PLUGIN_PREFIX, set_type, PLUGIN_PREFIX, set_type, g_configsDir);
  219. return ;
  220. }
  221.  
  222. SQL_GetAffinity(get_type, 12);
  223.  
  224. if (!equali(get_type, set_type))
  225. if (!SQL_SetAffinity(set_type))
  226. log_amx("Failed to set affinity from %s to %s.", get_type, set_type);
  227.  
  228. g_StdTupleBank = SQL_MakeDbTuple(host, user, pass, db);
  229.  
  230. g_Sql = SQL_Connect(g_StdTupleBank, errno, error, 127);
  231.  
  232. if (g_Sql == Empty_Handle) {
  233. server_print("%s SQL error: '%s'", PLUGIN_PREFIX, error);
  234. return ;
  235. }
  236.  
  237. SQL_QueryAndIgnore(g_Sql, "SET NAMES utf8");
  238.  
  239. if (equali(set_type, "sqlite") && !sqlite_TableExists(g_Sql, g_SqlTable)) SQL_QueryAndIgnore(g_Sql, "CREATE TABLE %s (auth VARCHAR(36) NOT NULL PRIMARY KEY, passwd VARCHAR(64) NOT NULL, amount INT(10) NOT NULL DEFAULT 0,timestamp INT(10) NOT NULL DEFAULT 0);",g_SqlTable);
  240. else if (equali(set_type, "mysql")) SQL_QueryAndIgnore(g_Sql,"CREATE TABLE IF NOT EXISTS `%s` (auth VARCHAR(36) NOT NULL PRIMARY KEY, passwd VARCHAR(64), amount INT(10) UNSIGNED NOT NULL DEFAULT 0, timestamp INT(10) UNSIGNED NOT NULL DEFAULT 0) ENGINE=MyISAM DEFAULT CHARSET=utf8;", g_SqlTable);
  241.  
  242. CleanDataBase();
  243.  
  244. server_print("%s connected to: '%s://%s:****@%s/%s/%s'",PLUGIN_PREFIX, set_type, user, host, db, g_SqlTable);
  245. }
  246.  
  247. public CleanDataBase() {
  248. if (!get_pcvar_num(g_cvar_save_days)) return ;
  249.  
  250. new curTime = get_systime();
  251. curTime -= ((get_pcvar_num(g_cvar_save_days) * 24) * 3600);
  252.  
  253. SQL_QueryAndIgnore(g_Sql,"DELETE FROM %s WHERE timestamp < '%d';", g_SqlTable, curTime);
  254. }
  255.  
  256. public fwClientUserInfoChanged(id, buffer) {
  257. if (!get_pcvar_num(g_cvar_enable) || !is_user_connected(id))
  258. return FMRES_IGNORED;
  259.  
  260. new name[32], val[32], name_1[] = "name";
  261. get_user_name(id, name, 31);
  262. engfunc(EngFunc_InfoKeyValue, buffer, name_1, val, 31);
  263. if (equal(val, name))
  264. return FMRES_IGNORED;
  265.  
  266. if(get_pcvar_num(g_cvar_block_name_change)) {
  267. engfunc(EngFunc_SetClientKeyValue, id, buffer, name_1, name);
  268. client_cmd(id, "name ^"%s^"; setinfo name ^"%s^"", name, name);
  269. console_print(id, "%L", id ,"NO_NAME_CHANGE");
  270. }
  271. else {
  272. g_loggin[id] = false;
  273. g_registred[id] = false;
  274. GetAuthId(id,g_szAuth[id],31,true);
  275. LoadClientBank(id);
  276. return FMRES_IGNORED;
  277. }
  278.  
  279. return FMRES_SUPERCEDE;
  280. }
  281.  
  282. public LoadClientBank(id) {
  283. if (g_StdTupleBank == Empty_Handle) return ;
  284.  
  285. new szQuery[120];
  286. format(szQuery, 119,"SELECT * FROM %s WHERE auth='%s';", g_SqlTable, g_szAuth[id]);
  287.  
  288. new szData[2];
  289. szData[0] = id;
  290. szData[1] = get_user_userid(id);
  291.  
  292. SQL_ThreadQuery(g_StdTupleBank, "LoadClient_QueryHandler", szQuery, szData, 2);
  293. }
  294.  
  295. public LoadClient_QueryHandler(iFailState, Handle:hQuery, szError[], iErrnum, szData[], iSize, Float:fQueueTime) {
  296. if(iFailState != TQUERY_SUCCESS) {
  297. log_amx("%s SQL Error #%d - %s", PLUGIN_PREFIX, iErrnum, szError);
  298. return ;
  299. }
  300.  
  301. new id = szData[0];
  302.  
  303. if (szData[1] != get_user_userid(id))
  304. return ;
  305.  
  306. new Password[64];
  307. new packs = get_pcvar_num(g_cvar_startedammo);
  308. if(SQL_NumResults(hQuery)) {
  309. SQL_ReadResult(hQuery, SQL_FieldNameToNum(hQuery, "passwd"), Password, sizeof(Password)-1);
  310.  
  311. if (equal(g_password[id], Password)) {
  312. g_loggin[id] = true;
  313. packs = SQL_ReadResult(hQuery, SQL_FieldNameToNum(hQuery, "amount"));
  314. new max_loops = 5;
  315. while(--max_loops) {
  316. client_cmd(id,"setinfo _bp ^"%s^"",g_password[id]);
  317. }
  318. }
  319. g_registred[id] = true;
  320. }
  321. else {
  322. g_registred[id] = false;
  323. cmdMainMenu(id);
  324. }
  325.  
  326. if(g_status[id] == true) {
  327. if(g_loggin[id] == true) {
  328. if(is_user_connected(id)) colorChat(id, CHATCOLOR_GREY, "[Zombie Blood]^4 Udvozlunk! Te bejelentkeztel %s.", g_szAuth[id]);
  329. new max_loops = 5;
  330. while(--max_loops) {
  331. client_cmd(id,"setinfo _bp ^"%s^";wait;chooseteam",g_password[id]);
  332. }
  333. g_hunterlevel[id] = 0;
  334. g_zmhunterlevel[id] = 0;
  335. g_zmkiller[id] = 0;
  336. g_nemelevel[id] = 0;
  337. }
  338. else {
  339. if(is_user_connected(id)) colorChat(id, CHATCOLOR_GREY, "[Zombie Blood]^4 Hibas jelszo! Probald ujra, lehet elirtad.");
  340. displayMainMenu(id);
  341. }
  342. g_status[id] = false;
  343. }
  344.  
  345. g_BankSql[id] = packs;
  346.  
  347. if(g_loggin[id] == true && g_BankSqlOpened[id] == true && get_pcvar_num(g_cvar_enable) == 2) {
  348. zp_set_user_ammo_packs(id,g_BankSql[id]);
  349. }
  350. }
  351.  
  352. public SaveClientBank(id) {
  353. if (g_Sql == Empty_Handle || !is_loggin(id)) return ;
  354.  
  355. new packs;
  356.  
  357. if(get_pcvar_num(g_cvar_enable) == 2) packs = zp_get_user_ammo_packs(id);
  358. else packs = g_BankSql[id];
  359.  
  360. new limit = get_pcvar_num(g_cvar_save_limit);
  361. if(limit && packs > limit) {
  362. packs = limit;
  363. }
  364.  
  365. new szQuery[200];
  366. format(szQuery, 199, "REPLACE INTO %s (auth,passwd,amount,timestamp) VALUES('%s', '%s', '%d','%d');", g_SqlTable, g_szAuth[id], g_password[id], packs, get_systime());
  367. SQL_QueryAndIgnore(g_Sql, szQuery);
  368. }
  369.  
  370. public DeathMsg() {
  371. if(!get_pcvar_num(g_cvar_enable) || !get_pcvar_num(cvar_achvs)) return PLUGIN_CONTINUE;
  372.  
  373. new killer = read_data(1);
  374. if(!is_loggin(killer)) return PLUGIN_CONTINUE;
  375. new victim = read_data(2);
  376.  
  377. g_zmkillcount[victim] = 0
  378. g_zmkillercount[victim] = 0
  379.  
  380. if(zp_is_nemesis_round()) {
  381. if(g_nemelevel[killer] < get_pcvar_num(cvar_terminator_maxlvl) && zp_get_user_nemesis(victim) && !zp_get_user_zombie(killer)) {
  382.  
  383. g_nemelevel[killer]++;
  384.  
  385. give_present(killer, get_pcvar_num(cvar_terminator_multi));
  386. colorChat(0, CHATCOLOR_GREY, "[Zombie Blood]^1 Jatekos^4 %s^1 elerte^3 Terminator szint:^1 %i^1 es kapott^3 %i^1 loszercsomagot!", g_szAuth[killer], g_nemelevel[killer], get_pcvar_num(cvar_terminator_multi));
  387. }
  388. return PLUGIN_CONTINUE;
  389. }
  390.  
  391. if(zp_get_user_zombie(killer) && g_zmkiller[killer] <get_pcvar_num(cvar_zmkiller_maxlvl) && !zp_get_user_zombie(victim)) {
  392. g_zmkillercount[killer]++;
  393. showStats(killer, 3);
  394. colorChat(killer, CHATCOLOR_GREY, "[Zombie blood ]^3 Zombiolo oles:^1 %i", g_zmkillercount[killer]);
  395.  
  396. if(g_zmkillercount[killer] >= (g_zmkiller[killer] + 1) * 5) {
  397.  
  398. g_zmkiller[killer]++;
  399. g_zmkillercount[killer] = 0;
  400.  
  401. give_present(killer, g_zmkiller[killer] * get_pcvar_num(cvar_zmkiller_multi));
  402. colorChat(0, CHATCOLOR_GREY, "[Zombie blood]^1 Jatekos^4 %s^1 elerte^3 Zombi oles szint:^1 %i^1 es kapott^3 %i^1 loszercsomagot!", g_szAuth[killer], g_zmkiller[killer], g_zmkiller[killer]*get_pcvar_num(cvar_zmkiller_multi));
  403. }
  404. }
  405.  
  406. if(zp_get_user_zombie(victim) && g_hunterlevel[killer] < get_pcvar_num(cvar_hunter_maxlvl) && !zp_get_user_survivor(killer)) {
  407. g_killcount[killer]++;
  408. showStats(killer, 1);
  409. colorChat(killer, CHATCOLOR_GREY, "[Zombie blood]^3 Ember vadasz oles:^1 %i", g_killcount[killer]);
  410.  
  411. if(g_killcount[killer] >= (g_hunterlevel[killer] + 1) * 5) {
  412.  
  413. g_hunterlevel[killer]++;
  414. g_killcount[killer] = 0;
  415.  
  416. give_present(killer, g_hunterlevel[killer]*get_pcvar_num(cvar_hunter_multi));
  417. colorChat(0, CHATCOLOR_GREY, "[Zombie Blood]^1 Jatekos^4 %s^1 elerte^3 Emberi oles:^1 %i^1 es kapott^3 %i^1 loszercsomagot!", g_szAuth[killer], g_hunterlevel[killer], g_hunterlevel[killer]*get_pcvar_num(cvar_hunter_multi));
  418. }
  419. }
  420. return PLUGIN_CONTINUE;
  421. }
  422.  
  423. public zp_user_infected_post(id, infector, nemesis) {
  424. if(!get_pcvar_num(g_cvar_enable) || !get_pcvar_num(cvar_achvs)) return PLUGIN_CONTINUE;
  425.  
  426. g_killcount[id] = 0;
  427.  
  428. if(g_zmhunterlevel[infector] < get_pcvar_num(cvar_zombiehunter_maxlvl) && is_loggin(infector) && zp_get_user_zombie(infector)) {
  429. g_zmkillcount[infector]++;
  430. showStats(infector, 2);
  431. colorChat(infector, CHATCOLOR_GREY, "[Zombieblood]^3 Zombi oles:^1 %i", g_zmkillcount[infector]);
  432.  
  433. if(g_zmkillcount[infector] >= (g_zmhunterlevel[infector] + 1) * 5) {
  434.  
  435. g_zmhunterlevel[infector]++;
  436. g_zmkillcount[infector] = 0;
  437.  
  438. give_present(infector, (g_zmhunterlevel[infector] + 1) * get_pcvar_num(cvar_zombiehunter_multi));
  439. colorChat(0, CHATCOLOR_GREY, "[Zombie blood]^1 Jatekos^4 %s^1 elerte^3 Zombi vadasz szint:^1 %i^1 es kapott^3 %i^1 loszercsomagot!", g_szAuth[infector], g_zmhunterlevel[infector] + 1, (g_zmhunterlevel[infector] + 1) * get_pcvar_num(cvar_zombiehunter_multi));
  440. }
  441. }
  442. return PLUGIN_CONTINUE;
  443. }
  444.  
  445. public give_present(id, amout) {
  446. new curaps;
  447.  
  448. if(get_pcvar_num(g_cvar_enable) == 2)
  449. {
  450. curaps = zp_get_user_ammo_packs(id);
  451. zp_set_user_ammo_packs(id,curaps+amout);
  452. }
  453. else
  454. {
  455. g_BankSql[id] += amout;
  456. curaps = g_BankSql[id];
  457. }
  458.  
  459. colorChat(id, CHATCOLOR_GREY, "[Zombie blood]^1 Most mar^3 %i^1 loszercsomag maradt a ^3 bankban!^1!", curaps+amout);
  460. }
  461.  
  462. public showStats(id, mode) {
  463. new text[200];
  464.  
  465. switch(mode) {
  466. case 1: {formatex(text, charsmax(text), "Ember vadasz: %i / %i", g_killcount[id], (g_hunterlevel[id] + 1) * 5);}
  467. case 2: {formatex(text, charsmax(text), "Zombi vadasz: %i / %i", g_zmkillcount[id], (g_zmhunterlevel[id] + 1) * 5);}
  468. case 3: {formatex(text, charsmax(text), "Zombi oles: %i / %i", g_zmkillercount[id], (g_zmkiller[id] + 1) * 5);}
  469. }
  470. set_hudmessage(255, 255, 255, 0.02, 0.50, 0, 6.0, 4.0, _, _, -1);
  471. show_hudmessage(id, text);
  472. }
  473.  
  474. public cmdAmmoPacks(id, level, cid){
  475.  
  476. if (!cmd_access(id, level, cid, 2))
  477. return PLUGIN_HANDLED;
  478.  
  479. new target[32];
  480. new count[11],num;
  481.  
  482. read_argv(1,target,31);
  483. read_argv(2,count,10);
  484.  
  485. num = str_to_num(count);
  486.  
  487. if(equal(target, "@ALL")) {
  488. for(new i=1;i<=MAX_PLAYERS;i++) {
  489. if(!is_user_connected(i)) continue;
  490.  
  491. zp_set_user_ammo_packs(i, num);
  492. }
  493. return PLUGIN_HANDLED;
  494. }
  495. else if(equal(target, "@H")) {
  496. for(new i=1;i<=MAX_PLAYERS;i++) {
  497. if(!is_user_connected(i) || zp_get_user_zombie(i)) continue;
  498.  
  499. zp_set_user_ammo_packs(i, num);
  500. }
  501. return PLUGIN_HANDLED;
  502. }
  503. else if(equal(target, "@Z")) {
  504. for(new i=1;i<=MAX_PLAYERS;i++) {
  505. if(!is_user_connected(i) || !zp_get_user_zombie(i)) continue;
  506.  
  507. zp_set_user_ammo_packs(i, num);
  508. }
  509. return PLUGIN_HANDLED;
  510. }
  511.  
  512. new player = cmd_target(id, target, CMDTARGET_ALLOW_SELF);
  513. if(!player) return PLUGIN_HANDLED;
  514.  
  515. zp_set_user_ammo_packs(player, num);
  516.  
  517. return PLUGIN_HANDLED;
  518. }
  519.  
  520. stock GetAuthId(id,Buffer[]="", BufferSize=0,info=false) {
  521. switch(get_pcvar_num(g_cvar_save_type)) {
  522. case 1: get_user_authid(id,Buffer,BufferSize);
  523. case 2: {
  524. new name[32];
  525. if(info) {
  526. get_user_info(id,"name",name,31);
  527. }
  528. else get_user_name(id,name,31);
  529. SQL_QuoteString(g_Sql, Buffer, BufferSize, name);
  530. }
  531. case 3: get_user_ip(id,Buffer,BufferSize,true);
  532. }
  533. }
  534.  
  535. public cmd_donateamount(id) {
  536. if(!is_loggin(id)) return PLUGIN_HANDLED;
  537.  
  538. new packs[13],num;
  539. read_args(packs, 12);
  540. remove_quotes(packs);
  541. num = str_to_num(packs);
  542.  
  543. if(num < 1) {
  544. colorChat(id, CHATCOLOR_RED, "Ervenytelen osszeg");
  545. return PLUGIN_HANDLED;
  546. }
  547. new packsi;
  548. if(get_pcvar_num(g_cvar_enable) == 2) packsi = zp_get_user_ammo_packs(id);
  549. else packsi = g_BankSql[id];
  550.  
  551. if(packsi < num) {
  552. colorChat(id, CHATCOLOR_GREY, "[Zombie blood]^4 Neked nem kell %i loszercsomag a bankbol!", num);
  553. return PLUGIN_HANDLED;
  554. }
  555.  
  556. if(get_user_userid(g_DonateTo[id]) == -1) {
  557. return PLUGIN_HANDLED;
  558. }
  559.  
  560. new name[32],to_name[32];
  561. get_user_name(id,name,31);
  562. get_user_name(g_DonateTo[id],to_name,31);
  563.  
  564. if(get_pcvar_num(g_cvar_enable) == 2)
  565. zp_set_user_ammo_packs(id,zp_get_user_ammo_packs(id)-num);
  566. else g_BankSql[id] -= num;
  567. new nums;
  568. if(is_loggin(g_DonateTo[id]) && get_pcvar_num(g_cvar_enable) == 1) {
  569. g_BankSql[g_DonateTo[id]] += num;
  570. nums = g_BankSql[id];
  571. }
  572. else {
  573. zp_set_user_ammo_packs(g_DonateTo[id],zp_get_user_ammo_packs(g_DonateTo[id])+num);
  574. nums = zp_get_user_ammo_packs(id);
  575. }
  576.  
  577. colorChat(id, CHATCOLOR_GREY, "[Zombie blood]^1 Adomanyoztal^3 %i^1 Loszercsomagot^3 %s^1. Most mar^3 %i^1 loszercsomag maradt a bankban!", num, to_name, nums);
  578. colorChat(g_DonateTo[id], CHATCOLOR_GREY, "[Zombie blood]^4 %s^1 donated^3 %i^1 Ammopacks to you.", name, num);
  579. colorChat(0, CHATCOLOR_GREY, "[Zero blood #2]^4 %s^1 Adomanyozott^3 %i^1 Loszercsomagjaid^4 %s.", name, num, to_name);
  580.  
  581. return PLUGIN_HANDLED;
  582. }
  583.  
  584. public cmd_enterpassword(id) {
  585. if(is_loggin(id)) return PLUGIN_HANDLED;
  586.  
  587. new password[64];
  588. read_args(password, 63);
  589. remove_quotes(password);
  590.  
  591. if(password[0]) {
  592. g_password[id] = password;
  593. g_status[id] = true;
  594. LoadClientBank(id);
  595. return PLUGIN_HANDLED;
  596. }
  597.  
  598. return PLUGIN_HANDLED;
  599. }
  600.  
  601. public cmd_enternewpassword(id) {
  602. if(is_registred(id)) return PLUGIN_HANDLED;
  603.  
  604. new password[64];
  605. read_args(password, 63);
  606. remove_quotes(password);
  607.  
  608. if(password[0]) {
  609. g_password[id] = password;
  610. g_loggin[id] = true;
  611. g_registred[id] = true;
  612. SaveClientBank(id);
  613. client_cmd(id,"setinfo _bp ^"%s^";wait;chooseteam",g_password[id]);
  614. colorChat(id, CHATCOLOR_GREY, "[Zombie blood]^4 Uj felhasznalo: %s Jelszo: %s Loszercsomag: %d", g_szAuth[id], g_password[id], g_BankSql[id]);
  615. return PLUGIN_HANDLED;
  616. }
  617. else {
  618. client_cmd(id, "messagemode EnterNewPassword");
  619. }
  620.  
  621. colorChat(id, CHATCOLOR_RED, "Ird be az ujj jelszavad!");
  622.  
  623. return PLUGIN_HANDLED;
  624. }
  625.  
  626. public cmd_enterchangepassword(id) {
  627. if(!is_loggin(id)) return PLUGIN_HANDLED;
  628.  
  629. new password[64];
  630. read_args(password, 63);
  631. remove_quotes(password);
  632.  
  633. if(password[0]) {
  634. g_password[id] = password;
  635. SaveClientBank(id);
  636. client_cmd(id,"setinfo _bp ^"%s^"",g_password[id]);
  637. colorChat(id, CHATCOLOR_GREY, "[Zombie blood]^4 Valtoztatott jelszo: %s Jelszo: %s Loszercsomag: %d", g_szAuth[id], g_password[id], g_BankSql[id]);
  638. return PLUGIN_HANDLED;
  639. }
  640. else {
  641. client_cmd(id, "messagemode EnterNewChangePassword");
  642. }
  643.  
  644. colorChat(id, CHATCOLOR_RED, "Add meg az uj jelszavad!");
  645.  
  646. return PLUGIN_HANDLED;
  647. }
  648.  
  649. public cmd_takeamout(id,all) {
  650. if(!is_loggin(id) || get_pcvar_num(g_cvar_enable) == 2) return PLUGIN_HANDLED;
  651.  
  652. new amout[13];
  653. read_args(amout, 12);
  654. remove_quotes(amout);
  655.  
  656. new want = str_to_num(amout);
  657.  
  658. if(all) want = g_BankSql[id];
  659.  
  660. if(want > 0) {
  661. if(want > g_BankSql[id]) {
  662. cmdBankMenu(id);
  663. colorChat(id, CHATCOLOR_GREEN, "Nem maradt %i loszercsomag a bankban!", want);
  664. }
  665. else {
  666. zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + want)
  667.  
  668. colorChat(id, CHATCOLOR_GREEN, "Mar csak %i loszercsomag maradt a bankban!", want);
  669.  
  670. g_BankSql[id] -= want;
  671. }
  672. }
  673. else {
  674. cmdBankMenu(id);
  675. colorChat(id, CHATCOLOR_RED, "Ervenytelen osszeg!");
  676. }
  677.  
  678. return PLUGIN_HANDLED;
  679. }
  680.  
  681. public cmd_saveamout(id,all) {
  682. if(!is_loggin(id) || get_pcvar_num(g_cvar_enable) == 2) return PLUGIN_HANDLED;
  683.  
  684. new amout[13];
  685. read_args(amout, 12);
  686. remove_quotes(amout);
  687.  
  688. new want = str_to_num(amout);
  689.  
  690. if(all) want = zp_get_user_ammo_packs(id);
  691.  
  692. if(want > 0) {
  693. if(want > zp_get_user_ammo_packs(id)) {
  694. cmdBankMenu(id);
  695. colorChat(id, CHATCOLOR_RED, "Neked nem kell %i loszercsomag!", want);
  696. }
  697. else {
  698. g_BankSql[id] += want;
  699. zp_set_user_ammo_packs(id,zp_get_user_ammo_packs(id)-want);
  700. colorChat(id, CHATCOLOR_GREY, "[Zombie blood]^4 %i Loszercsomag elmentve! Jelenleg a bankba: %i loszercsomag van!", want, g_BankSql[id]);
  701. }
  702. }
  703. else {
  704. cmdBankMenu(id)
  705. colorChat(id, CHATCOLOR_RED, "Ervenytelen osszeg!");
  706. }
  707. return PLUGIN_HANDLED;
  708. }
  709.  
  710. public cmdMainMenu(id) {
  711. displayMainMenu(id);
  712. return PLUGIN_CONTINUE;
  713. }
  714.  
  715. public cmdBankMenu(id) {
  716. if(is_loggin(id) && get_pcvar_num(g_cvar_enable) == 1) displayMainMenuAmmo(id);
  717. return PLUGIN_CONTINUE;
  718. }
  719.  
  720. public cmdDonateMenu(id) {
  721. if(is_loggin(id)) displayDonateMenu(id,g_menuPosition[id] = 0);
  722. return PLUGIN_CONTINUE;
  723. }
  724.  
  725. public clcmd_changeteam(id) {
  726. if(!get_pcvar_num(g_cvar_enable)) return PLUGIN_CONTINUE;
  727.  
  728. if(!is_loggin(id)) {
  729. displayMainMenu(id);
  730.  
  731. return PLUGIN_HANDLED;
  732. }
  733.  
  734. return PLUGIN_CONTINUE;
  735. }
  736.  
  737. public archivments_menu(id) {
  738. if(!get_pcvar_num(g_cvar_enable) || !get_pcvar_num(cvar_achvs)) return PLUGIN_HANDLED;
  739.  
  740. if(is_loggin(id)) {
  741. new title[80]; formatex(title, 79, "\rEredmenyek:\w [\y%s\w]", g_szAuth[id])
  742.  
  743. new menu5 = menu_create(title, "handler_archs")
  744.  
  745. new humanhtitle[200]
  746.  
  747. if(g_hunterlevel[id] < get_pcvar_num(cvar_hunter_maxlvl))
  748. formatex(humanhtitle, 199, "\wEmber vadasz\y Level %i - \rKovetkezo szin: %i\w (%i APs)^n\y Megoltel %i zombit egymas utan!!^n", g_hunterlevel[id], g_hunterlevel[id] + 1, (g_hunterlevel[id] + 1) * get_pcvar_num(cvar_hunter_multi), (g_hunterlevel[id] + 1) * 5)
  749. else
  750. formatex(humanhtitle, 199, "\wEmber vadasz\y Level %i - \rFULL^n", g_hunterlevel[id])
  751.  
  752. menu_additem(menu5, humanhtitle , "1")
  753.  
  754. new zmhtitle[200]
  755.  
  756. if(g_zmhunterlevel[id] < get_pcvar_num(cvar_zombiehunter_maxlvl))
  757. formatex(zmhtitle, 199, "\wZombi vadasz\y Level %i - \rKovetkezo szin: %i\w (%i APs)^n\y Megferzoztel %i embert egymas utan!^n", g_zmhunterlevel[id], g_zmhunterlevel[id] + 1, (g_zmhunterlevel[id] + 1) * get_pcvar_num(cvar_zombiehunter_multi), (g_zmhunterlevel[id] + 1) * 5)
  758. else
  759. formatex(zmhtitle, 199, "\wZombi vadasz\y Level %i - \rFULL^n", g_zmhunterlevel[id])
  760.  
  761. menu_additem(menu5, zmhtitle , "2")
  762.  
  763. new zmkillertitle[200]
  764.  
  765. if(g_zmkiller[id] < get_pcvar_num(cvar_zmkiller_maxlvl))
  766. formatex(zmkillertitle, 199, "\wZombi oles\y Level %i - \rKovetkezo szin: %i\w (%i APs)^n\y Megolted %i Az emberek nagyreszet!^n", g_zmkiller[id], g_zmkiller[id] + 1, (g_zmkiller[id] + 1) * get_pcvar_num(cvar_zmkiller_multi), (g_zmkiller[id] + 1) * 3)
  767. else
  768. formatex(zmkillertitle, 199, "\wZombi oles\y Level %i - \rFULL^n", g_zmkiller[id])
  769.  
  770. menu_additem(menu5, zmkillertitle, "3")
  771.  
  772. new nemetitle[200]
  773.  
  774. if(g_nemelevel[id] < get_pcvar_num(cvar_terminator_maxlvl))
  775. formatex(nemetitle, 199, "\wTerminator\y Szint %i - \rKovetkezo szint: %i\w (%i APs)^n\y Megolted a Nemesist!^n", g_nemelevel[id], g_nemelevel[id] + 1, get_pcvar_num(cvar_terminator_multi))
  776. else
  777. formatex(nemetitle, 199, "\wTerminator\y Szint %i - \rFULL^n", g_nemelevel[id]);
  778.  
  779. menu_additem(menu5, nemetitle, "4");
  780.  
  781. menu_display(id, menu5, 0);
  782. }
  783. else {
  784. displayMainMenu(id);
  785. }
  786.  
  787. return PLUGIN_CONTINUE;
  788. }
  789.  
  790. public handler_archs(id, menu5, item) {
  791. if(!get_pcvar_num(g_cvar_enable) || !get_pcvar_num(cvar_achvs)) return PLUGIN_HANDLED;
  792.  
  793. new data[6], iName[64], access, callback
  794. menu_item_getinfo(menu5, item, access, data, 5, iName, 63, callback)
  795.  
  796. new key = str_to_num(data)
  797.  
  798. switch(key) {
  799. case 1:
  800. {
  801. if(g_hunterlevel[id] >= 4)
  802. return PLUGIN_HANDLED
  803.  
  804. colorChat(id, CHATCOLOR_GREY, "[Zombie Blood]^1 Olj meg %i zombit es kapsz %i loszercsomagot!", (g_hunterlevel[id] + 1) * 5, (g_hunterlevel[id] + 1) * get_pcvar_num(cvar_hunter_multi))
  805. }
  806. case 2:
  807. {
  808. if(g_zmhunterlevel[id] >= 2)
  809. return PLUGIN_HANDLED
  810. colorChat(id, CHATCOLOR_GREY, "[Zombie Blood]^1 Fertozz meg %i embert es kapsz %i loszercsomagot!", (g_zmhunterlevel[id] + 1) * 5, (g_zmhunterlevel[id] + 1) * get_pcvar_num(cvar_zombiehunter_multi))
  811. }
  812. case 3:
  813. {
  814. if(g_zmkiller[id] >= 3)
  815. return PLUGIN_HANDLED
  816. colorChat(id, CHATCOLOR_GREY, "[Zombie Blood]^1 Olj meg %i embert es kapsz %i loszercsomagot!", (g_zmkiller[id] + 1) * 3, (g_zmkiller[id] + 1) * get_pcvar_num(cvar_zmkiller_multi))
  817. }
  818. case 4:
  819. {
  820. if(g_zmkiller[id] >= 1)
  821. return PLUGIN_HANDLED
  822. colorChat(id, CHATCOLOR_GREY, "[Zombie Blood]^1 Old meg Nemesis -t es kapsz %i loszercsomagot!", get_pcvar_num(cvar_terminator_multi))
  823. }
  824. }
  825. return PLUGIN_CONTINUE;
  826. }
  827.  
  828. displayMainMenu(id) {
  829. new menuBody[MAX_SIZE+1],len;
  830. new keys = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_5;
  831.  
  832. len = format(menuBody, MAX_SIZE, g_coloredMenus ? "\yRegisztracio rendszer:\w^n" : "Register System^n");
  833. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\rNev: \w%s \rStatusz: \w%s^n" : "Nev: %s Statusz: %s^n", g_szAuth[id], (is_registred(id) ? "\dregistred" : "\yunregistred"));
  834.  
  835. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\r1\w. Bejelentkezes^n" : "1. Bejelentkezes^n");
  836. if(!is_loggin(id) && !is_registred(id)) {
  837. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\r2\w. Uj felhasznalo" : "2. Uj felhasznalo");
  838. }
  839. if(/*get_pcvar_num(cvar_allow_change_name) || */get_pcvar_num(cvar_allow_change_password))
  840. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "^n\r3\w. Valtoztatas^n^n" : "^n2. Valtoztatas^n^n");
  841. else
  842. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "^n\r3\d. Valtoztatas^n^n" : "^n2. Valtoztatas^n^n");
  843. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\r5\w. Segitseg^n^n" : "5. Help^n^n");
  844.  
  845. if(strlen(g_Admins) > 0) len += format(menuBody[len], MAX_SIZE-len, "%s", g_Admins);
  846.  
  847. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "^n^n\r0\w. %L" : "^n^n0. %L", id, "EXIT");
  848. show_menu(id, keys, menuBody, -1, "BankMainMenu");
  849. }
  850.  
  851. displayMainMenuAmmo(id) {
  852. new menuBody[MAX_SIZE+1],len;
  853. new keys = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_4|MENU_KEY_5|MENU_KEY_7;
  854.  
  855. len = format(menuBody, MAX_SIZE, g_coloredMenus ? "\yBank Account: \r%s \yToltenyek a bankba: \r%d^n" : "Bank felhasznalo: %s Toltenyek a bankba: %d^n", g_szAuth[id], g_BankSql[id]);
  856.  
  857. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\r1\w. Loszer vetele^n" : "1. Loszer vetele^n");
  858. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\r2\w. Mindent vesz^n^n" : "2. Mindent vesz^n^n");
  859.  
  860. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\r4\w. Loszer mentese^n" : "4. Loszer mentese^n");
  861. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\r5\w. Mindent ment^n^n" : "5. Mindent ment^n^n");
  862.  
  863. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\r7\w. Adomany osszege:^n" : "7. Adomany osszege:^n");
  864.  
  865. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "^n\r0\w. %L" : "^n0. %L", id, "EXIT");
  866. show_menu(id, keys, menuBody, -1, "BankAmmoMenu");
  867. }
  868.  
  869. displayChangeMenu(id) {
  870. new menuBody[MAX_SIZE+1],name[32],len;
  871. new keys = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2;
  872.  
  873. get_user_name(id,name,31);
  874.  
  875. len = format(menuBody, MAX_SIZE, g_coloredMenus ? "\yRegisztracio rendszer\w^n" : "Regisztracio rendszer^n");
  876.  
  877. if(!get_pcvar_num(cvar_allow_change_password) || !is_loggin(id))
  878. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\r1\d. Jelszo modositasa^n" : "1. Jelszo modositasa^n");
  879. else
  880. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\r1\w. Jelszo modositasa^n" : "1. Jelszo modositasa^n");
  881.  
  882. /*if(!get_pcvar_num(cvar_allow_change_name) || !is_loggin(id))
  883. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\r2\d. Nev modositasa" : "2. Nev modositasa");
  884. else
  885. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\r2\w. Nev modositasa" : "2. Nev modositasa");
  886. */
  887. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "^n^n\r0\w. %L" : "^n^n0. %L", id, "BACK");
  888. show_menu(id, keys, menuBody, -1, "BankChangeMenu");
  889. }
  890.  
  891. displayDonateMenu(id, pos) {
  892. if (pos < 0) return ;
  893.  
  894. get_players(g_menuPlayers[id], g_menuPlayersNum[id])
  895.  
  896. new menuBody[MAX_SIZE+1];
  897. new b = 0;
  898. new i;
  899. new name[32];
  900. new start = pos * 8;
  901.  
  902. if (start >= g_menuPlayersNum[id])
  903. start = pos = g_menuPosition[id] = 0
  904.  
  905. new len = format(menuBody, MAX_SIZE, g_coloredMenus ? "\rValaszd ki a jatekost, akinek adomanyozni szeretnel:^n" : "Valaszd ki a jatekost, akinek adomanyozni szeretnel:^n", pos + 1, (g_menuPlayersNum[id] / 8 + ((g_menuPlayersNum[id] % 8) ? 1 : 0)))
  906. new end = start + 8
  907. new keys = MENU_KEY_0;
  908.  
  909. if (end > g_menuPlayersNum[id])
  910. end = g_menuPlayersNum[id]
  911.  
  912. for (new a = start; a < end; ++a) {
  913. i = g_menuPlayers[id][a];
  914. get_user_name(i, name, 31);
  915.  
  916. if(i == id) {
  917. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\r%d\d. %s ^n" : "%d. %s^n", ++b, name);
  918. }
  919. else {
  920. keys |= (1<<b);
  921. len += format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "\r%d\w. %s ^n" : "%d. %s^n", ++b, name);
  922. }
  923. }
  924.  
  925. if (end != g_menuPlayersNum[id]) {
  926. format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "^n\r9\w. %L...^n\r0\w. %L" : "^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT");
  927. keys |= MENU_KEY_9;
  928. }
  929. else format(menuBody[len], MAX_SIZE-len, g_coloredMenus ? "^n\r0\w. %L" : "^n0. %L", id, pos ? "BACK" : "EXIT");
  930.  
  931. show_menu(id, keys, menuBody, -1, "DonateMenu");
  932. }
  933.  
  934. public actionMainMenu(id, key) {
  935. switch (key) {
  936. // 1
  937. case 0: {
  938. if(is_loggin(id)) {
  939. colorChat(id, CHATCOLOR_GREEN, "Be vagy mar jelentkezve!");
  940. return PLUGIN_HANDLED;
  941. }
  942. colorChat(id, CHATCOLOR_RED, "Ird be a jelszavad!");
  943. client_cmd(id, "messagemode EnterPassword");
  944. }
  945. // 2
  946. case 1: {
  947. if(is_loggin(id) || is_registred(id)) return PLUGIN_HANDLED;
  948.  
  949. colorChat(id, CHATCOLOR_RED, "Ird be az uj jelszavad!");
  950. client_cmd(id, "messagemode EnterNewPassword");
  951. }
  952. // 3
  953. case 2: {
  954. displayChangeMenu(id);
  955. }
  956. // 5
  957. case 4: {
  958. new motd_file[128];
  959. get_pcvar_string(cvar_motd_file,motd_file,127);
  960. show_motd(id, motd_file);
  961. }
  962. }
  963.  
  964. return PLUGIN_HANDLED;
  965. }
  966.  
  967. public actionAmmoMenu(id, key) {
  968. if(!is_loggin(id)) return PLUGIN_HANDLED;
  969.  
  970. switch (key) {
  971. // 1
  972. case 0: {
  973. client_cmd(id, "messagemode TakeAmount");
  974. }
  975. // 2
  976. case 1: {
  977. cmd_takeamout(id,true);
  978. }
  979. // 4
  980. case 3: {
  981. client_cmd(id, "messagemode SaveAmount");
  982. }
  983. // 5
  984. case 4: {
  985. cmd_saveamout(id,true);
  986. }
  987. // 7
  988. case 6: {
  989. displayDonateMenu(id, g_menuPosition[id] = 0);
  990. }
  991. }
  992.  
  993. return PLUGIN_HANDLED;
  994. }
  995.  
  996. public actionChangeMenu(id, key) {
  997. switch (key) {
  998. // 1
  999. case 0: {
  1000. if(!get_pcvar_num(cvar_allow_change_password) || !is_loggin(id)) return PLUGIN_HANDLED;
  1001. client_cmd(id, "messagemode EnterNewChangePassword");
  1002. }
  1003. // 2
  1004. //case 1: {
  1005. // if(!get_pcvar_num(cvar_allow_change_name) || !is_loggin(id)) return PLUGIN_HANDLED;
  1006. //}
  1007. case 9: {
  1008. displayMainMenu(id);
  1009. }
  1010. }
  1011.  
  1012. return PLUGIN_HANDLED;
  1013. }
  1014.  
  1015. public actionDonateMenu(id, key) {
  1016. switch (key) {
  1017. case 8: displayDonateMenu(id, ++g_menuPosition[id]);
  1018. case 9: displayDonateMenu(id, --g_menuPosition[id]);
  1019. default: {
  1020. new player = g_menuPlayers[id][g_menuPosition[id] * 8 + key];
  1021.  
  1022. g_DonateTo[id] = player;
  1023.  
  1024. client_cmd(id, "messagemode DonateAmount");
  1025. }
  1026. }
  1027. return PLUGIN_HANDLED;
  1028. }
  1029.  
  1030. public is_registred(id) {
  1031. return g_registred[id];
  1032. }
  1033.  
  1034. public is_loggin(id) {
  1035. return g_loggin[id];
  1036. }

Nem 100% -os fordítás, ékezet nincs benne, a parancsokon nem változtattam.
Remélem jó lesz.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: zp_bank_register
HozzászólásElküldve: 2013.04.24. 11:24 
Offline
Őskövület
Avatar

Csatlakozott: 2011.12.28. 00:35
Hozzászólások: 2736
Megköszönt másnak: 56 alkalommal
Megköszönték neki: 275 alkalommal
kösz.

_________________
****


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 3 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 2 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole