adr_previous(Adr_vault_withdraw_lack, adr_vault, ''); } $sql = "UPDATE " . ADR_VAULT_USERS_TABLE . "\n\t\tSET account_sum = account_sum - {$withdraw_sum} \n\t\tWHERE owner_id = {$user_id}"; if (!$db->sql_query($sql)) { message_die(GENERAL_ERROR, 'Could not obtain accounts information', "", __LINE__, __FILE__, $sql); } add_reward($user_id, $withdraw_sum); adr_previous(Adr_vault_account_ok, adr_vault, ''); } if ($loan && $loan_sum > 0) { if (!is_numeric($vault['owner_id'])) { // Send admin PM notification of attempted cheating... $member_id = 2; $subject = $lang['Adr_report_pm_sub']; $message = sprintf($lang['Adr_report_pm_msg2'], $userdata['username']); adr_send_pm($member_id, $subject, $message); adr_previous(Adr_vault_cheater, 'adr_vault', ''); } if ($vault['loan_sum'] != 0) { adr_previous(Adr_vault_loan_no_double, adr_vault, ''); } if ($userdata['user_posts'] < $vault_general['loan_requirements'] || $vault['loan_sum'] != 0) { $message = $lang['Adr_vault_loan_no_explain'] . $vault_general['loan_requirements'] . $lang['Posts']; $message .= '<br /><br />' . sprintf($lang['Adr_return'], "<a href=\"" . append_sid("adr_vault.{$phpEx}") . "\">", "</a>"); message_die(GENERAL_MESSAGE, $message); } if ($loan_sum > $vault_general['loan_max_sum'] || $loan_sum < 0) { adr_previous(Adr_vault_loan_no_such, adr_vault, ''); } add_reward($user_id, $loan_sum); $sql = "UPDATE " . ADR_VAULT_USERS_TABLE . "\n\t\tSET loan_sum = {$loan_sum} ,\n\t\tloan_time = " . time() . "\n\t\tWHERE owner_id = {$user_id}";
adr_send_pm($dest, $subject, $message); } $message = sprintf($lang['Adr_battle_pvp_lost'], $current_dmg); $message .= '<br /><br />' . sprintf($lang['Adr_battle_temple'], "<a href=\"" . 'adr_temple.' . $phpEx . "\">", "</a>"); $message .= '<br /><br />' . sprintf($lang['Adr_pvp_return'], "<a href=\"" . 'adr_character.' . $phpEx . "\">", "</a>"); message_die(GENERAL_MESSAGE, $message); } // End the turn of the user $sql = " UPDATE " . ADR_BATTLE_PVP_TABLE . "\n SET battle_turn = {$dest}\n WHERE battle_id = {$battle_id}\n AND battle_result = 3 "; if (!($result = $db->sql_query($sql))) { message_die(GENERAL_ERROR, 'Could not update battle list', '', __LINE__, __FILE__, $sql); } if ($opponent_pm_me) { $subject = $lang['Adr_pvp_turn']; $message = sprintf($lang['Adr_pvp_turn_by'], $current_infos['character_name']); adr_send_pm($dest, $subject, $message); } } // Show actions ONLY if current turn if ($battle_pvp['battle_turn'] === $user_id) { $template->assign_block_vars('pvp', array()); } // Get the users infos $sql = "SELECT user_avatar , user_avatar_type, user_allowavatar FROM " . USERS_TABLE . "\n WHERE user_id = {$dest} "; if (!($result = $db->sql_query($sql))) { message_die(GENERAL_ERROR, 'Could not query user', '', __LINE__, __FILE__, $sql); } $challenger = $db->sql_fetchrow($result); $opponent_avatar_img = ''; if ($challenger['user_avatar_type'] && $challenger['user_allowavatar']) { switch ($challenger['user_avatar_type']) {
$battle_id = intval($HTTP_GET_VARS['battle_id']); $sql = " SELECT * FROM " . ADR_BATTLE_PVP_TABLE . "\r\t\t\t\tWHERE battle_result = 3\r\t\t\t\tAND battle_id = {$battle_id}\r\t\t\t\tAND ( battle_opponent_id = {$user_id}\tOR battle_challenger_id = {$user_id} ) "; if (!($result = $db->sql_query($sql))) { message_die(GENERAL_ERROR, 'Could not query battle list', '', __LINE__, __FILE__, $sql); } $row = $db->sql_fetchrow($result); // Get the "other" id $other_id = $row['battle_opponent_id'] != $user_id ? intval($row['battle_opponent_id']) : intval($row['battle_challenger_id']); $stopped_by = $row['battle_opponent_id'] != $user_id ? 6 : 5; $sql = " UPDATE " . ADR_CHARACTERS_TABLE . "\r\t\t\t\tSET character_victories = character_victories + 1\r\t\t\t\tWHERE character_id = {$other_id} "; if (!($result = $db->sql_query($sql))) { message_die(GENERAL_ERROR, 'Could not update character', '', __LINE__, __FILE__, $sql); } $sql = " UPDATE " . ADR_CHARACTERS_TABLE . "\r\t\t\t\tSET character_flees = character_flees + 1\r\t\t\t\tWHERE character_id = {$user_id} "; if (!($result = $db->sql_query($sql))) { message_die(GENERAL_ERROR, 'Could not update character', '', __LINE__, __FILE__, $sql); } $sql = " UPDATE " . ADR_BATTLE_PVP_TABLE . "\r\t\t\t\tSET battle_result = {$stopped_by}\r\t\t\t\tWHERE battle_id = {$battle_id}\r\t\t\t\tAND ( battle_opponent_id = {$user_id}\tOR battle_challenger_id = {$user_id} ) "; if (!($result = $db->sql_query($sql))) { message_die(GENERAL_ERROR, 'Could not delete defy', '', __LINE__, __FILE__, $sql); } $sql = " SELECT prefs_pvp_notif_pm FROM " . ADR_CHARACTERS_TABLE . "\r\t\t\t\tWHERE character_id = {$other_id} "; $result = $db->sql_query($sql); if (!$result) { message_die(GENERAL_ERROR, "Couldn't query preferences", "", __LINE__, __FILE__, $sql); } $opponent = $db->sql_fetchrow($result); $subject = $lang['Adr_pvp_stopped']; $message = sprintf($lang['Adr_pvp_stopped_by'], $adr_user['character_name']); if ($opponent['prefs_pvp_notif_pm']) { adr_send_pm($other_id, $subject, $message);
function adr_give_item($user_id, $to_user_id, $item_id) { global $db, $lang, $userdata, $adr_general; // Fix the values $user_id = intval($user_id); $to_user_id = intval($to_user_id); $item_id = intval($item_id); // Grab user infos $give_limit = adr_get_user_infos($user_id); if ($adr_general['Adr_character_limit_enable'] != 0 && $give_limit['character_trading_limit'] < 1) { adr_previous(Adr_trading_limit, adr_shops, ''); } else { adr_trading_limit($user_id); } // Make the new id for the item $sql = "SELECT item_id, item_name FROM " . ADR_SHOPS_ITEMS_TABLE . "\n\t\tWHERE item_owner_id = {$to_user_id}\n\t\tORDER BY item_id \n\t\tDESC LIMIT 1"; $result = $db->sql_query($sql); if (!$result) { adr_previous(Adr_shop_items_failure_deleted, adr_character_inventory, ''); } $data = $db->sql_fetchrow($result); $new_item_id = $data['item_id'] + 1; // Grab the items details $sql = "SELECT item_id, item_name, item_stolen_id, item_stolen_by, item_stolen_timestamp, item_donated_by, item_donated_timestamp\n\t\tFROM " . ADR_SHOPS_ITEMS_TABLE . "\n\t\tWHERE item_owner_id = '{$user_id}'\n\t\tAND item_id = '{$item_id}'"; $result = $db->sql_query($sql); if (!$result) { adr_previous(Adr_shop_items_failure_deleted, adr_character_inventory, ''); } $item_details = $db->sql_fetchrow($result); // Check if recieving user has notify of donated items enabled $sql = "SELECT character_pref_give_pm FROM " . ADR_CHARACTERS_TABLE . "\n\t\t\tWHERE character_id = {$to_user_id} "; $result = $db->sql_query($sql); if (!$result) { message_die(GENERAL_ERROR, 'Could not obtain shops items information', "", __LINE__, __FILE__, $sql); } $reciever = $db->sql_fetchrow($result); // Send recieving user PM notification $subject = sprintf($lang['Adr_give_item_subject'], $userdata['username']); $message = sprintf($lang['Adr_give_item_msg'], adr_get_lang($item_details['item_name']), $userdata['username']); if ($reciever['character_pref_give_pm']) { adr_send_pm($to_user_id, $subject, $message); } $sql = "UPDATE " . ADR_SHOPS_ITEMS_TABLE . "\n\t\tSET item_owner_id = {$to_user_id},\n\t\t\titem_id = {$new_item_id},\n\t\t\titem_bought_timestamp = " . time() . ",\n\t\t\titem_in_shop = 0,\n\t\t\titem_auth = 0,\n\t\t\titem_stolen_id = " . $item_details['item_stolen_id'] . ",\n\t\t\titem_stolen_by = '" . $item_details['item_stolen_by'] . "',\n\t\t\titem_stolen_timestamp = " . $item_details['item_stolen_timestamp'] . ",\n\t\t\titem_donated_by = '" . str_replace("\\'", "''", $give_limit['character_name']) . "',\n\t\t\titem_donated_timestamp = " . time() . "\n\t\tWHERE item_owner_id = '{$user_id}'\n\t\tAND item_id = '{$item_id}'"; $result = $db->sql_query($sql); if (!$result) { message_die(GENERAL_ERROR, 'Could not obtain shops items information', "", __LINE__, __FILE__, $sql); } }
function adr_item_quest_cheat_notification($user_id, $cheat_type) { echo 'DEBUG: cheat'; global $board_config, $userdata, $adr_general, $adr_user, $lang, $db, $phpEx, $table_prefix, $HTTP_SERVER_VARS, $HTTP_ENV_VARS; $adr_ban_punishment = false; if ($board_config['zone_cheat_auto_ban_adr']) { $sql = "UPDATE " . USERS_TABLE . "\r\n\t\t\t\tSET user_adr_ban = '1'\r\n\t\t\t\tWHERE user_id = '{$user_id}'"; $result = $db->sql_query($sql); if (!$result) { message_die(GENERAL_ERROR, "Couldn't UPDATE ADR User Ban", "", __LINE__, __FILE__, $sql); } $cheat_punishment = '1~'; $adr_ban_punishment = true; } else { $cheat_punishment = '0~'; } $board_ban_punishment = false; if ($board_config['zone_cheat_auto_ban_board']) { $sql = "SELECT *\r\n\t\t\t\tFROM " . BANLIST_TABLE; if (!($result = $db->sql_query($sql))) { message_die(GENERAL_ERROR, "Couldn't obtain banlist information", "", __LINE__, __FILE__, $sql); } $current_banlist = $db->sql_fetchrowset($result); $db->sql_freeresult($result); $kill_session_sql = ''; $in_banlist = false; for ($j = 0; $j < count($current_banlist); $j++) { if ($user_id == $current_banlist[$j]['ban_userid']) { $in_banlist = true; } } if (!$in_banlist) { $kill_session_sql .= ($kill_session_sql != '' ? ' OR ' : '') . "session_user_id = " . $user_id; $sql = "INSERT INTO " . BANLIST_TABLE . " (ban_userid)\r\n\t\t\t\t\tVALUES (" . $user_id . ")"; if (!$db->sql_query($sql)) { message_die(GENERAL_ERROR, "Couldn't insert ban_userid info into database", "", __LINE__, __FILE__, $sql); } } if ($kill_session_sql != '') { $sql = "DELETE FROM " . SESSIONS_TABLE . "\r\n\t\t\t\t\tWHERE {$kill_session_sql}"; if (!$db->sql_query($sql)) { message_die(GENERAL_ERROR, "Couldn't delete banned sessions from database", "", __LINE__, __FILE__, $sql); } } $cheat_punishment .= '1~'; $board_ban_punishment = true; } else { $cheat_punishment .= '0~'; } $jail_punishment = false; if ($board_config['zone_cheat_auto_jail']) { include_once $phpbb_root_path . 'adr/includes/adr_functions_jail.' . $phpEx; define('ADR_JAIL_USERS_TABLE', $table_prefix . 'adr_jail_users'); $time_day = intval($board_config['zone_cheat_auto_time_day']); $time_hour = intval($board_config['zone_cheat_auto_time_hour']); $time_minute = intval($board_config['zone_cheat_auto_time_minute']); $caution = intval($board_config['zone_cheat_auto_caution']); $cautionable = intval($board_config['zone_cheat_auto_cautionable']); $freeable = intval($board_config['zone_cheat_auto_freeable']); $punishment = intval($board_config['zone_cheat_auto_punishment']); $sentence = sprintf($lang['Adr_zone_cell_sentence_example'], $cheat_type); adr_cell_imprison_user($user_id, $time_day, $time_hour, $time_minute, $caution, $cautionable, $freeable, $sentence, $punishment); $jail_term = $lang['Adr_zone_cheat_log_imprisoned_for']; if ($time_day) { if ($time_day > 1) { $jail_term .= $time_day . $lang['Adr_zone_cheat_log_days']; } else { $jail_term .= $time_day . $lang['Adr_zone_cheat_log_day']; } } if ($time_hour) { if ($time_day) { if ($time_minute) { $jail_term .= ', '; } else { $jail_term .= $lang['Adr_zone_cheat_log_and']; } } if ($time_hour > 1) { $jail_term .= $time_hour . $lang['Adr_zone_cheat_log_hours']; } else { $jail_term .= $time_hour . $lang['Adr_zone_cheat_log_hour']; } } if ($time_minute) { if ($time_hour && $time_day) { $jail_term .= $lang['Adr_zone_cheat_log_comma_and']; } else { if (!$time_hour && $time_day || $time_hour && !$time_day) { $jail_term .= $lang['Adr_zone_cheat_log_and']; } } if ($time_minute > 1) { $jail_term .= $time_hour . $lang['Adr_zone_cheat_log_minutes']; } else { $jail_term .= $time_hour . $lang['Adr_zone_cheat_log_minute']; } } $cheat_punishment .= '1~' . $jail_term; $jail_punishment = true; } else { $cheat_punishment .= '0~'; } $cheat_public = '0'; if (!$board_config['zone_cheat_auto_ban_adr'] && !$board_config['zone_cheat_auto_ban_board'] && !$board_config['zone_cheat_auto_jail']) { $cheat_punishment = ''; $current_punishments = ''; } else { $current_punishments = ''; if ($adr_ban_punishment) { $current_punishments .= $lang['Adr_zone_cheat_log_banned_adr']; } if ($board_ban_punishment) { if ($adr_ban_punishment) { if ($jail_punishment) { $current_punishments .= sprintf($lang['Adr_zone_cheat_log_comma_and_sprintf'], $lang['Adr_zone_cheat_log_banned_board']); } else { $current_punishments .= sprintf($lang['Adr_zone_cheat_log_and_sprintf'], $lang['Adr_zone_cheat_log_banned_board']); } } else { $current_punishments .= $lang['Adr_zone_cheat_log_banned_board']; } } if ($jail_punishment) { if ($adr_ban_punishment) { if ($board_ban_punishment) { $current_punishments .= sprintf($lang['Adr_zone_cheat_log_comma_and_sprintf'], $jail_term); } else { $current_punishments .= sprintf($lang['Adr_zone_cheat_log_and_sprintf'], $jail_term); } } else { $current_punishments .= $jail_term; } } $current_punishments = sprintf($lang['Adr_zone_cheat_log_punishment'], $current_punishments); } $cheat_public = $board_config['zone_cheat_auto_public']; $pm_members = explode(',', $board_config['zone_cheat_member_pm']); $port = $board_config['server_port'] == '80' ? '' : ':' . $board_config['server_port']; $profile = 'http://' . $board_config['server_name'] . $port . $board_config['script_path'] . 'profile.php?mode=viewprofile&u=' . $user_id; $subject = sprintf($lang['Adr_zone_npc_cheating_pm_subject'], $userdata['username']); $message = sprintf($lang['Adr_zone_npc_cheating_pm_message'], $userdata['username'], $adr_user['character_name'], $cheat_type, $current_punishments, $profile); for ($i = 0; $i < count($pm_members); $i++) { adr_send_pm($pm_members[$i], $subject, $message); } $ip = !empty($HTTP_SERVER_VARS['REMOTE_ADDR']) ? $HTTP_SERVER_VARS['REMOTE_ADDR'] : (!empty($HTTP_ENV_VARS['REMOTE_ADDR']) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : getenv('REMOTE_ADDR')); $sql = "INSERT INTO " . ADR_CHEAT_LOG_TABLE . "\r\n\t\t\tVALUES ('', '" . encode_ip($ip) . "', '" . $cheat_type . "', '" . time() . "', '{$user_id}', '{$cheat_punishment}', '{$cheat_public}' )"; $db->sql_query($sql); adr_previous(Adr_zone_npc_cheating, adr_zones, ''); }
function adr_character_replen_quota() { global $db, $phpEx, $adr_general, $board_config, $lang, $table_prefix, $phpbb_root_path; // define some constants define('ADR_SHOPS_TABLE', $table_prefix . 'adr_shops'); define('IN_ADR_SETTINGS', 1); define('IN_ADR_VAULT', 1); define('IN_ADR_BATTLE', 1); define('IN_ADR_CHARACTER', 1); $sql = "SELECT * FROM " . ADR_CHARACTERS_TABLE . ""; $result = $db->sql_query($sql); if (!$result) { message_die(GENERAL_ERROR, 'Could not obtain character list', '', __LINE__, __FILE__, $sql); } $characters = $db->sql_fetchrowset($result); for ($c = 0; $c < count($characters); $c++) { if ($characters[$c]['character_id'] != '0' && $characters[$c]['character_id'] != '') { // Define some variables $character_id = $characters[$c]['character_id']; $points = get_reward($character_id); $adr_user['character_birth'] = $characters[$c]['character_birth']; $adr_user['character_limit_update'] = $characters[$c]['character_limit_update']; $adr_user['character_warehouse_update'] = $characters[$c]['character_warehouse_update']; $adr_user['character_warehouse'] = $characters[$c]['character_warehouse']; $adr_user['character_shop_update'] = $characters[$c]['character_shop_update']; $pm_wh = FALSE; $pm_shop = FALSE; $wh_msg = ''; $shop_msg = ''; // Vault account check $sql = "SELECT account_sum FROM " . ADR_VAULT_USERS_TABLE . "\n\t\t\t\tWHERE owner_id = '{$character_id}'"; if (!($result = $db->sql_query($sql))) { message_die(GENERAL_ERROR, 'Could not query vault user table', '', __LINE__, __FILE__, $sql); } $vault_check = $db->sql_fetchrow($result); // Shop stats check $sql = "SELECT shop_id FROM " . ADR_SHOPS_TABLE . "\n\t\t\t\tWHERE shop_owner_id = '{$character_id}'"; if (!($result = $db->sql_query($sql))) { message_die(GENERAL_ERROR, 'Could not query shops table', '', __LINE__, __FILE__, $sql); } $shop_check = $db->sql_fetchrow($result); // Work out how many days have passed since character_creation $character_days = floor((time() - $adr_user['character_birth']) / 86400); // START battle & skill regening if (is_numeric($character_id) && $adr_general['Adr_character_limit_enable'] != '0' && $character_days > $adr_user['character_limit_update'] + ($adr_general['Adr_limit_regen_duration'] - 1)) { $new_battle_limit = $adr_general['Adr_character_battle_limit']; $new_skill_limit = $adr_general['Adr_character_skill_limit']; $new_trading_limit = $adr_general['Adr_character_trading_limit']; $new_thief_limit = $adr_general['Adr_character_thief_limit']; $sql = " UPDATE " . ADR_CHARACTERS_TABLE . "\n\t\t\t\t\tSET character_battle_limit = {$new_battle_limit},\n\t\t\t\t\t\tcharacter_skill_limit = {$new_skill_limit},\n\t\t\t\t\t\tcharacter_trading_limit = {$new_trading_limit},\n\t\t\t\t\t\tcharacter_thief_limit = {$new_thief_limit},\n\t\t\t\t\t\tcharacter_limit_update = {$character_days}\n\t\t\t\t\tWHERE character_id = '{$character_id}'"; if (!($results = $db->sql_query($sql))) { message_die(GENERAL_MESSAGE, 'Error regening user battle & skill limits'); } } // END battle & skill regening // START warehouse tax check if (is_numeric($character_id) && $character_days > $adr_user['character_warehouse_update'] + ($board_config['Adr_warehouse_duration'] - 1)) { $warehouse_days = $character_days - ($adr_user['character_warehouse_update'] + ($board_config['Adr_warehouse_duration'] - 1)); $warehouse_tax = $board_config['Adr_warehouse_tax'] * $warehouse_days; if ($adr_user['character_warehouse'] != '0' && $board_config['Adr_warehouse_tax'] > '0') { if ($points >= $warehouse_tax) { // Remove tax from user_points subtract_reward($character_id, $warehouse_tax); $wh_msg = sprintf($lang['Adr_character_warehouse_tax'], $warehouse_tax, get_reward_name()); } elseif ($points < $warehouse_tax && is_numeric($vault_check['account_sum']) && $vault_check['account_sum'] >= $warehouse_tax) { // Else remove from Vault $sql = "UPDATE " . ADR_VAULT_USERS_TABLE . "\n\t\t\t\t\t\t\t\tSET account_sum = (account_sum - {$warehouse_tax})\n\t\t\t\t\t\t\t\tWHERE owner_id = '{$character_id}'"; if (!$db->sql_query($sql)) { message_die(CRITICAL_ERROR, 'Error removing points for WH tax (vault)'); } $wh_msg = sprintf($lang['Adr_character_warehouse_tax'], $warehouse_tax, get_reward_name()); } else { // Close warehouse $sql = " UPDATE " . ADR_CHARACTERS_TABLE . "\n\t\t\t\t\t\t\tSET character_warehouse = 0\n\t\t\t\t\t\t\t\tWHERE character_id = '{$character_id}'"; if (!$db->sql_query($sql)) { message_die(GENERAL_MESSAGE, 'Error closing warehouse'); } // Remove warehouse status from itemsif rent not paid $sql = "UPDATE " . ADR_SHOPS_ITEMS_TABLE . "\n\t\t\t\t\t\t\tSET item_in_warehouse = 0\n\t\t\t\t\t\t\tWHERE item_owner_id = '{$character_id}'"; if (!$db->sql_query($sql)) { message_die(GENERAL_ERROR, 'Could not remove WH status for items', "", __LINE__, __FILE__, $sql); } $wh_msg = sprintf($lang['Adr_character_warehouse_closed'], $warehouse_tax, get_reward_name()); } // Check for any messages to use later on in PM to user $pm_wh = TRUE; } // Update user warehouse update time $sql = " UPDATE " . ADR_CHARACTERS_TABLE . "\n\t\t\t\t\tSET character_warehouse_update = {$character_days}\n\t\t\t\t\t\tWHERE character_id = '{$character_id}'"; if (!($results = $db->sql_query($sql))) { message_die(GENERAL_MESSAGE, 'Error updating warehouse'); } } // END warehouse tax check // START open shop tax check if (is_numeric($character_id) && $character_days > $adr_user['character_shop_update'] + ($board_config['Adr_shop_duration'] - 1)) { $shop_days = $character_days - ($adr_user['character_shop_update'] + ($board_config['Adr_shop_duration'] - 1)); $shop_tax = $board_config['Adr_shop_tax'] * $shop_days; // see if user has a shop open if (is_numeric($shop_check['shop_id']) && $board_config['Adr_shop_tax'] > '0') { if ($points >= $shop_tax) { // Remove tax from user_points subtract_reward($character_id, $shop_tax); $shop_msg = sprintf($lang['Adr_character_shop_tax'], $shop_tax, get_reward_name()); } elseif ($points < $shop_tax && is_numeric($vault_check['account_sum']) && $vault_check['account_sum'] >= $shop_tax) { $sql = "UPDATE " . ADR_VAULT_USERS_TABLE . "\n\t\t\t\t\t\t\t\tSET account_sum = (account_sum - {$shop_tax})\n\t\t\t\t\t\t\t\tWHERE owner_id = '{$character_id}'"; if (!$db->sql_query($sql)) { message_die(CRITICAL_ERROR, 'Error removing points for shop (vault)'); } $shop_msg = sprintf($lang['Adr_character_shop_tax'], $shop_tax, get_reward_name()); } else { // Remove shop status from items & close shop if rent not paid $sql = "UPDATE " . ADR_SHOPS_ITEMS_TABLE . "\n\t\t\t\t\t\t\tSET item_in_shop = 0\n\t\t\t\t\t\t\tWHERE item_owner_id = '{$character_id}'"; if (!$db->sql_query($sql)) { message_die(GENERAL_ERROR, 'Could not remove shop status for items', "", __LINE__, __FILE__, $sql); } $sql = "DELETE FROM " . ADR_SHOPS_TABLE . "\n\t\t\t\t\t\t\tWHERE shop_owner_id = '{$character_id}'"; if (!$db->sql_query($sql)) { message_die(GENERAL_ERROR, 'Could not delete shop', "", __LINE__, __FILE__, $sql); } // Remove all transaction logs for user store $sql = "DELETE FROM " . ADR_STORES_USER_HISTORY . "\n\t\t\t\t\t\t\tWHERE user_store_owner_id = '{$character_id}'"; if (!$db->sql_query($sql)) { message_die(GENERAL_ERROR, 'Could not delete user store trans logs', "", __LINE__, __FILE__, $sql); } $shop_msg = sprintf($lang['Adr_character_shop_closed'], $shop_tax, get_reward_name()); } // Check for any messages to use later on in PM to user $pm_shop = TRUE; } // Last shop update $sql = " UPDATE " . ADR_CHARACTERS_TABLE . "\n\t\t\t\t\tSET character_shop_update = {$character_days}\n\t\t\t\t\t\tWHERE character_id = '{$character_id}'"; if (!($results = $db->sql_query($sql))) { message_die(GENERAL_MESSAGE, 'Error updating warehouse'); } } // END open shop tax check // Here we need to check whether to send user a PM notification of charges if ($pm_wh === TRUE || $pm_shop === TRUE) { $subject = sprintf($lang['Adr_tax_pm_sub']); if ($pm_wh === TRUE) { $message = $wh_msg . ' '; } if ($pm_shop === TRUE) { $message .= $shop_msg; } adr_send_pm($character_id, $subject, $message, 2); } } } return; }
function adr_admin_cmd_unban($username, $reason) { global $db, $lang; $user_infos = adr_gc_username($username); $user_id = $user_infos['user_id']; $error_messages = ''; if (is_numeric($user_id)) { if ($user_infos['user_adr_ban'] == '1') { $sql = "UPDATE " . USERS_TABLE . "\r\n\t\t \t\tSET user_adr_ban = 0\r\n\t\t\t\tWHERE user_id = '{$user_id}'"; $result = $db->sql_query($sql); if (!$result) { message_die(GENERAL_ERROR, 'Could not update user to ADR unbanage', "", __LINE__, __FILE__, $sql); } // Send PM to user to notify $subject = $lang['Adr_global_shout_unban_pm']; adr_send_pm($user_id, $subject, $reason); $error_messages = sprintf($lang['Adr_global_shout_unban_yes'], $user_infos['username']); } else { $error_messages = sprintf($lang['Adr_global_shout_unban_already'], $user_infos['username']); } } else { $error_messages = sprintf($lang['Adr_global_shout_incorrect_user'], $username); } return $error_messages; }
function adr_job_salary_check($user_id) { global $db, $adr_general, $lang, $phpEx, $phpbb_root_path, $board_config, $table_prefix; $user_id = intval($user_id); $sql = "SELECT * FROM " . ADR_CHARACTERS_TABLE . "\r\n\t\t WHERE character_id = {$user_id} "; if (!($result = $db->sql_query($sql))) { message_die(GENERAL_ERROR, 'Error showing all job list', "", __LINE__, __FILE__, $sql); } $character = $db->sql_fetchrow($result); if (!$character) { return; } if ($adr_general['job_salary_enable'] != 0 && $character['character_job_id'] != 0) { // Fix current time $current_time = time(); // Character values $character_id = $character['character_id']; $character_job_id = $character['character_job_id']; $character_job_start = $character['character_job_start']; $character_job_pm = $character['character_job_pm']; $character_job_end = $character['character_job_end']; $last_paid = ($current_time - $character['character_job_last_paid']) / 86400; // Select job details $sql = " SELECT * FROM " . ADR_JOB_TABLE . "\r\n\t\t\tWHERE job_id = {$character_job_id} "; if (!($result = $db->sql_query($sql))) { message_die(GENERAL_ERROR, 'Could not query user job table', '', __LINE__, __FILE__, $sql); } $job = $db->sql_fetchrow($result); // Job values $salary = $job['job_salary']; $item_reward = $job['job_item_reward_id']; $sp_reward = $job['job_sp_reward']; if ($current_time < $character_job_end && $last_paid >= $job['job_payment_intervals']) { // Add salary to user $sql = "UPDATE " . USERS_TABLE . "\r\n\t\t\t\tSET user_points = user_points + {$salary}\r\n\t\t\t\tWHERE user_id = {$character_id} "; if (!($result = $db->sql_query($sql))) { message_die(GENERAL_ERROR, 'Error updating daily salary', "", __LINE__, __FILE__, $csql); } $sql = "UPDATE " . ADR_CHARACTERS_TABLE . "\r\n\t\t\t\tSET character_job_earned = character_job_earned + {$salary},\r\n\t\t\t\t\tcharacter_job_total_earned = character_job_total_earned + {$salary},\r\n\t\t\t\t\tcharacter_job_last_paid = {$current_time}\r\n\t\t\t\tWHERE character_id = {$character_id} "; if (!($result = $db->sql_query($sql))) { message_die(GENERAL_ERROR, 'Could not update character table', "", __LINE__, __FILE__, $csql); } // Send PM notification if enabled by user if ($character_job_pm != 0) { $subject = $lang['Adr_job_pm_paid']; $message = sprintf($lang['Adr_job_pm_paid_msg'], $job['job_salary'], $board_config['points_name'], $job['job_name']); adr_send_pm($character_id, $subject, $message); } } elseif ($current_time >= $character_job_end) { $job_slots = $job['job_slots_available'] + 1 > $job['job_slots_max'] ? $job['job_slots_max'] : $job['job_slots_available'] + 1; // Add job slot back again $sql = "UPDATE " . ADR_JOB_TABLE . "\r\n\t\t\t\tSET job_slots_available = {$job_slots}\r\n\t\t\t\tWHERE job_id = {$character_job_id} "; if (!($result = $db->sql_query($sql))) { message_die(GENERAL_ERROR, 'Error updating job slots', "", __LINE__, __FILE__, $csql); } // Job duration has ended $sql = "UPDATE " . ADR_CHARACTERS_TABLE . "\r\n\t\t\t\tSET character_job_id = 0,\r\n\t\t\t\t\tcharacter_job_start = 0,\r\n\t\t\t\t\tcharacter_job_end = 0,\r\n\t\t\t\t\tcharacter_job_last_paid = 0,\r\n\t\t\t\t\tcharacter_job_completed = character_job_completed + 1,\r\n\t\t\t\t\tcharacter_xp = character_xp + '" . $job['job_exp'] . "'\r\n\t\t\t\tWHERE character_id = {$character_id} "; if (!($result = $db->sql_query($sql))) { message_die(GENERAL_ERROR, $lang['Job_salary_update_error'], "", __LINE__, __FILE__, $csql); } // Check if there is an SP reward if ($sp_reward != 0) { adr_add_sp($character_id, $sp_reward); } // Check if there is a item reward if ($item_reward != 0) { // Grab item reward details $sql = "SELECT * FROM " . ADR_SHOPS_ITEMS_TABLE . "\r\n\t\t\t\t\tWHERE item_owner_id = 1\r\n\t\t\t\t\tAND item_id = {$item_reward} "; $result = $db->sql_query($sql); if (!$result) { message_die(GENERAL_ERROR, 'Could not obtain shops items information', "", __LINE__, __FILE__, $sql); } $item_data = $db->sql_fetchrow($result); // V: item data was deleted // return here to avoid pm'ing // @todo should this pm an error to admin? if (!$item_data) { return; } // Make the new id for the item $sql = "SELECT item_id FROM " . ADR_SHOPS_ITEMS_TABLE . "\r\n\t\t\t\t\tWHERE item_owner_id = {$character_id}\r\n\t\t\t\t\tORDER BY item_id \r\n\t\t\t\t\tDESC LIMIT 1"; $result = $db->sql_query($sql); if (!$result) { message_die(GENERAL_ERROR, 'Could not obtain item information', "", __LINE__, __FILE__, $sql); } $data = $db->sql_fetchrow($result); $new_item_id = $data['item_id'] + 1; $item_type_use = $item_data['item_type_use']; $item_name = addslashes($item_data['item_name']); $item_desc = addslashes($item_data['item_desc']); $item_icon = trim($item_data['item_icon']); $item_price = $item_data['item_price']; $item_quality = $item_data['item_quality']; $item_duration = $item_data['item_duration']; $item_duration_max = $item_data['item_duration_max']; $item_power = $item_data['item_power']; $item_add_power = $item_data['item_add_power']; $item_mp_use = $item_data['item_mp_use']; $item_element = $item_data['item_element']; $item_element_str_dmg = $item_data['item_element_str_dmg']; $item_element_same_dmg = $item_data['item_element_same_dmg']; $item_element_weak_dmg = $item_data['item_element_weak_dmg']; $item_weight = $item_data['item_weight']; $item_max_skill = $item_data['item_max_skill']; $item_sell_back_percentage = $item_data['item_sell_back_percentage']; $sql = "INSERT INTO " . ADR_SHOPS_ITEMS_TABLE . " \r\n\t\t\t\t\t( item_id , item_owner_id , item_type_use , item_name , item_desc , item_icon , item_price , item_quality , item_duration , item_duration_max , item_power , item_add_power , item_mp_use , item_weight , item_auth , item_element , item_element_str_dmg , item_element_same_dmg , item_element_weak_dmg , item_max_skill , item_sell_back_percentage )\r\n\t\t\t\t\tVALUES ( {$new_item_id} , {$character_id} , {$item_type_use} , '{$item_name}' , '{$item_desc}' , '" . str_replace("\\'", "''", $item_icon) . "' , {$item_price} , {$item_quality} , {$item_duration} , {$item_duration_max} , {$item_power} , {$item_add_power} , {$item_mp_use} , {$item_weight} , 0 , {$item_element} , {$item_element_str_dmg} , {$item_element_same_dmg} , {$item_element_weak_dmg} , {$item_max_skill} , {$item_sell_back_percentage} )"; $result = $db->sql_query($sql); if (!$result) { message_die(GENERAL_ERROR, "Couldn't insert reward new item", "", __LINE__, __FILE__, $sql); } } if ($character_job_pm != 0) { $subject = $lang['Adr_job_pm_finish']; $message = sprintf($lang['Adr_job_pm_finish_msg'], $job['job_name']); if ($job['job_exp'] != 0) { $message .= sprintf($lang['Adr_job_pm_finish_msg1'], $job['job_exp']) . '<br /><br />'; } if ($job['job_sp_reward'] != 0) { $message .= sprintf($lang['Adr_job_pm_finish_msg3'], $job['job_sp_reward']) . '<br /><br />'; } if ($job['job_item_reward_id'] != 0) { // Grab item reward details $sql = " SELECT item_name FROM " . ADR_SHOPS_ITEMS_TABLE . "\r\n\t\t\t\t\t\tWHERE item_owner_id = 1\r\n\t\t\t\t\t\tAND item_id = '" . $job['job_item_reward_id'] . "' "; if (!($result = $db->sql_query($sql))) { message_die(GENERAL_ERROR, 'Could not query user stats page', '', __LINE__, __FILE__, $sql); } $item = $db->sql_fetchrow($result); $message .= sprintf($lang['Adr_job_pm_finish_msg2'], adr_get_lang($item['item_name'])) . '<br /><br />'; } adr_send_pm($character_id, $subject, $message); } } } }