<?php
global $g_destroy, $l_i;
if ($count!='count') {
$count=intval($count);
if (gettype($count)!='integer' || $count==0) {msg('Количество равно '.$count); if ($journal && $to) addjournal($loc,$to,'Количество равно '.$count); $res=0; return 0;}
}
if ($time_delete==-1) $time_delete=$g_destroy;
if (strpos($item,'_')!==false) $tk=substr($item,0,strpos($item,'_')); else
if (strpos($item,'-')!==false) $tk=substr($item,0,strpos($item,'-')); else $tk=$item;
if (substr($item,0,5)=='i.rr.') $title_v=explode('|','руна|50'); else if (!file_exists('items/'.$tk)) {$res=0; return 0;} else {$title_v=explode('|',implode('',file('items/'.$tk)));}
$title_v=$title_v[0];
if ($from && $from!='loc' && !isset($l_i[$loc][$from])) {if ($journal && $to) addjournal($loc,$to,'Не от кого забрать '.$title_v); $res=0; return 0;}
if ($to && $to!='loc' && !isset($l_i[$loc][$to])) {if ($journal && $from) addjournal($loc,$from,'Некому передать '.$title_v); $res=0; return 0;}
// получение кол-ва
if ($count=='count') {
if ($from=='loc') {
if (!isset($l_i[$loc][$item])) {$res=0; return 0;} else {$tmp=explode('|',$l_i[$loc][$item]); $res=$tmp[1]; return $tmp[1];}
} else {$res=intval(preg_replace('/.*'.$item.':(\d+).*/','\\1',$l_i[$loc][$from][$ft])); return $res;}
}
if ($item=='i.q.pjpt' || $item=='i.q.pdeath') if (substr($to,0,2)=='u.' && (strpos($l_i[$loc][$to][$tt],$item)!==false || $count>1)) msg('У вас уже есть '.$title_v.', нельзя хранить более одного');
if ($item=='i.q.ssword' && substr($to,0,2)=='u.') {$tcs=intval(preg_replace('/.*'.$item.':(\d+).*/','\\1',$l_i[$loc][$to][$tt])); if ($tcs>1 || $count>2 || $tcs==1 && $count==2) msg('Можно держать одновременно не более 2 стеклянных мечей');}
if ($to==$from && ($ft=='bank' || $tt=='bank') && substr($to,0,2)=='u.' && strlen($l_i[$loc][$to][$tt])>800 && strpos($l_i[$loc][$to][$tt],$item.':')===false) msg('Нет места для '.$title_v);
if (substr($item,0,4)=='i.s.' && (substr($to,0,2)=='u.' || substr($from,0,2)=='u.')) msg('Нельзя передать');
if ($from) {
if ($from=='loc') {
if (!isset($l_i[$loc][$item])) {
if ($journal && $to) addjournal($loc,$to,$title_v.' отсутствует');
$res=0;
return 0;
} else {
$tmp=explode('|',$l_i[$loc][$item]);
if ($tmp[1]<$count) {if ($journal && $to) addjournal($loc,$to,'Количество '.$title_v.' меньше, чем '.$count); $res=0; return 0;}
$tmp[1]-=$count;
if ($tmp[1]==0) unset($l_i[$loc][$item]); else $l_i[$loc][$item]=implode('|',$tmp);
}
}
if ($from!='loc') {
if (substr($from,0,6)=='i.s.d.') $d=1; else $d=0;
if (!$d) {
$ftitle_v=explode('|',$l_i[$loc][$from]['char']);
$ftitle_v=$ftitle_v[0];
$items=$l_i[$loc][$from][$ft];
} else {$tdied=explode('|',$l_i[$loc][$from]); $items=str_replace(',','|',$tdied[3]);}
$items=preg_replace ('/\|{2,}/','|',$items);
if(substr($items,0,1)=='|') $items=substr($items,1);
if(substr($items,strlen($items)-1,1)=='|') $items=substr($items,0,strlen($items)-1);
$tcount=intval(preg_replace('/.*'.$item.':(\d+).*/','\\1',$items));
if ($tcount==0) {
if ($msg) msg('У вас нет '.$title_v);
if ($journal && $to) addjournal($loc,$to,'Количество '.$title_v.' равно нулю');
if ($journal && !$d) addjournal($loc,$from,'У вас нет '.$title_v);
$res=0;
return 0;
} else {
if ($tcount<$count) {
if ($msg) msg('У вас недостаточно '.$title_v.' (надо '.$count.')');
if ($journal && $to) addjournal($loc,$to,'Количество '.$title_v.' меньше, чем '.$count);
if ($journal && !$d) addjournal($loc,$from,'У вас количество '.$title_v.' меньше, чем '.$count);
$res=0;
return 0;
}
if ($tcount==$count && strpos($items,'='.$item.':'.$tcount)===false) { // удаляем предмет (кроме торговцев, у кот. ver|min|max=id:count), проверяем equip
$items=preg_replace('/\|?'.$item.':(\d+)/','',$items);
$equip=$l_i[$loc][$from]['equip'];
$tbp=strpos($l_i[$loc][$from]['equip'],$item);
if ($tbp===false) $tb='a'; else $tb=$l_i[$loc][$from]['equip']{$tbp+strlen($item)};
if (!$d && $equip && ($tb=='|' || $tb=='')) {
$equip=preg_replace('/'.$item.'\|?/','',$equip);
$equip=preg_replace ('/\|{2,}/','|',$equip);
if(substr($equip,0,1)=='|') $equip=substr($equip,1);
if(substr($equip,strlen($equip)-1,1)=='|') $equip=substr($equip,0,strlen($equip)-1);
$l_i[$loc][$from]['equip']=$equip;
$l_i[$loc][$from][$ft]=$items;
calcparam($loc,$from);
}
}else{
$tcount-=$count;
$items=preg_replace('/'.$item.':(\d+)/',$item.':'.$tcount,$items);
}
if (!$d) $l_i[$loc][$from][$ft]=$items; else {if (strpos($tdied[0],'*')===false) $clan=''; else $clan=substr($tdied[0],strpos($tdied[0],'*')+1,strrpos($tdied[0],'*')-strpos($tdied[0],'*')-1); if ($to) $tc=explode('|',$l_i[$loc][$to]['char']); else $tc[0]=''; if (strpos($tc[0],'*')===false) $clan1=''; else $clan1=substr($tc[0],strpos($tc[0],'*')+1,strrpos($tc[0],'*')-strpos($tc[0],'*')-1); if($tc[13]) $wife=substr($from,6,strrpos($from,'.')-6)==substr($tc[13],0,strlen(substr($from,6,strrpos($from,'.')-6))); else $wife=0; if (!$tdied[1] && $to && substr($from,0,strlen('i.s.d.'.$to))!='i.s.d.'.$to && (!$clan1 || ($clan1 && $clan1!=$clan)) && !$wife && substr($from,0,11)!='i.s.d.u.qv.') docrim($loc,$to,'мародер'); $tdied[3]=str_replace('|',',',$items); $l_i[$loc][$from]=implode('|',$tdied);}
if ($journal && $to=='loc') {if ($journal && !$d) addjournal($loc,$from,'Вы бросили '.$count.' '.$title_v); if ($journal && !$d) addjournal($loc,'all',$ftitle_v. ' бросил '.$count.' '.$title_v,$from);}
if ($journal && $to!='loc') if ($journal && !$d) addjournal($loc,$from,'Вы потеряли '.$count.' '.$title_v);
}
}
}
if ($to) {
if ($to!='loc') {
if (substr($to,0,6)=='i.s.d.') $d=1; else $d=0;
if (!$d) {
$ftitle_v=explode('|',$l_i[$loc][$to]['char']);
$ftitle_v=$ftitle_v[0];
$items=$l_i[$loc][$to][$tt];
} else {$tdied=explode('|',$l_i[$loc][$to]); $items=str_replace(',','|',$tdied[3]);}
$items=preg_replace ('/\|{2,}/','|',$items);
if(substr($items,0,1)=='|') $items=substr($items,1);
if(substr($items,strlen($items)-1,1)=='|') $items=substr($items,0,strlen($items)-1);
if (substr($to,0,2)=='u.') {
if (strlen($items)>800 && strpos($items,$item.':')===false) {
addjournal($loc,$to,'Не хватает места, '.$title_v.' упал вам под ноги');
$to='loc';
}
}
if ($to!='loc') {
$tcount=intval(preg_replace('/.*'.$item.':(\d+).*/','\\1',$items));
if ($tcount==0) { // торговцам новый предмет в банк не добавляем
if (strpos($items,'='.$item.':'.$tcount)===false) if($items=='') $items=$item.':'.$count; else $items.='|'.$item.':'.$count;
} else {
$tcount+=$count;
$items=preg_replace('/'.$item.':(\d+)/',$item.':'.$tcount,$items);
}
if (!$d) $l_i[$loc][$to][$tt]=$items; else {$tdied[3]=str_replace('|',',',$items); $l_i[$loc][$to]=implode('|',$tdied);}
if ($journal && $from=='loc') {if ($journal && !$d) addjournal($loc,$to,'Вы подняли '.$count.' '.$title_v); if ($journal && !$d) addjournal($loc,'all',$ftitle_v. ' поднял '.$count.' '.$title_v,$to);}
if ($journal && $from!='loc') if ($journal && !$d) addjournal($loc,$to,'Вы получили '.$count.' '.$title_v);
}
}
if ($to=='loc') {
if (!isset($l_i[$loc][$item])) {
$l_i[$loc][$item]=$title_v.'|'.$count.'|'.(time()+$time_delete);
} else {
$tmp=explode('|',$l_i[$loc][$item]);
$tmp[1]+=$count;
$tmp[2]=time()+$time_delete;
$l_i[$loc][$item]=implode('|',$tmp);
}
}
}
$res=1;
return 1; // ок