Размер файла: 4.04Kb
- if (!$game["loc"][$player["loc"]][$speak]["trader"]) msg("<p>Это не продавец");
- $trader=split("\|",$game["loc"][$player["loc"]][$speak]["trader"]);
- // составим массив items и update
- if (count($game["loc"][$player["loc"]][$speak]["bank"])==0) msg("<p>У меня нет товаров");
- $items=array(); $update=array();
- foreach(array_keys($game["loc"][$player["loc"]][$speak]["bank"]) as $i) {
- $st=split("=",$game["loc"][$player["loc"]][$speak]["bank"][$i]);
- $update[$i]=$st[0];
- $items[$i]=$st[1];
- }
- // проверим время обновления товаров
- if (time()>$game["loc"][$player["loc"]][$speak]["trader_time"]) {
- foreach(array_keys($update) as $i) {
- $upd=split("\|",$update[$i]);
- $item=split("\|",$items[$i]);
- if (rand(0,100)>$upd[0]) $item[1]=0; else $item[1]=rand($upd[1],$upd[2]);
- $items[$i]=implode("|",$item);
- }
- $game["loc"][$player["loc"]][$speak]["trader_time"]=time()+$trader[2];
- // т.к. изменили товары
- foreach(array_keys($items) as $i) $game["loc"][$player["loc"]][$speak]["bank"][$i]=$update[$i]."=".$items[$i];
- }
- if (!$to) { // список
- $stmp="<p>На продажу:";
- $ind=0;$count=0;if ($start<0 || !$start) $start=0;
- foreach(array_keys($items) as $i) {
- if ($ind>=$start) {
- $k=split("\|",$items[$i]);
- if ($k[1]==0) continue; // товары с кол-вом 0 пропускаем
- if ($k[1]>1) $s=$k[0]." (".$k[1].")"; else $s=$k[0];
- $s.=": ".round($k[2]*$trader[0]);
- $stmp.="\n<br/><anchor>".$s."<go href=\"#menu\"><setvar name=\"to\" value=\"".$i."\"/></go></anchor>";
- $count++;
- if ($count>=$count_show) break; // след. страница, если слишком много человек или предметов
- }
- $ind++;
- }
- if ($start && $start-$count_show>=0) $stmp.="\n<br/><a href=\"$PHP_SELF?sid=$sid&speak=$speak&id=$id\">^ </a>";
- if ($count+$start<count($items)) {if (!$start) $stmp.="\n<br/>"; $stmp.= " <a href=\"$PHP_SELF?sid=$sid&speak=$speak&id=$id&start=".($count+$start)."\">[+]</a>";}
- $stmp.="\n</p>\n</card>\n<card id=\"menu\" title=\"Меню\">\n<p>\n<a href=\"$PHP_SELF?sid=$sid&speak=$speak&id=$id&to=$(to)\">Купить</a>\n<br/><a href=\"$PHP_SELF?sid=$sid&from=$speak&look=$(to)\">Инфо</a>";
- msg($stmp);
- }else { // передаем $to
- if (!isset($items[$to])) msg("<p>Этого предмета нет");
- $item=split("\|",$items[$to]);
- // проверим кол-во
- if ($item[1]==0) msg("<p>Этого предмет кончился, зайдите в другой раз");
- if ($item[1]>1 && !$num) { // запросим кол-во
- $stmp="<p>Укажите количество:\n<br/><input name=\"num\" value=\"".$item[1]."\"/>\n<br/><a href=\"$PHP_SELF?sid=$sid&speak=$speak&id=$id&to=$to&num=$(num)\">Отправить</a>";
- msg($stmp);
- }
- if (!$num || $num<1) $num=1;
- if ($num>$item[1]) $num=$item[1];
- // считаем стоимость всех предметов с учетом коэфф продавца
- $price=round($item[2]*$num*$trader[0]);
- // проверяем, хватит ли денег
- $b=0;
- if (!isset($player["items"]["item.misc.money"])) $b=1; else {$m=split("\|",$player["items"]["item.misc.money"]); if ($m[1]<$price) $b=1;}
- if ($b) msg("<p>Недостаточно денег (надо ".$price." монет)");
- // забираем деньги
- $m=split("\|",$player["items"]["item.misc.money"]);
- $m[1]-=$price;
- if ($m[1]==0) unset($player["items"]["item.misc.money"]); else $player["items"]["item.misc.money"]=implode("|",$m);
- // удаляем из банка продавца
- $item[1]-=$num;
- if ($item[1]<0) $item[1]=0;
- $items[$to]=implode("|",$item);
- // добавляем игроку в items
- if (isset($player["items"][$to])) $itemp=split("\|",$player["items"][$to]); else {$itemp=$item; $itemp[1]=0;}
- $itemp[1]+=$num;
- $player["items"][$to]=implode("|",$itemp);
- // т.к. изменили товары
- foreach(array_keys($items) as $i) $game["loc"][$player["loc"]][$speak]["bank"][$i]=$update[$i]."=".$items[$i];
- msg("Вы купили ".$num." ".$item[0]." за ".$price." монет");
- }
-
-
-