View file f_speakqueststop.dat

File size: 3.86Kb
//<?
$q_id=$dialog[1]; //id квеста
eval(implode('',file("f_questdb.dat")));
if ($player['q'][$q_id]) msg("Вы уже прошли этот квест!"); else {
if (!$player['items']['item.note.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"){
//item:item.rod.new=Усовершенствованная удочка|1|100|10000|2
$ex=explode("=", $sss[1]);
$player['items'][$ex[0]]=$ex[1];
$exx=explode("|", $ex[1]);
$priz="Вы получили предмет ".$exx[0];
};

if ($sss[0]=="skill") {

$arr_skills=array(
"str"=>0,
"dex"=>1,
"int"=>2,
"meditation"=>5,
"steal"=>6,
"animaltaming"=>7,
"hand"=>8,
"coldweapon"=>9,
"ranged"=>10,
"parring"=>11,
"uklon"=>12,
"magic"=>13,
"magic_resist"=>14,
"magic_uklon"=>15,
"regeneration"=>16,
"hiding"=>17,
"look"=>18,
"steallook"=>19,
"animallore"=>20,
"spirit"=>21,
);

$arr_title=array(
"str"=>"Сила",
"dex"=>"Ловкость",
"int"=>"Интеллект",
"meditation"=>"Медитация",
"steal"=>"Кража",
"animaltaming"=>"Прир.животных",
"hand"=>"Рукопашная",
"coldweapon"=>"Холодн.оружие",
"ranged"=>"Стрельба",
"parring"=>"Парирование",
"uklon"=>"Уклон",
"magic"=>"Магия",
"magic_resist"=>"Сопр.магии",
"magic_uklon"=>"Уклон от магии",
"regeneration"=>"Регенерация",
"hiding"=>"Скрытность",
"look"=>"Осторожность",
"steallook"=>"Подглядывание",
"animallore"=>"Изуч.животных",
"spirit"=>"Спиритизм",
);

$plsk=explode("|", $player['skills']);
$plsk[$arr_skills[$sss[1]]]=$plsk[$arr_skills[$sss[1]]]+$sss[2];
$player['skills']=implode("|", $plsk);

$priz="Ваш навык ".$arr_title[$sss[1]]." поднялся на ".$sss[2]."!";
};

   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']);
         //print_r($ex);
         $r=true;
         foreach ($ex as $i) {
                 $x=explode(":", $i);
                 //print_r($x);
		 if (!ereg("\*",$x[0])) { // не используем регулярку
                 if ($player['items'][$x[0]]) {
                 $xx=explode("|", $player['items'][$x[0]]);
                 //print_r($xx);
                 if ($x[1]>$xx[1]) { $r=false; break;};
                 } else {$r=false; break;};
} else {
$x[0]=str_replace("*", "", trim($x[0]));
//echo $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;

};
#echo "xxx";
};
};
#print_r($exests);
//echo $x[1];
if (count($exests)<=$x[1]) $r=false;  //не нашли нужного количества
};
		};
		//if (is_array($exests) && count($exests)<$ex[1]) $r=falce
                 return $r;
        };