hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2025.06.17. 01:34



Jelenlévő felhasználók

Jelenleg 334 felhasználó van jelen :: 2 regisztrált, 0 rejtett és 332 vendég

A legtöbb felhasználó (2761 fő) 2025.01.09. 20:06-kor tartózkodott itt.

Regisztrált felhasználók: Bing [Bot], Google [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  [4 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Regisztráció plugin hiba
HozzászólásElküldve:2014.07.04. 06:12 
Offline
Senior Tag
Avatar

Csatlakozott:2013.11.20. 15:40
Hozzászólások:259
Megköszönt másnak: 7 alkalommal
Megköszönték neki: 25 alkalommal
Sziasztok, van a szerveremen az a regisztrációs rendszer, ami itt is fent van.
Regisztrációs Rendszer - Menüvel
És a szerver ilyen logokat hagy folyamatosan:

[0] RegisterSystem.sma::KickPlayer (line 1313)

Ezzel lehetne valamit?
Köszönöm

_________________
rwT* Szerverek!

Különleges játékélmény különleges szerverektől.
Bővebb információkért nézz az alábbi tartalmak után.

( FaceBook ) ( YouTube ) ( Web ) ( GameTracker )


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Regisztráció plugin hiba
HozzászólásElküldve:2014.07.04. 07:04 
Offline
Nagyúr
Avatar

Csatlakozott:2012.09.23. 09:50
Hozzászólások:569
Megköszönt másnak: 76 alkalommal
Megköszönték neki: 37 alkalommal
Esetleg ezt nem próbáltad?
Regisztrációs Rendszer 8.0

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Regisztráció plugin hiba
HozzászólásElküldve:2014.07.04. 12:58 
Offline
Felfüggesztve
Avatar

Csatlakozott:2013.06.09. 18:47
Hozzászólások:2004
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 220 alkalommal
Try:

Kód:
Your plugin successfully compiled!
Use the link below to download your plugin. It will be valid for ten minutes.

http://www.amxmodx.org/webcompiler.cgi?go=dl&id=1679524

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

Header size:           2444 bytes
Code size:            32208 bytes
Data size:            35540 bytes
Stack/heap size:      16384 bytes; max. usage is unknown, due to recursion
Total requirements:   86576 bytes
Done.


SMA Forráskód: [ Mindet kijelol ]
  1.  
  2. #include <amxmodx>
  3. #include <amxmisc>
  4. #include <cstrike>
  5. #include <fakemeta>
  6. #include <sqlx>
  7.  
  8. #define TASK_MESS 2133
  9. #define TASK_KICK 3312
  10. #define SALT "8c4f4370c53e0c1e1ae9acd577dddbed" //The SALT for the password encryption. It can be edited!
  11.  
  12. new g_on, g_save, g_host, g_user, g_pass, g_db, g_setinfo_pr, g_regtime, g_logtime, g_msg, g_pass_length, g_attempts, g_chp_time, g_reg_log, g_chp_log, g_aulog_log, g_name, g_blind, g_chat, g_logout; //cvar pointers
  13. new reg_file[256], configs_dir[64], file[192], params[2], name[32], check_name[32], check_pass[34], check_status[10], query[512], password[34][34], namepass[512], typedpass[32], new_pass[33][33], passsalt[64], hash[34], pass_prefix[32]; //arrays
  14. new bool:is_logged[33], bool:is_registered[33], bool:is_autolog[33], attempts[33], times[33]; //Booleans and other arrays
  15. new menu[512], keys, length; //variables and array for the menus
  16. new Handle:g_SQLTuple, g_error[512]; //SQL array and handle
  17. new g_saytxt, g_screenfade; //other variables
  18. new const prefix[] = "[Regisztracios Rendszer]"; //The prefix in the chat messages. It can be edited!
  19. new const log_file[] = "register_system_log.txt"; //The name of the log file. It can be edited!
  20. new const JOIN_TEAM_MENU_FIRST[] = "#Team_Select"; //The text of the Team Select menu. DO NOT CHANGE!
  21. new const JOIN_TEAM_MENU_FIRST_SPEC[] = "#Team_Select_Spect"; //The text of the Spectator Team Select menu. DO NOT CHANGE!
  22. new const JOIN_TEAM_MENU_INGAME[] = "#IG_Team_Select"; //The text of the Ingame Team Select menu. DO NOT CHANGE!
  23. new const JOIN_TEAM_MENU_INGAME_SPEC[] = "#IG_Team_Select_Spect"; //The text of the Ingame Spectator Team Select menu. DO NOT CHANGE!
  24. new const JOIN_TEAM_VGUI_MENU = 2; //The number of the VGUI menu for Team Select. DO NOT CHANGE!
  25. new const NAME_CHANGE_MSG[] = "#Cstrike_Name_Change"; ////The text of the Name Change Message. DO NOT CHANGE!
  26.  
  27. /*==============================================================================
  28.   Start of Plugin Init
  29.   ================================================================================*/
  30. public plugin_init()
  31. {
  32. register_plugin("Register System", "5.0", "m0skVi4a ;]")
  33.  
  34. g_on = register_cvar("rs_on", "1") //Is the plugin on(1) or off(0)
  35. g_save = register_cvar("rs_save_type", "0") //Where to seve the information: to file(0) or to MySQL(1).
  36. g_host = register_cvar("rs_host", "127.0.0.1") //The host for the database.
  37. g_user = register_cvar("rs_user", "root") //The username for the database login.
  38. g_pass = register_cvar("rs_pass", "") //The password for the database login.
  39. g_db = register_cvar("rs_db", "registersystem") //The database name.
  40. g_setinfo_pr = register_cvar("rs_password_prefix", "_rspass") //The prefix of the setinfo for the auto login.
  41. g_regtime = register_cvar("rs_register_time", "0") //How much time has the client to register. If is set to 0 registration is not mandatory.
  42. g_logtime = register_cvar("rs_login_time", "60.0") //How much time has the client to login if is registered.
  43. g_msg = register_cvar("rs_messages", "3") //What messages will be displayed when the client connect - only hud messages(1), only chat messages(2) or hud and chat messages(3).
  44. g_pass_length = register_cvar("rs_password_length", "6") //What is minimum length of the password.
  45. g_attempts = register_cvar("rs_attempts", "3") //How much attempts has the client to login if he type wrong password.
  46. g_chp_time = register_cvar("rs_chngpass_times", "3") //How much times can the client change his password per map.
  47. g_reg_log = register_cvar("rs_register_log", "1") //Is it allowed the plugin to log in file when the client is registered.
  48. g_chp_log = register_cvar("rs_chngpass_log", "1") //Is it allowed the plugin to log in file when the client has change his password.
  49. g_aulog_log = register_cvar("rs_autologin_log", "1") //Is it allowed the plugin to log in file when the client has change his Auto Login function.
  50. g_name = register_cvar("rs_name_change", "1") //Which of the clients can change their names - all clients(0), all clients without Logged cients(2) or no one can(3).
  51. g_blind = register_cvar("rs_blind", "1") //Whether clients who have not Logged or who must Register be blinded.
  52. g_chat = register_cvar("rs_chat", "1") //Whether clients who have not Logged or who must Register chat's be blocked.
  53. g_logout = register_cvar("rs_logout", "0") //What to do when client Logout - kick him from the server(0) or wait to Login during the Login time(1).
  54.  
  55. register_message(get_user_msgid("ShowMenu"), "ShowMenu")
  56. register_message(get_user_msgid("VGUIMenu"), "VGUIMenu")
  57. register_menucmd(register_menuid("Main Menu"), 1023, "HandlerMainMenu")
  58. register_menucmd(register_menuid("Options Menu"), 1023, "HandlerOptionsMenu")
  59. register_menucmd(register_menuid("Password Menu"), 1023, "HandlerConfirmPasswordMenu")
  60. register_clcmd("jointeam", "HookJoinCommands")
  61. register_clcmd("chooseteam", "HookJoinCommands")
  62. register_clcmd("say", "HookSayCommands")
  63. register_clcmd("say_team", "HookSayCommands")
  64. register_clcmd("LOGIN_PASS", "Login")
  65. register_clcmd("REGISTER_PASS", "Register")
  66. register_clcmd("CHANGE_PASS_NEW", "ChangePasswordNew")
  67. register_clcmd("CHANGE_PASS_OLD", "ChangePasswordOld")
  68. register_clcmd("AUTO_LOGIN_PASS", "AutoLoginPassword")
  69.  
  70. register_forward(FM_PlayerPreThink, "PlayerPreThink")
  71. register_forward(FM_ClientUserInfoChanged, "ClientInfoChanged")
  72.  
  73. register_dictionary("register_system.txt")
  74. g_saytxt = get_user_msgid("SayText")
  75. g_screenfade = get_user_msgid("ScreenFade")
  76. }
  77. /*==============================================================================
  78.   End of Plugin Init
  79.   ================================================================================*/
  80.  
  81. /*==============================================================================
  82.   Start of Executing plugin's config and choose the save mode
  83.   ================================================================================*/
  84. public plugin_cfg()
  85. {
  86. if(!get_pcvar_num(g_on))
  87. return PLUGIN_HANDLED
  88.  
  89. get_configsdir(configs_dir, charsmax(configs_dir))
  90. formatex(file, charsmax(file), "%s/registersystem.cfg", configs_dir)
  91.  
  92. if(!file_exists(file))
  93. {
  94. server_print("%L", LANG_SERVER, "ERROR_CFG", file)
  95. }
  96. else
  97. {
  98. server_cmd("exec %s", file)
  99. server_print("%L", LANG_SERVER, "CFG_EXEC", file)
  100. }
  101.  
  102. if(get_pcvar_num(g_save))
  103. {
  104. new Host[64], User[32], Pass[32], DB[128];
  105.  
  106. get_pcvar_string(g_host, Host, charsmax(Host))
  107. get_pcvar_string(g_user, User, charsmax(User))
  108. get_pcvar_string(g_pass, Pass, charsmax(Pass))
  109. get_pcvar_string(g_db, DB, charsmax(DB))
  110.  
  111. g_SQLTuple = SQL_MakeDbTuple(Host, User, Pass, DB)
  112.  
  113. new errorcode, Handle:SqlConnection = SQL_Connect(g_SQLTuple, errorcode, g_error, charsmax(g_error))
  114.  
  115. if(SqlConnection == Empty_Handle)
  116. {
  117. server_print("%L", LANG_SERVER, "ERROR_MYSQL")
  118. set_fail_state(g_error)
  119. }
  120. else
  121. {
  122. server_print("%L", LANG_SERVER, "MYSQL_CONNECT")
  123. }
  124.  
  125. new Handle:Query
  126.  
  127. Query = SQL_PrepareQuery(SqlConnection, "CREATE TABLE IF NOT EXISTS registersystem (Name VARCHAR(32), Password VARCHAR(34), Status VARCHAR(10))")
  128.  
  129. if(!SQL_Execute(Query))
  130. {
  131. SQL_QueryError(Query, g_error, charsmax(g_error))
  132. set_fail_state(g_error)
  133. }
  134.  
  135. SQL_FreeHandle(Query)
  136. SQL_FreeHandle(SqlConnection)
  137. }
  138. else
  139. {
  140. get_configsdir(configs_dir, charsmax(configs_dir))
  141. formatex(reg_file, charsmax(reg_file), "%s/regusers.ini", configs_dir)
  142.  
  143. if(!file_exists(reg_file))
  144. {
  145. write_file(reg_file,";Register System file^n;Modifying may cause the clients to can not Login!^n^n")
  146. server_print("%L", LANG_SERVER, "ERROR_FILE", reg_file)
  147. }
  148. }
  149. return PLUGIN_CONTINUE
  150. }
  151. /*==============================================================================
  152.   End of Executing plugin's config and choose the save mode
  153.   ================================================================================*/
  154.  
  155. /*==============================================================================
  156.   Start of Client's connect and disconenct functions
  157.   ================================================================================*/
  158. public client_connect(id)
  159. {
  160. is_logged[id] = false
  161. is_registered[id] = false
  162. is_autolog[id] = false
  163. attempts[id] = 0
  164. times[id] = 0
  165. remove_task(id+TASK_MESS)
  166. CheckClient(id)
  167. }
  168.  
  169. public client_putinserver(id)
  170. {
  171. ShowMsg(id)
  172. }
  173.  
  174. public client_disconnect(id)
  175. {
  176. is_logged[id] = false
  177. is_registered[id] = false
  178. is_autolog[id] = false
  179. attempts[id] = 0
  180. times[id] = 0
  181. remove_task(id+TASK_MESS)
  182. remove_task(id+TASK_KICK)
  183. }
  184. /*==============================================================================
  185.   End of Client's connect and disconenct functions
  186.   ================================================================================*/
  187.  
  188. /*==============================================================================
  189.   Start of Show Menu functions
  190.   ================================================================================*/
  191. public ShowMenu(msgid, dest, id)
  192. {
  193. if(get_pcvar_num(g_on))
  194. {
  195. new menu_text[64]
  196.  
  197. get_msg_arg_string(4, menu_text, charsmax(menu_text))
  198.  
  199. if(equal(menu_text, JOIN_TEAM_MENU_FIRST) || equal(menu_text, JOIN_TEAM_MENU_FIRST_SPEC) || equal(menu_text, JOIN_TEAM_MENU_INGAME) || equal(menu_text, JOIN_TEAM_MENU_INGAME_SPEC))
  200. {
  201. Menu(id)
  202.  
  203. return PLUGIN_HANDLED
  204. }
  205.  
  206. return PLUGIN_CONTINUE
  207. }
  208. return PLUGIN_CONTINUE
  209. }
  210.  
  211. public VGUIMenu(msgid, dest, id)
  212. {
  213. if(get_pcvar_num(g_on))
  214. {
  215. if(get_msg_arg_int(1) == JOIN_TEAM_VGUI_MENU)
  216. {
  217. Menu(id)
  218.  
  219. return PLUGIN_HANDLED
  220. }
  221.  
  222. return PLUGIN_CONTINUE
  223. }
  224.  
  225. return PLUGIN_CONTINUE
  226. }
  227. /*==============================================================================
  228.   End of Show Menu functions
  229.   ================================================================================*/
  230.  
  231. /*==============================================================================
  232.   Start of Check Client functions
  233.   ================================================================================*/
  234. public CheckClient(id)
  235. {
  236. if(!get_pcvar_num(g_on) || is_user_bot(id))
  237. return PLUGIN_HANDLED
  238.  
  239. is_registered[id] = false
  240. is_autolog[id] = false
  241. is_logged[id] = false
  242. remove_task(id+TASK_KICK)
  243.  
  244. if(get_pcvar_num(g_save))
  245. {
  246. get_user_name(id, name, charsmax(name))
  247.  
  248. new data[1]
  249. data[0] = id
  250.  
  251. formatex(query, charsmax(query), "SELECT `Password`, `Status` FROM `registersystem` WHERE Name = ^"%s^";", name)
  252.  
  253. SQL_ThreadQuery(g_SQLTuple, "QuerySelectData", query, data, 1)
  254. }
  255. else
  256. {
  257. new file = fopen(reg_file, "r")
  258.  
  259. while(!feof(file))
  260. {
  261. get_user_name(id, name, charsmax(name))
  262. fgets(file, namepass, charsmax(namepass))
  263. parse(namepass, check_name, charsmax(check_name), check_pass, charsmax(check_pass), check_status, charsmax(check_status))
  264.  
  265. if(namepass[0] == ';')
  266. continue
  267.  
  268. if(equal(check_name, name))
  269. {
  270. is_registered[id] = true
  271. password[id] = check_pass
  272.  
  273. if(is_user_connected(id))
  274. {
  275. user_silentkill(id)
  276. cs_set_user_team(id, CS_TEAM_UNASSIGNED)
  277. ShowMsg(id)
  278. Menu(id)
  279. }
  280.  
  281. if(equal(check_status, "LOGGED"))
  282. {
  283. is_autolog[id] = true
  284. CheckAutoLogin(id)
  285. }
  286.  
  287. break
  288. }
  289. }
  290. fclose(file)
  291. }
  292. return PLUGIN_CONTINUE
  293. }
  294.  
  295. public QuerySelectData(FailState, Handle:Query, error[], errorcode, data[], datasize, Float:fQueueTime)
  296. {
  297. if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
  298. {
  299. log_amx("%s", error)
  300. return
  301. }
  302. else
  303. {
  304. new id = data[0];
  305. new col_pass = SQL_FieldNameToNum(Query, "Password")
  306. new col_status = SQL_FieldNameToNum(Query, "Status")
  307.  
  308. while(SQL_MoreResults(Query))
  309. {
  310. SQL_ReadResult(Query, col_pass, check_pass, charsmax(check_pass))
  311. SQL_ReadResult(Query, col_status, check_status, charsmax(check_status))
  312. is_registered[id] = true
  313. password[id] = check_pass
  314.  
  315. if(is_user_connected(id))
  316. {
  317. user_silentkill(id)
  318. cs_set_user_team(id, CS_TEAM_UNASSIGNED)
  319. ShowMsg(id)
  320. Menu(id)
  321. }
  322.  
  323. if(equal(check_status, "LOGGED"))
  324. {
  325. is_autolog[id] = true
  326. CheckAutoLogin(id)
  327. }
  328. SQL_NextRow(Query)
  329. }
  330. }
  331. }
  332.  
  333. public CheckAutoLogin(id)
  334. {
  335. new client_password[32];
  336. get_pcvar_string(g_setinfo_pr, pass_prefix, charsmax(pass_prefix))
  337. get_user_info(id, pass_prefix, client_password, charsmax(client_password))
  338. formatex(passsalt, charsmax(passsalt), "%s%s", client_password, SALT)
  339. md5(passsalt, hash)
  340.  
  341. if(equal(hash, password[id]))
  342. {
  343. is_logged[id] = true
  344. }
  345. }
  346. /*==============================================================================
  347.   End of Check Client functions
  348.   ================================================================================*/
  349.  
  350. /*==============================================================================
  351.   Start of Show Client's informative messages
  352.   ================================================================================*/
  353. public ShowMsg(id)
  354. {
  355. if(!get_pcvar_num(g_on))
  356. return PLUGIN_HANDLED
  357.  
  358. set_task(5.0, "Messages", id+TASK_MESS)
  359.  
  360. params[0] = id
  361.  
  362. if(!is_registered[id])
  363. {
  364. if(get_pcvar_float(g_regtime) != 0)
  365. {
  366. params[1] = 1
  367. set_task(get_pcvar_float(g_regtime), "KickPlayer", id+TASK_KICK, params, sizeof params)
  368. return PLUGIN_HANDLED
  369. }
  370. }
  371. else
  372. {
  373. params[1] = 2
  374. set_task(get_pcvar_float(g_logtime), "KickPlayer", id+TASK_KICK, params, sizeof params)
  375. return PLUGIN_HANDLED
  376. }
  377. return PLUGIN_CONTINUE
  378. }
  379.  
  380. public Messages(id)
  381. {
  382. id -= TASK_MESS
  383.  
  384. if(get_pcvar_num(g_msg) == 1 || get_pcvar_num(g_msg) == 3)
  385. {
  386. if(!is_registered[id])
  387. {
  388. if(get_pcvar_float(g_regtime) != 0)
  389. {
  390. set_hudmessage(255, 0, 0, -1.0, -1.0, 0, 0.5, 5.0, 2.0, 2.0, -1)
  391. show_hudmessage(id, "%L", LANG_SERVER, "REGISTER_HUD", get_pcvar_num(g_regtime))
  392. }
  393. else
  394. {
  395. set_hudmessage(0, 255, 0, -1.0, -1.0, 0, 0.5, 5.0, 2.0, 2.0, -1)
  396. show_hudmessage(id, "%L", LANG_SERVER, "YOUCANREG_HUD", get_pcvar_num(g_regtime))
  397. }
  398. }
  399. else if(!is_logged[id])
  400. {
  401. set_hudmessage(255, 0, 0, -1.0, -1.0, 0, 0.5, 5.0, 2.0, 2.0, -1)
  402. show_hudmessage(id, "%L", LANG_SERVER, "LOGIN_HUD", get_pcvar_num(g_logtime))
  403. }
  404. else if(is_autolog[id])
  405. {
  406. set_hudmessage(0, 255, 0, -1.0, -1.0, 0, 0.5, 5.0, 2.0, 2.0, -1)
  407. show_hudmessage(id, "%L", LANG_SERVER, "AUTO_LOGIN_HUD")
  408. }
  409. }
  410.  
  411. if(get_pcvar_num(g_msg) == 2 || get_pcvar_num(g_msg) == 3)
  412. {
  413. if(!is_registered[id])
  414. {
  415. if(get_pcvar_float(g_regtime) != 0)
  416. {
  417. client_printcolor(id, "%L", LANG_SERVER, "REGISTER_CHAT", prefix, get_pcvar_num(g_regtime))
  418. }
  419. else
  420. {
  421. client_printcolor(id, "%L", LANG_SERVER, "YOUCANREG_CHAT", prefix, get_pcvar_num(g_regtime))
  422. }
  423. }
  424. else if(!is_logged[id])
  425. {
  426. client_printcolor(id, "%L", LANG_SERVER, "LOGIN_CHAT", prefix, get_pcvar_num(g_logtime))
  427. }
  428. else if(is_autolog[id])
  429. {
  430. client_printcolor(id, "%L", LANG_SERVER, "AUTO_LOGIN_CHAT", prefix)
  431. }
  432. }
  433. }
  434. /*==============================================================================
  435.   End of Show Client's informative messages
  436.   ================================================================================*/
  437.  
  438. /*==============================================================================
  439.   Start of Hook Client's jointeam commands
  440.   ================================================================================*/
  441. public HookJoinCommands(id)
  442. {
  443. if(get_pcvar_num(g_on))
  444. {
  445. if((!is_registered[id] && get_pcvar_float(g_regtime)) || (is_registered[id] && !is_logged[id]))
  446. {
  447. Menu(id)
  448. return PLUGIN_HANDLED
  449. }
  450.  
  451. return PLUGIN_CONTINUE
  452. }
  453.  
  454. return PLUGIN_CONTINUE
  455. }
  456. /*==============================================================================
  457.   End of Hook Client's jointeam commands
  458.   ================================================================================*/
  459.  
  460. /*==============================================================================
  461.   Start of Hook Client's say commands
  462.   ================================================================================*/
  463. public HookSayCommands(id)
  464. {
  465. new g_message[16];
  466. read_args(g_message, charsmax(g_message))
  467. remove_quotes(g_message)
  468.  
  469. if(get_pcvar_num(g_on))
  470. {
  471. if(equal(g_message, "/reg"))
  472. {
  473. Menu(id)
  474. }
  475. else if(get_pcvar_num(g_chat))
  476. {
  477. if(!is_registered[id] && get_pcvar_float(g_regtime))
  478. {
  479. client_printcolor(id, "%L", LANG_SERVER, "CHAT_REG", prefix)
  480. return PLUGIN_HANDLED
  481. }
  482. else if(is_registered[id] && !is_logged[id])
  483. {
  484. client_printcolor(id, "%L", LANG_SERVER, "CHAT_LOG", prefix)
  485. return PLUGIN_HANDLED
  486. }
  487. }
  488. }
  489.  
  490. return PLUGIN_CONTINUE
  491. }
  492. /*==============================================================================
  493.   End of Hook Client's say commands
  494.   ================================================================================*/
  495.  
  496. /*==============================================================================
  497.   Start of the Main Menu function
  498.   ================================================================================*/
  499. public Menu(id)
  500. {
  501. if(!get_pcvar_num(g_on) || !is_user_connected(id))
  502. return PLUGIN_HANDLED
  503.  
  504. length = 0
  505.  
  506. if(is_registered[id])
  507. {
  508. if(is_logged[id])
  509. {
  510. length += formatex(menu[length], charsmax(menu) - length, "%L", LANG_SERVER, "MAIN_MENU_LOG")
  511. keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_9|MENU_KEY_0
  512. }
  513. else
  514. {
  515. length += formatex(menu[length], charsmax(menu) - length, "%L", LANG_SERVER, "MAIN_MENU_REG")
  516. keys = MENU_KEY_7|MENU_KEY_9
  517. }
  518. }
  519. else
  520. {
  521. if(get_pcvar_float(g_regtime) == 0)
  522. {
  523. length += formatex(menu[length], charsmax(menu) - length, "%L", LANG_SERVER, "MAIN_MENU_NOTREG")
  524. keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_5|MENU_KEY_6|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0
  525. }
  526. else
  527. {
  528. length += formatex(menu[length], charsmax(menu) - length, "%L", LANG_SERVER, "MAIN_MENU_NOTREG_FORCE")
  529. keys = MENU_KEY_8|MENU_KEY_9
  530. }
  531. }
  532. show_menu(id, keys, menu, -1, "Main Menu")
  533.  
  534. return PLUGIN_CONTINUE
  535. }
  536.  
  537. public HandlerMainMenu(id, key)
  538. {
  539. switch(key)
  540. {
  541. case 0:
  542. {
  543. client_cmd(id, "jointeam 1")
  544. }
  545. case 1:
  546. {
  547. client_cmd(id, "jointeam 2")
  548. }
  549. case 4:
  550. {
  551. client_cmd(id, "jointeam 5")
  552. }
  553. case 5:
  554. {
  555. client_cmd(id, "jointeam 6")
  556. }
  557. case 6:
  558. {
  559. if(!is_logged[id])
  560. {
  561. client_cmd(id, "messagemode LOGIN_PASS")
  562. Menu(id)
  563. }
  564. else
  565. {
  566. is_logged[id] = false
  567.  
  568. if(is_autolog[id])
  569. {
  570. AutoLogin(id)
  571. }
  572. get_pcvar_string(g_setinfo_pr, pass_prefix, charsmax(pass_prefix))
  573. client_cmd(id, "setinfo %s ^"^"", pass_prefix)
  574. client_printcolor(id, "%L", LANG_SERVER, "LOG_OUT", prefix)
  575.  
  576. if(get_pcvar_num(g_logout))
  577. {
  578. ShowMsg(id)
  579. Menu(id)
  580. }
  581. else
  582. {
  583. params[0] = id
  584. params[1] = 4
  585. set_task(2.0, "KickPlayer", id+TASK_KICK, params, sizeof params)
  586. }
  587. }
  588. }
  589. case 7:
  590. {
  591. client_cmd(id, "messagemode REGISTER_PASS")
  592. Menu(id)
  593. }
  594. case 8:
  595. {
  596. OptionsMenu(id)
  597. }
  598. case 9:
  599. {
  600. return PLUGIN_HANDLED
  601. }
  602. }
  603. return PLUGIN_HANDLED
  604. }
  605. /*==============================================================================
  606.   End of the Main Menu function
  607.   ================================================================================*/
  608.  
  609. /*==============================================================================
  610.   Start of the Options Menu function
  611.   ================================================================================*/
  612. public OptionsMenu(id)
  613. {
  614. if(!get_pcvar_num(g_on) || !is_user_connected(id))
  615. return PLUGIN_HANDLED
  616.  
  617. length = 0
  618.  
  619. if(is_logged[id])
  620. {
  621. if(is_autolog[id])
  622. {
  623. length += formatex(menu[length], charsmax(menu) - length, "%L", LANG_SERVER, "OPTIONS_MENU_LOG_ON")
  624. }
  625. else
  626. {
  627. length += formatex(menu[length], charsmax(menu) - length, "%L", LANG_SERVER, "OPTIONS_MENU_LOG_OFF")
  628. }
  629. keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_0
  630. }
  631. else
  632. {
  633. length += formatex(menu[length], charsmax(menu) - length, "%L", LANG_SERVER, "OPTIONS_MENU_NOT_LOG")
  634. keys = MENU_KEY_3|MENU_KEY_0
  635. }
  636.  
  637. show_menu(id, keys, menu, -1, "Options Menu")
  638.  
  639. return PLUGIN_CONTINUE
  640. }
  641.  
  642. public HandlerOptionsMenu(id, key)
  643. {
  644. switch(key)
  645. {
  646. case 0:
  647. {
  648. if(times[id] >= get_pcvar_num(g_chp_time))
  649. {
  650. client_printcolor(id, "%L", LANG_SERVER, "CHANGE_TIMES", prefix, get_pcvar_num(g_chp_time))
  651. return PLUGIN_HANDLED
  652. }
  653. else
  654. {
  655. client_cmd(id, "messagemode CHANGE_PASS_NEW")
  656. }
  657. OptionsMenu(id)
  658. }
  659. case 1:
  660. {
  661. if(is_autolog[id])
  662. {
  663. AutoLogin(id)
  664. }
  665. else
  666. {
  667. client_cmd(id, "messagemode AUTO_LOGIN_PASS")
  668. }
  669. OptionsMenu(id)
  670. }
  671. case 2:
  672. {
  673. Info(id)
  674. OptionsMenu(id)
  675. }
  676. case 9:
  677. {
  678. Menu(id)
  679. return PLUGIN_HANDLED
  680. }
  681. }
  682. return PLUGIN_HANDLED
  683. }
  684. /*==============================================================================
  685.   End of the Options Menu function
  686.   ================================================================================*/
  687.  
  688. /*==============================================================================
  689.   Start of Client's Auto Login Changer function
  690.   ================================================================================*/
  691. public AutoLogin(id)
  692. {
  693. get_user_name(id, name, charsmax(name))
  694.  
  695. if(!is_registered[id] || !is_logged[id])
  696. return PLUGIN_HANDLED
  697.  
  698. if(get_pcvar_num(g_save))
  699. {
  700. formatex(query, charsmax(query), "UPDATE registersystem SET Status = ^"%s^" WHERE Name = ^"%s^";", is_autolog[id] == true ? "" : "LOGGED", name)
  701. SQL_ThreadQuery(g_SQLTuple, "QuerySetData", query)
  702. }
  703. else
  704. {
  705. new line, file = fopen(reg_file, "r");
  706.  
  707. while(!feof(file))
  708. {
  709. fgets(file, namepass, 255)
  710. parse(namepass, namepass, charsmax(namepass))
  711. line++
  712.  
  713. if(equal(namepass, name))
  714. {
  715. formatex(namepass, charsmax(namepass), "^"%s^" ^"%s^" ^"%s^"", name, password[id], is_autolog[id] == true ? "" : "LOGGED")
  716. write_file(reg_file, namepass, line - 1)
  717.  
  718. break
  719. }
  720. }
  721. fclose(file)
  722. }
  723.  
  724. if(is_autolog[id])
  725. {
  726. is_autolog[id] = false
  727. client_printcolor(id, "%L", LANG_SERVER, "AUTO_LOGIN_OFF", prefix)
  728. get_pcvar_string(g_setinfo_pr, pass_prefix, charsmax(pass_prefix))
  729. client_cmd(id, "setinfo %s ^"^"", pass_prefix)
  730.  
  731. if(get_pcvar_num(g_aulog_log))
  732. {
  733. log_to_file(log_file, "%L", LANG_SERVER, "LOGFILE_AUTO_OFF", name)
  734. }
  735. }
  736. else
  737. {
  738. is_autolog[id] = true
  739. client_printcolor(id, "%L", LANG_SERVER, "AUTO_LOGIN_ON", prefix)
  740. if(get_pcvar_num(g_aulog_log))
  741. {
  742. log_to_file(log_file, "%L", LANG_SERVER, "LOGFILE_AUTO_ON", name)
  743. }
  744. }
  745.  
  746. return PLUGIN_CONTINUE
  747. }
  748.  
  749. public AutoLoginPassword(id)
  750. {
  751. if(!get_pcvar_num(g_on))
  752. return PLUGIN_HANDLED
  753.  
  754. read_args(typedpass, charsmax(typedpass))
  755. remove_quotes(typedpass)
  756. formatex(passsalt, charsmax(passsalt), "%s%s", typedpass, SALT)
  757. md5(passsalt, hash)
  758.  
  759. if(!equal(hash, password[id]))
  760. {
  761. client_printcolor(id, "%L", LANG_SERVER, "AUTO_LOGIN_PASS_NOTVALID", prefix)
  762. client_cmd(id, "messagemode AUTO_LOGIN_PASS")
  763. return PLUGIN_HANDLED
  764. }
  765. else
  766. {
  767. get_pcvar_string(g_setinfo_pr, pass_prefix, charsmax(pass_prefix))
  768. client_cmd(id, "setinfo %s %s", pass_prefix, typedpass)
  769. AutoLogin(id)
  770. OptionsMenu(id)
  771. }
  772. return PLUGIN_CONTINUE
  773. }
  774. /*==============================================================================
  775.   End of Client's Auto Login Changer function
  776.   ================================================================================*/
  777.  
  778. /*==============================================================================
  779.   Start of Info/Help MOTD function
  780.   ================================================================================*/
  781. public Info(id)
  782. {
  783. show_motd(id, "rshelpmotd.txt", "Regisztracios rendszer Segitseg")
  784. }
  785. /*==============================================================================
  786.   End of Info/Help MOTD function
  787.   ================================================================================*/
  788.  
  789. /*==============================================================================
  790.   Start of Login function
  791.   ================================================================================*/
  792. public Login(id)
  793. {
  794. if(!get_pcvar_num(g_on))
  795. return PLUGIN_HANDLED
  796.  
  797. if(!is_registered[id])
  798. {
  799. client_printcolor(id, "%L", LANG_SERVER, "LOG_NOTREG", prefix)
  800. return PLUGIN_HANDLED
  801. }
  802.  
  803. if(is_logged[id])
  804. {
  805. client_printcolor(id, "%L", LANG_SERVER, "LOG_LOGGED", prefix);
  806. return PLUGIN_HANDLED
  807. }
  808.  
  809. read_args(typedpass, charsmax(typedpass))
  810. remove_quotes(typedpass)
  811.  
  812. if(equal(typedpass, ""))
  813. return PLUGIN_HANDLED
  814.  
  815. formatex(passsalt, charsmax(passsalt), "%s%s", typedpass, SALT)
  816. md5(passsalt, hash)
  817.  
  818. if(!equal(hash, password[id]))
  819. {
  820. attempts[id]++
  821. client_printcolor(id, "%L", LANG_SERVER, "LOG_PASS_INVALID", prefix, attempts[id], get_pcvar_num(g_attempts))
  822.  
  823. if(attempts[id] >= get_pcvar_num(g_attempts))
  824. {
  825. params[0] = id
  826. params[1] = 3
  827. set_task(2.0, "KickPlayer", id+TASK_KICK, params, sizeof params)
  828. return PLUGIN_HANDLED
  829. }
  830. else
  831. {
  832. client_cmd(id, "messagemode LOGIN_PASS")
  833. }
  834. return PLUGIN_HANDLED
  835. }
  836. else
  837. {
  838. is_logged[id] = true
  839. attempts[id] = 0
  840. remove_task(id+TASK_KICK)
  841. client_printcolor(id, "%L", LANG_SERVER, "LOG_LOGING", prefix)
  842. Menu(id)
  843. }
  844. return PLUGIN_CONTINUE
  845. }
  846. /*==============================================================================
  847.   End of Login function
  848.   ================================================================================*/
  849.  
  850. /*==============================================================================
  851.   Start of Register function
  852.   ================================================================================*/
  853. public Register(id)
  854. {
  855. if(!get_pcvar_num(g_on))
  856. return PLUGIN_HANDLED
  857.  
  858. read_args(typedpass, charsmax(typedpass))
  859. remove_quotes(typedpass)
  860.  
  861. new passlength = strlen(typedpass)
  862.  
  863. if(equal(typedpass, ""))
  864. return PLUGIN_HANDLED
  865.  
  866. if(is_registered[id])
  867. {
  868. client_printcolor(id, "%L", LANG_SERVER, "REG_EXISTS", prefix)
  869. return PLUGIN_HANDLED
  870. }
  871.  
  872. if(passlength < get_pcvar_num(g_pass_length))
  873. {
  874. client_printcolor(id, "%L", LANG_SERVER, "REG_LEN", prefix, get_pcvar_num(g_pass_length))
  875. client_cmd(id, "messagemode REGISTER_PASS")
  876. return PLUGIN_HANDLED
  877. }
  878.  
  879. new_pass[id] = typedpass
  880. ConfirmPassword(id)
  881. return PLUGIN_CONTINUE
  882. }
  883. /*==============================================================================
  884.   End of Register function
  885.   ================================================================================*/
  886.  
  887. /*==============================================================================
  888.   Start of Change Password function
  889.   ================================================================================*/
  890. public ChangePasswordNew(id)
  891. {
  892. if(!get_pcvar_num(g_on) || !is_registered[id] || !is_logged[id])
  893. return PLUGIN_HANDLED
  894.  
  895. read_args(typedpass, charsmax(typedpass))
  896. remove_quotes(typedpass)
  897.  
  898. new passlenght = strlen(typedpass)
  899.  
  900. if(equal(typedpass, ""))
  901. return PLUGIN_HANDLED
  902.  
  903. if(passlenght < get_pcvar_num(g_pass_length))
  904. {
  905. client_printcolor(id, "%L", LANG_SERVER, "REG_LEN", prefix, get_pcvar_num(g_pass_length))
  906. client_cmd(id, "messagemode CHANGE_PASS_NEW")
  907. return PLUGIN_HANDLED
  908. }
  909.  
  910. new_pass[id] = typedpass
  911. client_cmd(id, "messagemode CHANGE_PASS_OLD")
  912. return PLUGIN_CONTINUE
  913. }
  914.  
  915. public ChangePasswordOld(id)
  916. {
  917. if(!get_pcvar_num(g_on) || !is_registered[id] || !is_logged[id])
  918. return PLUGIN_HANDLED
  919.  
  920. read_args(typedpass, charsmax(typedpass))
  921. remove_quotes(typedpass)
  922. formatex(passsalt, charsmax(passsalt), "%s%s", typedpass, SALT)
  923. md5(passsalt, hash)
  924.  
  925. if(equal(typedpass, "") || equal(new_pass[id], ""))
  926. return PLUGIN_HANDLED
  927.  
  928. if(!equali(hash, password[id]))
  929. {
  930. client_printcolor(id, "%L", LANG_SERVER, "CHANGE_NO", prefix)
  931. return PLUGIN_HANDLED
  932. }
  933.  
  934. ConfirmPassword(id)
  935. return PLUGIN_CONTINUE
  936. }
  937. /*==============================================================================
  938.   End of Change Password function
  939.   ================================================================================*/
  940.  
  941. /*==============================================================================
  942.   Start of Confirming Register's or Change Password's password function
  943.   ================================================================================*/
  944. public ConfirmPassword(id)
  945. {
  946. if(!get_pcvar_num(g_on) || !is_user_connected(id))
  947. return PLUGIN_HANDLED
  948.  
  949. length = 0
  950.  
  951. formatex(menu, charsmax(menu) - length, "%L", LANG_SERVER, "MENU_PASS", new_pass[id])
  952. keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_0
  953.  
  954. show_menu(id, keys, menu, -1, "Password Menu")
  955. return PLUGIN_CONTINUE
  956. }
  957.  
  958. public HandlerConfirmPasswordMenu(id, key)
  959. {
  960. switch(key)
  961. {
  962. case 0:
  963. {
  964. get_user_name(id, name, charsmax(name))
  965. formatex(passsalt, charsmax(passsalt), "%s%s", new_pass[id], SALT)
  966. md5(passsalt, hash)
  967.  
  968. if(is_registered[id])
  969. {
  970. if(get_pcvar_num(g_save))
  971. {
  972. formatex(namepass, charsmax(namepass), "UPDATE `registersystem` SET Password = ^"%s^", Status = ^"%s^" WHERE Name = ^"%s^";", hash, is_autolog[id] == true ? "LOGGED" : "", name)
  973. SQL_ThreadQuery(g_SQLTuple, "QuerySetData", namepass)
  974. }
  975. else
  976. {
  977. new line, file = fopen(reg_file, "r")
  978.  
  979. while(!feof(file))
  980. {
  981. fgets(file, namepass, 255)
  982. line++
  983. parse(namepass, namepass, charsmax(namepass))
  984.  
  985. if(equal(namepass, name))
  986. {
  987. formatex(namepass, charsmax(namepass), "^"%s^" ^"%s^" ^"%s^"", name, hash, is_autolog[id] == true ? "LOGGED" : "")
  988. write_file(reg_file, namepass, line - 1)
  989.  
  990. break
  991. }
  992. }
  993. fclose(file)
  994. }
  995. get_pcvar_string(g_setinfo_pr, pass_prefix, charsmax(pass_prefix))
  996. client_cmd(id, "setinfo %s %s",pass_prefix, new_pass[id])
  997. client_printcolor(id, "%L", LANG_SERVER, "CHANGE_NEW", prefix, new_pass[id])
  998. password[id] = hash
  999. times[id]++
  1000.  
  1001. if(get_pcvar_num(g_chp_log))
  1002. {
  1003. log_to_file(log_file, "%L", LANG_SERVER, "LOGFILE_CHNG_PASS", name)
  1004. }
  1005. }
  1006. else
  1007. {
  1008. if(get_pcvar_num(g_save))
  1009. {
  1010. formatex(namepass, charsmax(namepass), "INSERT INTO `registersystem` (`Name`, `Password`, `Status`) VALUES (^"%s^", ^"%s^", ^"^");", name, hash)
  1011. SQL_ThreadQuery(g_SQLTuple, "QuerySetData", namepass)
  1012. }
  1013. else
  1014. {
  1015. new file = fopen(reg_file, "a")
  1016. format(namepass, charsmax(namepass), "^n^"%s^" ^"%s^" ^"^"", name, hash)
  1017. fprintf(file, namepass)
  1018. fclose(file)
  1019. }
  1020. remove_task(id+TASK_KICK)
  1021. params[1] = 2
  1022. set_task(get_pcvar_float(g_logtime), "KickPlayer", id+TASK_KICK, params, sizeof params)
  1023. client_printcolor(id, "%L", LANG_SERVER, "REG_REGIS", prefix, new_pass[id], get_pcvar_num(g_logtime))
  1024. is_registered[id] = true
  1025. password[id] = hash
  1026. new_pass[id] = ""
  1027.  
  1028. if(get_pcvar_num(g_reg_log))
  1029. {
  1030. log_to_file(log_file, "%L", LANG_SERVER, "LOGFILE_REG", name)
  1031. }
  1032. }
  1033. Menu(id)
  1034. }
  1035. case 1:
  1036. {
  1037. if(is_registered[id])
  1038. {
  1039. client_cmd(id, "messagemode CHANGE_PASS_NEW")
  1040. }
  1041. else
  1042. {
  1043. client_cmd(id, "messagemode REGISTER_PASS")
  1044. }
  1045. }
  1046. case 9:
  1047. {
  1048. Menu(id)
  1049. return PLUGIN_HANDLED
  1050. }
  1051. }
  1052. return PLUGIN_HANDLED
  1053. }
  1054.  
  1055. public QuerySetData(FailState, Handle:Query, error[],errcode, data[], datasize)
  1056. {
  1057. if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
  1058. {
  1059. log_amx("%s", error)
  1060. return
  1061. }
  1062. }
  1063. /*==============================================================================
  1064.   End of Confirming Register's or Change Password's password function
  1065.   ================================================================================*/
  1066.  
  1067. /*==============================================================================
  1068.   Start of Player PreThink function for the blind function
  1069.   ================================================================================*/
  1070. public PlayerPreThink(id)
  1071. {
  1072. if(!get_pcvar_num(g_on) || !get_pcvar_num(g_blind) || !is_user_connected(id))
  1073. return PLUGIN_HANDLED
  1074.  
  1075. if((!is_registered[id] && get_pcvar_float(g_regtime)) || (is_registered[id] && !is_logged[id]))
  1076. {
  1077. message_begin(MSG_ONE_UNRELIABLE, g_screenfade, {0,0,0}, id)
  1078. write_short(1<<12)
  1079. write_short(1<<12)
  1080. write_short(0x0000)
  1081. write_byte(0)
  1082. write_byte(0)
  1083. write_byte(0)
  1084. write_byte(255)
  1085. message_end()
  1086. }
  1087.  
  1088. return PLUGIN_CONTINUE
  1089. }
  1090. /*==============================================================================
  1091.   End of Player PreThink function for the blind function
  1092.   ================================================================================*/
  1093.  
  1094. /*==============================================================================
  1095.   Start of Client Info Change function for hooking name change of clients
  1096.   ================================================================================*/
  1097. public ClientInfoChanged(id)
  1098. {
  1099. if(!get_pcvar_num(g_on) || !is_user_connected(id))
  1100. return FMRES_IGNORED
  1101.  
  1102. new g_oldname[32], g_newname[32];
  1103.  
  1104. pev(id, pev_netname, g_oldname, charsmax(g_oldname))
  1105.  
  1106. if(g_oldname[0])
  1107. {
  1108. get_user_info(id, "name", g_newname, charsmax(g_newname))
  1109. replace_all(g_newname, charsmax(g_newname), "%", " ")
  1110.  
  1111. if(!equal(g_oldname, g_newname))
  1112. {
  1113.  
  1114. switch(get_pcvar_num(g_name))
  1115. {
  1116. case 0:
  1117. {
  1118. set_pev(id, pev_netname, g_newname)
  1119. create_name_change_msg(id, g_oldname, g_newname)
  1120. set_task(1.0, "CheckClient", id)
  1121. return FMRES_HANDLED
  1122. }
  1123. case 1:
  1124. {
  1125. if(is_logged[id])
  1126. {
  1127. set_user_info(id, "name", g_oldname)
  1128. client_printcolor(id, "%L", LANG_SERVER, "NAME_CHANGE_LOG", prefix)
  1129. return FMRES_HANDLED
  1130. }
  1131. else
  1132. {
  1133. set_pev(id, pev_netname, g_newname)
  1134. create_name_change_msg(id, g_oldname, g_newname)
  1135. set_task(1.0, "CheckClient", id)
  1136. return FMRES_HANDLED
  1137. }
  1138. }
  1139. case 2:
  1140. {
  1141. set_user_info(id, "name", g_oldname)
  1142. client_printcolor(id, "%L", LANG_SERVER, "NAME_CHANGE_ALL", prefix)
  1143. return FMRES_HANDLED
  1144. }
  1145. }
  1146. }
  1147. }
  1148. return FMRES_IGNORED
  1149. }
  1150. /*==============================================================================
  1151.   End of Client Info Change function for hooking name change of clients
  1152.   ================================================================================*/
  1153.  
  1154. /*==============================================================================
  1155.   Start of Kick Player function
  1156.   ================================================================================*/
  1157. public KickPlayer(parameter[])
  1158. {
  1159. new id = parameter[0]
  1160. new reason = parameter[1]
  1161.  
  1162. if(is_user_connected(id))
  1163. {
  1164. new userid = get_user_userid(id)
  1165.  
  1166. switch(reason)
  1167. {
  1168. case 1:
  1169. {
  1170. if(is_registered[id])
  1171. return PLUGIN_HANDLED
  1172.  
  1173. server_cmd("kick #%i ^"%L^"", userid, LANG_PLAYER, "KICK_REG")
  1174. console_print(id, "%L", LANG_PLAYER, "KICK_INFO")
  1175. return PLUGIN_CONTINUE
  1176. }
  1177. case 2:
  1178. {
  1179. if(is_logged[id])
  1180. return PLUGIN_HANDLED
  1181.  
  1182. server_cmd("kick #%i ^"%L^"", userid, LANG_PLAYER, "KICK_LOGIN")
  1183. console_print(id, "%L", LANG_PLAYER, "KICK_INFO")
  1184. return PLUGIN_CONTINUE
  1185. }
  1186. case 3:
  1187. {
  1188. server_cmd("kick #%i ^"%L^"", userid, LANG_PLAYER, "KICK_ATMP", get_pcvar_num(g_attempts))
  1189. console_print(id, "%L", LANG_PLAYER, "KICK_INFO")
  1190. return PLUGIN_CONTINUE
  1191. }
  1192. case 4:
  1193. {
  1194. server_cmd("kick #%i ^"%L^"", userid, LANG_SERVER, "KICK_LOGOUT")
  1195. console_print(id, "%L", LANG_PLAYER, "KICK_INFO")
  1196. return PLUGIN_CONTINUE
  1197. }
  1198. }
  1199. }
  1200. return PLUGIN_CONTINUE
  1201. }
  1202. /*==============================================================================
  1203.   End of Kick Player function
  1204.   ================================================================================*/
  1205.  
  1206. /*==============================================================================
  1207.   Start of Plugin's stocks
  1208.   ================================================================================*/
  1209. stock create_name_change_msg(const id, const g_oldname[], const g_newname[])
  1210. {
  1211. message_begin(MSG_BROADCAST, g_saytxt)
  1212. write_byte(id)
  1213. write_string(NAME_CHANGE_MSG)
  1214. write_string(g_oldname)
  1215. write_string(g_newname)
  1216. message_end()
  1217. }
  1218.  
  1219. stock client_printcolor(const id, const input[], any:...)
  1220. {
  1221. new count = 1, players[32];
  1222. static msg[191];
  1223. vformat(msg, 190, input, 3)
  1224. replace_all(msg,190,"!g","^4")
  1225. replace_all(msg,190,"!n","^1")
  1226. replace_all(msg,190,"!t","^3")
  1227. replace_all(msg,190,"!w","^0")
  1228. if(id) players[0] = id
  1229. else get_players(players , count , "ch")
  1230. {
  1231. for(new i = 0; i < count; i++)
  1232. {
  1233. if(is_user_connected(players[i]))
  1234. {
  1235. message_begin(MSG_ONE_UNRELIABLE, g_saytxt,_, players[i])
  1236. write_byte(players[i])
  1237. write_string(msg)
  1238. message_end()
  1239. }
  1240. }
  1241. }
  1242. }
  1243. /*==============================================================================
  1244.   End of Plugin's stocks
  1245.   ================================================================================*/
  1246. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  1247.   *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par }
  1248.   */
  1249.  


MISU1998 írta:
Sziasztok, van a szerveremen az a regisztrációs rendszer, ami itt is fent van.
Regisztrációs Rendszer - Menüvel
És a szerver ilyen logokat hagy folyamatosan:

[0] RegisterSystem.sma::KickPlayer (line 1313)

Ezzel lehetne valamit?
Köszönöm

_________________
Ha elnyerte valamelyik témában a hozzászólásom a tetszésedet melyet olvastál, akkor egy egyszerű gombnyomással kifejezheted, hogy tetszett.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Regisztráció plugin hiba
HozzászólásElküldve:2014.07.04. 16:23 
Offline
Minden6ó
Avatar

Csatlakozott:2011.01.19. 12:14
Hozzászólások:4294
Megköszönt másnak: 219 alkalommal
Megköszönték neki: 289 alkalommal
Anonymous1337 írta:
Try:

Kód:
Your plugin successfully compiled!
Use the link below to download your plugin. It will be valid for ten minutes.

http://www.amxmodx.org/webcompiler.cgi?go=dl&id=1679524

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

Header size:           2444 bytes
Code size:            32208 bytes
Data size:            35540 bytes
Stack/heap size:      16384 bytes; max. usage is unknown, due to recursion
Total requirements:   86576 bytes
Done.


SMA Forráskód: [ Mindet kijelol ]
  1.  
  2. #include <amxmodx>
  3. #include <amxmisc>
  4. #include <cstrike>
  5. #include <fakemeta>
  6. #include <sqlx>
  7.  
  8. #define TASK_MESS 2133
  9. #define TASK_KICK 3312
  10. #define SALT "8c4f4370c53e0c1e1ae9acd577dddbed" //The SALT for the password encryption. It can be edited!
  11.  
  12. new g_on, g_save, g_host, g_user, g_pass, g_db, g_setinfo_pr, g_regtime, g_logtime, g_msg, g_pass_length, g_attempts, g_chp_time, g_reg_log, g_chp_log, g_aulog_log, g_name, g_blind, g_chat, g_logout; //cvar pointers
  13. new reg_file[256], configs_dir[64], file[192], params[2], name[32], check_name[32], check_pass[34], check_status[10], query[512], password[34][34], namepass[512], typedpass[32], new_pass[33][33], passsalt[64], hash[34], pass_prefix[32]; //arrays
  14. new bool:is_logged[33], bool:is_registered[33], bool:is_autolog[33], attempts[33], times[33]; //Booleans and other arrays
  15. new menu[512], keys, length; //variables and array for the menus
  16. new Handle:g_SQLTuple, g_error[512]; //SQL array and handle
  17. new g_saytxt, g_screenfade; //other variables
  18. new const prefix[] = "[Regisztracios Rendszer]"; //The prefix in the chat messages. It can be edited!
  19. new const log_file[] = "register_system_log.txt"; //The name of the log file. It can be edited!
  20. new const JOIN_TEAM_MENU_FIRST[] = "#Team_Select"; //The text of the Team Select menu. DO NOT CHANGE!
  21. new const JOIN_TEAM_MENU_FIRST_SPEC[] = "#Team_Select_Spect"; //The text of the Spectator Team Select menu. DO NOT CHANGE!
  22. new const JOIN_TEAM_MENU_INGAME[] = "#IG_Team_Select"; //The text of the Ingame Team Select menu. DO NOT CHANGE!
  23. new const JOIN_TEAM_MENU_INGAME_SPEC[] = "#IG_Team_Select_Spect"; //The text of the Ingame Spectator Team Select menu. DO NOT CHANGE!
  24. new const JOIN_TEAM_VGUI_MENU = 2; //The number of the VGUI menu for Team Select. DO NOT CHANGE!
  25. new const NAME_CHANGE_MSG[] = "#Cstrike_Name_Change"; ////The text of the Name Change Message. DO NOT CHANGE!
  26.  
  27. /*==============================================================================
  28.   Start of Plugin Init
  29.   ================================================================================*/
  30. public plugin_init()
  31. {
  32. register_plugin("Register System", "5.0", "m0skVi4a ;]")
  33.  
  34. g_on = register_cvar("rs_on", "1") //Is the plugin on(1) or off(0)
  35. g_save = register_cvar("rs_save_type", "0") //Where to seve the information: to file(0) or to MySQL(1).
  36. g_host = register_cvar("rs_host", "127.0.0.1") //The host for the database.
  37. g_user = register_cvar("rs_user", "root") //The username for the database login.
  38. g_pass = register_cvar("rs_pass", "") //The password for the database login.
  39. g_db = register_cvar("rs_db", "registersystem") //The database name.
  40. g_setinfo_pr = register_cvar("rs_password_prefix", "_rspass") //The prefix of the setinfo for the auto login.
  41. g_regtime = register_cvar("rs_register_time", "0") //How much time has the client to register. If is set to 0 registration is not mandatory.
  42. g_logtime = register_cvar("rs_login_time", "60.0") //How much time has the client to login if is registered.
  43. g_msg = register_cvar("rs_messages", "3") //What messages will be displayed when the client connect - only hud messages(1), only chat messages(2) or hud and chat messages(3).
  44. g_pass_length = register_cvar("rs_password_length", "6") //What is minimum length of the password.
  45. g_attempts = register_cvar("rs_attempts", "3") //How much attempts has the client to login if he type wrong password.
  46. g_chp_time = register_cvar("rs_chngpass_times", "3") //How much times can the client change his password per map.
  47. g_reg_log = register_cvar("rs_register_log", "1") //Is it allowed the plugin to log in file when the client is registered.
  48. g_chp_log = register_cvar("rs_chngpass_log", "1") //Is it allowed the plugin to log in file when the client has change his password.
  49. g_aulog_log = register_cvar("rs_autologin_log", "1") //Is it allowed the plugin to log in file when the client has change his Auto Login function.
  50. g_name = register_cvar("rs_name_change", "1") //Which of the clients can change their names - all clients(0), all clients without Logged cients(2) or no one can(3).
  51. g_blind = register_cvar("rs_blind", "1") //Whether clients who have not Logged or who must Register be blinded.
  52. g_chat = register_cvar("rs_chat", "1") //Whether clients who have not Logged or who must Register chat's be blocked.
  53. g_logout = register_cvar("rs_logout", "0") //What to do when client Logout - kick him from the server(0) or wait to Login during the Login time(1).
  54.  
  55. register_message(get_user_msgid("ShowMenu"), "ShowMenu")
  56. register_message(get_user_msgid("VGUIMenu"), "VGUIMenu")
  57. register_menucmd(register_menuid("Main Menu"), 1023, "HandlerMainMenu")
  58. register_menucmd(register_menuid("Options Menu"), 1023, "HandlerOptionsMenu")
  59. register_menucmd(register_menuid("Password Menu"), 1023, "HandlerConfirmPasswordMenu")
  60. register_clcmd("jointeam", "HookJoinCommands")
  61. register_clcmd("chooseteam", "HookJoinCommands")
  62. register_clcmd("say", "HookSayCommands")
  63. register_clcmd("say_team", "HookSayCommands")
  64. register_clcmd("LOGIN_PASS", "Login")
  65. register_clcmd("REGISTER_PASS", "Register")
  66. register_clcmd("CHANGE_PASS_NEW", "ChangePasswordNew")
  67. register_clcmd("CHANGE_PASS_OLD", "ChangePasswordOld")
  68. register_clcmd("AUTO_LOGIN_PASS", "AutoLoginPassword")
  69.  
  70. register_forward(FM_PlayerPreThink, "PlayerPreThink")
  71. register_forward(FM_ClientUserInfoChanged, "ClientInfoChanged")
  72.  
  73. register_dictionary("register_system.txt")
  74. g_saytxt = get_user_msgid("SayText")
  75. g_screenfade = get_user_msgid("ScreenFade")
  76. }
  77. /*==============================================================================
  78.   End of Plugin Init
  79.   ================================================================================*/
  80.  
  81. /*==============================================================================
  82.   Start of Executing plugin's config and choose the save mode
  83.   ================================================================================*/
  84. public plugin_cfg()
  85. {
  86. if(!get_pcvar_num(g_on))
  87. return PLUGIN_HANDLED
  88.  
  89. get_configsdir(configs_dir, charsmax(configs_dir))
  90. formatex(file, charsmax(file), "%s/registersystem.cfg", configs_dir)
  91.  
  92. if(!file_exists(file))
  93. {
  94. server_print("%L", LANG_SERVER, "ERROR_CFG", file)
  95. }
  96. else
  97. {
  98. server_cmd("exec %s", file)
  99. server_print("%L", LANG_SERVER, "CFG_EXEC", file)
  100. }
  101.  
  102. if(get_pcvar_num(g_save))
  103. {
  104. new Host[64], User[32], Pass[32], DB[128];
  105.  
  106. get_pcvar_string(g_host, Host, charsmax(Host))
  107. get_pcvar_string(g_user, User, charsmax(User))
  108. get_pcvar_string(g_pass, Pass, charsmax(Pass))
  109. get_pcvar_string(g_db, DB, charsmax(DB))
  110.  
  111. g_SQLTuple = SQL_MakeDbTuple(Host, User, Pass, DB)
  112.  
  113. new errorcode, Handle:SqlConnection = SQL_Connect(g_SQLTuple, errorcode, g_error, charsmax(g_error))
  114.  
  115. if(SqlConnection == Empty_Handle)
  116. {
  117. server_print("%L", LANG_SERVER, "ERROR_MYSQL")
  118. set_fail_state(g_error)
  119. }
  120. else
  121. {
  122. server_print("%L", LANG_SERVER, "MYSQL_CONNECT")
  123. }
  124.  
  125. new Handle:Query
  126.  
  127. Query = SQL_PrepareQuery(SqlConnection, "CREATE TABLE IF NOT EXISTS registersystem (Name VARCHAR(32), Password VARCHAR(34), Status VARCHAR(10))")
  128.  
  129. if(!SQL_Execute(Query))
  130. {
  131. SQL_QueryError(Query, g_error, charsmax(g_error))
  132. set_fail_state(g_error)
  133. }
  134.  
  135. SQL_FreeHandle(Query)
  136. SQL_FreeHandle(SqlConnection)
  137. }
  138. else
  139. {
  140. get_configsdir(configs_dir, charsmax(configs_dir))
  141. formatex(reg_file, charsmax(reg_file), "%s/regusers.ini", configs_dir)
  142.  
  143. if(!file_exists(reg_file))
  144. {
  145. write_file(reg_file,";Register System file^n;Modifying may cause the clients to can not Login!^n^n")
  146. server_print("%L", LANG_SERVER, "ERROR_FILE", reg_file)
  147. }
  148. }
  149. return PLUGIN_CONTINUE
  150. }
  151. /*==============================================================================
  152.   End of Executing plugin's config and choose the save mode
  153.   ================================================================================*/
  154.  
  155. /*==============================================================================
  156.   Start of Client's connect and disconenct functions
  157.   ================================================================================*/
  158. public client_connect(id)
  159. {
  160. is_logged[id] = false
  161. is_registered[id] = false
  162. is_autolog[id] = false
  163. attempts[id] = 0
  164. times[id] = 0
  165. remove_task(id+TASK_MESS)
  166. CheckClient(id)
  167. }
  168.  
  169. public client_putinserver(id)
  170. {
  171. ShowMsg(id)
  172. }
  173.  
  174. public client_disconnect(id)
  175. {
  176. is_logged[id] = false
  177. is_registered[id] = false
  178. is_autolog[id] = false
  179. attempts[id] = 0
  180. times[id] = 0
  181. remove_task(id+TASK_MESS)
  182. remove_task(id+TASK_KICK)
  183. }
  184. /*==============================================================================
  185.   End of Client's connect and disconenct functions
  186.   ================================================================================*/
  187.  
  188. /*==============================================================================
  189.   Start of Show Menu functions
  190.   ================================================================================*/
  191. public ShowMenu(msgid, dest, id)
  192. {
  193. if(get_pcvar_num(g_on))
  194. {
  195. new menu_text[64]
  196.  
  197. get_msg_arg_string(4, menu_text, charsmax(menu_text))
  198.  
  199. if(equal(menu_text, JOIN_TEAM_MENU_FIRST) || equal(menu_text, JOIN_TEAM_MENU_FIRST_SPEC) || equal(menu_text, JOIN_TEAM_MENU_INGAME) || equal(menu_text, JOIN_TEAM_MENU_INGAME_SPEC))
  200. {
  201. Menu(id)
  202.  
  203. return PLUGIN_HANDLED
  204. }
  205.  
  206. return PLUGIN_CONTINUE
  207. }
  208. return PLUGIN_CONTINUE
  209. }
  210.  
  211. public VGUIMenu(msgid, dest, id)
  212. {
  213. if(get_pcvar_num(g_on))
  214. {
  215. if(get_msg_arg_int(1) == JOIN_TEAM_VGUI_MENU)
  216. {
  217. Menu(id)
  218.  
  219. return PLUGIN_HANDLED
  220. }
  221.  
  222. return PLUGIN_CONTINUE
  223. }
  224.  
  225. return PLUGIN_CONTINUE
  226. }
  227. /*==============================================================================
  228.   End of Show Menu functions
  229.   ================================================================================*/
  230.  
  231. /*==============================================================================
  232.   Start of Check Client functions
  233.   ================================================================================*/
  234. public CheckClient(id)
  235. {
  236. if(!get_pcvar_num(g_on) || is_user_bot(id))
  237. return PLUGIN_HANDLED
  238.  
  239. is_registered[id] = false
  240. is_autolog[id] = false
  241. is_logged[id] = false
  242. remove_task(id+TASK_KICK)
  243.  
  244. if(get_pcvar_num(g_save))
  245. {
  246. get_user_name(id, name, charsmax(name))
  247.  
  248. new data[1]
  249. data[0] = id
  250.  
  251. formatex(query, charsmax(query), "SELECT `Password`, `Status` FROM `registersystem` WHERE Name = ^"%s^";", name)
  252.  
  253. SQL_ThreadQuery(g_SQLTuple, "QuerySelectData", query, data, 1)
  254. }
  255. else
  256. {
  257. new file = fopen(reg_file, "r")
  258.  
  259. while(!feof(file))
  260. {
  261. get_user_name(id, name, charsmax(name))
  262. fgets(file, namepass, charsmax(namepass))
  263. parse(namepass, check_name, charsmax(check_name), check_pass, charsmax(check_pass), check_status, charsmax(check_status))
  264.  
  265. if(namepass[0] == ';')
  266. continue
  267.  
  268. if(equal(check_name, name))
  269. {
  270. is_registered[id] = true
  271. password[id] = check_pass
  272.  
  273. if(is_user_connected(id))
  274. {
  275. user_silentkill(id)
  276. cs_set_user_team(id, CS_TEAM_UNASSIGNED)
  277. ShowMsg(id)
  278. Menu(id)
  279. }
  280.  
  281. if(equal(check_status, "LOGGED"))
  282. {
  283. is_autolog[id] = true
  284. CheckAutoLogin(id)
  285. }
  286.  
  287. break
  288. }
  289. }
  290. fclose(file)
  291. }
  292. return PLUGIN_CONTINUE
  293. }
  294.  
  295. public QuerySelectData(FailState, Handle:Query, error[], errorcode, data[], datasize, Float:fQueueTime)
  296. {
  297. if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
  298. {
  299. log_amx("%s", error)
  300. return
  301. }
  302. else
  303. {
  304. new id = data[0];
  305. new col_pass = SQL_FieldNameToNum(Query, "Password")
  306. new col_status = SQL_FieldNameToNum(Query, "Status")
  307.  
  308. while(SQL_MoreResults(Query))
  309. {
  310. SQL_ReadResult(Query, col_pass, check_pass, charsmax(check_pass))
  311. SQL_ReadResult(Query, col_status, check_status, charsmax(check_status))
  312. is_registered[id] = true
  313. password[id] = check_pass
  314.  
  315. if(is_user_connected(id))
  316. {
  317. user_silentkill(id)
  318. cs_set_user_team(id, CS_TEAM_UNASSIGNED)
  319. ShowMsg(id)
  320. Menu(id)
  321. }
  322.  
  323. if(equal(check_status, "LOGGED"))
  324. {
  325. is_autolog[id] = true
  326. CheckAutoLogin(id)
  327. }
  328. SQL_NextRow(Query)
  329. }
  330. }
  331. }
  332.  
  333. public CheckAutoLogin(id)
  334. {
  335. new client_password[32];
  336. get_pcvar_string(g_setinfo_pr, pass_prefix, charsmax(pass_prefix))
  337. get_user_info(id, pass_prefix, client_password, charsmax(client_password))
  338. formatex(passsalt, charsmax(passsalt), "%s%s", client_password, SALT)
  339. md5(passsalt, hash)
  340.  
  341. if(equal(hash, password[id]))
  342. {
  343. is_logged[id] = true
  344. }
  345. }
  346. /*==============================================================================
  347.   End of Check Client functions
  348.   ================================================================================*/
  349.  
  350. /*==============================================================================
  351.   Start of Show Client's informative messages
  352.   ================================================================================*/
  353. public ShowMsg(id)
  354. {
  355. if(!get_pcvar_num(g_on))
  356. return PLUGIN_HANDLED
  357.  
  358. set_task(5.0, "Messages", id+TASK_MESS)
  359.  
  360. params[0] = id
  361.  
  362. if(!is_registered[id])
  363. {
  364. if(get_pcvar_float(g_regtime) != 0)
  365. {
  366. params[1] = 1
  367. set_task(get_pcvar_float(g_regtime), "KickPlayer", id+TASK_KICK, params, sizeof params)
  368. return PLUGIN_HANDLED
  369. }
  370. }
  371. else
  372. {
  373. params[1] = 2
  374. set_task(get_pcvar_float(g_logtime), "KickPlayer", id+TASK_KICK, params, sizeof params)
  375. return PLUGIN_HANDLED
  376. }
  377. return PLUGIN_CONTINUE
  378. }
  379.  
  380. public Messages(id)
  381. {
  382. id -= TASK_MESS
  383.  
  384. if(get_pcvar_num(g_msg) == 1 || get_pcvar_num(g_msg) == 3)
  385. {
  386. if(!is_registered[id])
  387. {
  388. if(get_pcvar_float(g_regtime) != 0)
  389. {
  390. set_hudmessage(255, 0, 0, -1.0, -1.0, 0, 0.5, 5.0, 2.0, 2.0, -1)
  391. show_hudmessage(id, "%L", LANG_SERVER, "REGISTER_HUD", get_pcvar_num(g_regtime))
  392. }
  393. else
  394. {
  395. set_hudmessage(0, 255, 0, -1.0, -1.0, 0, 0.5, 5.0, 2.0, 2.0, -1)
  396. show_hudmessage(id, "%L", LANG_SERVER, "YOUCANREG_HUD", get_pcvar_num(g_regtime))
  397. }
  398. }
  399. else if(!is_logged[id])
  400. {
  401. set_hudmessage(255, 0, 0, -1.0, -1.0, 0, 0.5, 5.0, 2.0, 2.0, -1)
  402. show_hudmessage(id, "%L", LANG_SERVER, "LOGIN_HUD", get_pcvar_num(g_logtime))
  403. }
  404. else if(is_autolog[id])
  405. {
  406. set_hudmessage(0, 255, 0, -1.0, -1.0, 0, 0.5, 5.0, 2.0, 2.0, -1)
  407. show_hudmessage(id, "%L", LANG_SERVER, "AUTO_LOGIN_HUD")
  408. }
  409. }
  410.  
  411. if(get_pcvar_num(g_msg) == 2 || get_pcvar_num(g_msg) == 3)
  412. {
  413. if(!is_registered[id])
  414. {
  415. if(get_pcvar_float(g_regtime) != 0)
  416. {
  417. client_printcolor(id, "%L", LANG_SERVER, "REGISTER_CHAT", prefix, get_pcvar_num(g_regtime))
  418. }
  419. else
  420. {
  421. client_printcolor(id, "%L", LANG_SERVER, "YOUCANREG_CHAT", prefix, get_pcvar_num(g_regtime))
  422. }
  423. }
  424. else if(!is_logged[id])
  425. {
  426. client_printcolor(id, "%L", LANG_SERVER, "LOGIN_CHAT", prefix, get_pcvar_num(g_logtime))
  427. }
  428. else if(is_autolog[id])
  429. {
  430. client_printcolor(id, "%L", LANG_SERVER, "AUTO_LOGIN_CHAT", prefix)
  431. }
  432. }
  433. }
  434. /*==============================================================================
  435.   End of Show Client's informative messages
  436.   ================================================================================*/
  437.  
  438. /*==============================================================================
  439.   Start of Hook Client's jointeam commands
  440.   ================================================================================*/
  441. public HookJoinCommands(id)
  442. {
  443. if(get_pcvar_num(g_on))
  444. {
  445. if((!is_registered[id] && get_pcvar_float(g_regtime)) || (is_registered[id] && !is_logged[id]))
  446. {
  447. Menu(id)
  448. return PLUGIN_HANDLED
  449. }
  450.  
  451. return PLUGIN_CONTINUE
  452. }
  453.  
  454. return PLUGIN_CONTINUE
  455. }
  456. /*==============================================================================
  457.   End of Hook Client's jointeam commands
  458.   ================================================================================*/
  459.  
  460. /*==============================================================================
  461.   Start of Hook Client's say commands
  462.   ================================================================================*/
  463. public HookSayCommands(id)
  464. {
  465. new g_message[16];
  466. read_args(g_message, charsmax(g_message))
  467. remove_quotes(g_message)
  468.  
  469. if(get_pcvar_num(g_on))
  470. {
  471. if(equal(g_message, "/reg"))
  472. {
  473. Menu(id)
  474. }
  475. else if(get_pcvar_num(g_chat))
  476. {
  477. if(!is_registered[id] && get_pcvar_float(g_regtime))
  478. {
  479. client_printcolor(id, "%L", LANG_SERVER, "CHAT_REG", prefix)
  480. return PLUGIN_HANDLED
  481. }
  482. else if(is_registered[id] && !is_logged[id])
  483. {
  484. client_printcolor(id, "%L", LANG_SERVER, "CHAT_LOG", prefix)
  485. return PLUGIN_HANDLED
  486. }
  487. }
  488. }
  489.  
  490. return PLUGIN_CONTINUE
  491. }
  492. /*==============================================================================
  493.   End of Hook Client's say commands
  494.   ================================================================================*/
  495.  
  496. /*==============================================================================
  497.   Start of the Main Menu function
  498.   ================================================================================*/
  499. public Menu(id)
  500. {
  501. if(!get_pcvar_num(g_on) || !is_user_connected(id))
  502. return PLUGIN_HANDLED
  503.  
  504. length = 0
  505.  
  506. if(is_registered[id])
  507. {
  508. if(is_logged[id])
  509. {
  510. length += formatex(menu[length], charsmax(menu) - length, "%L", LANG_SERVER, "MAIN_MENU_LOG")
  511. keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_9|MENU_KEY_0
  512. }
  513. else
  514. {
  515. length += formatex(menu[length], charsmax(menu) - length, "%L", LANG_SERVER, "MAIN_MENU_REG")
  516. keys = MENU_KEY_7|MENU_KEY_9
  517. }
  518. }
  519. else
  520. {
  521. if(get_pcvar_float(g_regtime) == 0)
  522. {
  523. length += formatex(menu[length], charsmax(menu) - length, "%L", LANG_SERVER, "MAIN_MENU_NOTREG")
  524. keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_5|MENU_KEY_6|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0
  525. }
  526. else
  527. {
  528. length += formatex(menu[length], charsmax(menu) - length, "%L", LANG_SERVER, "MAIN_MENU_NOTREG_FORCE")
  529. keys = MENU_KEY_8|MENU_KEY_9
  530. }
  531. }
  532. show_menu(id, keys, menu, -1, "Main Menu")
  533.  
  534. return PLUGIN_CONTINUE
  535. }
  536.  
  537. public HandlerMainMenu(id, key)
  538. {
  539. switch(key)
  540. {
  541. case 0:
  542. {
  543. client_cmd(id, "jointeam 1")
  544. }
  545. case 1:
  546. {
  547. client_cmd(id, "jointeam 2")
  548. }
  549. case 4:
  550. {
  551. client_cmd(id, "jointeam 5")
  552. }
  553. case 5:
  554. {
  555. client_cmd(id, "jointeam 6")
  556. }
  557. case 6:
  558. {
  559. if(!is_logged[id])
  560. {
  561. client_cmd(id, "messagemode LOGIN_PASS")
  562. Menu(id)
  563. }
  564. else
  565. {
  566. is_logged[id] = false
  567.  
  568. if(is_autolog[id])
  569. {
  570. AutoLogin(id)
  571. }
  572. get_pcvar_string(g_setinfo_pr, pass_prefix, charsmax(pass_prefix))
  573. client_cmd(id, "setinfo %s ^"^"", pass_prefix)
  574. client_printcolor(id, "%L", LANG_SERVER, "LOG_OUT", prefix)
  575.  
  576. if(get_pcvar_num(g_logout))
  577. {
  578. ShowMsg(id)
  579. Menu(id)
  580. }
  581. else
  582. {
  583. params[0] = id
  584. params[1] = 4
  585. set_task(2.0, "KickPlayer", id+TASK_KICK, params, sizeof params)
  586. }
  587. }
  588. }
  589. case 7:
  590. {
  591. client_cmd(id, "messagemode REGISTER_PASS")
  592. Menu(id)
  593. }
  594. case 8:
  595. {
  596. OptionsMenu(id)
  597. }
  598. case 9:
  599. {
  600. return PLUGIN_HANDLED
  601. }
  602. }
  603. return PLUGIN_HANDLED
  604. }
  605. /*==============================================================================
  606.   End of the Main Menu function
  607.   ================================================================================*/
  608.  
  609. /*==============================================================================
  610.   Start of the Options Menu function
  611.   ================================================================================*/
  612. public OptionsMenu(id)
  613. {
  614. if(!get_pcvar_num(g_on) || !is_user_connected(id))
  615. return PLUGIN_HANDLED
  616.  
  617. length = 0
  618.  
  619. if(is_logged[id])
  620. {
  621. if(is_autolog[id])
  622. {
  623. length += formatex(menu[length], charsmax(menu) - length, "%L", LANG_SERVER, "OPTIONS_MENU_LOG_ON")
  624. }
  625. else
  626. {
  627. length += formatex(menu[length], charsmax(menu) - length, "%L", LANG_SERVER, "OPTIONS_MENU_LOG_OFF")
  628. }
  629. keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_0
  630. }
  631. else
  632. {
  633. length += formatex(menu[length], charsmax(menu) - length, "%L", LANG_SERVER, "OPTIONS_MENU_NOT_LOG")
  634. keys = MENU_KEY_3|MENU_KEY_0
  635. }
  636.  
  637. show_menu(id, keys, menu, -1, "Options Menu")
  638.  
  639. return PLUGIN_CONTINUE
  640. }
  641.  
  642. public HandlerOptionsMenu(id, key)
  643. {
  644. switch(key)
  645. {
  646. case 0:
  647. {
  648. if(times[id] >= get_pcvar_num(g_chp_time))
  649. {
  650. client_printcolor(id, "%L", LANG_SERVER, "CHANGE_TIMES", prefix, get_pcvar_num(g_chp_time))
  651. return PLUGIN_HANDLED
  652. }
  653. else
  654. {
  655. client_cmd(id, "messagemode CHANGE_PASS_NEW")
  656. }
  657. OptionsMenu(id)
  658. }
  659. case 1:
  660. {
  661. if(is_autolog[id])
  662. {
  663. AutoLogin(id)
  664. }
  665. else
  666. {
  667. client_cmd(id, "messagemode AUTO_LOGIN_PASS")
  668. }
  669. OptionsMenu(id)
  670. }
  671. case 2:
  672. {
  673. Info(id)
  674. OptionsMenu(id)
  675. }
  676. case 9:
  677. {
  678. Menu(id)
  679. return PLUGIN_HANDLED
  680. }
  681. }
  682. return PLUGIN_HANDLED
  683. }
  684. /*==============================================================================
  685.   End of the Options Menu function
  686.   ================================================================================*/
  687.  
  688. /*==============================================================================
  689.   Start of Client's Auto Login Changer function
  690.   ================================================================================*/
  691. public AutoLogin(id)
  692. {
  693. get_user_name(id, name, charsmax(name))
  694.  
  695. if(!is_registered[id] || !is_logged[id])
  696. return PLUGIN_HANDLED
  697.  
  698. if(get_pcvar_num(g_save))
  699. {
  700. formatex(query, charsmax(query), "UPDATE registersystem SET Status = ^"%s^" WHERE Name = ^"%s^";", is_autolog[id] == true ? "" : "LOGGED", name)
  701. SQL_ThreadQuery(g_SQLTuple, "QuerySetData", query)
  702. }
  703. else
  704. {
  705. new line, file = fopen(reg_file, "r");
  706.  
  707. while(!feof(file))
  708. {
  709. fgets(file, namepass, 255)
  710. parse(namepass, namepass, charsmax(namepass))
  711. line++
  712.  
  713. if(equal(namepass, name))
  714. {
  715. formatex(namepass, charsmax(namepass), "^"%s^" ^"%s^" ^"%s^"", name, password[id], is_autolog[id] == true ? "" : "LOGGED")
  716. write_file(reg_file, namepass, line - 1)
  717.  
  718. break
  719. }
  720. }
  721. fclose(file)
  722. }
  723.  
  724. if(is_autolog[id])
  725. {
  726. is_autolog[id] = false
  727. client_printcolor(id, "%L", LANG_SERVER, "AUTO_LOGIN_OFF", prefix)
  728. get_pcvar_string(g_setinfo_pr, pass_prefix, charsmax(pass_prefix))
  729. client_cmd(id, "setinfo %s ^"^"", pass_prefix)
  730.  
  731. if(get_pcvar_num(g_aulog_log))
  732. {
  733. log_to_file(log_file, "%L", LANG_SERVER, "LOGFILE_AUTO_OFF", name)
  734. }
  735. }
  736. else
  737. {
  738. is_autolog[id] = true
  739. client_printcolor(id, "%L", LANG_SERVER, "AUTO_LOGIN_ON", prefix)
  740. if(get_pcvar_num(g_aulog_log))
  741. {
  742. log_to_file(log_file, "%L", LANG_SERVER, "LOGFILE_AUTO_ON", name)
  743. }
  744. }
  745.  
  746. return PLUGIN_CONTINUE
  747. }
  748.  
  749. public AutoLoginPassword(id)
  750. {
  751. if(!get_pcvar_num(g_on))
  752. return PLUGIN_HANDLED
  753.  
  754. read_args(typedpass, charsmax(typedpass))
  755. remove_quotes(typedpass)
  756. formatex(passsalt, charsmax(passsalt), "%s%s", typedpass, SALT)
  757. md5(passsalt, hash)
  758.  
  759. if(!equal(hash, password[id]))
  760. {
  761. client_printcolor(id, "%L", LANG_SERVER, "AUTO_LOGIN_PASS_NOTVALID", prefix)
  762. client_cmd(id, "messagemode AUTO_LOGIN_PASS")
  763. return PLUGIN_HANDLED
  764. }
  765. else
  766. {
  767. get_pcvar_string(g_setinfo_pr, pass_prefix, charsmax(pass_prefix))
  768. client_cmd(id, "setinfo %s %s", pass_prefix, typedpass)
  769. AutoLogin(id)
  770. OptionsMenu(id)
  771. }
  772. return PLUGIN_CONTINUE
  773. }
  774. /*==============================================================================
  775.   End of Client's Auto Login Changer function
  776.   ================================================================================*/
  777.  
  778. /*==============================================================================
  779.   Start of Info/Help MOTD function
  780.   ================================================================================*/
  781. public Info(id)
  782. {
  783. show_motd(id, "rshelpmotd.txt", "Regisztracios rendszer Segitseg")
  784. }
  785. /*==============================================================================
  786.   End of Info/Help MOTD function
  787.   ================================================================================*/
  788.  
  789. /*==============================================================================
  790.   Start of Login function
  791.   ================================================================================*/
  792. public Login(id)
  793. {
  794. if(!get_pcvar_num(g_on))
  795. return PLUGIN_HANDLED
  796.  
  797. if(!is_registered[id])
  798. {
  799. client_printcolor(id, "%L", LANG_SERVER, "LOG_NOTREG", prefix)
  800. return PLUGIN_HANDLED
  801. }
  802.  
  803. if(is_logged[id])
  804. {
  805. client_printcolor(id, "%L", LANG_SERVER, "LOG_LOGGED", prefix);
  806. return PLUGIN_HANDLED
  807. }
  808.  
  809. read_args(typedpass, charsmax(typedpass))
  810. remove_quotes(typedpass)
  811.  
  812. if(equal(typedpass, ""))
  813. return PLUGIN_HANDLED
  814.  
  815. formatex(passsalt, charsmax(passsalt), "%s%s", typedpass, SALT)
  816. md5(passsalt, hash)
  817.  
  818. if(!equal(hash, password[id]))
  819. {
  820. attempts[id]++
  821. client_printcolor(id, "%L", LANG_SERVER, "LOG_PASS_INVALID", prefix, attempts[id], get_pcvar_num(g_attempts))
  822.  
  823. if(attempts[id] >= get_pcvar_num(g_attempts))
  824. {
  825. params[0] = id
  826. params[1] = 3
  827. set_task(2.0, "KickPlayer", id+TASK_KICK, params, sizeof params)
  828. return PLUGIN_HANDLED
  829. }
  830. else
  831. {
  832. client_cmd(id, "messagemode LOGIN_PASS")
  833. }
  834. return PLUGIN_HANDLED
  835. }
  836. else
  837. {
  838. is_logged[id] = true
  839. attempts[id] = 0
  840. remove_task(id+TASK_KICK)
  841. client_printcolor(id, "%L", LANG_SERVER, "LOG_LOGING", prefix)
  842. Menu(id)
  843. }
  844. return PLUGIN_CONTINUE
  845. }
  846. /*==============================================================================
  847.   End of Login function
  848.   ================================================================================*/
  849.  
  850. /*==============================================================================
  851.   Start of Register function
  852.   ================================================================================*/
  853. public Register(id)
  854. {
  855. if(!get_pcvar_num(g_on))
  856. return PLUGIN_HANDLED
  857.  
  858. read_args(typedpass, charsmax(typedpass))
  859. remove_quotes(typedpass)
  860.  
  861. new passlength = strlen(typedpass)
  862.  
  863. if(equal(typedpass, ""))
  864. return PLUGIN_HANDLED
  865.  
  866. if(is_registered[id])
  867. {
  868. client_printcolor(id, "%L", LANG_SERVER, "REG_EXISTS", prefix)
  869. return PLUGIN_HANDLED
  870. }
  871.  
  872. if(passlength < get_pcvar_num(g_pass_length))
  873. {
  874. client_printcolor(id, "%L", LANG_SERVER, "REG_LEN", prefix, get_pcvar_num(g_pass_length))
  875. client_cmd(id, "messagemode REGISTER_PASS")
  876. return PLUGIN_HANDLED
  877. }
  878.  
  879. new_pass[id] = typedpass
  880. ConfirmPassword(id)
  881. return PLUGIN_CONTINUE
  882. }
  883. /*==============================================================================
  884.   End of Register function
  885.   ================================================================================*/
  886.  
  887. /*==============================================================================
  888.   Start of Change Password function
  889.   ================================================================================*/
  890. public ChangePasswordNew(id)
  891. {
  892. if(!get_pcvar_num(g_on) || !is_registered[id] || !is_logged[id])
  893. return PLUGIN_HANDLED
  894.  
  895. read_args(typedpass, charsmax(typedpass))
  896. remove_quotes(typedpass)
  897.  
  898. new passlenght = strlen(typedpass)
  899.  
  900. if(equal(typedpass, ""))
  901. return PLUGIN_HANDLED
  902.  
  903. if(passlenght < get_pcvar_num(g_pass_length))
  904. {
  905. client_printcolor(id, "%L", LANG_SERVER, "REG_LEN", prefix, get_pcvar_num(g_pass_length))
  906. client_cmd(id, "messagemode CHANGE_PASS_NEW")
  907. return PLUGIN_HANDLED
  908. }
  909.  
  910. new_pass[id] = typedpass
  911. client_cmd(id, "messagemode CHANGE_PASS_OLD")
  912. return PLUGIN_CONTINUE
  913. }
  914.  
  915. public ChangePasswordOld(id)
  916. {
  917. if(!get_pcvar_num(g_on) || !is_registered[id] || !is_logged[id])
  918. return PLUGIN_HANDLED
  919.  
  920. read_args(typedpass, charsmax(typedpass))
  921. remove_quotes(typedpass)
  922. formatex(passsalt, charsmax(passsalt), "%s%s", typedpass, SALT)
  923. md5(passsalt, hash)
  924.  
  925. if(equal(typedpass, "") || equal(new_pass[id], ""))
  926. return PLUGIN_HANDLED
  927.  
  928. if(!equali(hash, password[id]))
  929. {
  930. client_printcolor(id, "%L", LANG_SERVER, "CHANGE_NO", prefix)
  931. return PLUGIN_HANDLED
  932. }
  933.  
  934. ConfirmPassword(id)
  935. return PLUGIN_CONTINUE
  936. }
  937. /*==============================================================================
  938.   End of Change Password function
  939.   ================================================================================*/
  940.  
  941. /*==============================================================================
  942.   Start of Confirming Register's or Change Password's password function
  943.   ================================================================================*/
  944. public ConfirmPassword(id)
  945. {
  946. if(!get_pcvar_num(g_on) || !is_user_connected(id))
  947. return PLUGIN_HANDLED
  948.  
  949. length = 0
  950.  
  951. formatex(menu, charsmax(menu) - length, "%L", LANG_SERVER, "MENU_PASS", new_pass[id])
  952. keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_0
  953.  
  954. show_menu(id, keys, menu, -1, "Password Menu")
  955. return PLUGIN_CONTINUE
  956. }
  957.  
  958. public HandlerConfirmPasswordMenu(id, key)
  959. {
  960. switch(key)
  961. {
  962. case 0:
  963. {
  964. get_user_name(id, name, charsmax(name))
  965. formatex(passsalt, charsmax(passsalt), "%s%s", new_pass[id], SALT)
  966. md5(passsalt, hash)
  967.  
  968. if(is_registered[id])
  969. {
  970. if(get_pcvar_num(g_save))
  971. {
  972. formatex(namepass, charsmax(namepass), "UPDATE `registersystem` SET Password = ^"%s^", Status = ^"%s^" WHERE Name = ^"%s^";", hash, is_autolog[id] == true ? "LOGGED" : "", name)
  973. SQL_ThreadQuery(g_SQLTuple, "QuerySetData", namepass)
  974. }
  975. else
  976. {
  977. new line, file = fopen(reg_file, "r")
  978.  
  979. while(!feof(file))
  980. {
  981. fgets(file, namepass, 255)
  982. line++
  983. parse(namepass, namepass, charsmax(namepass))
  984.  
  985. if(equal(namepass, name))
  986. {
  987. formatex(namepass, charsmax(namepass), "^"%s^" ^"%s^" ^"%s^"", name, hash, is_autolog[id] == true ? "LOGGED" : "")
  988. write_file(reg_file, namepass, line - 1)
  989.  
  990. break
  991. }
  992. }
  993. fclose(file)
  994. }
  995. get_pcvar_string(g_setinfo_pr, pass_prefix, charsmax(pass_prefix))
  996. client_cmd(id, "setinfo %s %s",pass_prefix, new_pass[id])
  997. client_printcolor(id, "%L", LANG_SERVER, "CHANGE_NEW", prefix, new_pass[id])
  998. password[id] = hash
  999. times[id]++
  1000.  
  1001. if(get_pcvar_num(g_chp_log))
  1002. {
  1003. log_to_file(log_file, "%L", LANG_SERVER, "LOGFILE_CHNG_PASS", name)
  1004. }
  1005. }
  1006. else
  1007. {
  1008. if(get_pcvar_num(g_save))
  1009. {
  1010. formatex(namepass, charsmax(namepass), "INSERT INTO `registersystem` (`Name`, `Password`, `Status`) VALUES (^"%s^", ^"%s^", ^"^");", name, hash)
  1011. SQL_ThreadQuery(g_SQLTuple, "QuerySetData", namepass)
  1012. }
  1013. else
  1014. {
  1015. new file = fopen(reg_file, "a")
  1016. format(namepass, charsmax(namepass), "^n^"%s^" ^"%s^" ^"^"", name, hash)
  1017. fprintf(file, namepass)
  1018. fclose(file)
  1019. }
  1020. remove_task(id+TASK_KICK)
  1021. params[1] = 2
  1022. set_task(get_pcvar_float(g_logtime), "KickPlayer", id+TASK_KICK, params, sizeof params)
  1023. client_printcolor(id, "%L", LANG_SERVER, "REG_REGIS", prefix, new_pass[id], get_pcvar_num(g_logtime))
  1024. is_registered[id] = true
  1025. password[id] = hash
  1026. new_pass[id] = ""
  1027.  
  1028. if(get_pcvar_num(g_reg_log))
  1029. {
  1030. log_to_file(log_file, "%L", LANG_SERVER, "LOGFILE_REG", name)
  1031. }
  1032. }
  1033. Menu(id)
  1034. }
  1035. case 1:
  1036. {
  1037. if(is_registered[id])
  1038. {
  1039. client_cmd(id, "messagemode CHANGE_PASS_NEW")
  1040. }
  1041. else
  1042. {
  1043. client_cmd(id, "messagemode REGISTER_PASS")
  1044. }
  1045. }
  1046. case 9:
  1047. {
  1048. Menu(id)
  1049. return PLUGIN_HANDLED
  1050. }
  1051. }
  1052. return PLUGIN_HANDLED
  1053. }
  1054.  
  1055. public QuerySetData(FailState, Handle:Query, error[],errcode, data[], datasize)
  1056. {
  1057. if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
  1058. {
  1059. log_amx("%s", error)
  1060. return
  1061. }
  1062. }
  1063. /*==============================================================================
  1064.   End of Confirming Register's or Change Password's password function
  1065.   ================================================================================*/
  1066.  
  1067. /*==============================================================================
  1068.   Start of Player PreThink function for the blind function
  1069.   ================================================================================*/
  1070. public PlayerPreThink(id)
  1071. {
  1072. if(!get_pcvar_num(g_on) || !get_pcvar_num(g_blind) || !is_user_connected(id))
  1073. return PLUGIN_HANDLED
  1074.  
  1075. if((!is_registered[id] && get_pcvar_float(g_regtime)) || (is_registered[id] && !is_logged[id]))
  1076. {
  1077. message_begin(MSG_ONE_UNRELIABLE, g_screenfade, {0,0,0}, id)
  1078. write_short(1<<12)
  1079. write_short(1<<12)
  1080. write_short(0x0000)
  1081. write_byte(0)
  1082. write_byte(0)
  1083. write_byte(0)
  1084. write_byte(255)
  1085. message_end()
  1086. }
  1087.  
  1088. return PLUGIN_CONTINUE
  1089. }
  1090. /*==============================================================================
  1091.   End of Player PreThink function for the blind function
  1092.   ================================================================================*/
  1093.  
  1094. /*==============================================================================
  1095.   Start of Client Info Change function for hooking name change of clients
  1096.   ================================================================================*/
  1097. public ClientInfoChanged(id)
  1098. {
  1099. if(!get_pcvar_num(g_on) || !is_user_connected(id))
  1100. return FMRES_IGNORED
  1101.  
  1102. new g_oldname[32], g_newname[32];
  1103.  
  1104. pev(id, pev_netname, g_oldname, charsmax(g_oldname))
  1105.  
  1106. if(g_oldname[0])
  1107. {
  1108. get_user_info(id, "name", g_newname, charsmax(g_newname))
  1109. replace_all(g_newname, charsmax(g_newname), "%", " ")
  1110.  
  1111. if(!equal(g_oldname, g_newname))
  1112. {
  1113.  
  1114. switch(get_pcvar_num(g_name))
  1115. {
  1116. case 0:
  1117. {
  1118. set_pev(id, pev_netname, g_newname)
  1119. create_name_change_msg(id, g_oldname, g_newname)
  1120. set_task(1.0, "CheckClient", id)
  1121. return FMRES_HANDLED
  1122. }
  1123. case 1:
  1124. {
  1125. if(is_logged[id])
  1126. {
  1127. set_user_info(id, "name", g_oldname)
  1128. client_printcolor(id, "%L", LANG_SERVER, "NAME_CHANGE_LOG", prefix)
  1129. return FMRES_HANDLED
  1130. }
  1131. else
  1132. {
  1133. set_pev(id, pev_netname, g_newname)
  1134. create_name_change_msg(id, g_oldname, g_newname)
  1135. set_task(1.0, "CheckClient", id)
  1136. return FMRES_HANDLED
  1137. }
  1138. }
  1139. case 2:
  1140. {
  1141. set_user_info(id, "name", g_oldname)
  1142. client_printcolor(id, "%L", LANG_SERVER, "NAME_CHANGE_ALL", prefix)
  1143. return FMRES_HANDLED
  1144. }
  1145. }
  1146. }
  1147. }
  1148. return FMRES_IGNORED
  1149. }
  1150. /*==============================================================================
  1151.   End of Client Info Change function for hooking name change of clients
  1152.   ================================================================================*/
  1153.  
  1154. /*==============================================================================
  1155.   Start of Kick Player function
  1156.   ================================================================================*/
  1157. public KickPlayer(parameter[])
  1158. {
  1159. new id = parameter[0]
  1160. new reason = parameter[1]
  1161.  
  1162. if(is_user_connected(id))
  1163. {
  1164. new userid = get_user_userid(id)
  1165.  
  1166. switch(reason)
  1167. {
  1168. case 1:
  1169. {
  1170. if(is_registered[id])
  1171. return PLUGIN_HANDLED
  1172.  
  1173. server_cmd("kick #%i ^"%L^"", userid, LANG_PLAYER, "KICK_REG")
  1174. console_print(id, "%L", LANG_PLAYER, "KICK_INFO")
  1175. return PLUGIN_CONTINUE
  1176. }
  1177. case 2:
  1178. {
  1179. if(is_logged[id])
  1180. return PLUGIN_HANDLED
  1181.  
  1182. server_cmd("kick #%i ^"%L^"", userid, LANG_PLAYER, "KICK_LOGIN")
  1183. console_print(id, "%L", LANG_PLAYER, "KICK_INFO")
  1184. return PLUGIN_CONTINUE
  1185. }
  1186. case 3:
  1187. {
  1188. server_cmd("kick #%i ^"%L^"", userid, LANG_PLAYER, "KICK_ATMP", get_pcvar_num(g_attempts))
  1189. console_print(id, "%L", LANG_PLAYER, "KICK_INFO")
  1190. return PLUGIN_CONTINUE
  1191. }
  1192. case 4:
  1193. {
  1194. server_cmd("kick #%i ^"%L^"", userid, LANG_SERVER, "KICK_LOGOUT")
  1195. console_print(id, "%L", LANG_PLAYER, "KICK_INFO")
  1196. return PLUGIN_CONTINUE
  1197. }
  1198. }
  1199. }
  1200. return PLUGIN_CONTINUE
  1201. }
  1202. /*==============================================================================
  1203.   End of Kick Player function
  1204.   ================================================================================*/
  1205.  
  1206. /*==============================================================================
  1207.   Start of Plugin's stocks
  1208.   ================================================================================*/
  1209. stock create_name_change_msg(const id, const g_oldname[], const g_newname[])
  1210. {
  1211. message_begin(MSG_BROADCAST, g_saytxt)
  1212. write_byte(id)
  1213. write_string(NAME_CHANGE_MSG)
  1214. write_string(g_oldname)
  1215. write_string(g_newname)
  1216. message_end()
  1217. }
  1218.  
  1219. stock client_printcolor(const id, const input[], any:...)
  1220. {
  1221. new count = 1, players[32];
  1222. static msg[191];
  1223. vformat(msg, 190, input, 3)
  1224. replace_all(msg,190,"!g","^4")
  1225. replace_all(msg,190,"!n","^1")
  1226. replace_all(msg,190,"!t","^3")
  1227. replace_all(msg,190,"!w","^0")
  1228. if(id) players[0] = id
  1229. else get_players(players , count , "ch")
  1230. {
  1231. for(new i = 0; i < count; i++)
  1232. {
  1233. if(is_user_connected(players[i]))
  1234. {
  1235. message_begin(MSG_ONE_UNRELIABLE, g_saytxt,_, players[i])
  1236. write_byte(players[i])
  1237. write_string(msg)
  1238. message_end()
  1239. }
  1240. }
  1241. }
  1242. }
  1243. /*==============================================================================
  1244.   End of Plugin's stocks
  1245.   ================================================================================*/
  1246. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  1247.   *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par }
  1248.   */
  1249.  


MISU1998 írta:
Sziasztok, van a szerveremen az a regisztrációs rendszer, ami itt is fent van.
Regisztrációs Rendszer - Menüvel
És a szerver ilyen logokat hagy folyamatosan:

[0] RegisterSystem.sma::KickPlayer (line 1313)

Ezzel lehetne valamit?
Köszönöm

Kedves anno mester! Ezt error logba dobja.. Is ezt dobni is fogja a semmire én ezzel nyitottam régen témát is egyik volt csapat társaim aki ért(et) a scripetéshez azt mondta hogy azzal a sorral semmi baj de mégis dobja rá a hibát. Szóval felesleges ugyan azt az sma-t leírni. Ajánlom a 8.0 is a 9.0-át.

_________________
<<eb@>>Team Website - Közösség
17Buddies - Általam készített pályák.
GameBanana - Általam készített pályák/vágott hangok.

Kép
Kép


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  [4 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 23 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