Вход Регистрация
Файл: speakbuy.php
Строк: 64
<?
                    
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"])==0msg("<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<|| !$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/><a href="$PHP_SELF?sid=$sid&how=1&why=$speak&id=$id&to=$i">".$s."</a>";
                            
$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>";}
                        
msg($stmp);
                        } else {
                        if (!isset(
$items[$to])) msg("<p>Этого предмета нет");
                            
$item=split("|",$items[$to]);
                            
// проверим кол-во
                            
if ($item[1]==0msg("<p>Этого предмет закончился, зайдите в другой раз");
                            
$num=intval($num);
                            if (
$item[1]>&& !$num) {        // запросим кол-во
                            
if($player['style']=='0') {
                            
$stmp="<p>Укажите количество:n<br/><input format="*N" maxlength="9" name="num" value="".$item[1].""/>n<br/><a href="$PHP_SELF?sid=$sid&speak=$speak&id=$id&to=$to&num=$(num)">Купить</a>";
                            }else{
                                
$stmp="<form action="$PHP_SELF?sid=$sid&speak=$speak&id=$id&to=$to" method="post">Укажите количество:<br/><input format="*N" maxlength="9" name="num" value="".$item[1]."" class="inup"/>n<br/><input type="submit" value="Купить" class="btn"></form>";
                                }
                                
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 (
$bmsg("<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);
                            
// т.к. изменили товары
                            
calcparam($login);
                            foreach(
array_keys($items) as $i$game["loc"][$player["loc"]][$speak]["bank"][$i]=$update[$i]."=".$items[$i];
                            
msg("Вы купили ".$num." ".$item[0]." за ".$price." Серебра");
            }    
?>
Онлайн: 0
Реклама