// (c) eAthena Dev Team - Licensed under GNU GPL // For more information, see LICENCE in the main folder /* This program adds an user to account.txt Don't usr it When login-sever is working. */ #include #include #include #include char *account_txt = "../save/account.txt"; //----------------------------------------------------- // Function to suppress control characters in a string. //----------------------------------------------------- int remove_control_chars(char* str) { int i; int change = 0; for(i = 0; str[i]; i++) { if (iscntrl((unsigned char)(str[i]))) { str[i] = '_'; change = 1; } } return change; } int main(int argc, char *argv[]) { char username[24]; char password[24]; char sex[2]; int next_id, id; char line[1024]; FILE *FPaccin,*FPaccout; // Check to see if account.txt exists. printf("Checking if '%s' file exists...\n", account_txt); FPaccin = fopen(account_txt, "r"); if (FPaccin == NULL) { printf("'%s' file not found!\n", account_txt); printf("Run the setup wizard please.\n"); exit(EXIT_SUCCESS); } next_id = 2000000; while(fgets(line, sizeof(line), FPaccin)) { if (line[0] == '/' && line[1] == '/') { continue; } if (sscanf(line, "%d\t%%newid%%\n", &id) == 1) { if (next_id < id) { next_id = id; } } else { sscanf(line,"%i%[^ ]", &id); if (next_id <= id) { next_id = id +1; } } } fclose(FPaccin); printf("File exists.\n"); printf("Don't create an account if the login-server is online!!!\n"); printf("If the login-server is online, press ctrl+C now to stop this software.\n"); printf("\n"); strcpy(username, ""); while (strlen(username) < 4 || strlen(username) > 23) { printf("Enter an username (4-23 characters): "); scanf("%s", &username); username[23] = 0; remove_control_chars(username); } strcpy(password, ""); while (strlen(password) < 4 || strlen(password) > 23) { printf("Enter a password (4-23 characters): "); scanf("%s", &password); password[23] = 0; remove_control_chars(password); } strcpy(sex, ""); while (strcmp(sex, "F") != 0 && strcmp(sex, "M") != 0) { printf("Enter a gender (M for male, F for female): "); scanf("%s", &sex); } FPaccout = fopen(account_txt, "r+"); fseek(FPaccout, 0, SEEK_END); fprintf(FPaccout, "%i %s %s - %s -\r\n", next_id, username, password, sex); fclose(FPaccout); printf("Account added.\n"); }