Ejemplo n.º 1
0
function player_create($username_unsafe, $password_raw, $email_unsafe, $options)
{
    global $config, $lang;
    static $player_options_string = '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|';
    empty($options['planet_options']) ? $options['planet_options'] = array() : false;
    $field_set = array('server_name' => SN_ROOT_VIRTUAL, 'register_time' => SN_TIME_NOW, 'user_bot' => $options['user_bot'] = empty($options['user_bot']) ? USER_BOT_PLAYER : $options['total_points'], 'username' => $username_unsafe, 'email' => $email_unsafe, 'email_2' => $email_unsafe, 'lang' => $options['language_iso'] ? $options['language_iso'] : DEFAULT_LANG, 'dpath' => DEFAULT_SKINPATH, 'total_points' => $options['total_points'] = empty($options['total_points']) ? 0 : $options['total_points'], 'options' => (empty($options['options']) ? $player_options_string : $options['options']) . (empty($options['options_extra']) ? '' : $options['options_extra']), 'galaxy' => $options['galaxy'] = intval($options['galaxy'] ? $options['galaxy'] : 0), 'system' => $options['system'] = intval($options['system'] ? $options['system'] : 0), 'planet' => $options['planet'] = intval($options['planet'] ? $options['planet'] : 0));
    $user_new = classSupernova::db_ins_field_set(LOC_USER, $field_set);
    sec_password_change($user_new, $password_raw, false, $options['remember_me'] = intval(!empty($options['remember_me'])));
    $username_safe = db_escape($username_unsafe);
    //  $options['language_iso'] = db_escape($options['language_iso'] ? $options['language_iso'] : DEFAULT_LANG);
    //  $options['remember_me'] = intval(!empty($options['remember_me']));
    //
    //  $skin_safe = db_escape(DEFAULT_SKINPATH);
    //  $email_safe = db_escape($email_unsafe);
    //
    //  // sn_db_field_set_make_safe($field_set, $serialize = false)
    //
    //  $user_new = classSupernova::db_ins_record(LOC_USER, "`username` = '{$username_safe}', `email` = '{$email_safe}', `email_2` = '{$email_safe}', `dpath` = '{$skin_safe}',
    //      `lang` = '{$options['language_iso']}', `register_time` = " . SN_TIME_NOW . ", `server_name` = '" . db_escape(SN_ROOT_VIRTUAL) . "',
    //      `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|';");
    doquery("REPLACE INTO {{player_name_history}} SET `player_id` = {$user_new['id']}, `player_name` = '{$username_safe}'");
    if (!empty($options['partner_id']) && ($referral_row = db_user_by_id($options['partner_id'], true))) {
        doquery("INSERT INTO {{referrals}} SET `id` = {$user_new['id']}, `id_partner` = {$options['partner_id']}");
    }
    if (!($options['galaxy'] && $options['system'] && $options['planet'])) {
        $options['galaxy'] = $config->LastSettedGalaxyPos;
        $options['system'] = $config->LastSettedSystemPos;
        $segment_size = floor($config->game_maxPlanet / 3);
        $segment = floor($config->LastSettedPlanetPos / $segment_size);
        $segment++;
        $options['planet'] = mt_rand(1 + $segment * $segment_size, ($segment + 1) * $segment_size);
        // $new_planet_id = 0;
        while (true) {
            if ($options['planet'] > $config->game_maxPlanet) {
                $options['planet'] = mt_rand(0, $segment_size - 1) + 1;
                $options['system']++;
            }
            if ($options['system'] > $config->game_maxSystem) {
                $options['system'] = 1;
                $options['galaxy']++;
            }
            $options['galaxy'] > $config->game_maxGalaxy ? $options['galaxy'] = 1 : false;
            $galaxy_row = db_planet_by_gspt($options['galaxy'], $options['system'], $options['planet'], PT_PLANET, true, 'id');
            if (!$galaxy_row['id']) {
                $config->db_saveItem(array('LastSettedGalaxyPos' => $options['galaxy'], 'LastSettedSystemPos' => $options['system'], 'LastSettedPlanetPos' => $options['planet']));
                // $new_planet_id = uni_create_planet($options['galaxy'], $options['system'], $options['planet'], $user_new['id'], $username_unsafe . ' ' . $lang['sys_capital'], true, $options['planet_options']);
                break;
            }
            $options['planet'] += 3;
        }
    }
    $new_planet_id = uni_create_planet($options['galaxy'], $options['system'], $options['planet'], $user_new['id'], $username_unsafe . ' ' . $lang['sys_capital'], true, $options['planet_options']);
    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` = '{$options['galaxy']}', `system` = '{$options['$system']}', `planet` = '{$options['$planet']}'");
    $config->db_saveItem('users_amount', $config->users_amount + 1);
    return db_user_by_id($user_new['id']);
}