Exemple #1
0
 public function metamatter_change($change_type, $metamatter, $comment = false, $already_changed = false)
 {
     global $debug, $mm_change_legit, $config;
     if (!$this->is_exists || !($metamatter = round(floatval($metamatter)))) {
         $debug->error('Ошибка при попытке манипуляции с ММ');
         return false;
     }
     $account_id_safe = $this->db->db_escape($this->account_id);
     $mm_change_legit = true;
     // $sn_data_metamatter_db_name = pname_resource_name(RES_METAMATTER);
     if ($already_changed) {
         $metamatter_total_delta = 0;
         $result = -1;
     } else {
         $metamatter_total_delta = $metamatter > 0 ? $metamatter : 0;
         $result = $this->db->doquery("UPDATE {{account}}\n        SET\n          `account_metamatter` = `account_metamatter` + '{$metamatter}'" . ($metamatter_total_delta ? ", `account_immortal` = IF(`account_metamatter_total` + '{$metamatter_total_delta}' >= {$config->player_metamatter_immortal}, NOW(), `account_immortal`), `account_metamatter_total` = `account_metamatter_total` + '{$metamatter_total_delta}'" : '') . " WHERE `account_id` = {$account_id_safe}");
         if (!$result) {
             $debug->error("Error adjusting Metamatter for player ID {$this->account_id} (Player Not Found?) with {$metamatter}. Reason: {$comment}", 'Metamatter Change', 402);
         }
         $result = classSupernova::$db->db_affected_rows();
     }
     if (empty(core_auth::$user['id'])) {
         $user_list = PlayerToAccountTranslate::db_translate_get_users_from_account_list(core_auth::$main_provider->provider_id, $this->account_id);
         reset($user_list);
         $user_id_unsafe = key($user_list);
     } else {
         $user_id_unsafe = core_auth::$user['id'];
     }
     $user_id_safe = $this->db->db_escape($user_id_unsafe);
     if (!$result) {
         $debug->error("Error adjusting Metamatter for player ID {$this->account_id} (Player Not Found?) with {$metamatter}. Reason: {$comment}", 'Metamatter Change', 402);
     }
     if (!$already_changed) {
         $this->account_metamatter += $metamatter;
         $this->account_metamatter_total += $metamatter_total_delta;
     }
     if (is_array($comment)) {
         $comment = call_user_func_array('sprintf', $comment);
     }
     $result = $this->db_mm_log_insert($comment, $change_type, $metamatter, $user_id_unsafe);
     if ($metamatter > 0 && !empty($user_id_safe)) {
         $old_referral = doquery("SELECT * FROM {{referrals}} WHERE `id` = {$user_id_safe} LIMIT 1 FOR UPDATE;", '', true);
         if ($old_referral['id']) {
             $dark_matter_from_metamatter = $metamatter * AFFILIATE_MM_TO_REFERRAL_DM;
             doquery("UPDATE {{referrals}} SET dark_matter = dark_matter + '{$dark_matter_from_metamatter}' WHERE `id` = {$user_id_safe} LIMIT 1;");
             $new_referral = doquery("SELECT * FROM {{referrals}} WHERE `id` = {$user_id_safe} LIMIT 1;", '', true);
             $partner_bonus = floor($new_referral['dark_matter'] / $config->rpg_bonus_divisor) - ($old_referral['dark_matter'] >= $config->rpg_bonus_minimum ? floor($old_referral['dark_matter'] / $config->rpg_bonus_divisor) : 0);
             if ($partner_bonus > 0 && $new_referral['dark_matter'] >= $config->rpg_bonus_minimum) {
                 rpg_points_change($new_referral['id_partner'], RPG_REFERRAL_BOUGHT_MM, $partner_bonus, "Incoming MM From Referral ID {$user_id_safe}");
             }
         }
     }
     $mm_change_legit = false;
     return $result;
 }
Exemple #2
0
 public function db_confirmation_get_by_type_and_code($confirmation_type_safe, $confirmation_code_unsafe)
 {
     $confirmation_code_safe = $this->db->db_escape($confirmation_code_unsafe);
     return $this->db->doquery("SELECT * FROM {{confirmations}} WHERE\n          `type` = {$confirmation_type_safe} AND `code` = '{$confirmation_code_safe}' ORDER BY create_time DESC LIMIT 1 FOR UPDATE", true);
 }
 public static function db_translate_unregister_user($user_id_unsafe)
 {
     static::init();
     $user_id_safe = static::$db->db_escape($user_id_unsafe);
     return static::$db->doquery("DELETE FROM `{{account_translate}}` WHERE `user_id` = {$user_id_safe});");
 }
 protected function db_get_by_id($payment_id_unsafe)
 {
     $payment_id_internal_safe = $this->db->db_escape($payment_id_unsafe);
     $payment = $this->db->doquery("SELECT * FROM {{payment}} WHERE `payment_module_name` = '{$this->manifest['name']}' AND `payment_id` = '{$payment_id_internal_safe}' LIMIT 1 FOR UPDATE;", true);
     return $this->db_assign_payment($payment);
 }