Файл: element_function/element_function_item.php
Строк: 343
<?php
    $quality_name = array('Обычное','Эпическое','Легендарное','Дары Богов','Трофейное', 'Уникальное');
    
    $array_1 = array('helmet' => array('lost_params_heatpoints', 'здоровья'),
                     'cape' =>      array('lost_params_heatpoints', 'здоровья'),
                     'armor' =>  array('lost_params_heatpoints', 'здоровья'),
                     'zone' =>   array('lost_params_strlen', 'силы'),
                     'feet' =>   array('lost_params_protection', 'защиты'),
                     'hands' => array('lost_params_strlen', 'силы'),
                     'shield' => array('lost_params_protection', 'защиты'),
                     'weapon' => array('lost_params_strlen', 'силы'),
                     'shoes' => array('lost_params_protection', 'защиты'));
    
    function item_params_type($mesto) {
        global $array_1;
        return $array_1[$mesto];
    }
    // item_params_type();
    function item_razbor($quality) {
        $count = array(10,20,30,40,50);
        return $count[$quality];
    }
    
    function SelectItemUser($user, $bag, $mesto) {
        if ($mesto) return mysql_fetch_array(mysql_query("SELECT * FROM `element_item` WHERE `lost_id` = '$user' AND `lost_bag` = '$bag' AND `lost_mesto` = '$mesto' LIMIT 1"));
    else return mysql_fetch_array(mysql_query("SELECT * FROM `element_item` WHERE `lost_id` = '$user' AND `lost_bag` = '$bag' LIMIT 1"));
    }
    
    // Функция переобразирует тип вешей на русский
    function name_item_mesto($mesto) {
        $name_mesto = array('helmet' => 'Голова', 'weapon' => 'Правая рука', 'shield' => 'Левая рука', 
                            'zone' => 'Пояс', 'armor' => 'Тело', 'cape' => 'Накидка',
                            'feet' => 'Ноги', 'hands' => 'Руки', 'shoes' => 'Обувь');
        return $name_mesto[$mesto];
    }
    
    function item_enchants_quality($quality, $params_name) {
        if ($quality >= 0) {
            $array_enchants = array(0 => 50, 1 => 75, 2 => 150, 3 => 250, 4 => 350, 5 => 500);
            $image = quality_item_name($quality);
            return array('params' => $array_enchants[$quality], 'quality' => $quality, 'image' => $image['image'], 'name' => $params_name);
        } return false;
    }
    
    ///////////////////////////////////////////////////////
    //////////////////сила//////здоровье//////защита///////
    // Голова     ////   10    ///      17    /////     13     //////        здоровье
    // Оружие    ////   17    ///   10     /////     13   //////        сила
    // Щит      ////   10     ///   13    /////   17     //////     защита
    // Пояс        ////    9     ///    9     /////      9      //////        сила
    // Брониров ////   10     ///   13    /////     13      //////        здоровье
    // Накидка     ////    9    ///   11    /////      9     //////        здоровье
    // Штаны    ////   11    ///    9     /////    9     //////        защита
    // Перчатки    ////   13    ///    9    /////    9   //////        сила
    // Обувь    ////   13    ///   10    /////   10      //////        защита
    // Сумма    ////  102    ///  101    /////  102     //////        
    ///////////////////////////////////////////////////////
    
    function item_generation_quality($quality) {
        if ($quality == 0) return rand(  0, 25);
        if ($quality == 1) return rand( 26, 50);
        if ($quality == 2) return rand( 51,100);
        if ($quality == 3) return rand(101,150);
        if ($quality == 4) return rand(151,250);
        if ($quality == 5) return rand(251,400);
    }
    
    function item_generation_params($strlen, $heatpoints, $protection, $comparison) {
        $array_params = array(explode(':', $strlen), explode(':', $heatpoints), explode(':', $protection));
        $array_genera = array(params($array_params[0][0], $array_params[0][1]),params($array_params[1][0], $array_params[1][1]),params($array_params[2][0], $array_params[2][1]));
        
        if ($comparison > 0) {
            $pr = $comparison * 5;
            $array_genera[0][0] = (int)(($array_genera[0][0] / 100) * (100 + $pr));
            $array_genera[1][0] = (int)(($array_genera[1][0] / 100) * (100 + $pr));
            $array_genera[2][0] = (int)(($array_genera[2][0] / 100) * (100 + $pr));
        }
        $summa = $array_genera[0][0] + $array_genera[1][0] + $array_genera[2][0];
        
        return array('strlen' => $array_genera[0][0], 'strlen_pr' => $array_genera[0][1],
                     'heatpoints' => $array_genera[1][0], 'heatpoints_pr' => $array_genera[1][1],
                     'protection' => $array_genera[2][0], 'protection_pr' => $array_genera[2][1],
                     'summa' => $summa);
    }
    
    
    
    // Функция создания вещей: 0 - айди юзера, 1 - массив с вещами, 2 - качество, 3 - пр. сила, 4 - пр. хп, 5 - пр. бр
    // 6 - чара силы, 7 - чара хп, 8 - чара защиты, 9 - новая/личная
    function create_item($user_id, $bag, $quality, $pr_str, $pr_hp, $pr_prot, $enchants, $new, $set, $type, $comparison) {
    if (count($bag) < 20) {
        if (!$quality) $quality = 0;                                    // Если не указан шанс, генерируем его
        if (!$pr_str)  $pr_str = item_generation_quality($quality);        // Если не указан процент, генерируем его
        if (!$pr_hp)   $pr_hp = item_generation_quality($quality);        // Если не указан процент, генерируем его
        if (!$pr_prot) $pr_prot = item_generation_quality($quality);    // Если не указан процент, генерируем его
        if (!$enchants) $enchants = -1;
        
        if (!$new) $new = 0;
        
        if (!$type) {
            global $array_type;
            $type = $array_type[array_rand($array_type)];
        }
        
        if (!$comparison) $comparison = 0;
        
        $item = mysql_fetch_array(mysql_query("SELECT * FROM `element_equipment` WHERE `lost_quality` = '$quality' AND `lost_mesto` = '$type' LIMIT 1"));
        
        if ($item) {
            mysql_query("INSERT INTO `element_item` SET `lost_name` = '$item[lost_name]',
                                                        `lost_quality` = '$quality',
                                                        `lost_user` = '$user_id',
                                                        `lost_strlen` = '$item[lost_strlen]:$pr_str',
                                                        `lost_heatpoints` = '$item[lost_heatpoints]:$pr_hp',
                                                        `lost_protection` = '$item[lost_protection]:$pr_prot',
                                                        `lost_mesto` = '$item[lost_mesto]',
                                                        `lost_set` = '$item[lost_set]',
                                                        `lost_avatar` = '$item[lost_avatar]',
                                                        `lost_bag` = '0',
                                                        `lost_new` = '$new',
                                                        `lost_enchants` = '$enchants',
                                                        `lost_comparison` = '$comparison'");
                                                        echo mysql_error();
            $insert = mysql_insert_id();
            $bag[$insert] = $insert;    // Записываем в массив вещей в рюкзаку
            writecache('element_shoot_item_user_id'.$user_id, $bag);
            return $insert;
        }
    } else return false;
    }
    //create_item($user, 5, 1000, false, false);
    
    
    function delete_item($user, $item, $shoot, $header) {
        if ($item['lost_user'] == $user['lost_id'] AND $item['lost_bag'] == 0) {
            $genaration_params = item_generation_params($item['lost_strlen'], $item['lost_heatpoints'], $item['lost_protection'], $item['lost_comparison']);
            if ($item['lost_quality'] >= 4) 
                mysql_query("UPDATE `element_item` SET `lost_bag` = '2' WHERE `lost_id` = '$item[lost_id]' LIMIT 1");
            else mysql_query("DELETE FROM `element_item` WHERE `lost_id` = '$item[lost_id]' LIMIT 1");
            $summa_del = ((int)(($genaration_params['summa'] / 100) * 50));
            update_money_exp($user, 0, $summa_del, 0, 0);
            unset($shoot[$item['lost_id']]);
            writecache('element_shoot_item_user_id'.$user['lost_id'], $shoot);
            if ($header) header('Location: /bag');
        }
    }
    // element_item_id_
    
    // Функция снятия вещи
    function shoot_item($user, $item, $shoot, $wear, $header) {
        // Если вещь моя, и она одета, работаем
        if ($user['lost_id'] == $item['lost_user'] AND $item['lost_bag'] == 1) {
            unset($wear[$item['lost_mesto']]);                // Удаляем с массива надетых вещей    
            $shoot[$item['lost_id']] = $item['lost_id'];    // Записываем в массив вещей в рюкзаку
            
            $params = item_generation_params($item['lost_strlen'], $item['lost_heatpoints'], $item['lost_protection'], $item['lost_comparison']);
        
            if ($item['lost_enchants'] >= 0) {
                $it_pr_tp = item_params_type($item['lost_mesto']);
                $qwerty = item_enchants_quality($item['lost_enchants'], '');
                $user[$it_pr_tp[0]] = $user[$it_pr_tp[0]] - $qwerty['params'];
            }
        
            // Обновляем данные
            mysql_query("UPDATE `element_item` SET `lost_bag` = '0' WHERE `lost_id` = '$item[lost_id]' AND `lost_user` = '$user[lost_id]' LIMIT 1");
            $user = SetParams($user, -$params['strlen'], -$params['heatpoints'], -$params['protection'], true);
            
            // Записываем данные в кэш
            writecache('element_wear_item_user_id'.$user['lost_id'], $wear);
            writecache('element_shoot_item_user_id'.$user['lost_id'], $shoot);
            
            if (!empty($header)) {
                header('Location: '.$header);
            } else return array('wear' => $wear, 'shoot' => $shoot, 'user' => $user);
        }
    return false;
    }
    
    
    function wear_item($user, $item, $shoot, $wear, $header, $new) {
        if ($user['lost_id'] == $item['lost_user'] AND $item['lost_bag'] == 0) {
            
            // Если на мне уже одета такая вещь, снимаем
            if (!empty($wear[$item['lost_mesto']])) {
                $cache_item = cache_item($wear[$item['lost_mesto']]);
                $shoot_item = shoot_item($user, $cache_item, $shoot, $wear, '');
                $shoot = $shoot_item['shoot'];
                $wear = $shoot_item['wear'];
                $user = $shoot_item['user'];
            }
            
            $wear[$item['lost_mesto']] = $item['lost_id'];
            unset($shoot[$item['lost_id']]);
            $item['lost_bag'] = 1;
            if ($new) $item['lost_new'] = 1;
        
            $params = item_generation_params($item['lost_strlen'], $item['lost_heatpoints'], $item['lost_protection'],  $item['lost_comparison']);
        
            if ($item['lost_enchants'] >= 0) {
                $it_pr_tp = item_params_type($item['lost_mesto']);
                $qwerty = item_enchants_quality($item['lost_enchants'], '');
                $user[$it_pr_tp[0]] = $user[$it_pr_tp[0]] + $qwerty['params'];
            }
        
            // Обновляем данные
            mysql_query("UPDATE `element_item` SET `lost_bag` = '1', `lost_new` = '$item[lost_new]' WHERE `lost_id` = '$item[lost_id]' AND `lost_user` = '$user[lost_id]' LIMIT 1");
            SetParams($user, $params['strlen'], $params['heatpoints'], $params['protection'], false);
            
            // Записываем данные в кэш
            writecache('element_wear_item_user_id'.$user['lost_id'], $wear);
            writecache('element_shoot_item_user_id'.$user['lost_id'], $shoot);
            if (!empty($header)) header('Location: '.$header);
        }
    }
    
    function AuctionItemCancel($user_id, $bag, $item, $header) {
        if ($item['lost_user'] == $user_id AND $item['lost_bag'] == 3) {
            $item['lost_bag'] = 0;
            mysql_query("UPDATE `element_item` SET `lost_bag` = '0' WHERE `lost_id` = '$item[lost_id]' LIMIT 1");
            mysql_query("DELETE FROM `element_auction` WHERE `lost_id` = '$item[lost_id]' LIMIT 1");
            
            $bag[$item['lost_id']] = $item['lost_id'];
            
            writecache('element_shoot_item_user_id'.$user_id, $bag);
            header('Location: '.$header);
        }
    }
    
    function AuctionItemShop($user, $bag, $item, $header, $shop, $okay, $otmena) {
        // Если владелец вещи не я, и она на аукционе, идем дальше
        if ($item['lost_user'] != $user['lost_id'] AND $item['lost_bag'] == 3) {
            // Если данная вещь есть на аукционе, идем дальше
            $auc_item = mysql_fetch_array(mysql_query("SELECT * FROM `element_auction` WHERE `lost_id` = '$item[lost_id]' LIMIT 1"));
            if ($auc_item) {
            
                if ($shop) {
                    if ($user['lost_money_gold'] < $auc_item['lost_gold']) $error = 'Вам нехватает <img src="/images/icons/gold.png">'.($auc_item['lost_gold'] - $user['lost_money_gold']).' золота<br/><a class="button w50 mt3" href="/payment">Купить золото</a>';
                    if (count($bag) >= 20) $error = 'В рюкзаке нехватает места';
                        
                    if (!isset($error)) {
                        $item['lost_user'] = $user['lost_id'];
                        $item['lost_bag'] = 0;
                        mysql_query("UPDATE `element_item` SET `lost_bag` = '0', `lost_user` = '$user[lost_id]' WHERE `lost_id` = '$item[lost_id]' LIMIT 1");
                        mysql_query("DELETE FROM `element_auction` WHERE `lost_id` = '$item[lost_id]' LIMIT 1");
                    
                        $bag[$item['lost_id']] = $item['lost_id'];
                        
                            
                            $profile_other = explode(' ', $user['lost_other']);        // Разбиваем на массив
                            $profile_other[2] = $profile_other[2] + 1;                // Добавляем +1 письмо
                            $user['lost_other'] = implode(' ', $profile_other);        // Возвращаем массив в строку
                            
                            $statistika_user = 'Время: '.rdate("Y год, d M H:i", time()).'<br/>
                            Аукцион: покупка "<a href="/item?id='.$item['lost_id'].'">'.$item['lost_name'].'</a>" у [user]'.$auc_item['lost_user'].'[/user]  за <img src="/images/icons/gold.png">'.$auc_item['lost_gold'].' золота';
                            update_money_exp($user, 0, 0, 0, -$auc_item['lost_gold']);    // Отнимаем мои деньги
                            
                            $lost_sub_text = 'Покупка "'.$item['lost_name'].'" за <img src="/images/icons/gold.png">'.$auc_item['lost_gold'].' золота';
                            $lost_text = '<span class="admin">Покупка "'.$item['lost_name'].'" за <img src="/images/icons/gold.png">'.$auc_item['lost_gold'].' золота.<br/></span>';
                            mysql_query("INSERT INTO `element_mail` SET `lost_out` = '0',
                                                                        `lost_in` = '$user[lost_id]',
                                                                        `lost_sub_text` = '$lost_sub_text',
                                                                        `lost_text` = '$lost_text',
                                                                        `lost_user_out` = '0',
                                                                        `lost_user_in` = '$user[lost_id]',
                                                                        `lost_time` = '".time()."',
                                                                        `lost_system` = 'Аукцион',
                                                                        `lost_new` = '1'");        
                                                        
                            $count_in = Cache_Count_Message($user['lost_id']);
                            if (!empty($count_in['all'])) $count_in['all']++;
                            if (!empty($count_in['in'])) $count_in['in']++;
                            if (!empty($count_in['new'])) $count_in['new']++;
                            writecache('element_count_message'.$user['lost_id'], $count_in);
                    
                            $prodav = cache_user($auc_item['lost_user']);
                            
                            $profile_other = explode(' ', $prodav['lost_other']);        // Разбиваем на массив
                            $profile_other[2] = $profile_other[2] + 1;                    // Добавляем +1 письмо
                            $prodav['lost_other'] = implode(' ', $profile_other);        // Возвращаем массив в строку
                            
                            $statistika_user = 'Время: '.rdate("Y год, d M H:i", time()).'<br/>
                            Аукцион: продажа "<a href="/item?id='.$item['lost_id'].'">'.$item['lost_name'].'</a>" персонажу [user]'.$user['lost_id'].'[/user]  за <img src="/images/icons/gold.png">'.$auc_item['lost_gold'].' золота';
                            update_money_exp($prodav, 0, 0, 0, $auc_item['lost_gold']);    // Добавляем продавцу деньги
                    
                            $lost_sub_text = 'Продажа "'.$item['lost_name'].'" за <img src="/images/icons/gold.png">'.$auc_item['lost_gold'].' золота';
                            $lost_text = '<span class="admin">Продажа "'.$item['lost_name'].'" за <img src="/images/icons/gold.png">'.$auc_item['lost_gold'].' золота.<br/></span>';
                            mysql_query("INSERT INTO `element_mail` SET `lost_out` = '0',
                                                                        `lost_in` = '$prodav[lost_id]',
                                                                        `lost_sub_text` = '$lost_sub_text',
                                                                        `lost_text` = '$lost_text',
                                                                        `lost_user_out` = '0',
                                                                        `lost_user_in` = '$prodav[lost_id]',
                                                                        `lost_time` = '".time()."',
                                                                        `lost_system` = 'Аукцион',
                                                                        `lost_new` = '1'");        
                                                        
                            $count_in = Cache_Count_Message($prodav['lost_id']);
                            if (!empty($count_in['all'])) $count_in['all']++;
                            if (!empty($count_in['in'])) $count_in['in']++;
                            if (!empty($count_in['new'])) $count_in['new']++;
                            writecache('element_count_message'.$prodav['lost_id'], $count_in);
                    
                    
                        writecache('element_shoot_item_user_id'.$user['lost_id'], $bag);
                        header('Location: '.$header);
                    
                    } else echo '<div class="nfl p5 mt5 mb5 cntr small mlra red">'.$error.'</div>';
                    
                } else {
                    echo '<div class="nfl p5 mb5 cntr small yellow1 mt5 mlra">';
                    echo 'Вы уверены что хотите купить "'.$item['lost_name'].'" за <img src="/images/icons/gold.png">'.$auc_item['lost_gold'].' золота?';
                    echo '<div class="mt5">
                           <a class="button w40" href="'.$okay.'">Да</a>
                           <a class="button w40" href="'.$otmena.'">Нет</a>
                          </div>';
                    echo '</div>';
                }
            
            }
        }
    }
    
?>