Файл: 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>';
}
}
}
}
?>