Plugin Name: Register System
Plugin Author: m0skVi4a ;]
Plugin Version: 9.0
Modification: Counter - Strike
Category: General Purpose
Description:
This is Register System. You can put a password to your name and if someone connect to the server with the same name he will be kicked if he does not login.
Pictures:
Commands:
say /reg
say_team /reg
Open the register system menu
CVARS:
Code:
"rs_on" - Is the plugin on(1) or off(0). Default: 1
"rs_save_type" - Where to seve the information: to file(0) or to MySQL(1). Default: 0
"rs_remember" - How to remember the players (Registrations, Punishments): by Name(0), by IP(1) or by SteamID(2). Default: 0
"rs_host" - The host for the database. Default: 127.0.0.1
"rs_user" - The username for the database login. Default: root
"rs_pass" - The password for the database login. Default:
"rs_db" - The database name. Default: registersystem
"rs_password_prefix" - The prefix of the setinfo for the Auto Login function. Default: _rspass
"rs_register_time" - How much time has the client to register. If is set to 0 registration is not mandatory. Default: 0
"rs_login_time" - How much time has the client to login if is registered. Default: 60.0
"rs_password_len" - What is minimum length of the password. Default: 6
"rs_attempts" - How much attempts has the client to login if he type wrong password. Default: 3
"rs_chngpass_times" - How much times can the client change his password per map. Default: 3
"rs_register_log" - Is it allowed the plugin to log in file when the client is registered. Default: 1
"rs_chngpass_log" - Is it allowed the plugin to log in file when the client has change his password. Default: 1
"rs_autologin_log" - Is it allowed the plugin to log in file when the client has change his Auto Login function. Default: 1
"rs_blind" - Whether clients who have not Logged or who must Register be blinded. Default: 1
"rs_commands" - Whether clients who have not Logged or who must Register commands' be blocked: Dissabled(0), Enabled by File or SQL table(1), Enabled for all commands(2). Default: 1
"rs_logout" - What to do when client Logout - kick him from the server(0) or wait to Login during the Login time(1). Default: 0
"rs_count" - Is the countig when you have to register or you have to login on(1) or off(0). Default: 1
"rs_advert" - Is the advertisement for not registered players on(1) or off(0). Default: 1
"rs_advert_int" - What is the interval between two advertisements in seconds. Default: 60
"rs_ajc_team" - Is the Auto Join On Connect option on(1, 2, 5, 6) or off(0). 1 is Terrorists, 2 is Counter-Terrorsits, 6 Spectators, 5 Auto Assign. Default: 0
"rs_ajc_class_t" - Which class the Terrorists will be (AJC must be on) - 1 is Terror, 2 is Leet, 3 is Artic, 4 is Guerilla, 5 is Auto Sellect, if it is set to 0 playes can choose which class they wiil be. Default: 5
"rs_ajc_class_ct" - Which class the Counter-Terrorists will be (AJC must be on) - 1 is Urban, 2 is GSG-9, 3 is SAS, 4 is GIGN, 5 is Auto Sellect, if it is set to 0 playes can choose which class they wiil be. Default: 5
"rs_ajc_admin" - Is it allowed players with defined flag (Default: ADMIN_IMMUNITY) can choose in which team will they be (AJC must be on). Default: 1
"rs_ajc_change" - Is it allowed players to change their team(0) or not(1). Default: 0
"rs_cant_login_time" - How much time in seconds players can't login after typing wrong passwrods. Default: 300
"rs_cant_change_pass_time"- How much time in seconds players can't change their paswords after changing it before that. Default: 300
"rs_whitelsit" - Whether clients, whose Names are in File or SQL table, must Register(1) or not(0). Default: 1
All CVARS are without quotes
Credits:
m0skVi4a ;] - for the idea and make the plugin
ConnorMcLeod - for his help to block the name change for the clients
Sylwester - for the idea for the encrypt
dark_style - for ideas in the plugin
Vasilii-Zaicev - for testing the plugin
Changelog:
Code:
November 6, 2011 - V1.0 BETA:
- First Release
November 20, 2011 - V1.1 FINAL
- Fixed some bugs
- Added change Password function
- Added Info/Help
- Added cvars to show when the client is registered and change his password
- Password are now encrypted for more safety
November 23, 2011 - V1.1 FINAL FIX 1
- Fixed bug if the client type more than CVAR setted attempts passwords
November 28, 2011 - V1.1 FINAL FIX 2
- Fixed bug if that the menu does not pop up when user connect
December 26, 2011 - V2.0
- Fixed bug if player change his name and the system does not check the new name
- Added block chooseteam if the client is registered but not logged
- Added MySQL support
- Added .cfg file to manually set the settings of the system
- Added CVAR for setting which clients can change their names
- Added auto login on changelevel or client retry
December 27, 2011 - V2.0 FIX 1
- Fixed bug with the kick function
January 3, 2012 - V2.0 FIX 2
- Fixed bug with the auto login function that does not work on Steam clients
January 24, 2012 - V3.0
- Fixed bug with the MYSQL Connection
- Added new style of the Change Password function
- Removed some CVARs and added new
- Now in the Register System file or into MYSQL table is not saving the date and time for registering or for changing password for the client. They are saving in special log file with name register_system_log.txt
February 17, 2012 - V4.0
- Fixed some little bugs
- Added new style of the main menu
- Removed the possibility of SQL Injection
- The whole name change function is rewritten
- Added option for the not registered and not logged clients to be blinded
- Added option for the not registered and not logged clients chat's to be blocked
- Added showing information in the consoles of the clients about why they are kicked
February 19, 2012 - V4.0 FIX 1
- Fixed bug with the join in the Spectator team
- Added the Auto Assign option in the main menu
- Small rewrite of the Auto Login function
March 7, 2012 - V5.0
- Fixed bug with % that replace the space in the name of the client
- Fixed the bug with the menu that stands when client choose team
- Fixed some little bugs
- Added new style of the main menu
August 4, 2012 - V6.0
- Fixed bug which the plugin changes player names sometimes
- Fixed bug when the main menu sometimes appears on new round and it can't be choosen an option
- Added live counter to count how many seconds does the player has to Login or Register
- Added Auto Join On Connect (AJC) options.
- Added plugin natives for API plugins
- Added Advertisement for players which are not registered
- Now the plugin doesn't use the team menu and it can be used in other mods like Zombie Plague
- Some functions are rewritten for better work of the plugin
- The Optiosn Menu is removed and its options are in the new style Main Menu
September 21, 2012 - V7.0
- Fixed bug with passwords conflicts
- Fixed bug with the Auto Login function
- Fixed bug with the AJC function
- Fixed bug with the Name Change function
- Added file with listed commands which players can not use until they login
- Added reconnect Support for the Login functions
- Added reconnect Support for the Change Password function
- Added some features for the AJC function
- Added more stylish way for executing the configuration files
- MYSQL connection funcion is optimized
October 19, 2012 - V7.0 FIX 1
- Fxied bug when player change his name to admin name and hi can register it before hi is kicked
January 4, 2013 - V7.0 FIX 2
- Fixed bug with the MYSQL part
- Fixed bug with the automatic name chage
- Small changes of the code
June 9, 2013 - V8.0
- Fixed bug when HLTV connects and registration is mandatory and the HLTV is kicked
- Fixed bug with the configuration file which doesn't set properly some CVARS
- Small changes of the code for better work of the plugin
November 24, 2013 - V9.0
- Added White list for names
- Added global advertisements for Registering and Logging
- Added option for choosing by what to save the registrations - Name, IP, SteamID
- Adde CVAR for managing restricted commands to ALL instead of writing them one by one
Moduls:
PHP Code:
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <sqlx>
Installation
1. Compile the plugin
2.
.amxx file goes to
plugins dir
3.
registersystem.cfg goes to
configs dir
4.
registersystem_commands.ini goes to
configs dir
5.
registersystem_whitelist.ini goes to
configs dir
6.
register_system.txt goes to
data/lang dir
7. (optional - for API plugins only)
register_system.inc goes to
scripting/include dir
8. (optional - for clean install only)
regusers.ini goes to
configs dir
9.
rshelpmotd.txt goes to
cstrike dir
10. Add
at the top of plugins.ini the name of the
.amxx file
11. Set up
registersystem.cfg and start the server. The plugin will automatically create
regusers.ini file or the table for the database if it is necessary.
IMPORTANT
- To work the plugin properly,
it has to be at the top of plugins.ini and there mustn't be any plugins which controls player's names.
- If you want to edit the SALT, find:
PHP Code:
#define SALT "8c4f4370c53e0c1e1ae9acd577dddbed"
and edit this "8c4f4370c53e0c1e1ae9acd577dddbed", but not to be more than 32 characters.
- If in the console pops up the message
info string length exceeded it means that the client has too many setinfo's in his
configs.cfg and he would not be able to use Auto Login function until he delete some of the setinfos
More:
- Now you can automaticaly transfer data from MySQL Database to .ini file or from .ini file to MySQL Database. Compile
RegisterSystemDatatTansferors.sma and run it on your server.
RegisterSystem.amxx MUST BE WORKING!!!
Commands:
-
file_to_mysql - transfers all data from
regusers.ini to MySQL Databse
-
mysql_to_file - transfers all data from MySQL Databse to
regusers.ini
- Now you can make API plugins! Have a look at
register_system.inc and
RegisterSystemNativesExample.sma for more information.
- You can add your own commands which you want to be blocked in
registersystem_commands.ini if player has to login or register
- You can now block Players with names in
registersystem_whitelist.ini or SQL table to register. To add names just open one of those and add full Name, or %Name% for name which includes what you want, or Name% for name which starts with what you want, or %Name for name which ends with what you want. There are some examples in the file.
This plugin is tested by me, m0skVi4a ;] , on AMX MOD X 1.8.2 and it works properly!!!