Ejemplo n.º 1
0
function has_reward($user_id, $amount)
{
    $user_id = intval($user_id);
    $amount = intval($amount);
    $users_amount = get_reward($user_id);
    return $users_amount >= $amount;
}
Ejemplo n.º 2
0
     }
     ##=== START: show all items or just those available to user?
     $points_check_sql = $show_only_mine == '1' ? ' AND item_price <= ' . $points : '';
     $item_sql = $show_only_mine == '1' ? $item_sql : '';
     ##=== END: show all items or just those available to user?
     $shop_more_sql = $shop_owner != 1 ? 'AND item_in_shop = 1' : '';
     $cat_sql = $cat ? 'AND item_type_use = ' . $cat : '';
     $sql = "SELECT count(*) AS total FROM " . ADR_SHOPS_ITEMS_TABLE . " \n\t\t\t\tWHERE item_owner_id = {$shop_owner}\n\t\t\t\t{$item_sql}\n\t\t\t\t{$points_check_sql}\n\t\t\t\t{$shop_more_sql} \n\t\t\t\t{$cat_sql}\n\t\t\t\tAND item_duration > 0 ";
     if (!($result = $db->sql_query($sql))) {
         message_die(GENERAL_ERROR, 'Error getting total users', '', __LINE__, __FILE__, $sql);
     }
     if ($total = $db->sql_fetchrow($result)) {
         $total_items = $total['total'];
         $pagination = generate_pagination("adr_shops.{$phpEx}?mode=see_shop&amp;mode2={$mode2}&amp;order={$sort_order}&amp;shop_id=" . $shop_id . "", $total_items, $board_config['topics_per_page'], $start) . '&nbsp;';
     }
     $template->assign_vars(array('ORDER_BY' => $order_by, 'ACTION_SELECT' => $action_select, 'SELECT_CAT' => $select_category, 'SELECT_QUANTITY' => $select_quantity, 'SHOP_OWNER_ID' => $shop_owner, 'SHOP_NAME' => $shop_name, 'SHOP_DESC' => $shop_desc, 'POINTS' => number_format(get_reward($user_id)), 'SHOW_LINK' => $show_link, 'L_POINTS' => $lang['Adr_my'] . get_reward_name(), 'L_SHOW_LINK' => $show_type, "L_SELECT_CAT" => $lang['Adr_items_select'], "L_SELECT_QUANTITY" => $lang['Adr_items_select_quantity'], "L_ITEM_NAME" => $lang['Adr_shops_categories_item_name'], "L_ITEM_DESC" => $lang['Adr_shops_categories_item_desc'], "L_ITEM_QUALITY" => $lang['Adr_items_quality'], "L_ITEM_POWER" => $lang['Adr_items_power'], "L_ITEM_WEIGHT" => $lang['Adr_character_weight'], "L_ITEM_DURATION" => $lang['Adr_items_duration'], "L_ITEM_ELEMENT" => $lang['Adr_shops_item_element'], "L_ACTION" => $lang['Adr_items_action'], "L_ITEM_IMG" => $lang['Adr_races_image'], "L_ITEM_PRICE" => $lang['Adr_items_price'], "L_ITEM_TYPE" => $lang['Adr_items_type_use'], "L_NO_ITEMS" => $lang['Adr_items_none'], 'L_SELECT_SORT_METHOD' => $lang['Select_sort_method'], 'L_ORDER' => $lang['Order'], 'L_SORT' => $lang['Sort'], 'L_SUBMIT' => $lang['Submit'], 'S_MODE_SELECT' => $select_sort_mode, 'S_ORDER_SELECT' => $select_sort_order, 'PAGINATION' => $pagination, 'PAGE_NUMBER' => sprintf($lang['Page_of'], floor($start / $board_config['topics_per_page']) + 1, ceil($total_items / $board_config['topics_per_page'])), 'L_GOTO_PAGE' => $lang['Goto_page'], 'S_MODE_ACTION' => append_sid("adr_shops.{$phpEx}?mode=see_shop&amp;shop_id=" . $shop_id . "")));
     break;
 case 'shop_list':
     $template->assign_block_vars('shop_list', array());
     if (isset($_GET['mode2']) || isset($_POST['mode2'])) {
         $mode2 = isset($_POST['mode2']) ? htmlspecialchars($_POST['mode2']) : htmlspecialchars($_GET['mode2']);
     } else {
         $mode2 = 'itemname';
     }
     if (isset($_POST['order'])) {
         $sort_order = $_POST['order'] == 'ASC' ? 'ASC' : 'DESC';
     } else {
         if (isset($_GET['order'])) {
             $sort_order = $_GET['order'] == 'ASC' ? 'ASC' : 'DESC';
         } else {
             $sort_order = 'ASC';
Ejemplo n.º 3
0
    }
}
if (isset($HTTP_POST_VARS['sub_mode']) && !empty($HTTP_POST_VARS['sub_mode'])) {
    $sub_mode = htmlspecialchars($HTTP_POST_VARS['sub_mode']);
} else {
    if (isset($HTTP_GET_VARS['sub_mode'])) {
        $sub_mode = htmlspecialchars($HTTP_GET_VARS['sub_mode']);
    } else {
        $sub_mode = "";
    }
}
$start = isset($HTTP_GET_VARS['start']) ? intval($HTTP_GET_VARS['start']) : 0;
if ($mode != "") {
    switch ($mode) {
        case 'training':
            $template->assign_block_vars('training', array());
            if ($sub_mode == "") {
                $template->assign_block_vars('training.training_main', array());
                if ($adr_general['training_allow_change']) {
                    $template->assign_block_vars('training.training_main.change', array());
                }
                $template->assign_vars(array('L_TOWN_TRAINING_SKILL' => $lang['Adr_town_training_grounds_train_skill'], 'L_TOWN_TRAINING_UPGRADE' => $lang['Adr_town_training_grounds_train_upgrade'], 'L_TOWN_TRAINING_CHARAC' => $lang['Adr_town_training_grounds_train_charac'], 'L_TOWN_TRAINING_CHANGE' => $lang['Adr_town_training_grounds_change_class'], 'U_TOWN_TRAINING_SKILL' => append_sid("adr_town.{$phpEx}?mode=training&amp;sub_mode=train_skill"), 'U_TOWN_TRAINING_UPGRADE' => append_sid("adr_town.{$phpEx}?mode=training&amp;sub_mode=train_upgrade"), 'U_TOWN_TRAINING_CHARAC' => append_sid("adr_town.{$phpEx}?mode=training&amp;sub_mode=train_charac"), 'U_TOWN_TRAINING_CHANGE' => append_sid("adr_town.{$phpEx}?mode=training&amp;sub_mode=change_class")));
            } else {
                switch ($sub_mode) {
                    case 'train_skill':
                        $template->assign_block_vars('training.train_skill', array());
                        $skills = adr_get_skill_data('');
                        $base = $adr_general['training_skill_cost'];
                        // Check if points or SP is to be used as payment
                        if (!$board_config['Adr_skill_sp_enable']) {
                            $points = get_reward($user_id);
Ejemplo n.º 4
0
     $approvelist_sql = ", approvelist = '', approve_fee = '' ";
     // Give all those on the approve list their money back! [START]
     $sqlZZ = "SELECT approvelist, approve_fee FROM " . ADR_CLANS_TABLE . " WHERE id = '" . intval($_GET['clan']) . "' ";
     if (!($resultZZ = $db->sql_query($sqlZZ))) {
         message_die(GENERAL_ERROR, 'Error retrieving data', '', __LINE__, __FILE__, $sqlZZ);
     }
     while ($rowZZ = $db->sql_fetchrow($resultZZ)) {
         if ($rowZZ['approvelist'] != '') {
             $allapprove = str_replace("ß", "", $rowZZ['approvelist']);
             $newapprove = explode("Þ", $allapprove);
             $count = count($newapprove) - 1;
             $allfees = str_replace("ß", "", $rowZZ['approve_fee']);
             $newfees = explode("Þ", $allfees);
             for ($xy = 0; $xy < $count; $xy++) {
                 //								$sqlZZ2 = "SELECT user_points FROM ". USERS_TABLE ." WHERE user_id = '".$newapprove[$xy]."' ";
                 $sqlZZ2 = get_reward($newapprove[$xy]);
                 if (!($resultZZ2 = $db->sql_query($sqlZZ2))) {
                     message_die(GENERAL_ERROR, 'Error retrieving data', '', __LINE__, __FILE__, $sqlZZ2);
                 }
                 while ($rowZZ2 = $db->sql_fetchrow($resultZZ2)) {
                     $newpoints = $rowZZ2['user_points'] + $newfees[$xy];
                 }
                 set_reward($newapprove[$xy], $newpoints);
                 //								$sql23 = "UPDATE ". USERS_TABLE ." SET user_points = '".$newpoints."' WHERE user_id = '".$newapprove[$xy]."' ";
                 //								if ( !$db->sql_query($sql23) ) { message_die(GENERAL_ERROR, 'Error updating clan info', '', __LINE__, __FILE__, $sql23); }
             }
         }
     }
     // Give all those on the approve list their money back! [END]
 } else {
     $approvelist_sql = "";
Ejemplo n.º 5
0
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 . '&nbsp;';
                }
                if ($pm_shop === TRUE) {
                    $message .= $shop_msg;
                }
                adr_send_pm($character_id, $subject, $message, 2);
            }
        }
    }
    return;
}