pdump($system_count, '$system_count'); pdump($system_step, '$system_step'); $skin = DEFAULT_SKINPATH; $language = DEFAULT_LANG; $galaxy = 1; $system = $system_step; $planet = round($config->game_maxPlanet / 2); foreach ($imported_string as &$string_data) { $string_data = explode(',', $string_data); $username_safe = $string_data[0]; // $user_new = player_create($username_safe, $string_data[1], '', array( // 'galaxy' => $galaxy, // 'system' => $system, // 'planet' => $planet, // ), $create_result); $user_new = player_create($username_safe, sys_random_string(), array('password_encoded_unsafe' => core_auth::password_encode($string_data[1], ''), 'galaxy' => $galaxy, 'system' => $system, 'planet' => $planet)); // $user_new = &$create_result[F_LOGIN_USER]; $moon_row = uni_create_moon($galaxy, $system, $planet, $user_new['id'], 30, '', false); if (($system += $system_step) >= $config->game_maxSystem) { $galaxy++; $system = $system_step; } } doquery('UPDATE {{users}} SET dark_matter = 50000, dark_matter_total = 50000;'); $config->db_saveItem('users_amount', $config->users_amount + $new_players); // pdump($imported_string); // generated_string } elseif (sys_get_param_str('import_result') && ($blitz_result_string = sys_get_param_str('blitz_result_string'))) { $blitz_result = explode(';', $blitz_result_string); $blitz_last_update = $blitz_result[0]; // Пока не используется
protected function register_player_db_create($player_name_unsafe) { try { // Проверить корректность имени $this->register_player_name_validate($player_name_unsafe); sn_db_transaction_start(); // Проверить наличие такого имени в истории имён if (db_player_name_exists($player_name_unsafe)) { throw new Exception(REGISTER_ERROR_PLAYER_NAME_EXISTS, ERR_ERROR); } // Узнаем язык и емейл игрока $player_language = ''; $player_email = ''; // TODO - порнография - работа должна происходить над списком аккаунтов, а не только на одном аккаунте... foreach ($this->providers_authorised as $provider) { if (!$player_language && $provider->account->account_language) { $player_language = $provider->account->account_language; } if (!$player_email && $provider->account->account_email) { $player_email = $provider->account->account_email; } } $player_language = sys_get_param_str('lang') ? sys_get_param_str('lang') : $player_language; $player_language = $player_language ? $player_language : DEFAULT_LANG; // TODO - дописать эксепшнов в процедуре создания игрока self::$user = player_create($player_name_unsafe, $player_email, array('partner_id' => $partner_id = sys_get_param_int('id_ref', sys_get_param_int('partner_id')), 'language_iso' => static::$db->db_escape($player_language))); // Зарегестрировать на него аккаунты из self::$accounts_authorised $a_user = self::$user; foreach ($this->providers_authorised as $provider) { // TODO - порнография. Должен быть отдельный класс трансляторов - в т.ч. и кэширующий транслятор // TODO - ну и работа должна происходить над списком аккаунтов, а не только на одном аккаунте... // self::db_translate_register_user($provider->provider_id, $provider->account->account_id, $a_user['id']); PlayerToAccountTranslate::db_translate_register_user($provider->provider_id, $provider->account->account_id, $a_user['id']); } // Установить куку игрока self::cookie_set(self::$user['id']); sn_db_transaction_commit(); $this->register_status = LOGIN_SUCCESS; } catch (Exception $e) { sn_db_transaction_rollback(); // Если старое имя занято self::$user = null; $this->register_status == LOGIN_UNDEFINED ? $this->register_status = $e->getMessage() : false; } }
$imported_string = explode(';', sys_get_param_str('generated_string')); shuffle($imported_string); $new_players = count($imported_string); $system_count = ceil($new_players / $config->game_maxGalaxy); $system_step = floor($config->game_maxSystem / $system_count); pdump($system_count, '$system_count'); pdump($system_step, '$system_step'); $skin = DEFAULT_SKINPATH; $language = DEFAULT_LANG; $galaxy = 1; $system = $system_step; $planet = round($config->game_maxPlanet / 2); foreach ($imported_string as &$string_data) { $string_data = explode(',', $string_data); $username_safe = $string_data[0]; $user_new = player_create($username_safe, $string_data[1], '', array('galaxy' => $galaxy, 'system' => $system, 'planet' => $planet)); // $user_new = classSupernova::db_ins_record(LOC_USER, "`email` = '', `email_2` = '', `username` = '{$username_safe}', // `dpath` = '{$skin}', `lang` = '{$language}', `register_time` = " . SN_TIME_NOW . ", // `options` = 'opt_mnl_spy^1|opt_email_mnl_spy^0|opt_email_mnl_joueur^0|opt_email_mnl_alliance^0|opt_mnl_attaque^1|opt_email_mnl_attaque^0|opt_mnl_exploit^1|opt_email_mnl_exploit^0|opt_mnl_transport^1|opt_email_mnl_transport^0|opt_email_msg_admin^1|opt_mnl_expedition^1|opt_email_mnl_expedition^0|opt_mnl_buildlist^1|opt_email_mnl_buildlist^0|opt_int_navbar_resource_force^1|';"); // // sec_password_change($user_new, $string_data[1], false); // OK // // doquery("REPLACE INTO {{player_name_history}} SET `player_id` = {$user_new['id']}, `player_name` = \"{$username_safe}\""); // // $new_planet_id = uni_create_planet($galaxy, $system, $planet, $user_new['id'], $username_unsafe . ' ' . $lang['sys_capital'], true); // sys_player_new_adjust($user_new['id'], $new_planet_id); // // db_user_set_by_id($user_new['id'], "`id_planet` = '{$new_planet_id}', `current_planet` = '{$new_planet_id}', `galaxy` = '{$galaxy}', `system` = '{$system}', `planet` = '{$planet}'"); // $moon_row = uni_create_moon($galaxy, $system, $planet, $user_new['id'], 30, '', false); // $system += $system_step;
function sn_sec_login_register($username_unsafe, $password_raw, $email_unsafe, $language, $remember_me = 1, &$result) { global $lang, $config; sn_db_transaction_start(); try { if ($config->game_mode == GAME_BLITZ) { throw new exception(REGISTER_ERROR_USERNAME_WRONG, ERR_ERROR); } if (!$username_unsafe) { throw new exception(REGISTER_ERROR_USERNAME_WRONG, ERR_ERROR); } $username_safe = db_escape($username_unsafe); $db_check = doquery("SELECT `player_id` FROM {{player_name_history}} WHERE `player_name` = '{$username_safe}' LIMIT 1;", true); if (!empty($db_check)) { throw new exception(REGISTER_ERROR_USERNAME_EXISTS, ERR_ERROR); } if (strlen(trim($password_raw)) < 4 || strlen(trim($password_raw)) != strlen($password_raw)) { throw new exception(REGISTER_ERROR_PASSWORD_INSECURE, ERR_ERROR); } $password_raw = trim($password_raw); // $password_repeat_raw = trim(sys_get_param('password_repeat')); // if($password_raw <> $password_repeat_raw) { // throw new exception(REGISTER_ERROR_PASSWORD_DIFFERENT, ERR_ERROR); // } if (db_user_by_email($email_unsafe, true)) { throw new exception(REGISTER_ERROR_EMAIL_EXISTS, ERR_ERROR); } player_create($username_unsafe, $password_raw, $email_unsafe, array('partner_id' => $partner_id = sys_get_param_int('id_ref', sys_get_param_int('partner_id')), 'language_iso' => $language, 'remember_me' => $remember_me)); sn_db_transaction_commit(); $email_message = sprintf($lang['log_reg_email_text'], $config->game_name, SN_ROOT_VIRTUAL, sys_safe_output($username_unsafe), sys_safe_output($password_raw)); @mymail($email_unsafe, sprintf($lang['log_reg_email_title'], $config->game_name), $email_message); // sec_set_cookie_by_fields($user['id'], $user['username'], $user['password'], $remember_me); $result = REGISTER_SUCCESS; } catch (exception $e) { sn_db_transaction_rollback(); $result = $e->getMessage(); } return $result; }