Ejemplo n.º 1
0
function adr_get_poster_infos($poster_id)
{
    global $db, $lang, $phpEx, $phpbb_root_path, $board_config, $table_prefix;
    define('IN_ADR_CHARACTER', 1);
    include_once $phpbb_root_path . 'adr/includes/adr_constants.' . $phpEx;
    $poster_id = intval($poster_id);
    $cache_config = explode('-', $board_config['Adr_use_cache_system']);
    if ($cache_config[6]) {
        // All the following code has been made by Ptirhiik
        @(include $phpbb_root_path . './adr/cache/cache_posters.' . $phpEx);
        if (!empty($adr_posters)) {
            $cached_adr_posters = $adr_posters[$poster_id];
        } else {
            $sql = "SELECT c.character_level, r.race_name, r.race_img, e.element_name, e.element_img, a.alignment_name, a.alignment_img,\n\t\t\t\tcl.class_name, cl.class_img\n\t\t\t\tFROM  " . ADR_CHARACTERS_TABLE . " c, " . ADR_RACES_TABLE . " r, " . ADR_ELEMENTS_TABLE . " e, " . ADR_ALIGNMENTS_TABLE . " a, " . ADR_CLASSES_TABLE . " cl\n\t\t\t\tWHERE c.character_id = '{$poster_id}'\n\t\t\t\tAND cl.class_id = c.character_class\n\t\t\t\tAND r.race_id = c.character_race\n\t\t\t\tAND e.element_id = c.character_element\n\t\t\t\tAND a.alignment_id = c.character_alignment ";
            if (!($result = $db->sql_query($sql))) {
                message_die(GENERAL_ERROR, 'Error Getting Adr Users!', '', __LINE__, __FILE__, $sql);
            }
            @(include $phpbb_root_path . './adr/cache/cache_posters.' . $phpEx);
            if (empty($adr_posters)) {
                adr_update_posters_infos();
                include $phpbb_root_path . './adr/cache/cache_posters.' . $phpEx;
                $cached_adr_posters = $adr_posters[$poster_id];
            }
        }
    } else {
        $poster_sql = "SELECT c.character_level, r.race_name, r.race_img, e.element_name, e.element_img, a.alignment_name, a.alignment_img,\n\t\t\tcl.class_name, cl.class_img\n\t\t\tFROM  " . ADR_CHARACTERS_TABLE . " c, " . ADR_RACES_TABLE . " r, " . ADR_ELEMENTS_TABLE . " e, " . ADR_ALIGNMENTS_TABLE . " a, " . ADR_CLASSES_TABLE . " cl\n\t\t\tWHERE c.character_id = {$poster_id}\n\t\t\tAND cl.class_id = c.character_class\n\t\t\tAND r.race_id = c.character_race\n\t\t\tAND e.element_id = c.character_element\n\t\t\tAND a.alignment_id = c.character_alignment ";
        if (!($poster_result = $db->sql_query($poster_sql))) {
            message_die(GENERAL_ERROR, 'Error Getting Adr Users!', '', __LINE__, __FILE__, $sql);
        }
        $cached_adr_posters = $db->sql_fetchrow($poster_result);
    }
    return $cached_adr_posters;
}
Ejemplo n.º 2
0
function adr_get_poster_infos($poster_id)
{
    global $db, $lang, $phpEx, $phpbb_root_path, $board_config, $table_prefix;
    redefine('IN_ADR_CHARACTER', 1);
    include_once $phpbb_root_path . 'adr/includes/adr_constants.' . $phpEx;
    $poster_id = intval($poster_id);
    // All the following code has been made by Ptirhiik
    @(include $phpbb_root_path . './adr/cache/cache_posters.' . $phpEx);
    if (!empty($adr_posters)) {
        $cached_adr_posters = $adr_posters[$poster_id];
    } else {
        adr_update_posters_infos();
        include $phpbb_root_path . './adr/cache/cache_posters.' . $phpEx;
        $cached_adr_posters = $adr_posters[$poster_id];
    }
    return $cached_adr_posters;
}
Ejemplo n.º 3
0
function adr_level_up($user_id, $from)
{
    global $db, $lang, $phpEx, $adr_general;
    $user_id = intval($user_id);
    $sql = "SELECT cl.* , c.* FROM " . ADR_CHARACTERS_TABLE . " c , " . ADR_CLASSES_TABLE . " cl\n\t\tWHERE cl.class_id = c.character_class \n\t\tAND c.character_id = {$user_id} ";
    if (!($result = $db->sql_query($sql))) {
        message_die(GENERAL_ERROR, 'Could not check user experience', "", __LINE__, __FILE__, $sql);
    }
    $level = $db->sql_fetchrow($result);
    $max_hp = $level['class_update_xp_req'];
    for ($p = 1; $p < $level['character_level']; $p++) {
        $max_hp = floor($max_hp * (($adr_general['next_level_penalty'] + 100) / 100));
    }
    // Damned vicious users :)
    if ($level['character_xp'] < $max_hp && $from == 'character_page') {
        exit;
    }
    $xp_req = $max_hp;
    $hp = intval($level['class_update_hp']);
    $mp = intval($level['class_update_mp']);
    $ac = intval($level['class_update_ac']);
    switch ($from) {
        case 'character_page':
            $direction = append_sid("adr_character.{$phpEx}");
            $more_sql = 'character_xp = character_xp - ' . $xp_req;
            break;
        case 'training':
            $direction = append_sid("adr_character_training.{$phpEx}");
            $more_sql = 'character_xp = 0 ';
            break;
    }
    $sql = "UPDATE " . ADR_CHARACTERS_TABLE . "\n\t\tSET character_level = character_level + 1 ,\n\t\t\tcharacter_ac = character_ac + {$ac},\n\t\t\tcharacter_mp_max = character_mp_max + {$mp},\n\t\t\tcharacter_hp_max = character_hp_max + {$hp},\n\t\t\t{$more_sql}\n\t\tWHERE character_id = {$user_id} ";
    if (!($result = $db->sql_query($sql))) {
        message_die(GENERAL_ERROR, 'Could not update user experience', "", __LINE__, __FILE__, $sql);
    }
    $new_level = $level['character_level'] + 1;
    adr_update_posters_infos();
    $message = sprintf($lang['Adr_level_up_congrats'], $new_level);
    $message .= '<br /><br />' . sprintf($lang['Adr_return'], "<a href=\"" . $direction . "\">", "</a>");
    message_die(GENERAL_MESSAGE, $message);
}
Ejemplo n.º 4
0
     $forge_uses = intval($_POST['character_skill_forge_uses']);
     $enchantment_uses = intval($_POST['character_skill_enchantment_uses']);
     $trading_uses = intval($_POST['character_skill_trading_uses']);
     $thief_uses = intval($_POST['character_skill_thief_uses']);
     $victories = intval($_POST['character_victories']);
     $defeats = intval($_POST['character_defeats']);
     $flees = intval($_POST['character_flees']);
     $character_battle_limit = intval($_POST['character_battle_limit']);
     $character_skill_limit = intval($_POST['character_skill_limit']);
     $character_trading_limit = intval($_POST['character_trading_limit']);
     $character_thief_limit = intval($_POST['character_thief_limit']);
     $sql = "UPDATE " . ADR_CHARACTERS_TABLE . "\n\t\t\t\tSET character_class = {$class} ,\n\t\t\t\t\tcharacter_name = '" . str_replace("\\'", "''", $name) . "',\n\t\t\t\t\tcharacter_desc = '{$bio}' ,\n\t\t\t\t\tcharacter_alignment = {$alignment} ,\n\t\t\t\t\tcharacter_race = {$race} ,\n\t\t\t\t\tcharacter_element = {$element} ,\n\t\t\t\t\tcharacter_might = {$power} ,\n\t\t\t\t\tcharacter_dexterity = {$agility} ,\n\t\t\t\t\tcharacter_constitution = {$endurance} ,\n\t\t\t\t\tcharacter_intelligence = {$intelligence} ,\n\t\t\t\t\tcharacter_wisdom = {$willpower} ,\n\t\t\t\t\tcharacter_charisma = {$charm} ,\n\t\t\t\t\tcharacter_skill_mining =  {$mining} ,\n\t\t\t\t\tcharacter_skill_stone = {$stone} ,\n\t\t\t\t\tcharacter_skill_forge = {$forge} ,\n\t\t\t\t\tcharacter_skill_enchantment = {$enchantment} ,\n\t\t\t\t\tcharacter_skill_trading = {$trading} ,\n\t\t\t\t\tcharacter_skill_thief = {$thief} ,\n\t\t\t\t\tcharacter_skill_mining_uses = {$mining_uses} ,\n\t\t\t\t\tcharacter_skill_stone_uses = {$stone_uses} ,\n\t\t\t\t\tcharacter_skill_forge_uses = {$forge_uses} ,\n\t\t\t\t\tcharacter_skill_enchantment_uses = {$enchantment_uses} ,\n\t\t\t\t\tcharacter_skill_trading_uses = {$trading_uses} ,\n\t\t\t\t\tcharacter_skill_thief_uses = {$thief_uses} ,\n\t\t\t\t\tcharacter_victories = {$victories} ,\n\t\t\t\t\tcharacter_defeats = {$defeats} ,\n\t\t\t\t\tcharacter_flees = {$flees} ,\n\t\t\t\t\tcharacter_level = {$level} ,\n\t\t\t\t\tcharacter_hp = {$hp},\n\t\t\t\t\tcharacter_hp_max = {$hp_max},\n\t\t\t\t\tcharacter_mp = {$mp},\n\t\t\t\t\tcharacter_mp_max = {$mp_max},\n\t\t\t\t\tcharacter_xp = {$xp},\n\t\t\t\t\tcharacter_sp = {$sp},\n\t\t\t\t\tcharacter_battle_limit = {$character_battle_limit},\n\t\t\t\t\tcharacter_skill_limit = {$character_skill_limit},\t\n\t\t\t\t\tcharacter_trading_limit = {$character_trading_limit},\t\n\t\t\t\t\tcharacter_thief_limit = {$character_thief_limit},\t\n\t\t\t\t\tcharacter_ac = {$ac}\n\t\t\tWHERE character_id = '{$searchid}'";
     if (!($result = $db->sql_query($sql))) {
         message_die(CRITICAL_ERROR, 'Error updating character !');
     }
     adr_update_posters_infos();
     adr_previous(Adr_admin_character_edited, admin_adr_users, "mode=edit&amp;" . POST_USERS_URL . "=" . $searchid);
     break;
 case 'edit':
     adr_template_file('admin/config_adr_character_body.tpl');
     $template->assign_block_vars('edit', array());
     if (isset($_GET[POST_USERS_URL]) || isset($_POST[POST_USERS_URL])) {
         $user_id = isset($_POST[POST_USERS_URL]) ? intval($_POST[POST_USERS_URL]) : intval($_GET[POST_USERS_URL]);
         $this_userdata = get_userdata($user_id);
         if (!$this_userdata) {
             message_die(GENERAL_MESSAGE, $lang['No_user_id_specified']);
         }
     } else {
         $this_userdata = get_userdata($_POST['username'], true);
         if (!$this_userdata) {
             message_die(GENERAL_MESSAGE, $lang['No_user_id_specified']);
Ejemplo n.º 5
0
function adr_level_up($user_id, $from)
{
    global $db, $lang, $phpEx, $adr_general;
    $user_id = intval($user_id);
    $sql = "SELECT cl.* , c.* FROM " . ADR_CHARACTERS_TABLE . " c , " . ADR_CLASSES_TABLE . " cl\r\n\t\tWHERE cl.class_id = c.character_class \r\n\t\tAND c.character_id = {$user_id} ";
    if (!($result = $db->sql_query($sql))) {
        message_die(GENERAL_ERROR, 'Could not check user experience', "", __LINE__, __FILE__, $sql);
    }
    $level = $db->sql_fetchrow($result);
    $max_hp = $level['class_update_xp_req'];
    for ($p = 1; $p < $level['character_level']; $p++) {
        $max_hp = floor($max_hp * (($adr_general['next_level_penalty'] + 100) / 100));
    }
    // Damned vicious users :)
    if ($level['character_xp'] < $max_hp && $from == 'character_page') {
        exit;
    }
    $xp_req = $max_hp;
    $hp = intval($level['class_update_hp']);
    $mp = intval($level['class_update_mp']);
    $ac = intval($level['class_update_ac']);
    switch ($from) {
        case 'character_page':
            $direction = append_sid("adr_character.{$phpEx}");
            $more_sql = 'character_xp = character_xp - ' . $xp_req;
            break;
        case 'training':
            $direction = append_sid("adr_character_training.{$phpEx}");
            $more_sql = 'character_xp = 0 ';
            break;
    }
    $sql = "UPDATE " . ADR_CHARACTERS_TABLE . "\r\n\t\tSET character_level = character_level + 1 ,\r\n\t\t\tcharacter_ac = character_ac + {$ac},\r\n\t\t\tcharacter_mp_max = character_mp_max + {$mp},\r\n\t\t\tcharacter_hp_max = character_hp_max + {$hp},\r\n\t\t\t{$more_sql}\r\n\t\tWHERE character_id = {$user_id} ";
    if (!($result = $db->sql_query($sql))) {
        message_die(GENERAL_ERROR, 'Could not update user experience', "", __LINE__, __FILE__, $sql);
    }
    $new_level = $level['character_level'] + 1;
    $sql = "SELECT spell_id FROM " . ADR_SHOPS_SPELLS_TABLE . "\r\n\t\tWHERE spell_owner_id = {$user_id}\r\n\t\tORDER BY spell_id \r\n\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['spell_id'] + 1;
    $sql = "SELECT * FROM " . ADR_CHARACTERS_TABLE . "\r\n\t\tWHERE character_id = {$user_id}";
    $result = $db->sql_query($sql);
    if (!$result) {
        message_die(GENERAL_ERROR, 'Could not obtain item information', "", __LINE__, __FILE__, $sql);
    }
    $char1 = $db->sql_fetchrow($result);
    $char_class = $char1['character_class'];
    $sql = "SELECT * FROM " . ADR_SHOPS_SPELLS_TABLE . "\r\n\t\tWHERE spell_level = {$new_level}\r\n\t\tAND spell_owner_id = '1'";
    $result = $db->sql_query($sql);
    if (!$result) {
        message_die(GENERAL_ERROR, 'Could not obtain item information', "", __LINE__, __FILE__, $sql);
    }
    $data = $db->sql_fetchrowset($result);
    $spell_list = array();
    for ($i = 0; $i < count($data); $i++) {
        // Check to see if any spells are available
        $classes = explode(",", $data[$i]['spell_class']);
        // Create our array
        $success = in_array($char_class, $classes) || in_array('0', $classes);
        // Check our array
        if ($success) {
            // This row PASSES all checks so should be stored.
            $spell_list[] = $data[$i];
        }
    }
    if (!$spell_list) {
        $new_spell = $lang['Adr_spell_not_learned'];
    } else {
        // Now roll for spell
        $rand_spell = $spell_list[array_rand($spell_list, 1)];
        $item_type_use = $rand_spell['item_type_use'];
        $item_name = addslashes($rand_spell['spell_name']);
        $item_desc = addslashes($rand_spell['spell_desc']);
        $item_icon = trim($rand_spell['spell_icon']);
        $item_power = $rand_spell['spell_power'];
        $item_add_power = $rand_spell['spell_add_power'];
        $item_mp_use = $rand_spell['spell_mp_use'];
        $item_element = $rand_spell['spell_element'];
        $item_element_str_dmg = $rand_spell['spell_element_str_dmg'];
        $item_element_same_dmg = $rand_spell['spell_element_same_dmg'];
        $item_element_weak_dmg = $rand_spell['spell_element_weak_dmg'];
        $item_max_skill = $rand_spell['spell_max_skill'];
        $item_original_id = $rand_spell['spell_id'];
        $sql = "INSERT INTO " . ADR_SHOPS_SPELLS_TABLE . " \r\n\t\t\t( spell_id , spell_owner_id , item_type_use , spell_name , spell_desc , spell_icon , spell_power , spell_add_power , spell_mp_use , spell_element , spell_element_str_dmg , spell_element_same_dmg , spell_element_weak_dmg , spell_max_skill , spell_original_id)\r\n\t\t\tVALUES ( {$new_item_id} , {$user_id} , {$item_type_use} , '{$item_name}' , '{$item_desc}' , '" . str_replace("\\'", "''", $item_icon) . "' , {$item_power} , {$item_add_power} , {$item_mp_use} , {$item_element} , {$item_element_str_dmg} , {$item_element_same_dmg} , {$item_element_weak_dmg} , {$item_max_skill} , {$item_original_id})";
        $result = $db->sql_query($sql);
        if (!$result) {
            message_die(GENERAL_ERROR, "Couldn't insert new item", "", __LINE__, __FILE__, $sql);
        }
        $new_spell = sprintf($lang['Adr_spell_learned'], $item_name);
    }
    adr_update_posters_infos();
    $message = sprintf($lang['Adr_level_up_congrats'], $new_level, $new_spell);
    $message .= '<br /><br />' . sprintf($lang['Adr_return'], "<a href=\"" . $direction . "\">", "</a>");
    message_die(GENERAL_MESSAGE, $message);
}