dev-runes #7
@ -70,16 +70,16 @@ class Runes
|
|||||||
|
|
||||||
/** Выкусывает руну из предмета.
|
/** Выкусывает руну из предмета.
|
||||||
*
|
*
|
||||||
* @param array $itemData
|
* @param array $itemDataArray
|
||||||
* data предмета
|
* data предмета
|
||||||
*
|
*
|
||||||
* @return array массив, item - предмет, rune - руна из предмета, rune_id - id руны.
|
* @return array массив, item - предмет, rune - руна из предмета, rune_id - id руны.
|
||||||
* Оба в подготовленном строчном формате для data
|
* Оба в подготовленном строчном формате для data
|
||||||
*/
|
*/
|
||||||
public static function removeRuneData($itemData)
|
public static function removeRuneData($itemDataArray)
|
||||||
{
|
{
|
||||||
# Ищем есть ли в предмете руна определённого типа.
|
# Ищем есть ли в предмете руна определённого типа.
|
||||||
$runeid = array_search('rune_id', array_flip($itemData));
|
$runeid = array_search('rune_id', array_flip($itemDataArray));
|
||||||
if (!in_array($runeid, [6001, 6002, 6003])) {
|
if (!in_array($runeid, [6001, 6002, 6003])) {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
@ -96,20 +96,24 @@ class Runes
|
|||||||
}
|
}
|
||||||
$args = 0; //basic rune values - rune, id, name, lvl
|
$args = 0; //basic rune values - rune, id, name, lvl
|
||||||
$rune = [];
|
$rune = [];
|
||||||
foreach ($itemData as $key => $value) {
|
$item = [];
|
||||||
|
foreach ($itemDataArray as $key => $value) {
|
||||||
if ($key == 'rune') {
|
if ($key == 'rune') {
|
||||||
$args = 4 + $bonusArgs;
|
$args = 4 + $bonusArgs;
|
||||||
}
|
}
|
||||||
if ($args > 0) {
|
if ($args > 0) {
|
||||||
$rune[$key] = $value;
|
$rune[$key] = $value;
|
||||||
$args--;
|
$args--;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
$item[$key] = $value;
|
||||||
}
|
}
|
||||||
$runeData = urldecode('|' . http_build_query($rune, '', '|'));
|
|
||||||
$itemWithoutRuneData = str_replace($runeData, '', $itemData);
|
unset($rune['rune'], $rune['rune_id'], $rune['rune_name'], $rune['rune_lvl']);
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'item' => (string)$itemWithoutRuneData,
|
'item' => urldecode('|' . http_build_query($item, '', '|')),
|
||||||
'rune' => $runeData,
|
'rune' => urldecode('|' . http_build_query($rune, '', '|')),
|
||||||
'rune_id' => (int)$runeid
|
'rune_id' => (int)$runeid
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -389,7 +389,7 @@ if($u->room['file']=='remont')
|
|||||||
$re = '<div align="left">Подходящий предмет не найден в инвентаре</div>';
|
$re = '<div align="left">Подходящий предмет не найден в инвентаре</div>';
|
||||||
}
|
}
|
||||||
}elseif(isset($_GET['unrune'])) {
|
}elseif(isset($_GET['unrune'])) {
|
||||||
require_once '../../_incl_data/class/Insallah/Runes/Runes.php';
|
require_once $_SERVER['DOCUMENT_ROOT'] . '/_incl_data/class/Insallah/Runes/Runes.php';
|
||||||
$ir = mysql_fetch_array(mysql_query('SELECT `im`.*,`iu`.* FROM `items_users` AS `iu` LEFT JOIN `items_main` AS `im` ON (`im`.`id` = `iu`.`item_id`) WHERE `iu`.`uid`="'.$u->info['id'].'" AND `iu`.`delete`="0" AND `iu`.`inOdet`="0" AND `iu`.`inShop`="0" AND `iu`.`data` LIKE "%rune_id%" AND `iu`.`id` = "'.mysql_real_escape_string((int)$_GET['unrune']).'" LIMIT 1'));
|
$ir = mysql_fetch_array(mysql_query('SELECT `im`.*,`iu`.* FROM `items_users` AS `iu` LEFT JOIN `items_main` AS `im` ON (`im`.`id` = `iu`.`item_id`) WHERE `iu`.`uid`="'.$u->info['id'].'" AND `iu`.`delete`="0" AND `iu`.`inOdet`="0" AND `iu`.`inShop`="0" AND `iu`.`data` LIKE "%rune_id%" AND `iu`.`id` = "'.mysql_real_escape_string((int)$_GET['unrune']).'" LIMIT 1'));
|
||||||
if(isset($ir['id']) ) {
|
if(isset($ir['id']) ) {
|
||||||
$po = [];
|
$po = [];
|
||||||
@ -407,12 +407,12 @@ if($u->room['file']=='remont')
|
|||||||
$item_and_rune = \Insallah\Runes::removeRuneData($po);
|
$item_and_rune = \Insallah\Runes::removeRuneData($po);
|
||||||
if (!empty($item_and_rune)) {
|
if (!empty($item_and_rune)) {
|
||||||
# Добавляем предмет без руны
|
# Добавляем предмет без руны
|
||||||
mysql_query(sprintf("update items_users set data = %s where id = %d", $item_and_rune['item'], $ir['id']));
|
mysql_query(sprintf("update items_users set data = '%s' where id = %d", $item_and_rune['item'], $ir['id']));
|
||||||
# Отнимаем деньги
|
# Отнимаем деньги
|
||||||
$u->info['money'] -= $pcena;
|
$u->info['money'] -= $pcena;
|
||||||
mysql_query(sprintf("update users set money = money - %d where id = %d", $u->info['money'], $u->info['id']));
|
mysql_query(sprintf("update users set money = money - %f where id = %d", $pcena, $u->info['id']));
|
||||||
# Добавляем руну
|
# Добавляем руну
|
||||||
$u->addItem($item_and_rune['rune_id'],$u->info['id'],$item_and_rune['rune']);
|
$u->addItem($item_and_rune['rune_id'],$u->info['id'],$item_and_rune['rune'], null, null, true);
|
||||||
} else {
|
} else {
|
||||||
/** Если пытаемся извлечь любую руну кроме 6001, 6002, 6003. */
|
/** Если пытаемся извлечь любую руну кроме 6001, 6002, 6003. */
|
||||||
$re = 'Руна слилась с предметом и не извлекается...';
|
$re = 'Руна слилась с предметом и не извлекается...';
|
||||||
|
Loading…
Reference in New Issue
Block a user