View file 1/f_additem.dat

File size: 7.25Kb
<?php
global $g_destroy, $loc_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 $tk=$item;
if (substr($item,0,5)=="i.rr.") $title=explode("|","руна|50"); else if (!file_exists("items/".$tk)) {$res=0; return 0;} else {$title=explode("|",implode("",file("items/".$tk)));}
$title=$title[0];
if ($from && $from!="loc" && !isset($loc_i[$loc][$from])) {if ($journal && $to) addjournal($loc,$to,"Не от кого забрать ".$title); $res=0; return 0;}
if ($to && $to!="loc" && !isset($loc_i[$loc][$to])) {if ($journal && $from) addjournal($loc,$from,"Некому передать ".$title); $res=0; return 0;}

// получение кол-ва
if ($count=="count") {
	if ($from=="loc") {
		if (!isset($loc_i[$loc][$item])) {$res=0; return 0;} else {$tmp=explode("|",$loc_i[$loc][$item]); $res=$tmp[1]; return $tmp[1];}
		} else {$res=intval(preg_replace('/.*'.$item.':(\d+).*/',"\\1",$loc_i[$loc][$from][$ft])); return $res;}
	}

if ($item=="i.q.pjpt" || $item=="i.q.pdeath") if (substr($to,0,2)=="u." && (strpos($loc_i[$loc][$to][$tt],$item)!==false || $count>1)) msg("У вас уже есть ".$title.", нельзя хранить более одного");
if ($item=="i.q.ssword" && substr($to,0,2)=="u.") {$tcs=intval(preg_replace('/.*'.$item.':(\d+).*/',"\\1",$loc_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($loc_i[$loc][$to][$tt])>800 && strpos($loc_i[$loc][$to][$tt],$item.":")===false) msg("Нет места для ".$title);
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($loc_i[$loc][$item])) {
			if ($journal && $to) addjournal($loc,$to,$title." отсутствует");
			$res=0;
			return 0;
			} else {
				$tmp=explode("|",$loc_i[$loc][$item]); 
				if ($tmp[1]<$count) {if ($journal && $to) addjournal($loc,$to,"Количество ".$title." меньше, чем ".$count); $res=0; return 0;} 
				$tmp[1]-=$count; 
				if ($tmp[1]==0) unset($loc_i[$loc][$item]); else $loc_i[$loc][$item]=implode("|",$tmp);
				}
		} 

	if ($from!="loc") {
		if (substr($from,0,6)=="i.s.d.") $d=1; else $d=0;
		if (!$d) {
			$ftitle=explode("|",$loc_i[$loc][$from]["char"]);
			$ftitle=$ftitle[0];
			$items=$loc_i[$loc][$from][$ft];
			} else {$tdied=explode("|",$loc_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);
			if ($journal && $to) addjournal($loc,$to,"Количество ".$title." равно нулю"); 
			if ($journal && !$d) addjournal($loc,$from,"У вас нет ".$title); 
			$res=0;
			return 0;
			} else {
				if ($tcount<$count) {
					if ($msg) msg("У вас недостаточно ".$title." (надо ".$count.")");
					if ($journal && $to) addjournal($loc,$to,"Количество ".$title." меньше, чем ".$count); 
					if ($journal && !$d) addjournal($loc,$from,"У вас количество ".$title." меньше, чем ".$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=$loc_i[$loc][$from]["equip"];
					$tbp=strpos($loc_i[$loc][$from]["equip"],$item);
					if ($tbp===false) $tb="a"; else $tb=$loc_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);
						$loc_i[$loc][$from]["equip"]=$equip; 
						$loc_i[$loc][$from][$ft]=$items; 
						calcparam($loc,$from);
						}
					}else{
						$tcount-=$count;
						$items=preg_replace('/'.$item.':(\d+)/',$item.":".$tcount,$items);
						}
				if (!$d) $loc_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("|",$loc_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); $loc_i[$loc][$from]=implode("|",$tdied);}
				if ($journal && $to=="loc") {if ($journal && !$d) addjournal($loc,$from,"Вы бросили ".$count." ".$title); if ($journal && !$d) addjournal($loc,"all",$ftitle. " бросил ".$count." ".$title,$from);}
				if ($journal && $to!="loc") if ($journal && !$d) addjournal($loc,$from,"Вы потеряли ".$count." ".$title);
				}
		}
	}


if ($to) {

	if ($to!="loc") {
		if (substr($to,0,6)=="i.s.d.") $d=1; else $d=0;
		if (!$d) {
			$ftitle=explode("|",$loc_i[$loc][$to]["char"]);
			$ftitle=$ftitle[0];
			$items=$loc_i[$loc][$to][$tt];
			} else {$tdied=explode("|",$loc_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." упал вам под ноги");
				$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) $loc_i[$loc][$to][$tt]=$items; else {$tdied[3]=str_replace("|",",",$items); $loc_i[$loc][$to]=implode("|",$tdied);}
			if ($journal && $from=="loc") {if ($journal && !$d) addjournal($loc,$to,"Вы подняли ".$count." ".$title); if ($journal && !$d) addjournal($loc,"all",$ftitle. " поднял ".$count." ".$title,$to);}
			if ($journal && $from!="loc") if ($journal && !$d) addjournal($loc,$to,"Вы получили ".$count." ".$title);
			}
		}

	if ($to=="loc") {
		if (!isset($loc_i[$loc][$item])) {
			$loc_i[$loc][$item]=$title."|".$count."|".(time()+$time_delete);
			} else {
				$tmp=explode("|",$loc_i[$loc][$item]); 
				$tmp[1]+=$count;
				$tmp[2]=time()+$time_delete;
				$loc_i[$loc][$item]=implode("|",$tmp);
				}
		} 
	}
$res=1;
return 1;	// ок