Example #1
0
 function payment_cancel(&$payment)
 {
     global $lang;
     if (!isset($payment['payment_status'])) {
         throw new exception($lang['pay_msg_request_payment_not_found'], SN_PAYMENT_REQUEST_ORDER_NOT_FOUND);
     }
     if ($payment['payment_status'] == PAYMENT_STATUS_COMPLETE) {
         $safe_comment = db_escape($payment['payment_comment'] = $lang['pay_msg_request_payment_cancelled'] . ' ' . $payment['payment_comment']);
         if (!$payment['payment_test']) {
             $result = mm_points_change($payment['payment_user_id'], RPG_PURCHASE_CANCEL, -$payment['payment_dark_matter_gained'], $payment['payment_comment']);
             if (!$result) {
                 throw new exception('Ошибка начисления ММ', SN_METAMATTER_ERROR_ADJUST);
             }
         }
         $payment['payment_status'] = PAYMENT_STATUS_CANCELED;
         doquery("UPDATE {{payment}} SET payment_status = {$payment['payment_status']}, payment_comment = '{$safe_comment}' WHERE payment_id = {$payment['payment_id']};");
         throw new exception($lang['pay_msg_request_payment_cancel_complete'], SN_PAYMENT_REQUEST_OK);
     } elseif ($payment['payment_status'] == PAYMENT_STATUS_CANCELED) {
         throw new exception($lang['pay_msg_request_payment_cancelled_already'], SN_PAYMENT_REQUEST_OK);
     } elseif ($payment['payment_status'] == PAYMENT_STATUS_NONE) {
         throw new exception($lang['pay_msg_request_payment_cancel_not_complete'], SN_PAYMENT_REQUEST_PAYMENT_NOT_COMPLETE);
     }
 }
Example #2
0
    //  }
}
$current_round = intval($config->db_loadItem('game_blitz_register_round'));
$current_price = intval($config->db_loadItem('game_blitz_register_price'));
if ($config->db_loadItem('game_blitz_register') == BLITZ_REGISTER_OPEN && (sys_get_param_str('register_me') || sys_get_param_str('register_me_not'))) {
    sn_db_transaction_start();
    $user = db_user_by_id($user['id'], true);
    $is_registered = doquery("SELECT `id` FROM {{blitz_registrations}} WHERE `user_id` = {$user['id']} AND `round_number` = {$current_round} FOR UPDATE;", true);
    if (sys_get_param_str('register_me')) {
        if (empty($is_registered) && mrc_get_level($user, null, RES_METAMATTER) >= $current_price) {
            doquery("INSERT IGNORE INTO {{blitz_registrations}} SET `user_id` = {$user['id']}, `round_number` = {$current_round};");
            mm_points_change($user['id'], RPG_BLITZ_REGISTRATION, -$current_price, "Регистрация в раунде {$current_round} Блица");
        }
    } elseif (sys_get_param_str('register_me_not') && !empty($is_registered)) {
        doquery("DELETE FROM {{blitz_registrations}} WHERE `user_id` = {$user['id']} AND `round_number` = {$current_round};");
        mm_points_change($user['id'], RPG_BLITZ_REGISTRATION_CANCEL, $current_price, "Отмена регистрации в раунде {$current_round} Блица");
    }
    $registered_count = doquery("SELECT count(`id`) AS `count` FROM {{blitz_registrations}} WHERE `round_number` = {$current_round};", true);
    $config->db_saveItem('game_blitz_register_users', $registered_count['count']);
    sn_db_transaction_commit();
}
$blitz_generated = array();
$blitz_result = array();
$blitz_prize_players_active = 0;
$blitz_players = 0;
$blitz_prize_dark_matter = 0;
$blitz_prize_places = 0;
if ($user['authlevel'] >= AUTH_LEVEL_DEVELOPER) {
    if (sys_get_param_str('generate')) {
        $next_id = 0;
        $query = doquery("SELECT `id` FROM {{blitz_registrations}} WHERE `round_number` = {$current_round} ORDER BY RAND();");
Example #3
0
$player_currency = sys_get_param_str('player_currency', $player_currency_default);
empty($lang['pay_currency_list'][$player_currency]) ? $player_currency = $player_currency_default ? $player_currency_default : $config->payment_currency_default : false;
$player_currency_default != $player_currency ? player_save_option($user, PLAYER_OPTION_CURRENCY_DEFAULT, $player_currency) : false;
// Конвертация ММ в ТМ
if (sys_get_param('mm_convert_do')) {
    try {
        if (!($mm_convert = sys_get_param_id('mm_convert'))) {
            throw new exception($lang['pay_msg_mm_convert_wrong_amount'], ERR_ERROR);
        }
        sn_db_transaction_start();
        $user = db_user_by_id($user['id'], true);
        if ($mm_convert > mrc_get_level($user, null, RES_METAMATTER)) {
            throw new exception($lang['pay_msg_mm_convert_not_enough'], ERR_ERROR);
        }
        $payment_comment = sprintf("Игрок сконвертировал %d Метаматерии в Тёмную Материю", $mm_convert);
        if (!mm_points_change($user['id'], RPG_CONVERT_MM, -$mm_convert, $payment_comment)) {
            throw new exception($lang['pay_msg_mm_convert_mm_error'], ERR_ERROR);
        }
        if (!rpg_points_change($user['id'], RPG_CONVERT_MM, $mm_convert, $payment_comment)) {
            throw new exception($lang['pay_msg_mm_convert_dm_error'], ERR_ERROR);
        }
        $template->assign_block_vars('result', array('STATUS' => ERR_NONE, 'MESSAGE' => sprintf('Конвертация %1$s единиц Метаматерии в %1$s единиц Тёмной Материи успешно произведена', pretty_number($mm_convert))));
        sn_db_transaction_commit();
    } catch (exception $e) {
        sn_db_transaction_rollback();
        $template->assign_block_vars('result', $response = array('STATUS' => $e->getCode(), 'MESSAGE' => $e->getMessage()));
    }
}
// Таблица скидок
$prev_discount = 0;
if (isset(sn_module_payment::$bonus_table) && is_array(sn_module_payment::$bonus_table)) {
Example #4
0
if ($user['authlevel'] < 3) {
    AdminMessage($lang['adm_err_denied']);
}
$template = gettemplate("admin/adm_metamatter", true);
$message = '';
$message_status = ERR_ERROR;
if ($points = sys_get_param_float('points')) {
    // If points not empty...
    if ($username = sys_get_param_str_unsafe('id_user')) {
        $row = db_user_by_id($username, false, 'id, username', true, true);
        if (!isset($row['id'])) {
            $row = db_user_by_username($username, false, 'id, username', true, true);
        }
        if (is_array($row) && isset($row['id'])) {
            // Does anything post to DB?
            if (mm_points_change($row['id'], RPG_ADMIN, $points, sprintf($lang['adm_matter_change_log_record'], $row['id'], db_escape($row['username']), $user['id'], db_escape($user['username']), db_escape(sys_get_param_str('reason'))))) {
                $message = sprintf($lang['adm_mm_user_added'], $row['username'], $row['id'], $points);
                $isNoError = true;
                $message_status = ERR_NONE;
            } else {
                // No? We will say it to user...
                $message = $lang['adm_mm_add_err'];
            }
        }
    } else {
        // Points not empty but destination is not set - this means error
        $message = $lang['adm_mm_no_dest'];
    }
} elseif ($id_user) {
    // Points is empty but destination is set - this again means error
    $message = $lang['adm_mm_no_quant'];