|
@@ -70,6 +70,7 @@ struct s_subnet {
|
|
|
|
|
|
int subnet_count = 0;
|
|
|
|
|
|
+int mmo_auth_new(const char* userid, const char* pass, const char sex, const char* last_ip);
|
|
|
|
|
|
//-----------------------------------------------------
|
|
|
// Auth database
|
|
@@ -337,6 +338,35 @@ int parse_console(const char* command)
|
|
|
ShowInfo(" 'shutdown|exit|quit|end'\n");
|
|
|
ShowInfo("To know if server is alive:\n");
|
|
|
ShowInfo(" 'alive|status'\n");
|
|
|
+ ShowInfo("To create a new account:\n");
|
|
|
+ ShowInfo(" 'create'\n");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {// commands with parameters
|
|
|
+ char cmd[128], params[256];
|
|
|
+
|
|
|
+ if( sscanf(command, "%127s %255[^\r\n]", cmd, params) < 2 )
|
|
|
+ {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ if( strcmpi(cmd, "create") == 0 )
|
|
|
+ {
|
|
|
+ char username[NAME_LENGTH], password[NAME_LENGTH], sex;
|
|
|
+
|
|
|
+ if( sscanf(params, "%23s %23s %c", username, password, &sex) < 3 || strnlen(username, sizeof(username)) < 4 || strnlen(password, sizeof(password)) < 1 )
|
|
|
+ {
|
|
|
+ ShowWarning("Console: Invalid parameters for '%s'. Usage: %s <username> <password> <sex:F/M>\n", cmd, cmd);
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ if( mmo_auth_new(username, password, TOUPPER(sex), "0.0.0.0") != -1 )
|
|
|
+ {
|
|
|
+ ShowError("Console: Account creation failed.\n");
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ ShowStatus("Console: Account '%s' created successfully.\n", username);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return 0;
|