View file wofh/speakqueststop.php

File size: 2.69Kb
<?
$q_id=$dialog[1]; //id квеста
require"questdb.php";
if (!$player['items']['item.note.imen.q'.$q_id.'']) msg("Вы не брали этого квеста, и окончить его не можете!");
else {
if (chitm($q_id)) {
unset($player['items']['item.note.q'.$q_id.'']); //убиваем записку
delitm($q_id); //убиваем предметы
$sss=explode(":",$qq[$q_id]['stop']);
$player['q'][$q_id]=true;
if ($sss[0]=="zm")  { $player['zm']=$player['zm']+$sss[1]; $priz="Вы получили ".$sss[1]." монет!"; };
if ($sss[0]=="item"){
$ex=explode("=", $sss[1]);
$player['items'][$ex[0]]=$ex[1];
$exx=explode("|", $ex[1]);
$priz="Вы получили предмет ".$exx[0];
};

   msg("Вы успешно сдали все предметы! ".$priz);

} else msg("Вы не собрали всех предметов!");
      }

function delitm($d) {
        global $qq;
        global $player;
        global $game;
         $ex=explode("|", $qq[$d]['items']);

         $r=true;
         foreach ($ex as $i) {
                 $x=explode(":", $i);
 if (!ereg("\*",$x[0])) { // не используем регулярку
$xx=explode("|", $player['items'][$x[0]]);
                 $xx[1]=$xx[1]-$x[1];
                 if ($xx[1]<=0) unset($player['items'][$x[0]]); else
                 $player['items'][$x[0]]=implode("|",$xx);

} else {
$x[0]=str_replace("*", "", $x[0]);
foreach (array_keys($player['items']) as $j) {
if (preg_match("/$x[0]+[a-z_A-Z.0-9]/i", $j)) { //нашли предмет по регулярке, проверим количество
if (!$exests[$j]) {
$exests[$j]=1;
unset($player['items'][$j]);
};};
if (count($exests)>$x[1]) break;
};};};
                 return $r;
        }
function chitm($d) {
        global $qq;
        global $player;
        global $game;
         $ex=explode("|", $qq[$d]['items']);
         $r=true;
         foreach ($ex as $i) {
                 $x=explode(":", $i);
		 if (!ereg("\*",$x[0])) { // не используем регулярку
                 if ($player['items'][$x[0]]) {
                 $xx=explode("|", $player['items'][$x[0]]);
                 if ($x[1]>$xx[1]) { $r=false; break;};
                 } else {$r=false; break;};
} else {
$x[0]=str_replace("*", "", trim($x[0]));
foreach (array_keys($player['items']) as $j) {
if (preg_match("/$x[0]+[a-z_A-Z.0-9]/i", $j)) { //нашли предмет по регулярке, проверим количество
if (!$exests[$j]) {
$exests[$j]=1;

};
};
};
if (count($exests)<=$x[1]) $r=false;  //не нашли нужного количества
};
		};
                 return $r;
        };
		?>