Old database to Znote AAC compatibility converter:

Converting accounts and characters to work with Znote AAC:

0) ? $accounts : false; } function user_count_znote_accounts() { $data = mysql_select_single("SELECT COUNT(`account_id`) AS `count` from `znote_accounts`;"); return ($data !== false) ? $data['count'] : 0; } function user_character_is_compatible($pid) { $data = mysql_select_single("SELECT COUNT(`player_id`) AS `count` from `znote_players` WHERE `player_id` = '$pid';"); return ($data !== false) ? $data['count'] : 0; } function fetch_znote_accounts() { $results = mysql_select_multi("SELECT `account_id` FROM `znote_accounts`"); $accounts = array(); foreach ($results as $row) { $accounts[] = $row['account_id']; } return (count($accounts) > 0) ? $accounts : false; } // end install functions // count all accounts, znote accounts, find out which accounts needs to be converted. $all_account = fetch_all_accounts(); $znote_account = fetch_znote_accounts(); if ($all_account !== false) { if ($znote_account !== false) { // If existing znote compatible account exists: foreach ($all_account as $all) { // Loop through every element in znote_account array if (!in_array($all, $znote_account)) { $old_accounts[] = $all; } } } else { foreach ($all_account as $all) { $old_accounts[] = $all; } } } // end ^ // Send count status if (isset($all_account) && $all_account !== false) { echo '
'; echo 'Total accounts detected: '. count($all_account) .'.'; if (isset($znote_account) && $znote_account !== false) { echo '
'; echo 'Znote compatible accounts detected: '. count($znote_account) .'.'; if (isset($old_accounts)) { echo '
'; echo 'Old accounts detected: '. count($old_accounts) .'.'; } } else { echo '
'; echo 'Znote compatible accounts detected: 0.'; } echo '
'; echo '
'; } else { echo '
'; echo 'Total accounts detected: 0.'; } // end count status // validate accounts if (isset($old_accounts) && $old_accounts !== false) { $time = time(); foreach ($old_accounts as $old) { // Make acc data compatible: mysql_insert("INSERT INTO `znote_accounts` (`account_id`, `ip`, `created`, `flag`) VALUES ('$old', '0', '$time', '')"); $updated_acc += 1; // Fetch unsalted password if ($config['ServerEngine'] == 'TFS_03' && $config['salt'] === true) { $password = user_data($old, 'password', 'salt'); $p_pass = str_replace($password['salt'],"",$password['password']); } if ($config['ServerEngine'] == 'TFS_02' || $config['salt'] === false) { $password = user_data($old, 'password'); $p_pass = $password['password']; } // Verify lenght of password is less than 28 characters (most likely a plain password) if (strlen($p_pass) < 28 && $old > 1) { // encrypt it with sha1 if ($config['ServerEngine'] == 'TFS_02' || $config['salt'] === false) $p_pass = sha1($p_pass); if ($config['ServerEngine'] == 'TFS_03' && $config['salt'] === true) $p_pass = sha1($password['salt'].$p_pass); // Update their password so they are sha1 encrypted mysql_update("UPDATE `accounts` SET `password`='$p_pass' WHERE `id`='$old';"); $updated_pass += 1; } } } // validate players if ($all_account !== false) { $time = time(); foreach ($all_account as $all) { $chars = user_character_list_player_id($all); if ($chars !== false) { // since char list is not false, we found a character list // Lets loop through the character list foreach ($chars as $c) { // Is character not compatible yet? if (user_character_is_compatible($c['id']) == 0) { // Then lets make it compatible: $cid = $c['id']; mysql_insert("INSERT INTO `znote_players` (`player_id`, `created`, `hide_char`, `comment`) VALUES ('$cid', '$time', '0', '')"); $updated_char += 1; } } } } } echo "
SUCCESS

"; echo 'Updated accounts: '. $updated_acc .'
'; echo 'Updated characters: : '. $updated_char .'
'; echo 'Detected:'. $updated_pass .' accounts with plain passwords. These passwords has been given sha1 encryption.
'; echo '
All accounts and characters are compatible with Znote AAC
'; ?>